7746寄存器设置的问题。
程序如下,通过i2c设置ad7746。i2c程序应该没问题,因为能读出7746默认值。如果先调用下面程序后延时再读时就“noack”了,一个也读不出,如果调用下面程序后去轮询7746的rdy脚,此脚无论时间等多久都不会有下降沿出现。如果把下面程序的最后那个子程序(启动转换)屏蔽就能再次读出所改写的内容。
搞了好多天,卡在这了。用过ad7746的大侠帮忙指点一下下,谢谢!
单电容输入。
ad7746_write: ;给ad7746设定,
acall smbus_rest;ad7746复位 ,给7746写0xbf进去
acall delay ;延时5us
mov r2,#0ah
mov r3,#32h ;0x0a内写入031h,capf=110更新频率,md=010单次
acall smbus_write;写# 到7746 地址去
acall delay
mov r2,#0bh
mov r3,#0b7h ;0x0b内写入0b7h, dac_a设置
acall smbus_write;写# 到ad7746 地址去
acall delay
mov r2,#9h
mov r3,#0bh ;0x09内写入0bh,第一个路电容打开
acall smbus_write;写#80h到ad7746的0x07地址去
acall delay
mov r2,#7h
mov r3,#80h ;0x07内写入80h,启动转换
acall smbus_write;写#80h到ad7746的0x07地址去
ret |