dhw5qq 发表于 2014-8-8 23:06:53

AVR内部上拉是否可以驱动模拟iic?

试了几遍,没成功,除非加上拉,否则真的驱动不了iic啊。求救?

dhw5qq 发表于 2014-8-8 23:07:45

还有一个uart好像只能吧单片机从休闲模式下唤醒,掉电是唤不醒,那uart的低功耗感觉步咋样?

dhw5qq 发表于 2014-8-8 23:16:12

还有一个uart好像只能吧单片机从休闲模式下唤醒,掉电是唤不醒,那uart的低功耗感觉不咋样?

dhw5qq 发表于 2014-8-8 23:16:51

不知道是不是内部上拉电阻不足以被拉低

gliet_su 发表于 2014-8-8 23:38:39

内部上拉有几百K,还是老实用外部上拉

god-father 发表于 2014-8-9 00:54:08

必须外接上拉电阻的。

gy54321 发表于 2014-8-9 03:24:10

内部上拉只能做做按 键接口, 其他功能只怕不行!

takashiki 发表于 2014-8-9 06:05:25

跟从机相关,有的可以驱动,但是需要特殊设计,要三根线。

我就走过这样的弯路,SCL不接上拉推挽没有问题,SDA不接上拉电阻根本就搞不定,输入时(主要就是那个ACK)总是总线竞争,切换成上拉输入也不行,加上拉电阻搞成开漏输出就没有问题。于是特殊设计一下,用另外一个不用的IO设为上拉输入模式和SDA接在一起,搞定。

wicy001 发表于 2014-8-9 09:02:23

takashiki 发表于 2014-8-9 06:05
跟从机相关,有的可以驱动,但是需要特殊设计,要三根线。

我就走过这样的弯路,SCL不接上拉推挽没有问题 ...


你说的三线是怎么回事?
1.一个IO使用推挽产生SCL
2.一个IO设为上拉输入接收SDA
3.还有一个IO怎么弄?

takashiki 发表于 2014-8-9 10:06:58

wicy001 发表于 2014-8-9 09:02
你说的三线是怎么回事?
1.一个IO使用推挽产生SCL
2.一个IO设为上拉输入接收SDA


错啦,是这样:
SCL:推挽输出
SDA:开漏输出、输入。输出使用PORTx,输入使用PINx,无需切换方向,只是在输入之前将PORTx输出1即可
另一个IO,上拉输入,和SDA直接连在一起,作用就是相当于给SDA接了个上拉电阻,没别的用途了

我搞了两天才把这个方法搞定,直接接上拉电阻最方便了,还少占用一个IO。

wicy001 发表于 2014-8-9 12:02:57

takashiki 发表于 2014-8-9 10:06
错啦,是这样:
SCL:推挽输出
SDA:开漏输出、输入。输出使用PORTx,输入使用PINx,无需切换方向,只是 ...

哦,明白了。

硬邦邦 发表于 2014-8-9 12:05:24

IIC外接上拉好点。稳定。

brother_yan 发表于 2014-8-9 13:19:46

老实接10k的上拉吧

dhw5qq 发表于 2014-8-9 19:49:19

硬邦邦 发表于 2014-8-9 12:05
IIC外接上拉好点。稳定。

你头像让我想入非非,罪过!!!

dhw5qq 发表于 2014-8-9 19:49:48

brother_yan 发表于 2014-8-9 13:19
老实接10k的上拉吧

可是加了上拉,我的电量计就无法休眠啊,咋办!

dhw5qq 发表于 2014-8-9 19:53:30

真的是什么事情都无法两全其美,
iic可以从掉电模式唤醒,但是隔离器又贵,
uart的隔离器便宜,但是无法实现休闲模式被唤醒,无比蛋疼!

外部上拉可以读取到数据,但是无法让电量计进入休眠,
不加上拉可以进入休眠,但是又让单片机读取不到数据,
哎,什么事请好像都是这样的矛盾,而我们就需要在这其中去做取舍!
页: [1]
查看完整版本: AVR内部上拉是否可以驱动模拟iic?