AVR内部上拉是否可以驱动模拟iic?
试了几遍,没成功,除非加上拉,否则真的驱动不了iic啊。求救? 还有一个uart好像只能吧单片机从休闲模式下唤醒,掉电是唤不醒,那uart的低功耗感觉步咋样? 还有一个uart好像只能吧单片机从休闲模式下唤醒,掉电是唤不醒,那uart的低功耗感觉不咋样? 不知道是不是内部上拉电阻不足以被拉低 内部上拉有几百K,还是老实用外部上拉 必须外接上拉电阻的。 内部上拉只能做做按 键接口, 其他功能只怕不行! 跟从机相关,有的可以驱动,但是需要特殊设计,要三根线。我就走过这样的弯路,SCL不接上拉推挽没有问题,SDA不接上拉电阻根本就搞不定,输入时(主要就是那个ACK)总是总线竞争,切换成上拉输入也不行,加上拉电阻搞成开漏输出就没有问题。于是特殊设计一下,用另外一个不用的IO设为上拉输入模式和SDA接在一起,搞定。 takashiki 发表于 2014-8-9 06:05
跟从机相关,有的可以驱动,但是需要特殊设计,要三根线。
我就走过这样的弯路,SCL不接上拉推挽没有问题 ...
你说的三线是怎么回事?
1.一个IO使用推挽产生SCL
2.一个IO设为上拉输入接收SDA
3.还有一个IO怎么弄?
wicy001 发表于 2014-8-9 09:02
你说的三线是怎么回事?
1.一个IO使用推挽产生SCL
2.一个IO设为上拉输入接收SDA
错啦,是这样:
SCL:推挽输出
SDA:开漏输出、输入。输出使用PORTx,输入使用PINx,无需切换方向,只是在输入之前将PORTx输出1即可
另一个IO,上拉输入,和SDA直接连在一起,作用就是相当于给SDA接了个上拉电阻,没别的用途了
我搞了两天才把这个方法搞定,直接接上拉电阻最方便了,还少占用一个IO。 takashiki 发表于 2014-8-9 10:06
错啦,是这样:
SCL:推挽输出
SDA:开漏输出、输入。输出使用PORTx,输入使用PINx,无需切换方向,只是 ...
哦,明白了。
IIC外接上拉好点。稳定。 老实接10k的上拉吧 硬邦邦 发表于 2014-8-9 12:05
IIC外接上拉好点。稳定。
你头像让我想入非非,罪过!!! brother_yan 发表于 2014-8-9 13:19
老实接10k的上拉吧
可是加了上拉,我的电量计就无法休眠啊,咋办! 真的是什么事情都无法两全其美,
iic可以从掉电模式唤醒,但是隔离器又贵,
uart的隔离器便宜,但是无法实现休闲模式被唤醒,无比蛋疼!
外部上拉可以读取到数据,但是无法让电量计进入休眠,
不加上拉可以进入休眠,但是又让单片机读取不到数据,
哎,什么事请好像都是这样的矛盾,而我们就需要在这其中去做取舍!
页:
[1]