你好,aic23b的AD和DA输入输出数据总在64000左右,AD设置的是16位,为什么才进来的数都这么大,是不是配置不对?
还有就是,输入电压和采样值之间的对应关系是什么?
Roman Wang:
你好,
ADC会以AVDD/2为参考,也就是1.5V,16位读取到54000, 理论计算上是1.46V,
请检查输入的电压是多大,以及输入ADC的路径配置
wang jianming:
回复 Roman Wang:
你好,我不给输入信号,为什么读进来的数也在64000左右,是配置不对吗?
Roman Wang:
回复 wang jianming:
你好,
芯片在mute或者stanby 模式下会将line in自动偏置到VMID电压。
请上传,检查配置路径和芯片工作模式的设置。同时也检查MCU读取是否有误。
user3917511:
回复 wang jianming:
这个结果明显是MCU方面的操作出现的问题。楼主根据datasheet可以看到这个是设置16bit,I2S数据的范围应该是8000-0000,0000-7FFF,最大也到不了十进制的64000。。。楼主可以检查下哦
JiaChuang Chen:
16位的ADC,最大值应该是2的16次方=65536。你现在才64000<65536,所以数值在变准范围之内。
至于你说没有输入也是这么大,那就不正常了。建议你把输出的通道接地,不要悬空,再读取数据,看看读出来的是多少。
悬空可能会对ADC的输入信号造成影响。
Flora Wang:
回复 JiaChuang Chen:
你好,Jiachuang,
谢谢您的热心解答。
I2S的数据是补码,第一位是符号位,所以16bit最大只能表示到7F FF=32767,64000肯定是超过了。
应该是读数的问题。
wang jianming:
回复 Flora Wang:
你好,我编码器设置的是DSP模式,也是以补码传输吗?另外,虽然我测得的数据一直在64000左右,可是输出以后
却能听到声音,而且就是输入的那个声音。
wang jianming:
回复 Roman Wang:
你好,我检查过,没有设置成mute或者stanby模式,寄存器的配置已上传。
wang jianming:
回复 JiaChuang Chen:
你好,我按照你的建议,把输入接地了,读出来的数大概是16000左右。