FRAM铁电FM25640的读写问题
时间:12-12
整理:3721RD
点击:
请教各位大侠:
FM25640是SPI总线接口的64Kb的FRAM,因为CPU没有SPI接口,我们自己在FPGA中编写了一个SPI控制器。现在的情况是:
对铁电第一次写0x04给状态寄存器,可以正确读回;
第二次再写0x80给状态寄存器时,读回的是第一次写的值0x04,以后再也写不进去,用示波器看波形,输入给铁电的波形是正确的,但读时没有输出信号。
对铁电的某一个地址第一次写数据0x55,也可以正确读回;
第二次再对同一地址写0x66时,用示波器看,输入给铁电的波形是0x66,但输出波形是0x55(第一次写入的值),也就是说0x66没有写进去;
对另外一个地址写0x66,能看到FRAM的输入波形,但输出没有波形。对其它地址同样的情况。
这是什么原因呢?手册上说明写操作之前要写使能,这些都考虑了。会不会是自己写的SPI控制核时序有问题?但第一次的读写都是正常的。
FM25640是SPI总线接口的64Kb的FRAM,因为CPU没有SPI接口,我们自己在FPGA中编写了一个SPI控制器。现在的情况是:
对铁电第一次写0x04给状态寄存器,可以正确读回;
第二次再写0x80给状态寄存器时,读回的是第一次写的值0x04,以后再也写不进去,用示波器看波形,输入给铁电的波形是正确的,但读时没有输出信号。
对铁电的某一个地址第一次写数据0x55,也可以正确读回;
第二次再对同一地址写0x66时,用示波器看,输入给铁电的波形是0x66,但输出波形是0x55(第一次写入的值),也就是说0x66没有写进去;
对另外一个地址写0x66,能看到FRAM的输入波形,但输出没有波形。对其它地址同样的情况。
这是什么原因呢?手册上说明写操作之前要写使能,这些都考虑了。会不会是自己写的SPI控制核时序有问题?但第一次的读写都是正常的。
一个连续操作的不同字节之间写使能是否有特殊要求?例如一直拉底直到序列传输完成
我都是用软件模拟的SPI时序,一直正常。
我现在也改用软件模拟了,但是我们人为施加干扰后,容易出错。所以我觉得还是用IP核比较可靠些。
之前的问题还没有解决,我回头再好好查一查,谢谢大家!
出错的话,降低SCLK频率试试