您好,登錄后才能下訂單哦!
測試框圖:
圖中未畫出/EN2,/DR2,RXB+,RXB-的連接,/EN2一直維持為高電平,/DR2、RXB+、RXB-懸空;
測試步驟:
系統上點;
可編程器件向DEI1016發送復位信號(/MR低電平持續400ns)
可編程器件向DEI1016發送控制信息 (/LDCW電平持續400ns,控制信息為0x0020)
可編程器件向DEI1016加載數據;字1 為0x0666,字2數據為0x5555或0xAAAA(0x5555和0xAAAA交替加載),加載數據的頻率為1Hz
當DR1為低電平時,可編程器件從DEI1016讀取數據。
問題如下:當可編程器件從DEI1016成功讀取幾個數據以后,DR1會持續為低電平(即使已經沒有向DEI1016寫發送數據,且DEI1016已經沒有再發送數據),DR1無法自動變為高電平;從芯片手冊中得知,當從DEI1016完成讀取Word1和Word2后,DR1會自動復位(變為高電平),實際情況與此不符,實際情況是DR1會持續為低電平,此時會認為DEI1016接受緩沖器一直存在有效數據,所以會一直做讀取數據的動作。
經過測試后發現SEL,/OE1,數據總線數據波形如下圖1或圖2所示(此時DEI1016和BD429已經沒有發送數據)
解決步驟:
首先懷疑時程序出現了問題,但是經過仔細研究芯片手冊的讀寫時序,發現程序設計出的讀寫時序完全符合芯片手冊的要求;
然后懷疑是硬件電路設計的問題,但是檢查原理圖和硬件圖很久,各種測試后認為沒有問題;因為如果硬件或程序有問題的話,那么一次數據收發應該都不會成功的,實際情況時正常收發20多次數據后才出問題;此時整個人就懵逼了。
接下來我打算使出殺手锏,問度娘;但是這次度娘讓我失望了,百度壓根就沒有此種問題的描述或解決辦法,整個人已經心灰意冷,地球太殘酷了!
然后我使出了終究殺招,尋求芯片廠家的技術支持;聯系到中國區技術支持后將問題發送過去,在忐忑中等待了一天;得到的回復是他們也不知道為什么,沒有解決辦法;此時我絕望了
最后鄙人一狠心,將DEI1016所有未用到的引腳(其實也就只有/DR2,RXB+,RXB-)全都做了處理——/DR2上拉至高電平,RXB+、RXB-下拉至地;再做收發測試的時候居然成功了,此時鄙人整個人激動的快要盆骨漲裂了
問題原因:應為當時在進行硬件設計時只需要一路收發通道,設計選擇DEI1016接收通道1進行數據接受;所以只是將DEI1016的/DR1引腳連接至可編程器件,/DR2未用(懸空);當將DEI1016的/DR2上拉至高電平后,對接收通道1的數據讀取動作后,/DR1能正常復位。至于為什么至今未明;
教訓:以后用新器件的時候沒有使用到的,不明確的的芯片引腳盡量還是做處理,該上拉的上拉,該下拉的下拉;
本文屬原創,如引用請注明出處!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。