最近在搞 328 的 ESCL 的生产测试工装,该工装准备从 H7 的 ESCL 的生产测试工装,改造而来。
该工装分为 2部分,LCD板卡(APM32 控制LCD屏幕),主板卡(STM32F105),主板卡 和 LCD板卡 通过 CAN通信。
问题描述:两个板卡分别接各自的 J-link 仿真器,调试过程中,发现 主板卡程序有跑到发送数据处,而LCD板卡 CAN_Rx 中断函数,没跑进去。
排查过程:
1. 接上CANoe 监听报文,结果啥都没收到
2. 示波器抓取 CAN_H 和 CAN_L 报文,结果啥都没抓到
3. 示波器直接,点 MCU 的 CAN_TX,结果啥都没抓到
4. 换柯火城的笔记本电脑,进行调试,示波器抓取 CAN_TX,结果啥都没抓到
5. 换成 H7 的生产测试工装,用我的电脑调试正常,可以正常收发CAN数据(确定是硬件的问题)
6. 与 H7 的生产测试工装的PCB,进行对比,发现是晶振焊错了,按照需求应该焊成 16MHz,现
在被误焊成 20MHz
7. 晶振焊回 20MHz 后,CAN 就能正常发送数据了
结论:晶振焊错了,会导致 MCU的 CAN_TX,输出不出波形。