dhw5qq 发表于 2014-7-25 12:31:11

请问AVR单片机内部上拉可以代替外部上拉吗?

   但是我 有个疑问,我scl和sda高低电平是通过外部上拉结合单片机输入和输出来实现的。那么我初始化的时候让单片机io口输入上拉的话,那么我 随后的高地电平怎么处理呢?

jady076 发表于 2014-7-25 13:43:49

只要通过设置方向寄存器DDRn即可实现高低电平的变化。
首先设置PORTn = 0
设置DDRn = 0时,这时候IO外部接有上拉电阻,总线为高电平
设置DDRn = 1时,由于PORTn = 0,总线为低电平

gliet_su 发表于 2014-7-25 21:48:13

最好不要省外部上拉电阻,内部上拉电阻是假电阻,阻值很大,也不是一个定值。还是老老实实用外部真电阻上拉吧

陶新成 发表于 2014-7-27 11:25:59

输入设置POTRN = 1;就设置成输入上拉,输出默认上拉POTRN = 1是输出高电平,POTRN = 0是输出低电平

hdxet 发表于 2014-7-28 09:12:41

如三楼所说,AVR的内部上拉阻值并不确定,Mega8手册上IO口上拉最低20k,最高50k,Mega128手册上IO口上拉最低33k,最高122k,是离散性很大的弱上拉,如果是试验或玩具,估计没有问题,如果做产品,最好还是用外部上拉比较放心

dhw5qq 发表于 2014-7-28 15:59:28

hdxet 发表于 2014-7-28 09:12
如三楼所说,AVR的内部上拉阻值并不确定,Mega8手册上IO口上拉最低20k,最高50k,Mega128手册上IO口上拉最 ...

那就是了,我说呢,怎么没有加上拉,用数据分析仪看不到一点波形,加了上拉马上就有波形了!
页: [1]
查看完整版本: 请问AVR单片机内部上拉可以代替外部上拉吗?