历史上的今天
返回首页

历史上的今天

今天是:2025年02月24日(星期一)

正在发生

2020年02月24日 | AVR单片机通用I/O设计注意事项

2020-02-24 来源:eefocus

简介:AVR单片机通用I/O设计注意事项


一、数据寄存器PORTx和数据方向寄存器DDRx为读/写寄存器,而端口输入引脚PINx为只读寄存器。但是需要注意的是,对PINx寄存器某一位写入逻辑“1”将造成数据寄存器相应位的数据发生“0”与“1”的交替变化。


当寄存器MCUCR的上拉电阻禁止位PUD置位时所有端口引脚的上拉电阻都被禁止。不论如何配置DDxn,都可以通过读取PINxn寄存器来获得引脚电平。PINxn寄存器的各个位与前面的锁存器组成了一个同步器。这样就可以避免在内部时钟状态发生改变的短时间范围内由于引脚电平变化而造成的信号不稳定。其缺点是引入了延迟。


二、AVR I/O具备多种I/O模式:


1.高阻态,多用于高阻态模拟信号输入,例如ADC数模转换器输入,模拟比较器输入。


2.弱上拉状态(Rup=20K~50K)输入用。为低电平信号输入作了优化,省去外部上拉电阻,例如按键输入,低电平中断触发信号输入。


3.推免强输出状态,驱动能力特强(>20mA),可直接推动LED,而且高低驱动能力对称。


三、写用PORTx,读取用PINx。


实验时,尽量不要把管脚直接接到GND/VCC,当设定不当,IO口将会输出/灌入80mA(Vcc=5V)的大电流,导致器件损坏。


做输入时:


1.通常要使能内部上拉电阻,悬空(高阻态)将会很容易受干扰。


2.尽量不要让输入悬空或模拟输入电平接近VCC/2,将会消耗太多的电流。


3.如果先前I/O口为输出状态,设置为输入状态后,必须等待1个时钟周期后才能正确的读到外部引脚PINx的值。


4.功能模块(中断,定时器)的输入可以是低电平触发,也可以是上升沿或下降沿触发。


5.用于高阻模拟输入信号输入,切记不要使能内部上拉电阻,影响精确度。


推荐阅读

史海拾趣

Diplohmatic A/S公司的发展小趣事

Diplohmatic A/S公司最初是一家小型电子元件分销商,但其创始人对技术创新的执着追求引领了公司的转型。在一次偶然的机会中,公司研发团队发现了一种新型半导体材料,这种材料在能效和稳定性上远超市场同类产品。经过数月的研发和测试,公司成功将这种材料应用于新型电源管理芯片中,并迅速获得了市场的认可。这一创新不仅为公司带来了丰厚的利润,也奠定了其在电子行业的技术领先地位。

芯海科技(CHIPSEA)公司的发展小趣事

进入21世纪第二个十年,物联网技术迅猛发展,为芯海科技带来了新的机遇。公司紧跟市场趋势,发布了高精度SoC(系统级芯片)/MCU芯片,广泛应用于智能家居、智能穿戴等领域。这一创新使得芯海科技能够为客户提供一站式的智能硬件解决方案,进一步提升了其市场竞争力。

Helium_Systems__Inc.公司的发展小趣事

为了更好地适应全球市场的变化,海曼电子不断深化其国际化战略。公司在全球范围内建立了完善的研发、生产和销售网络,确保能够快速响应客户需求。同时,公司还加大了对海外市场的投入,通过本地化运营和定制化服务,赢得了更多海外客户的信赖和支持。此外,海曼电子还积极参与国际标准的制定和推广工作,提升了公司在全球电子行业的影响力。

Gemmy Electronics Co Ltd公司的发展小趣事
对于高压电击式捕鼠器,需检查升压电路中的变压器、整流桥、滤波电容等元件是否完好。
DuPont公司的发展小趣事

早在20世纪初,DuPont公司就开始涉足电子材料的研发。当时,随着电子技术的飞速发展,对于高性能、高可靠性的电子材料的需求日益迫切。DuPont凭借其深厚的化学技术积累,成功开发了一系列具有优异性能的电子材料,如高性能绝缘材料、导电材料和封装材料等。这些材料的推出,不仅极大地推动了电子行业的发展,也为DuPont公司在电子材料领域奠定了坚实的基础。

Bridgelux公司的发展小趣事

XXXX年,中国电子信息产业集团公司(CEC)和重庆临空开发投资公司牵头收购了Bridgelux。这次收购为Bridgelux带来了强大的资本支持和市场资源,使其得以进一步扩大生产规模,提升研发能力。在CEC和重庆临空的支持下,Bridgelux在全球范围内的市场份额逐步提升,品牌影响力不断增强。

问答坊 | AI 解惑

PDF——电源管理技术的飞跃

PDF——电源管理技术的飞跃!这个帖子如何??请留下您的意见。…

查看全部问答>

如何模拟按下enter键

现在遇到的情况是这样的:基于vxworks 操作系统 过程描述:应用层(相对驱动来说)发送命令(write 到一个输出文件描述符)--》在哪里被接受不清楚--》终端打印一些信息--》这些信息在用户按下 回车键后 被应用程序 接收(read文件描述符),然后解析 ...…

查看全部问答>

请要去中嵌学院学习嵌入式的朋友们注意了,你们千万不要受骗了,那个老板叶贵明是骗子啊!

我就是中嵌远程教学的学员,中嵌真的是骗人的,一开始什么都说好,老师态度也好,可是到后面这个远程学习平台根本就用不了,于是我就申请退学费,他们那个什么叶总(叶贵明)说得好听得很,说说什么这件事情完全是他们的问题,学费一定退,只是现在 ...…

查看全部问答>

物理基地址如何映射到应用程序可访问的空间?

物理基地址如何映射到应用程序可访问的空间? 我要访问研华PCM3724的PC104 I/O卡输入输出,其基地址为0x300. BYTE* PCMMem=(BYTE*)LocalAlloc(LPTR,10*sizeof(BYTE)); DWORD dwRegBase=0x0300; PHYSICAL_ADDRESS PhyAddr={dwRegBase,0}; DWORD ...…

查看全部问答>

》》》调查:如果STM32具有外部存储器接口,您打算怎么用?

请分几个问题回答:一、存放程序代码  1) 存储器介质是什么? RAM、NOR Flash或其它  2) 存储器容量?最大及最小要求  3) 存储器速度? 100ns、40ns等二、存放数据 &nbs ...…

查看全部问答>

PC13为什么不能输出秒脉冲?

ST32F101的PC13口能输出校准时钟却不能输出秒脉冲是怎么回事?    /* Enable PWR and BKP clocks */     RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);     /* Allow access to ...…

查看全部问答>

怪现象?串口发送丢数

使用STM32F103VC控制器,使用串口2,9600波特率,使用2.03库,程序很简单,用串口把一个数组顺序发出去, //和上位机通信 void uart2_send_byte(u8 ch) {   USART_SendData(USART2, ch);   /* Loop until the end of ...…

查看全部问答>

歡迎大家來討論:MCU 的 IO 口封裝為什麼不按順序排列?

以前 89C51 的 IO 口在封裝上都是都是從 0 到 7 的順序來排列,但是現在很多 MCU 的 IO 口都不是這樣排列的了,感覺一個字\"亂\".. 這其中有什麼奧秘嗎? 希望大家來討論討論.…

查看全部问答>

TI Sitara 的AM18系列入门-编译

Sitara  有强大的HMI,HMI设备包括硬件与软件。这里的软件也就是组态软件,硬件我更关心的是他的串口和以太网接口。  在有些的情况下可能要使用的串口会非常的多,可能会达到七八个之多,这是就很少有CPU可以达到这个程度,这时 ...…

查看全部问答>

BoosterPack的结构以及堆叠方式

Boosterpack共有3种: 分别为 20pin(左1)如MSP430的launchpad的风火轮和MP3扩展板 40pin(左2)如C2000的launchpad扩展板 80pin(右1)目前还没有见过 即使管脚数目不同,但是相同位置处的管脚功能是一致的,所以可以保证通用性 不 ...…

查看全部问答>