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, 下载次数: 14)

1.jpg

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

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

89C51

89C51

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

89S51

89S51

作者: reflecter    时间: 2013-6-3 22:20
楼上的怎么个解释?
  O: c4 C) |0 a" xIoh为负,难道也是灌电流?
作者: 风吹摇摆    时间: 2013-6-4 06:20
reflecter 发表于 2013-6-3 22:20 3 E! E4 T3 @7 n- q' Q+ u$ W5 {
楼上的怎么个解释?
" ?. D9 z% _; O1 z0 V& [1 uIoh为负,难道也是灌电流?
% s; n+ L; l# {3 O
这个可以解答你的疑问

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

单片机IO电路

单片机IO电路

作者: sjh835170    时间: 2013-6-4 09:01
风吹摇摆 发表于 2013-6-3 18:52
9 h- u5 D' J0 P我在规格书里找到了IO的电压,应该可以解释你的问题了吧

. r8 U! t" f, Y( k* k! |8 A% M  U不清楚你的C51参数从哪里来,英文版的datasheet参数是一致的,所以我觉得您回答的不是正确答案。

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

c51

c51

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

s51

s51

作者: 风吹摇摆    时间: 2013-6-4 10:10
sjh835170 发表于 2013-6-4 09:01 ; d; Z4 D1 C2 Y7 k, y' }- k# N7 S" r
不清楚你的C51参数从哪里来,英文版的datasheet参数是一致的,所以我觉得您回答的不是正确答案。
4 B, A- b) y5 n5 e9 ?- U
楼主,你不要老是拿个资料在哪里分析,你自己不会搭个电路测一下,你都不验证就说别人的是错的........AT89C51种类很多的请楼主请先确认你的规格书再说......http://www.atmel.com/products/mi ... ecture/default.aspx
作者: 风吹摇摆    时间: 2013-6-4 18:29
风吹摇摆 发表于 2013-6-4 10:10 ! N- S! n4 ~+ E1 X
楼主,你不要老是拿个资料在哪里分析,你自己不会搭个电路测一下,你都不验证就说别人的是错的........AT ...
9 A) b5 {$ z0 k6 E7 V9 {5 p
我一向脾气很好的,直到被斑竹咬了一口,感染了......
作者: liangjiatian    时间: 2013-6-4 20:46
这种驱动电路 都需要自己加上拉  内部上拉都很弱 但有些单片机可以设置为推挽输出。
作者: 超級狗    时间: 2013-6-4 21:44
本帖最后由 超級狗 于 2013-6-4 21:55 编辑
5 d+ G1 H' `$ Y3 Y! {" n" R) n  C0 x  v! D4 h" ~( Y/ o4 ~3 [5 @
樓主︰
! `; d- ]% t9 I: X, W
- S* a5 K$ e4 F: J+ _, F您這個問題真的很奇怪,上網找 ATMEL AT89C51 和 AT89S51 的芯片資料,其實內容也少得可憐。但如果您仔細閱讀芯片資料就會發現,不管是 Port 0 ~ Port 4 它們似乎都是 Open Drain 的結構,差別只是在於芯片內部是否有上拉電阻。
& l9 m# g4 Y9 N6 }1 j8 F
5 m& C' Z" _# d1 h2 U而從芯片資料的 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 架構的推論可能是對的。
( O* `) g5 w% ^( U( U5 X; b% k3 u3 e  g( M
有鑑於此,我從 Pspice 模擬出一種狀況,會發生類似你敘述的情形。! @! P% i4 x2 O; [! \. w; V2 y( I

6 v6 z( k4 k- U0 g& L  f如果 IC 內部的上拉電阻小於 100K,LED 驅動電路大概還有 1mA 以上的電流。
/ a. G) {. z7 e1 @- ?+ D* h6 u0 b! o
但如果 IC 內部的上拉電阻大於 120K,LED 驅動電路就只剩 550uA 以上的電流,這時候即便 LED 能亮,光線應該也是很微弱。此時若拿掉外部 20K 下拉電阻,LED 電流可以拉高到 4.5mA。& ]% M$ y$ J. |5 l+ `  U! |

  @. a& a( K' c" B3 s: h所以,我懷疑 AT89C51 在轉換至 AT89S51 製程時,I/O Port 內部上拉電阻值變高了,才會發生今天的問題。
) C6 r8 a/ u* F+ g- Y
7 d8 p& d. A4 M( R+ b) U如果不拿掉 20K 下拉電阻,下拉電阻增大到 47K,或加一個 10K 上拉電阻,都可以解決這個問題,或許樓主可以驗證看看。$ C/ @* I( `0 l1 V8 i# n- F2 U

" T& p( N, h- H  q8 W{:soso_e177:} ' a1 {7 p+ [7 ~. Y) d
; W/ U! {8 T4 ~! z" G- n* d

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

GPIO Internal Pull-Up = 100K.jpg

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

GPIO Internal Pull-Up = 120K.jpg

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

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

作者: httpftpli    时间: 2013-6-4 22:50
超級狗 发表于 2013-6-4 21:44
4 D/ s1 J* w, d- U$ ~( z  ^樓主︰
0 A+ S  k+ R/ z- L! M3 ]: X$ {, N: w0 s2 I4 G+ U$ L0 i1 }8 `5 d
您這個問題真的很奇怪,上網找 ATMEL AT89C51 和 AT89S51 的芯片資料,其實內容也少得可憐。但如 ...
' ]  K% ^9 l+ |, x/ l0 c1 H8 T( Q) W
版主经典,{:soso_e120:} ,51单片机的P0口上拉电阻几十k一直到100多K,好像不是定值,和拉电流大小有关。加外部上来一定ok
作者: 风吹摇摆    时间: 2013-6-5 09:02
超級狗 发表于 2013-6-4 21:44
+ t. h, T6 C- J' x6 p; |- @* I樓主︰
0 L4 B$ Q# {1 o, `* d1 `) S4 X- {; c- R7 E
您這個問題真的很奇怪,上網找 ATMEL AT89C51 和 AT89S51 的芯片資料,其實內容也少得可憐。但如 ...

; B& S2 p! a: n* w1 |; o不是上拉电阻的问题是输出电路的问题,都是推挽输出但是一种是TTL电平一种是CMOS电平。TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。  COMS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。有些单片机为了低功耗使用了CMOS电平: u5 h8 c: q  S7 O& u+ ?
   

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 - B' Y  w" R1 E4 z) H1 D; {& \
樓主︰5 N- @& V2 M  s" ?0 {+ u
4 k2 c9 D; p, _2 `/ u0 A6 j) l
您這個問題真的很奇怪,上網找 ATMEL AT89C51 和 AT89S51 的芯片資料,其實內容也少得可憐。但如 ...
1 K9 p$ N+ `, g) y% n
版主牛X,用仿真软件就是方便啊。O(∩_∩)O哈哈~……试验我之前做过了,外部上拉我用的是5.1K。只是我不明白为什么Ateml官网的资料和实际使用有差异。还有风吹摇摆兄弟的暴脾气也挺有意思,我对资料的正确来源还是比较清楚的,多谢各位的参与。{:soso_e142:} {:soso_e142:}
作者: sjh835170    时间: 2013-6-5 09:20
风吹摇摆 发表于 2013-6-5 09:02 6 d' l/ y  Z( A1 X
不是上拉电阻的问题是输出电路的问题,都是推挽输出但是一种是TTL电平一种是CMOS电平。TTL电路的速度快, ...

: Y$ e& c7 ]7 t0 t我说的都是4k flash的,O(∩_∩)O哈哈~,咱俩的分歧在这。
作者: 风吹摇摆    时间: 2013-6-5 09:28
sjh835170 发表于 2013-6-5 09:20
6 k8 l5 ^; q! ^4 ^% J我说的都是4k flash的,O(∩_∩)O哈哈~,咱俩的分歧在这。
# k$ o4 N+ n! w' W+ _
{:soso_e134:} 不是flash的问题,我只是举个例子。你应该再确认下你的51的型号,我指的是完整的型号,然后到官网搜下;你先前用的AT89C51应该是TTL电平的,换成AT89S51是CMOS电平才会出现这个问题
作者: wxmcumtb    时间: 2013-6-5 09:32
版主高人。。。。。。。。。
作者: 超級狗    时间: 2013-6-5 09:58
本帖最后由 超級狗 于 2013-6-5 10:17 编辑 + z$ l& V. C( U5 \. e
风吹摇摆 发表于 2013-6-5 09:02 4 [) ~; h* Q- L1 e  V4 O1 |/ D
不是上拉电阻的问题是输出电路的问题,都是推挽输出但是一种是TTL电平一种是CMOS电平。TTL电路的速度快, ...

+ [7 O4 [5 \; {" N" h6 o0 s2 I' g$ J$ y+ |! L) B  k
Push-Pull 不一定是 TTL,CMOS 也有 Push-Pull。+ B. k& W  @# L, `6 s

1 u4 x6 D" J# v$ ^2 h樓主說換了 AT89S51 後就推不動 LED,照文字敘述應該是什麼都沒變只換 CPU。所以我排除是軟件設定的問題,即便是 AT89C51 和 AT89S51 I/O Port 也可以設定成 Push-Pull 輸出,但他們設錯了。7 g( h: @8 v2 e0 s4 b

: \' p7 _  f, _- {3 E但你仔細看芯片資料,Port 0 他直接跟你講是 Open Drain。Port 1 ~ 3 示意圖看起來也都是 Open Drain,差別只在於 Port 2 內部的上拉電阻可以被控制。  ^7 f$ w* P: e+ ]$ L4 }

6 u; J& A2 `% c% P, g3 P/ _. O$ i) Y我知道有些 8051 的 I/O Pin 可以被設為好幾種模式(Push-Pull 是其中一種),但它們會被畫成像最後一張圖那樣(節錄自 新唐電子 NuvoTon 8051 芯片資料)。對於 ATMEL 這兩個系列,我從 I/O Port 結構圖看不出他們可以被設為 Push-Pull。但我也說過,芯片資料內容少得可憐,除非他們有不能說的秘密沒講出來。/ k! h: d) e7 V# I# j* v3 m

9 V7 y; i2 u) s$ q4 s: u! }1 hPort 0:7 Z2 M2 n9 u. n
Is 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.# u3 S' Z( ~& Y, o0 a

+ l, C9 L8 ~: z+ Y6 N{:soso_e113:} & e. Q+ a# Z: J9 m& J8 u6 a
. D  f7 A7 D$ T

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

CMOS Push-Pull.jpg

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

AT89C51 Port 1, 3, 4.jpg

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

AT89C51 Port 2.jpg

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

NuvoTon 8051 GPIO Port.jpg

作者: sjh835170    时间: 2013-6-5 10:05
风吹摇摆 发表于 2013-6-5 09:28   g0 L4 e9 T9 A7 L. F
不是flash的问题,我只是举个例子。你应该再确认下你的51的型号,我指的是完整的型号,然后 ...

- w" J  Q3 N" i- o4 R+ A" B, w  r不管是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 ; u4 D; A5 }. W7 H% h' V7 y
Push-Pull 不一定是 TTL,CMOS 也有 Push-Pull。7 U6 P8 K# B6 l+ O: t% |2 i
9 b4 Q. v' Z% G- N
樓主說換了 AT89S51 後就推不動 LED,照文字敘述應 ...

' D+ |4 e$ v9 e5 i: ]0 k3 w版主高人,看来我也得学学Pspice 了{:soso_e179:}
作者: 风吹摇摆    时间: 2013-6-5 17:57
超級狗 发表于 2013-6-5 09:58 " v" O4 S6 L' Q1 g% _8 a( |1 G; G; b
Push-Pull 不一定是 TTL,CMOS 也有 Push-Pull。' h9 Z( T: J# K* _2 f) \' h# ^' z
, B$ y1 W3 g, j1 E8 ~
樓主說換了 AT89S51 後就推不動 LED,照文字敘述應 ...

( a) W1 d" ~% ]. a+ P; o{: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.eda365.com/) Powered by Discuz! X3.2