完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
问题: 该问题由某通信产品公司(*为)提出。据其工程师描述:其产品设计中,使用了STM32F103VDT6 器件。该器件的 SPI2通信接口外接一个 EEPROM,如图(一)所示。 在其进行软件调试时,发现当程序发起对 EEPROM 的读写时会导致 STM32 死机。用示波器进一步观测,发现 STM32 只发出了片选信号(/CS) ,没有 SPI 时钟送出。于是断定STM32 送出片选信号(/CS)之后,未及做实质的数据传输,既已死机,缘由不详,甚急。
调研: 检测相关电路的设计,包括电源、地、复位电路、时钟电路、BOOT 模式处理等,未见异常。重新核对该 SPI接口对外连接,确认如图。修改软件,去除对片上其它的外设的操作,只对该 SPI 接口进行通信测试。结果显示,该接口可以正常通信。将原程序中的代码逐步加入测试程序。在将与 IIC2 相关代码加入后,问题重现。详细检查程序中对I2C2 接口的设置与驱动,发现其程序对 IIC2 接口启用了 SMBus 模式,而 SMBAI 信号恰与 SPI2 的片选信号(/CS)位于同一管脚。 结论: 当程序通过 SPI2 接口访问 EEPROM 时,片选信号(/CS)意外的触发了 IIC2 的SMBAI 信号,于是 IIC2 发出中断请求,进而程序跳入相关的中断处理程序。而该中断处理程序并未对这一事件做任何处理, 所以中断请求得不到清除, 从而无法退出该中断处理程序,STM32 表现出死机状。 处理: 对IIC2 不启用 SMBus 模式,而使其工作在 I2C模式,问题得以解决。 建议: 该问题属于典型的管脚资源分配冲突问题,同类问题在实际应用中出现频率较高。对于 STM32 系列MCU 来说,其管脚多数为多功能复用管脚,所以在分配时管脚一定要仔细斟 酌,认真检查。 本帖被以下淘专辑推荐:
|
|
相关推荐
1 个讨论
|
|
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16902 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 11:57 , Processed in 0.543963 second(s), Total 37, Slave 29 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
439