SPI的配置在CPU1上能正常读写FRAM,同样的配置换到CPU2上就不能与FRAM通信了,用示波器测试了FRAM的SCK引脚以及SI引脚都有波形,SO引脚无波形。
程序运行停在了读FRAM的状态寄存器(发送了读状态寄存器的操作码后等待数据返回)。
片选管脚输入波形
这个波形是不是不太对啊,应该是一直低才对吧
SPI的配置在CPU1上能正常读写FRAM,同样的配置换到CPU2上就不能与FRAM通信了,用示波器测试了FRAM的SCK引脚以及SI引脚都有波形,SO引脚无波形。
程序运行停在了读FRAM的状态寄存器(发送了读状态寄存器的操作码后等待数据返回)。
片选管脚输入波形
【以下回答由 GPT 生成】
这个问题可能由以下一些原因导致:
硬件接线问题:确保CPU2与FRAM之间的SPI接口线路正确连接。检查引脚连接,确保SCK、SI和SO引脚正确连接到FRAM和CPU2。
SPI配置问题:检查CPU2上的SPI配置是否正确。确保SPI模式、时钟极性、时钟相位等设置与FRAM兼容。也要确保所选的SPI时钟速度在FRAM可接受范围内。
电源供应问题:确保FRAM和CPU2的供电电压稳定并正常工作。检查电源线路和供电电容,并确保它们能够提供足够的电源电流。
软件驱动问题:检查CPU2上的SPI驱动程序是否正确配置。确保发送和接收数据的函数正确地设置了SPI控制寄存器和数据寄存器。确保在发送和接收数据之间的时间间隔足够,以便FRAM有足够的时间从SO引脚输出数据。
解决方法如下:
确认SPI硬件连线是否正确,并修复任何错误的连接。
检查并修改CPU2上的SPI配置,以确保它与FRAM兼容。参考FRAM芯片的规格书,确认SPI模式、时钟极性、时钟相位等设置是否正确。
检查电源供应情况,确保FRAM和CPU2的电源供应稳定并正常。
检查并修改CPU2上的SPI驱动程序,确保发送和接收数据的函数正确地设置SPI控制寄存器和数据寄存器,并且在发送和接收数据之间有足够的时间间隔。
如果以上方法都不能解决问题,那可能是硬件或软件上的一些其他问题,需要更深入地调试和测试。也可以参考FRAM和CPU2的相关文档和论坛,寻找类似问题的解决方案或向厂家寻求技术支持。