單片機(jī)
C8051F340單片機(jī),IO口要外接一個(gè)旋轉(zhuǎn)編碼器的AB相的電平信號(hào)。
當(dāng)不接上編碼器的時(shí)候,系統(tǒng)正常。
接上編碼器,并不轉(zhuǎn)動(dòng),單片機(jī)會(huì)死機(jī),有時(shí)候則反復(fù)重啟。
程序都是很成熟的,前一臺(tái)一樣的沒(méi)有這種問(wèn)題。
請(qǐng)教如何排除這種故障?從哪些方面以及如何下手?
編碼器接口直接相連MCU的IO嗎?沒(méi)圖不好分析
編碼器輸出的ttl信號(hào),直接接單片機(jī)io口。因?yàn)槭歉唠娖接?jì)數(shù),所以每個(gè)io口有一個(gè)2k的下拉電阻。
這是長(zhǎng)線耦合空間的電磁干擾所致,說(shuō)明你的系統(tǒng)EMC設(shè)計(jì)不良。
改進(jìn)方法:注意電源設(shè)計(jì)及去耦,PCB布局走線 ...
請(qǐng)教編碼器供電端去藕電容用104外,還需不需要并一個(gè)大點(diǎn)的電解電容?供電端的磁珠是電源和地都需要嘛?信號(hào)線串磁珠的話,大小如何選擇?單片機(jī)的io口有2k的下拉電阻。
設(shè)置成推挽模式僅在做輸出時(shí)才有效,輸入管腳應(yīng)設(shè)置成弱上拉型。
磁珠電感沒(méi)有直插式的,你買的應(yīng)該是穿芯 ...
這個(gè)單片機(jī)設(shè)置io口模式只能是推挽或者漏極開(kāi)路,設(shè)置成推挽輸出后,弱上拉就被禁止了。只有設(shè)置成漏極開(kāi)路才可選擇弱上拉。
我的理解是推挽和漏極開(kāi)路只能一個(gè)存在,因?yàn)閱纹瑱C(jī)通過(guò)設(shè)置相關(guān)寄存器位為0表示漏極開(kāi)路,為1表示推挽。
或者是我的理解有誤?但是按照芯片手冊(cè),設(shè)置為推挽后,就沒(méi)有弱上拉了。
建議重新焊接MCU,必要時(shí)先吹下來(lái),它再重焊接。
單片機(jī)是機(jī)器焊的,焊接出問(wèn)題的可能性不大吧?而且試了兩塊板都這樣。