qq_28248005 2023-11-17 17:45 采纳率: 40%
浏览 10
已结题

SPI在dsp的CPU2上无法通信

SPI的配置在CPU1上能正常读写FRAM,同样的配置换到CPU2上就不能与FRAM通信了,用示波器测试了FRAM的SCK引脚以及SI引脚都有波形,SO引脚无波形。

程序运行停在了读FRAM的状态寄存器(发送了读状态寄存器的操作码后等待数据返回)。

片选管脚输入波形

img


这个波形是不是不太对啊,应该是一直低才对吧

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-17 20:10
    关注

    【以下回答由 GPT 生成】

    这个问题可能由以下一些原因导致:

    1. 硬件接线问题:确保CPU2与FRAM之间的SPI接口线路正确连接。检查引脚连接,确保SCK、SI和SO引脚正确连接到FRAM和CPU2。

    2. SPI配置问题:检查CPU2上的SPI配置是否正确。确保SPI模式、时钟极性、时钟相位等设置与FRAM兼容。也要确保所选的SPI时钟速度在FRAM可接受范围内。

    3. 电源供应问题:确保FRAM和CPU2的供电电压稳定并正常工作。检查电源线路和供电电容,并确保它们能够提供足够的电源电流。

    4. 软件驱动问题:检查CPU2上的SPI驱动程序是否正确配置。确保发送和接收数据的函数正确地设置了SPI控制寄存器和数据寄存器。确保在发送和接收数据之间的时间间隔足够,以便FRAM有足够的时间从SO引脚输出数据。

    解决方法如下:

    1. 确认SPI硬件连线是否正确,并修复任何错误的连接。

    2. 检查并修改CPU2上的SPI配置,以确保它与FRAM兼容。参考FRAM芯片的规格书,确认SPI模式、时钟极性、时钟相位等设置是否正确。

    3. 检查电源供应情况,确保FRAM和CPU2的电源供应稳定并正常。

    4. 检查并修改CPU2上的SPI驱动程序,确保发送和接收数据的函数正确地设置SPI控制寄存器和数据寄存器,并且在发送和接收数据之间有足够的时间间隔。

    如果以上方法都不能解决问题,那可能是硬件或软件上的一些其他问题,需要更深入地调试和测试。也可以参考FRAM和CPU2的相关文档和论坛,寻找类似问题的解决方案或向厂家寻求技术支持。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月27日
  • 修改了问题 11月17日
  • 创建了问题 11月17日

悬赏问题

  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画