個人感觸:
我只想說,有些話,第一遍看根本不知道是什麼意思或者記不得,
但是自己在項目中遇到這個問題困擾很久之後,再回來重新看到這句話,就會醍醐灌頂。
最近編PCA9306的驅動,遇到的問題就是片子只能讀奇數地址,不能讀偶數地址的寄存器,後來採用的辦法是寫完地址之後,SDIO強制拉高(因為9306的SPI數據線是SDIO雙向的,只有1根)
當時不明白為什麼,現在回頭來看到這篇文章,終於懂了。
以下是轉載的正文:
傳統51單片機IO接口只可以作為標準雙向IO接口,如果用其來驅動LED只能用灌電流的方式或是用三極體外擴驅動電路。
本文引用地址:
http://www.eepw.com.cn/article/201611/322747.htm灌電流方式:LED正極接VCC,負極接IO口。IO為高電平是LED兩極電平相同,沒有電流,LED熄滅;IO為低電平時,電流從VCC流入IO,LED點亮。但是當你吧LED正極接在IO接口,負極接GND時,將IO接口置於高電平,LED會亮,但因為IO接口上拉能力不足而使亮度不理想,可以用下面介紹的方式解決這個問題。
推挽工作方式:LED正負極分別接在兩個IO口上,然後設置正極IO接口為推輓輸出,負極IO接口為標準雙向灌電流輸入。推挽方式具有強上拉能力,可以實現高電平驅動LED。
高阻態這是一個數字電路裡常見的術語,指的是電路的一種輸出狀態,既不是高電平也不是低電平,如果高阻態再輸入下一級電路的話,對下級電路無任何影響,和沒接一樣,如果用萬用表測的話有可能是高電平也有可能是低電平,隨它後面接的東西定。
電路分析時高阻態可做開路理解。你可以把它看作輸出(輸入)電阻非常大。他的極限可以認為懸空。
1、在總線連接的結構上。總線上掛有多個設備,設備與總線以高阻的形式連接。這樣在設備不佔用總線時自動釋放總線,以方便其他設備獲得總線的使用權。
2、大部分單片機I/O使用時都可以設置為高阻輸入,如凌陽,AVR等等。高阻輸入可以認為輸入電阻是無窮大的,認為I/O對前級影響極小,而且不產生電流(不衰減),而且在一定程度上也增加了晶片的抗電壓衝擊能力。