machao 发表于 2004-12-29 00:52:29

关于AVR I/O 的驱动能力的介绍

AVR单片机I/O的驱动能力在8位单片机中算一流的。大家应仔细阅读AVR器件手册中关于电气指标和典型特性的内容。(顺便提一下,有那些8位单片机的器件手册比AVR的多?并且提供非常详细的电气指标?)。

   

    讨论AVR的I/O驱动能力主要指它使用输出工作方式下的输出电流(输出为1时)和灌电流(输出为0时)。



    参考下图http://cache.amobbs.com/bbs_upload782111/files_1/armok0122682.jpg,当输出高电平时,在Vcc=5V条件下,一个I/O输出电流可达40mA,但此时输出电压已降到4V左右,输出20mA时,电压降为4.5v,(3v以上,对于CMOS讲,仍为逻辑“1”)。说明AVR的输出电流最大可为40mA。



   当输出低电平时,I/O的倾动能力表现为灌电流。见图http://cache.amobbs.com/bbs_upload782111/files_1/armok0122683.jpg,在Vcc=5V条件下,一个I/O可灌入的电流也可达40mA,但此时输出电压已生到1V左右,灌入20mA时,电压生为0.5v,(0.8v以下,对于CMOS讲,仍为逻辑“0”)。说明AVR的灌入电流最大可为20mA。



   在使用中还要注意的是:

3. Although each I/O port can sink more than the test conditions (20 mA at VCC = 5V, 10 mA at VCC = 3V) under steady state

conditions (non-transient), the following must be observed:

TQFP and MLF Package:

1] The sum of all IOL, for all ports, should not exceed 400 mA.

2] The sum of all IOL, for ports A0 - A7, G2, C3 - C7 should not exceed 300 mA.

3] The sum of all IOL, for ports C0 - C2, G0 - G1, D0 - D7, XTAL2 should not exceed 150 mA.

4] The sum of all IOL, for ports B0 - B7, G3 - G4, E0 - E7 should not exceed 150 mA.

5] The sum of all IOL, for ports F0 - F7, should not exceed 200 mA.

If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater

than the listed test condition.

4. Although each I/O port can source more than the test conditions (20 mA at Vcc = 5V, 10 mA at Vcc = 3V) under steady state

conditions (non-transient), the following must be observed:

TQFP and MLF Package:

1] The sum of all IOH, for all ports, should not exceed 400 mA.

2] The sum of all IOH, for ports A0 - A7, G2, C3 - C7 should not exceed 300 mA.

3] The sum of all IOH, for ports C0 - C2, G0 - G1, D0 - D7, XTAL2 should not exceed 150 mA.

4] The sum of all IOH, for ports B0 - B7, G3 - G4, E0 - E7 should not exceed 150 mA.

5] The sum of all IOH, for ports F0 - F7, should not exceed 200 mA.

If IOH exceeds the test condition, VOH may exceed the related specification. Pins are not guaranteed to source current

greater than the listed test condition.



    此段大家自己读,主要是说整个PORT口,以及整个芯片电流的限制。不能简单的计算:一个I/O口输出20mA,一片M128有近50个I/O口,那么20*50=1000mA,芯片烧了。



    当AVR的I/O工作于输入方式时,其主要是对外部的实际电平进行检测,不应该输出电流,而灌电流应该越小越好(对外部无影响)。在下图中看出http://cache.amobbs.com/bbs_upload782111/files_1/armok0122684.jpg:当外部引脚电平为0时,I/O通过内部的上拉电阻输出120uA的弱电流;外部引脚电平为5时,I/O不提供电流。这种方式能够精确的检测出外部引脚的逻辑电平。试想,当外部引脚对地串入一个5K电阻,如果I/O输出20mA电流,那么引脚上真正的电压为多少,如何测的准?



    AVR的I/O特性吸收了个种单片机(如PIC)的优点,是非常有特色和优点的。没有“修练”到一定的层次,是不能体会到的。我在我的许多帖子中,多次强调不要浮燥,要踏踏实实、认真学习,打好基础,仔细读手册。但是还是有许多人往往提出一些没有经过认真思考和学习后,甚至是无边际的问题,甚至是“正确回答”。



    一个硬件工程师,首先要有过硬的硬件功底,模拟、逻辑、数字、时序...,十八般武器,样样要精通。看网上一些问题和以及回答,我感到有些人连基本的欧姆定律都不懂(指不会分析和设计应用,不是指背出公式),但忙于制作MP3。试想,你买一块芯片,照别人的电路搭好线路,把别人的程序写入后,做出了MP3,可你到低真正学到手的是什么?“高级傻瓜”型的工程师越来越多,这也正是外国人所希望的。



    作为教师,我为国内大学这些年在电子专业上教育的失败感到痛心。看看国外的大学生的学习情况和能力(http://instruct1.cit.cornell.edu/courses/ee476/),我们有和能力和他们竞争!?



    对不起,又跑题了。留下几个思考题。在“马潮老师的专栏:AVR串口多机通讯模式的问题 ”的多机通信原理图中(该简单系统已连续工作两天了):

    1. 为什么在与4个下位机通信的接口中,串入D9-D12四个二极管?

    2. 主机电路中的U2部分电路的作用是什么?为什么接入INT0,而不是RESET?

    3. 每个下位机使用M16倾动16个LED数码管,如何估算M16的倾动能力(M16能点亮全部的LED而不发热烧毁)?

    4. 电阻R2-R8起的作用是什么(好多高校老师的设计中,不使用R2-R8)?

    5. 16个LED数码管采用何种驱动方式?如何设计“同时”点亮16个LED,而且亮度均匀,无闪烁,无拖尾。如何调整LED的亮度?

    6. 如何使用下位机的电路实现一个简易的时钟(年-月-日时:分:秒),带闹钟设置和时间设置功能。如何估算你的时钟精度?

    7. 5个按键直接接在I/O口上,外部没有吊高电阻,可靠吗?

    8. 使用其中两个按键作为“+”和“-”键,用于输入数据设置时间和日期。其特性为:按下“+”键,在1秒内放开,表示加1,按下“+”键后不放开,超过1秒后每隔0.5秒加10,直到按键放开。如何设计程序实现?

    9. 按键按下要消抖动处理,要判别按下的时间长短等,但不管按键按下多长时间,LED必须正常显示,不能有抖动和闪烁,更不能熄灭。

    10. 你认为电路的硬件设计有什么不合理和改进的地方(任何方面)?

hotpower 发表于 2004-12-29 00:56:13

学生我等待多时了...等我拿个小凳...

armok 发表于 2004-12-29 01:20:39

哇!! 正是我想知道的资料呢!!我在编写 阿莫专栏一:AVR的IO端口特性与应用 时,正想知道这些资料呢。



我将马老师上面的英文翻译如下:(如有错误,请大家指正)



虽然 IO端口的灌电流(IOL)在稳定的实验条件下,可以达到每路20 mA (VCC = 5V时), 10 mA (VCC = 3V时),但必须遵从:



TQFP 及 MLF 封装



1] 所有端口的总和, 不能超过 400 mA.

2] 端口 A0 - A7, G2, C3 - C7 的灌电流总和,不能超过 300 mA.

3] 端口 C0 - C2, G0 - G1, D0 - D7, XTAL2 的灌电流总和,不能超过 150 mA.

4] 端口 B0 - B7, G3 - G4, E0 - E7 的灌电流总和,不能超过 150 mA.

5] 端口 F0 - F7 的灌电流总和,不能超过 200 mA.



如果灌电流超出了上面的标准,端口的电压(VOL) 就会超出规范值。端口不能保证在超出标准的灌电流下正常工作。



-----------------



虽然 IO端口的驱动电流(IOH)在稳定的实验条件下,可以达到每路20 mA (VCC = 5V时), 10 mA (VCC = 3V时),但必须遵从:



TQFP 及 MLF 封装



1] 所有端口的总和, 不能超过 400 mA.

2] 端口 A0 - A7, G2, C3 - C7 的驱动电流总和,不能超过 300 mA.

3] 端口 C0 - C2, G0 - G1, D0 - D7, XTAL2 的驱动电流总和,不能超过 150 mA.

4] 端口 B0 - B7, G3 - G4, E0 - E7 的驱动电流总和,不能超过 150 mA.

5] 端口 F0 - F7 的驱动电流总和,不能超过 200 mA.



如果驱动电流超出了上面的标准,端口的电压(VOH) 就会超出规范值。端口不能保证在超出标准的驱动电流下正常工作。

machao 发表于 2004-12-29 01:34:29

这些都在AVR的器件手册(英文的)中,《M8》、《M128》中我没敢加上,现在已经有人骂了,说翻手册也出书,不知他翻过多少。其实如果真正能够全面的读懂、读透AVR的手册,弄明白和分析出原理(指逻辑上、电路上,不是材料和工艺),他马上要修练“成仙”了。其他的单片机也不在话下,一个月就上手了。

hotpower 发表于 2004-12-29 01:37:55

请教马老师:



"也可达40mA,但此时输出电压已生到1V左右,灌入20mA时,电压生为0.5v,(0.8v以下,对于CMOS讲,仍为逻辑“0”)。说明AVR的灌入电流最大可为20mA。"



如果此IO输出低电平导致外围负载的灌电流使输出电压已升到1V左右,

但此IO作为输出方式,输出电压的升高应该不会影响到此IO吧...



请问: 会影响其他输入的IO口线吗???

      如果同时有多个IO输出搞这些"活动",系统会"拜拜"吗???



谢谢马老师给个说法...
-----此内容被hotpower于2004-12-29,01:40:25编辑过

machao 发表于 2004-12-29 02:04:02

如果此IO输出低电平导致外围负载的灌电流使输出电压已升到1V左右,

但此IO作为输出方式,输出电压的升高应该不会影响到此IO吧...

   

   答:硬件设计时应考虑限制灌入的电流不能超过20mA。许多人知道外接的吊高电阻一般使用5K,计算一下,I/O输出0v,Vcc=5v, 5v/5k = 1mA。保险极了。拖继电器就不行了,需要使用三极管或1413做功率驱动。这些是模拟电路的基本知识,我上课都给学生讲,学生讲“听不懂,没学过”,我哭笑不得。至于倾动LED,请你思考我留的题。



请问: 会影响其他输入的IO口线吗???

      如果同时有多个IO输出搞这些"活动",系统会"拜拜"吗???

   答:你还是没有看(或不懂)上面英文的部分(可惜)。有多个IO输出搞这些"活动",会给电源带来大的波动,对数字部分影响不大,单对模拟部分有影响。比如,在做ADC转换时,尽量不要让I/O做变化,硬件上采取应在MCU边上使用大的电解电容,PCB布线注意数字、模拟分开接地,甚至电源都要分为两路走等。

hotpower 发表于 2004-12-29 02:14:44

谢谢马老师...



实际学生我的第1感觉就是对ADC不利...但是用片外基准(保证不变)或片内低压基准(2.56V也假设不会改变)时,IO的"非法活动"能否动摇ADC的结果"不变质"???

machao 发表于 2004-12-29 02:37:06

看AVR的器件手册,或我的《M128》中2.15.7节。ATMEL网站上有专门讨论如何保证和提高ADC精度的应用笔记。要考虑的问题多了,需要2节课的时间。

machao 发表于 2004-12-29 03:44:28

AVR I/O口驱动能力强是优点,造成对ADC不利不能否定其优点的。AVR在设计时,将ADC的输入口的工作电压与数字电压分开(有专门的Vcc提供,并建议加电感滤波后供ADC的PORT使用),并在手册中指出,当使用ADC时,尽量不要使与其在同一8位口(PORT上)的I/O变化。你在设计硬件使,如果使用ADC,又有大的驱动,那么大电流I/O口不要同ADC口在一个PORT上,也可以减小对ADC的影响。

hygbeyond 发表于 2004-12-29 08:58:31

好东西 介绍的很不错,很合我的味口

我是做电路的,想的可没有这么多

这些原理都明白,但是就是想不到这些东东

不过我一般不会用I/O去驱动什么的,我都会加上功率门的

xzpmcu 发表于 2004-12-29 09:28:05

支持马朝老师普及国内AVR的教育

也支持翻译一些原稿!

但如果能在原稿的基础上讲几个比较实践的例子

更好一些

恩,祝新年快乐

dfgeoff 发表于 2004-12-29 10:32:29

马老师的书M128下册会结合实例讲的,所以大家对下册期望更高,马老师也说压力更大。



不过,实践还是靠自己,有马老师这么详细的讲解,自己多动手做一做,会理解的更透彻更清晰,不一定总需要等别人给实践的例子的。

armok 发表于 2004-12-29 11:07:30

我将马老师留下的一段英文的翻译,摆到2楼了。



继续学习:马潮老师的专栏:AVR串口多机通讯模式的问题。

puremilk 发表于 2004-12-29 11:16:28

“作为教师,我为国内大学这些年在电子专业上教育的失败感到痛心。”



作为学生,我也为国内大学在电子方面的教育感到痛心。电子专业的本科生所学的更多的是动手的能力,应该更多的是获得工程经验,要有工程的概念,而不是去背什么傅立叶变换,做什么卷积,毕竟不是学数学的,搞理论应该让研究生或博士生来搞,本科生就应该是多动手,多增加一些工程实践的经验!现在的大学老师考核的方法往往是考试,给你张试卷做,及格了就过,没及格就不让过,怎么能够激发学生的创造力啊!!!!!

armok 发表于 2004-12-29 11:23:34

puremilk 反映的可能是学生的普遍的看法。



傅立叶变换,卷积等我已经忘记得一干二净了。我觉得作为本科生,也是应该要学这些知识,但应该只占学习时间的30% 以内。余下的70% 应该是动手的能力及工程经验的培养。



目前的教育制度,我觉得95%的时间是用于理论及应付考试上的。这也是造成许多学生反感及不愿学习的原因之一。

puremilk 发表于 2004-12-29 12:11:23

马老师的思考题什么时候公布答案啊?

armok 发表于 2004-12-29 12:13:27

大家回答一下啊! 然后马老师才公布答案,这样效果会好点。

ilan2003 发表于 2004-12-29 12:35:04

傅立叶变换,卷积等我已经忘记得一干二净了。

我考试还考了90,忘光了,但是还是想学一下,因为要真正的学会模拟电路,用的到的,

machao 发表于 2004-12-30 00:13:54

1. 为什么在与4个下位机通信的接口中,串入D9-D12四个二极管?



    答:在USART多机通信时,4个下位机的TXD理论上并在总线上,与上位机的RXD连通。在实际通信过程中,任何时刻只能有一个下位机与上位机通信,而当该下位机的TXD输出0时,其他三个下位机的TXD输出保持为1。三个TXD输出3*20mA=60mA电流,灌入一个下位机的TXD,此时,不是该下位机的TXD烧掉,就是将其输出的电平提高到1.5v了,已经不是逻辑0了,上位机不能正确检测逻辑“0”,造成通信失败。

    串入D9-D12四二极管,防止高电位的TXD电流灌入低电位的TXD中。这是数字逻辑电路中“用二极管实现线与”的“与门”基本原理。不使用D9-D12四二极管时,可以使用一个4输入与门电路。

    使用二极管的优点:便宜,布线方便。缺点:二极管的压降0.3~0.4v,比0v高,但<0.8v,逻辑还是为0。实效:线长2米,2400bps,非严重恶劣环境,一次最长数据帧20字节,工作正常。

    使用4输入与门电路优点:逻辑更加可靠安全,速度可提高。



    理论重要还是实践重要?都重要!而我们的学生是理论也没学好,更没有实践。其所谓的学到“理论”,是机械的背书,为应付考试记住了几个名词罢了。

22277 发表于 2004-12-30 21:18:10

我也是在M128上作项目,却没多少这些方面的基础

可惜了,难于看懂马老师讲的内容

我的专业是计算机科学与技术,作为一个本科毕业生却无法理解这些内容,感到很惭愧

今年回去过年,真是要再翻翻以前的旧书,重新学学那些理论的知识

jimi219 发表于 2005-2-4 09:19:44

2. 主机电路中的U2部分电路的作用是什么?为什么接入INT0,而不是RESET?

    答:俺不清楚



    3. 每个下位机使用M16倾动16个LED数码管,如何估算M16的倾动能力(M16能点亮全部的LED而不发热烧毁)?

    答:没找到M16啊。如果直接是原理图就好找多了。那个图精度太低了,放大一点字就都模糊了。 如果是直接SCH的图就好了。



    4. 电阻R2-R8起的作用是什么(好多高校老师的设计中,不使用R2-R8)?

    答:限流电阻吧?



    5. 16个LED数码管采用何种驱动方式?如何设计“同时”点亮16个LED,而且亮度均匀,无闪烁,无拖尾。如何调整LED的亮度?

    答:动态显示。同时点亮16个LED不就每隔一毫秒点亮一个就行了?调整LED的亮度应该调整R2-R8就可以的。



    6. 如何使用下位机的电路实现一个简易的时钟(年-月-日时:分:秒),带闹钟设置和时间设置功能。如何估算你的时钟精度?

    答:硬件电路的?好难啊,不会的说。



    7. 5个按键直接接在I/O口上,外部没有吊高电阻,可靠吗?

    答:虽然俺没有用过AVR的芯片。但是听说内部有上拉电阻吧。



    8. 使用其中两个按键作为“+”和“-”键,用于输入数据设置时间和日期。其特性为:按下“+”键,在1秒内放开,表示加1,按下“+”键后不放开,超过1秒后每隔0.5秒加10,直到按键放开。如何设计程序实现?

    答:多设一个按键是否是第一次按的标志位。如果是第一次按,在超过一秒以后每个0.5秒加10。在加10的同事减掉计数器里的0.5秒。在按键放开后标志位,计数器全部清除。



    9. 按键按下要消抖动处理,要判别按下的时间长短等,但不管按键按下多长时间,LED必须正常显示,不能有抖动和闪烁,更不能熄灭。

    答:只要在按键程序里处理的时间不是过长。对于LED显示程序应该不会有影响吧。我平时的按键处理是在主程序里做。数码管送数显示在定时器里。



    俺也是个刚入门的学生,请各位大大们多多指教!我也知道上面的答卷交得不好。不过看到这份题目这么久都没有个正确答案出来。所以只好抛砖引玉下了。附件里是有关按键程序处理的一个PDF文件。不是俺写的,与大家共分享下而已。



点击此处打开armok0137138.pdf



-----此内容被jimi219于2005-02-04,09:20:41编辑过


-----此内容被jimi219于2005-02-04,09:30:08编辑过

zhzzh18 发表于 2005-2-4 09:41:17

我觉得傅立叶变换非常有用。

eric 发表于 2005-4-2 17:27:08

为什么在与4个下位机通信的接口中,串入D9-D12四个二极管

是否要加上拉电阻,否则下位机的“1”如何传递?还是上位机内部有上拉

machao 发表于 2005-4-2 18:27:06

22楼的第一个问题我在18楼已经回答了。



第2个问题“是否要加上拉电阻,否则下位机的“1”如何传递?还是上位机内部有上拉”--是的,上位机也是AVR,使用内部上拉,省掉了外面上拉电阻。

ccdzdpj 发表于 2005-4-7 12:30:37

2. 主机电路中的U2部分电路的作用是什么?为什么接入INT0,而不是RESET?

    答:应该是掉电保护用吧,电压低于某一值时产生中断然后在中断服务程序处理保护的数据等。



    3. 每个下位机使用M16倾动16个LED数码管,如何估算M16的倾动能力(M16能点亮全部的LED而不发热烧毁)?

    答:采用动态扫描方式每1ms(每次)只点亮一个LED数码管。



    4. 电阻R2-R8起的作用是什么(好多高校老师的设计中,不使用R2-R8)?

    答:限流电阻



machao 发表于 2005-4-8 04:16:38

3.如何估算?没有正确完整和全面的给出答案来。

ccdzdpj 发表于 2005-4-8 10:15:47

3.如何估算?没有正确完整和全面的给出答案来。



答:根据老师你在另外一个帖子中说的“电路中使用了680的限流电阻,LED导通电压为1.7V(实测值)因此:(5-1.7)/680=4.8mA,8段全部点亮(极限)为5*8=40mA,正好是M16一个I/O口吸流最大值”



这样计算,这个电路是有问题吧?R2——R8电阻应该要更换吧?不然的话会超出M16一个I/O口吸流最大值.如果是用于产品的话,尽量不要使M16一个I/O口吸流高于20mA和不要使M16一个I/O口输出电流大于20mA,是否考虑用驱动电路更为理想?,不知学生我这样答是否可以?谢谢马老师指导!

testcode 发表于 2005-4-8 11:16:42

奇怪,为什么只有R2-R8七个限流电阻呢?

而L2-L4要8个限流电阻吧?

ccdzdpj 发表于 2005-4-8 11:29:45

图有点模糊,图中L2-L4数码管的看起来好像有两个“d”,是不是这两个"d"(2脚和7脚)接在了一起?
-----此内容被ccdzdpj于2005-04-08,11:30:46编辑过

machao 发表于 2005-4-8 11:49:12

数码显示LED的点(p)没有使用(产品中不需要使用),所以只有7个电阻。不是2个“d”,是“b”“d”,第3脚的p没接,应该很清楚的。

testcode 发表于 2005-4-9 07:57:18

10.电路的硬件设计有什么不合理和改进的地方:

因为本例没用用到ADC的功能,而有六个按钮,可以考虑用Atmega162。

Atmega162有External Interrupts: INT0, INT1, INT2 pin, or any of the PCINT15..0 pins。把六个按钮接到有External Interrupts功能的pin上,可以省去很多软件的考虑。

xk2yx 发表于 2007-11-12 19:04:55

顶下老贴,,,好像AVR IO口的驱动能力不象大家说的那么弱,

我看过一款微步步进电机仪表板,电机内阻大概200-300欧姆,他用个M169 的IO口直接驱动电机转动带动仪表指针转动,
一个电机就2组线圈算下来每组线圈电流怎么也有 10几mA每个IO口。
               线圈
即:I/O1 <---∽∽∽∽----> I/O2
    I/O3 <---∽∽∽∽----> I/O4

就这样驱动4个电机啊,每个IO可能是输出电流也可能是输入电流,每组电流输出或是灌入肯定也是相等的,可以算出,要用到16个IO口,也就有200-300mA电流了(输出+灌入)。再加上MCU自身的电流,可以想像总电流多大。但为什么那还能正常稳定长时间工作呢。

machao 发表于 2007-11-13 12:20:46

31楼:作为电机控制,不是每个I/O同时输出10mA的,是分别的,因此总电流不到300mA了。

xk2yx 发表于 2007-11-18 20:26:39

对这类电机应该是带自锁的,至少有一组线圈有电流。不然会出现丢步。也有4组,那就是4个IO是拉电流,4个IO是灌电流。

shalixi 发表于 2007-12-21 21:59:48

马老师,做到你这样,不容易。

shangdengsen 发表于 2007-12-21 23:23:02

支持【楼主位】 machao老师的经典帖子!
可是马老师在楼主位帖子上介绍的“马潮老师的专栏:AVR串口多机通讯模式的问题 ”的多机通信原理图我在您的专栏中怎么找不到呀?马老师或者其他网友能否给上传一下链接?

yulutong 发表于 2009-9-7 07:40:38

马老师真是个好老师。预祝马老师教师节快乐。

czxf 发表于 2009-9-7 12:21:14

mark

51hubao 发表于 2009-9-18 10:57:17

mark1

yinhe 发表于 2009-11-7 19:19:12

ji

yinhe 发表于 2009-12-25 13:43:04

ji

kclc 发表于 2009-12-25 13:48:03

学习了

lordyeye 发表于 2009-12-25 23:26:01

mark

mick 发表于 2010-1-1 12:13:40

一直就认为单片这玩意比较简单,看了半天好象是属于大学生搞的东西,我有点伤心了,这对想学的文凭不高的人是个打击,我是个初中生学了2年技校,用AVR也做过好多项目了。
马老师真是个好老师。可是我认为是关键人想不想学。不对的话,大家踩我!!!

machao 发表于 2010-1-5 23:34:31

开普桑和开F1赛车都叫“开车”,但技术含量不同。

lengmo 发表于 2010-1-6 00:31:20

学习了

mick 发表于 2010-1-24 17:59:04

TO:44楼
无语了,不知道有多少玩单片机的人能有开F1赛车水平。。。

huangning 发表于 2010-2-3 13:48:27

好贴。。

   三个TXD输出3*20mA=60mA电流,灌入一个下位机的TXD,此时,不是该下位机的TXD烧掉,就是将其输出的电平提高到1.5v了,已经不是逻辑0了,上位机不能正确检测逻辑“0”,造成通信失败。
恕小生愚昧,请问马老师,为什么下位机的三个置1后,会把总电流灌入置0的TXD端呢?

taiwentaotwt 发表于 2010-4-7 19:43:29

好贴,学习啦

gpzdc986 发表于 2010-4-7 21:05:46

mark

dugutianma 发表于 2010-11-20 11:39:40

mark

imjacob 发表于 2011-3-29 19:29:28

mark

wuyiduan 发表于 2011-3-30 15:20:20

仔细认真地阅读数据手册,这是大多数工程师所做不到的,尤其是电气参数表。但是这部分知识往往决定了产品的稳定和寿命。

在挑选单片机的时候往往只看资源表,而电路和元器件参数更不可能去计算,要不是靠经验,要不是参考现有产品。这样设计出来的东西能稳定运行那是运气,出问题不奇怪。

现在市场接单往往就是压缩开发周期,甚至连老化测试都省了。工程师想不浮躁都难。
还有一个问题就是,大家往往更注重软件的设计,对硬件的设计和外观结构设计都不是很重视,这也决定了这些知识点被忽略。

wuyiduan 发表于 2011-3-31 17:56:10

谈到IO的操作,我有个很简答却很不理解的问题

AVR的通用IO模拟SPI的时候,SDA要做输入输出双向操作

按照数据手册,SDA接的AVR脚应该在切换输入输出的时候操作相对应的DDR寄存器对应位,但是我在网上看别人的代码时,没有发现这样的语句,连宏定义也没有出现。

这是为什么?

oaixuw 发表于 2011-3-31 21:08:07

学习

celiangzhe 发表于 2011-9-5 21:36:23

mark 学习

sddzycnq 发表于 2011-9-6 13:22:51

MARK

cnhcl2010 发表于 2011-9-25 02:20:56

看的出来,马老师为他的电子专业教育事业尽心尽力,更为中国电子担忧,现在的大学生真的很不争气,我也是其中一个,希望我现在悔悟还不晚

wanzhouyang29 发表于 2011-11-5 17:16:06

马老师很难见到您这样的老师了 谢谢您了

machao 发表于 2011-11-5 18:42:01

回复【53楼】wuyiduan
谈到io的操作,我有个很简答却很不理解的问题
avr的通用io模拟spi的时候,sda要做输入输出双向操作
按照数据手册,sda接的avr脚应该在切换输入输出的时候操作相对应的ddr寄存器对应位,但是我在网上看别人的代码时,没有发现这样的语句,连宏定义也没有出现。
这是为什么?
-----------------------------------------------------------------------

SPI接口没有SDA,你说的是I2C吧。
关于AVR的I/O模拟I2C,在我的教程中有实际的例子,建议参考。

yidehui 发表于 2012-1-29 21:46:25

wo ding

xiaoluoshan 发表于 2012-10-26 09:04:56

学习了……………………
页: [1]
查看完整版本: 关于AVR I/O 的驱动能力的介绍