![]() |
發布時間: 2022-4-12 21:52
正文摘要:如上圖為STC89C51單片機的直流特征值,其中IoH1的最小值為150微安,是不是指輸出能力。如果P1口接很大的電阻,肯定最小值是沒有下限。IoH1的最大值為-,又是什么意思。如果P1口直接接地,其輸出應該有最大值, ... |
其實很簡單,只要你相像一下,它的IO口內部是這樣的: 推拉輸出的兩個晶體管,上下各有一個電阻,是電阻限制了電流的輸出。實際內部也的確是這樣的,只不過這個電阻是晶體管做的,目的防止端口直接碰到GND或VCC(或其它硬電壓,如兩個引腳碰線,一個是1一個是0)時,電流過大而損壞。 |
我想我差不多想明白了,是我們走偏了。datasheet上的數據針對的是標準的TTL或都CMOS接口的外設,而不是純電阻這樣的東東。因為一般情況下,我們不用它來驅動負載,這樣特殊的使用自然不是手冊上考慮的。 |
yzwzfyz 發表于 2022-4-14 08:40 但是你看我附上的AT89C52的數據,VOH的值隨IOH的增大反而減小,和你說的正好相反。我的理解是,電流越大造成內部上拉的MOS管的壓降變大。它的輸出電流不能簡單地看做由負載電阻來決定,而是類似恒流源之類的設備,看該設備需要多大的電流。因為恒流源的電阻可以看做很大,所以它的輸出仍然是高電平。但是普通電阻就不一樣了,如果電阻很小,如果沒有足夠的電流,必然將輸出電壓拉低。我就是想知道,這時P1的輸出有多大,但手冊上沒有給出。 |
樓主能提出這個問題,對單片機的理解會更進一步。 舉一例: 市場上的LED燈燈珠點亮電流通常是300mA,這時電壓約3.3V(1W的燈)。 你將此燈珠接到P1口上,就會發現,燈不會亮,而且連3.3V都輸出不了。原因就是它提供不了這個電流。 220uA,是指保證滿足高電平指標輸出的條件下,可以提供220uA的電流,而不是極限電流。 例如:輸出4.4V時給出220uA。你只要用一個20K的電阻就可以實驗證這個結論。 如果接一個10K的電阻呢? 4.4V/10K=440uA,這時會如何呢?你會發現VH會掉到比4.4V低,如3.5V,即會輸出350uA。 并不是它不能輸出比220uA大的電流,而是輸出電壓會被拉下來,極限的輸出電流,是短路輸出電流。 |
Y_G_G 發表于 2022-4-12 23:06 某些方面不是一個檔次的芯片吧。 |
這個細節抓的挺到位的,應該是規格書的bug,或者他的不專業的地方吧。我推測應該是typ 是150,max 220 |
wulin 發表于 2022-4-13 08:20 有些單片機的輸出電流大,可以直接驅動負載,這也是有點優勢的。 |
brucekang 發表于 2022-4-12 22:20 ![]() 樓主糾結這個參數沒有什么實際意義。STC89C51的P1口在默認模式(準雙向)置1狀態直接接地,它的輸出電流約為15uA。因為端口內部自動關斷弱上拉,維持極弱上拉。了解IO口結構就能明白了。集成數字電路(包括MCU)輸出端口只是為輸出信號電平設計,通常不會有功率輸出能力。要想驅動功率器件就得加中間放大器。 |
220ua,表示制造標準,每個芯片會有差異,150ua,代表即使你手里的芯片驅動力再小,也有150ua輸出。這個高電平輸出主要是給電信號,而不是讓你驅動的,換言之如果你外部1k電阻下拉到地,p1口即便置1,也無法給出高電平 |
在STC那么好用的今天,我不知道還有什么理由去用AT89C51? 不知道AT89C51比STC的單片機好在哪里? |