EDA365电子工程师网

标题: 89C51与89S51 驱动区别 [打印本页]

作者: sjh835170    时间: 2013-6-3 16:56
标题: 89C51与89S51 驱动区别
最近由于采购不到89C51,所以公司根据Atmel的产品升级,选用89S51代替,但是驱动相同的LED指示电路,却有区别。89C51可以驱动得了,89S51驱动不了。比较两个芯片的datasheet,发现IO端口的带负载能力指标都相同,为什么会出现上述的驱动差异,希望高人指点。用89S51时,我将R16去掉就可以正常工作。

1.jpg (30.65 KB, 下载次数: 0)

1.jpg

作者: 风吹摇摆    时间: 2013-6-3 18:52
我在规格书里找到了IO的电压,应该可以解释你的问题了吧

4.jpg (28.8 KB, 下载次数: 0)

89C51

89C51

5.jpg (22.77 KB, 下载次数: 0)

89S51

89S51

作者: reflecter    时间: 2013-6-3 22:20
楼上的怎么个解释?' W5 f3 A1 t. o) ~3 s" r9 F
Ioh为负,难道也是灌电流?
作者: 风吹摇摆    时间: 2013-6-4 06:20
reflecter 发表于 2013-6-3 22:20 7 w7 e. d2 y% b; v
楼上的怎么个解释?0 {- i/ _* A+ R& v' o$ G
Ioh为负,难道也是灌电流?

8 Q1 B; R& \' r& b* Q* j这个可以解答你的疑问

2222.jpg (47.4 KB, 下载次数: 0)

单片机IO电路

单片机IO电路

作者: sjh835170    时间: 2013-6-4 09:01
风吹摇摆 发表于 2013-6-3 18:52 " t4 Q- T! G) y; A( b0 m8 P
我在规格书里找到了IO的电压,应该可以解释你的问题了吧

' m% j# B" g9 Z, k7 j6 e9 L不清楚你的C51参数从哪里来,英文版的datasheet参数是一致的,所以我觉得您回答的不是正确答案。

c51.JPG (120.1 KB, 下载次数: 0)

c51

c51

s51.jpg (130.89 KB, 下载次数: 0)

s51

s51

作者: 风吹摇摆    时间: 2013-6-4 10:10
sjh835170 发表于 2013-6-4 09:01
, c9 Q0 Y( B1 j) |不清楚你的C51参数从哪里来,英文版的datasheet参数是一致的,所以我觉得您回答的不是正确答案。
4 r2 F2 y" O) u
楼主,你不要老是拿个资料在哪里分析,你自己不会搭个电路测一下,你都不验证就说别人的是错的........AT89C51种类很多的请楼主请先确认你的规格书再说......http://www.atmel.com/products/mi ... ecture/default.aspx
作者: 风吹摇摆    时间: 2013-6-4 18:29
风吹摇摆 发表于 2013-6-4 10:10 7 M7 y. v5 n+ B: y, X4 V' U
楼主,你不要老是拿个资料在哪里分析,你自己不会搭个电路测一下,你都不验证就说别人的是错的........AT ...
& [. t# j( I% |6 x' M5 U
我一向脾气很好的,直到被斑竹咬了一口,感染了......
作者: liangjiatian    时间: 2013-6-4 20:46
这种驱动电路 都需要自己加上拉  内部上拉都很弱 但有些单片机可以设置为推挽输出。
作者: 超級狗    时间: 2013-6-4 21:44
本帖最后由 超級狗 于 2013-6-4 21:55 编辑 % t5 }" ?/ V5 j# A3 L) v7 b1 c$ P+ D
6 a( h! m) u( W7 j
樓主︰4 h( P: s4 A( z( c3 ^& J

, S5 c* F+ t$ U* Q) f8 z& a您這個問題真的很奇怪,上網找 ATMEL AT89C51 和 AT89S51 的芯片資料,其實內容也少得可憐。但如果您仔細閱讀芯片資料就會發現,不管是 Port 0 ~ Port 4 它們似乎都是 Open Drain 的結構,差別只是在於芯片內部是否有上拉電阻。( b5 l. l- @, }+ n9 ~9 }8 S# s* X& J
( v6 m& c& c0 B* K
而從芯片資料的 V[sub]OL[/sub] 和 V[sub]OH[/sub] 的規格也可以看到,I[sub]OL[/sub] 還能到 mA 級、但 I[sub]OH[/sub] 只有數十 uA。證明 Port 0 ~ Port 4 當 General Purpose I/O,是 Open Drain 架構的推論可能是對的。
5 x2 c% M- l: @1 r- h4 ?3 Q; H: g; n. V- X* S) Y0 o5 k) |0 _/ @
有鑑於此,我從 Pspice 模擬出一種狀況,會發生類似你敘述的情形。4 K2 m7 I' S) H) u6 H' ~. h( W
' t8 f( y8 C+ x3 U: _2 E/ ?
如果 IC 內部的上拉電阻小於 100K,LED 驅動電路大概還有 1mA 以上的電流。
8 X: k) J1 h7 s: C: Y; P) u" S8 x7 C, X& q5 M( T; _$ n" y
但如果 IC 內部的上拉電阻大於 120K,LED 驅動電路就只剩 550uA 以上的電流,這時候即便 LED 能亮,光線應該也是很微弱。此時若拿掉外部 20K 下拉電阻,LED 電流可以拉高到 4.5mA。
( X$ T2 i( V$ V, q7 [3 [# ?
1 }5 [3 A6 M2 D7 d1 ]所以,我懷疑 AT89C51 在轉換至 AT89S51 製程時,I/O Port 內部上拉電阻值變高了,才會發生今天的問題。0 J6 V2 m. C8 O
0 q( j& p3 |" K" C- Y! ]! i* q
如果不拿掉 20K 下拉電阻,下拉電阻增大到 47K,或加一個 10K 上拉電阻,都可以解決這個問題,或許樓主可以驗證看看。
% q" b: m- N9 _, p/ S
/ L2 i; A9 O, i7 H8 u1 {* S{:soso_e177:} 1 _2 _. e+ J. Q1 H- q) n( M

7 N, O3 N% \' [' P& [/ F

GPIO Internal Pull-Up = 100K.jpg (90.57 KB, 下载次数: 0)

GPIO Internal Pull-Up = 100K.jpg

GPIO Internal Pull-Up = 120K.jpg (90.31 KB, 下载次数: 1)

GPIO Internal Pull-Up = 120K.jpg

GPIO Internal Pull-Up = 120K without 20K External Pull-Down.jpg (85.8 KB, 下载次数: 0)

GPIO Internal Pull-Up = 120K without 20K External Pull-Down.jpg

作者: httpftpli    时间: 2013-6-4 22:50
超級狗 发表于 2013-6-4 21:44
6 s, h. d. L2 y& p- J樓主︰
1 [0 ^+ Y4 c, s! B* e
# r  l. k+ B; q4 K6 E& _您這個問題真的很奇怪,上網找 ATMEL AT89C51 和 AT89S51 的芯片資料,其實內容也少得可憐。但如 ...
& r6 y+ R" G' {4 H* g. u( I" F
版主经典,{:soso_e120:} ,51单片机的P0口上拉电阻几十k一直到100多K,好像不是定值,和拉电流大小有关。加外部上来一定ok
作者: 风吹摇摆    时间: 2013-6-5 09:02
超級狗 发表于 2013-6-4 21:44
( M, \2 H1 ?2 v5 {" H樓主︰' u% a/ w& x' v; E+ B
, i4 b) y1 F( \( b- J
您這個問題真的很奇怪,上網找 ATMEL AT89C51 和 AT89S51 的芯片資料,其實內容也少得可憐。但如 ...

7 a9 R( |! C+ c3 D4 E% v8 M6 m! o3 V不是上拉电阻的问题是输出电路的问题,都是推挽输出但是一种是TTL电平一种是CMOS电平。TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。  COMS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。有些单片机为了低功耗使用了CMOS电平
2 f/ w* t- c2 _   

doc1920.pdf

516.12 KB, 下载次数: 14, 下载积分: 威望 -5

低功耗的

doc4127.pdf

1.16 MB, 下载次数: 25, 下载积分: 威望 -5


作者: sjh835170    时间: 2013-6-5 09:15
超級狗 发表于 2013-6-4 21:44 ' x6 F) K9 T, k5 c7 a
樓主︰6 j3 |% F- k5 F5 ]. S4 }
$ V. e/ i3 c) o4 l" w' T; {& b
您這個問題真的很奇怪,上網找 ATMEL AT89C51 和 AT89S51 的芯片資料,其實內容也少得可憐。但如 ...

: s4 T8 y3 X! D0 f  l版主牛X,用仿真软件就是方便啊。O(∩_∩)O哈哈~……试验我之前做过了,外部上拉我用的是5.1K。只是我不明白为什么Ateml官网的资料和实际使用有差异。还有风吹摇摆兄弟的暴脾气也挺有意思,我对资料的正确来源还是比较清楚的,多谢各位的参与。{:soso_e142:} {:soso_e142:}
作者: sjh835170    时间: 2013-6-5 09:20
风吹摇摆 发表于 2013-6-5 09:02 5 l1 E6 \3 m: ?" ?4 W( @( j1 ~
不是上拉电阻的问题是输出电路的问题,都是推挽输出但是一种是TTL电平一种是CMOS电平。TTL电路的速度快, ...
: X# ]5 A& P: \5 j" j3 ?" J# Z( m
我说的都是4k flash的,O(∩_∩)O哈哈~,咱俩的分歧在这。
作者: 风吹摇摆    时间: 2013-6-5 09:28
sjh835170 发表于 2013-6-5 09:20 : y" c  U) Y0 h0 M
我说的都是4k flash的,O(∩_∩)O哈哈~,咱俩的分歧在这。
* q5 O, v, c2 u( u
{:soso_e134:} 不是flash的问题,我只是举个例子。你应该再确认下你的51的型号,我指的是完整的型号,然后到官网搜下;你先前用的AT89C51应该是TTL电平的,换成AT89S51是CMOS电平才会出现这个问题
作者: wxmcumtb    时间: 2013-6-5 09:32
版主高人。。。。。。。。。
作者: 超級狗    时间: 2013-6-5 09:58
本帖最后由 超級狗 于 2013-6-5 10:17 编辑 " X/ l7 ]( u  W) U/ E
风吹摇摆 发表于 2013-6-5 09:02 ( {) m7 e# W0 M& p7 h0 U
不是上拉电阻的问题是输出电路的问题,都是推挽输出但是一种是TTL电平一种是CMOS电平。TTL电路的速度快, ...
8 g: c% v  o2 ]2 r2 n
9 Q: n- {: y+ ~. w* q, b
Push-Pull 不一定是 TTL,CMOS 也有 Push-Pull。
6 r6 F9 b5 d2 v. d, V6 P4 i' o; \
( o+ N) V$ C1 n樓主說換了 AT89S51 後就推不動 LED,照文字敘述應該是什麼都沒變只換 CPU。所以我排除是軟件設定的問題,即便是 AT89C51 和 AT89S51 I/O Port 也可以設定成 Push-Pull 輸出,但他們設錯了。2 C; o# g9 o2 q3 O& e6 r; ]

- |: T  ?( H% l但你仔細看芯片資料,Port 0 他直接跟你講是 Open Drain。Port 1 ~ 3 示意圖看起來也都是 Open Drain,差別只在於 Port 2 內部的上拉電阻可以被控制。
8 c9 o! X5 Q0 Y( \0 V3 X% Z9 o2 i
我知道有些 8051 的 I/O Pin 可以被設為好幾種模式(Push-Pull 是其中一種),但它們會被畫成像最後一張圖那樣(節錄自 新唐電子 NuvoTon 8051 芯片資料)。對於 ATMEL 這兩個系列,我從 I/O Port 結構圖看不出他們可以被設為 Push-Pull。但我也說過,芯片資料內容少得可憐,除非他們有不能說的秘密沒講出來。, t" |# l' r: @

# _4 o6 {8 M, t: B' s6 j" XPort 0:
& \( v$ O( Z3 q' OIs an 8-bit open drain bi-directional I/O port. Port 0 pins that have 1’s written to them float, and in this state can be used as high-impedance inputs. Port 0 is also the multiplexed low-order address and data bus during accesses to external Program and Data Memory. In this application it uses strong internal pull-ups when emitting 1’s. Port 0 also outputs the code Bytes during program validation. External pull-ups are required during program verification.( E' H: K  _$ p% V
6 t$ |6 Y7 W9 \! G) r4 R3 L
{:soso_e113:} , \6 B5 M- _+ p6 V; @# }

! ]5 ~, k5 S+ ~& m$ f

CMOS Push-Pull.jpg (34.62 KB, 下载次数: 0)

CMOS Push-Pull.jpg

AT89C51 Port 1, 3, 4.jpg (39.32 KB, 下载次数: 0)

AT89C51 Port 1, 3, 4.jpg

AT89C51 Port 2.jpg (34.73 KB, 下载次数: 0)

AT89C51 Port 2.jpg

NuvoTon 8051 GPIO Port.jpg (39.35 KB, 下载次数: 0)

NuvoTon 8051 GPIO Port.jpg

作者: sjh835170    时间: 2013-6-5 10:05
风吹摇摆 发表于 2013-6-5 09:28
9 P3 S/ T; j! k. W8 u# [7 a不是flash的问题,我只是举个例子。你应该再确认下你的51的型号,我指的是完整的型号,然后 ...
& ?: ?& ]% U& w, B2 |: L8 q
不管是C51还是S51,P2口输出都是TTL的,附件是资料。完了咨询Atmel技术人员,在给大家官方回复。

AT89C51.pdf

142.04 KB, 下载次数: 6, 下载积分: 威望 -5

AT89S51.pdf

472.71 KB, 下载次数: 4, 下载积分: 威望 -5


作者: sjh835170    时间: 2013-6-5 10:09
超級狗 发表于 2013-6-5 09:58
: M- e% {/ H2 FPush-Pull 不一定是 TTL,CMOS 也有 Push-Pull。; l! W( j5 s3 a8 w. u& H
: i& e3 w" U0 ]0 m/ ?! H, n- j
樓主說換了 AT89S51 後就推不動 LED,照文字敘述應 ...
5 z; ?0 d( v/ A5 r
版主高人,看来我也得学学Pspice 了{:soso_e179:}
作者: 风吹摇摆    时间: 2013-6-5 17:57
超級狗 发表于 2013-6-5 09:58 " i- j5 \+ H0 `7 s# I' L
Push-Pull 不一定是 TTL,CMOS 也有 Push-Pull。
% p; N# D% M0 G( ^$ t4 I' r* R
9 P- V( S$ ]1 x& l& z* H: Z樓主說換了 AT89S51 後就推不動 LED,照文字敘述應 ...

: O, [* p9 X7 A$ p{:soso_e138:} 我错了,单片机的输出为(除了P0)OD门,电平只与上拉有关,输出电平与VCC称比例是因为上拉电阻的存在,VCC/IOH为定值就是上拉电阻的值{:soso_e109:} 我也找到了楼主的那个芯片资料发现算出的上拉电阻确实不一样(大家可以找到VOH对照下){:soso_e138:} ;事实再次证明了狗大的英明,我对狗大的敬仰如滔滔江水连绵不绝,如黄河泛滥一发不可收拾{:soso_e113:} 等我下次再搞死狗大{:soso_e130:}

doc1001.pdf

388.27 KB, 下载次数: 1, 下载积分: 威望 -5

楼主的AT89C51

AT89S51.pdf

472.71 KB, 下载次数: 1, 下载积分: 威望 -5


作者: edatphy    时间: 2013-6-6 09:45
MARK




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2