當前位置:
首頁 > 最新 > 我懟了硬體工程師,讓你不按datasheet設計

我懟了硬體工程師,讓你不按datasheet設計

最近有個項目是使用NXP的KEAZ64晶元,基於cortex M0+內核。帶有mscan模塊,mscan是NXP的8位機和低端32位上用的CAN模塊外設,和我們之前使用並介紹過的flexcan模塊在寄存器級別有很大區別,寄存器和消息緩存都不一樣,需要仔細看數據手冊,之前先在開發板上使用常式跑過迴環測試是可以的,隨後就禁掉迴環,配置為正常模式,移植到我們的板子上,從硬體工程師那拿到板子後,由於時間緊,硬體工程師沒有做大量的測試,修改完程序後在板子上跑了下,上位機收不到數據,隨開始調試。

分析了mscan的驅動層所有代碼,沒有找見問題,重新分析計算波特率也沒有問題,因硬體功能工程師設計的板子沒有外部晶振,首先把時鐘改為內部時鐘,重新配置在測試,仍舊接收不到數據,前前後後又把代碼分析了一遍,在官網重新找了個驅動修改後測試還是不通,折騰了一天沒有找見問題。實在找不見問題,隨仔細看了下原理圖,初看好像沒什麼問題,因為之前項目上也用過can,硬體電路上應該不會有問題,用示波器測了下MCU端發送端有信號。仔細看了下收發器部分的電路,在看了看收發器的數據手冊,發現有一個管腳接的不對,S管腳。

看了下收發器sn65hvd1050的數據手冊,在手冊第三頁裡面寫到:

也就是說在正常通信模式下,S腳也就是晶元的8腳需要接地,但原理圖上被接到了5V高電平,所以導致CAN收發器工作在監聽模式,所有上位機收不到mscan發送的數據。找到原因後,迅速動手拆掉R16和C21,並將S腳接地,在上電運行剛才的軟體,一切ok,通訊可以正常收發,測試軟體是將收到的上位機數據在從下位機發送回上位機,使用CANTest軟體進行測試,並換不同波特率測試,均可正常工作。

總結這次的調試經驗,硬體工程師在硬體設計時候,一定要嚴格按照數據手冊的要求進行電路設計,軟體工程師軟體調試時候,要快速定位問題,解決問題,嵌入式工程師一定要軟體和硬體都要懂才能快速找到問題。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嵌入式程序猿 的精彩文章:

TAG:嵌入式程序猿 |