最近在用这个芯片,碰到一些问题,请各位指点指点···
1. 在指定电压范围内输入交流信号到芯片的VIN±、IIN±脚。 例如:电压/电流通道最大输入电压为±250mV,
为适应更大的电压范围,系数取0.6, 则输入交流信号为150mV,实际上一般取110mV
2. 在串口上发0xa0命令(停止计算,中止A/D转换)
3. 在串口上发0xd6命令(电压通道AC增益校准命令)
4. 在串口上发0x1e命令, 读状态寄存器内的DRDY位。为1,则表示校准已完成,不为1则等待。
5. 校准完成(这时Vrms寄存器值近似等于0.6),在串口上发0x08命令,去读电压通道AC增益寄存器值并把它
存到存储器中
这是资料上关于电压AC增益的一段话, 按照他的要求,我给电压输入通道给150mV AC电压,然后执行AC增益校准, 可是问题出来了,校准后读出来的AC增益寄存器的值一直都是默认值 0x400000,如果Vrms的值是满量程的0.6我倒也没话说, 可是我读出来的是 0x95xxxx~0x96xxxx , (0xFFFFFF*0.6 = 0x999999).
我的程序应该没有问题, 因为用这个程序执行了DC偏移校准,能看到有效果,程序如下,等好了再把完整的程序发上来:
另外,还一个问题,读取到的Vrms 和Irms的0:16位数值不稳定,是硬件问题还是其他什么原因?
/*********************************************************