本帖最后由 speCIAl017 于 2013-5-16 12:53 编辑
刚接触python然后上面给了我个接FPGA的FT4232H MiniModule芯片,要求编个SPI接口的读写驱动
之前前辈做了点 但是不能正常工作。顺便说下FTDI的芯片下了他们自家的DLL文件后有SPI的一些简单的function的,所以设置频率和读写理论上是给参数就可以了(但是读写的参数很多,有些就不知道填什么了= =比如writecontrol, 似乎是enable/disable的参数,但是运行的时候就接受[0x9F]这样的hex数据)
现在的code基本就是configure,设置CLK频率,读,写这样
问题有:
1.每次写都超时,读的时候无论writecontrol填什么返回的都是很长的数据,在某个格式下是奇特的图案。。
用示波器量了后发现时序下沿的时候MOSI工作了。。。看资料好像应该是上沿MOSI,下沿的时候MISO吧。。有SPI function的手册里面好像并没有提及改时序的方法(或者我没理解好),小白问下有没有什么方法能改时序的,或者别的方法,总之让MOSI工作的时候正好是上沿。。。
虽然每次都超时但发现数据确实是被写到FPGA里去了 这样运行的程序会中断 但是至少工作了。。。如果单单读或写的话这样就没问题,要先写后读的话就要把MOSI的线先拔了 写完后再把MOSI的线接上然后读 挺麻烦目前没找到彻底解决的方法 还有上沿下沿的问题 根据那块芯片的protocol工作起来是对的
2.MISO读写都没有任何起伏 没记错的话好像一直是低电平(有点忘了明天再去看看) MOSI读写的时候都有信号进来 =口= 这个是怎么回事哦= = 顺带上面那个写的时候超时 如果把连FPGA的MISO线拔掉的话程序就告诉我写上去了(当然没有被写上去)。。。。
MOSI确实应该读写都有信号 MISO写的时候是没有起伏的 只有读的时候传数据部分才会用到(这边没仔细看设定的protocol蛋疼了好久自己讨苦吃
顺带和1一样把MISO的线拔掉其实是写上去了 只是测试的时候读写寄存器的数值设的不好
3.I/O电压应该3.3V但是用示波器测出来有6.6V。。。片选什么的都是大约在6.6V。。图纸有个pin是3.3V的输出另有个pin是连接其他pin的输入,是这样做没错。。。。吧?可是为什么大了一倍。。。
这个。。。。。后来发现时示波器的probe坏掉了。。。。。
|