使用ADS8556芯片读取电流传感器的数值。电流传感器的输出电流通过200R的电阻转换为电压,范围在-5V到+5V之间,用ADS8556读取该电压值,使用外部电压参考,电压值为VREF=2.5V。
引脚配置如下:
HW/SW接低电平,配置为硬件模式;
PAR/SER接低电平,配置为并行接口;
RANGE/XCLK接高电平,配置输入范围为+-2VREF。
使用Altera FPGA读取ADS8556数据,具体方法是检测到20kHz时钟上升沿后,给RESET引脚高电平,持续200ns后,转为低电平,再等待500ns,然后进入读数状态机,读完数后,存入内部RAM中,通知DSP将数据取出,然后等待下一个20kHz时钟上升沿。
目前多次测试结果是:所有通道复位后再读数得到的结果是不复位就读数的一半,很奇怪,检查了时序都是正确的,增加RESET引脚高电平时间,增加RESET引脚变为低电平后的等待时间,问题依旧存在。
想请教各位,有没有遇到过类似问题?该如何解决?谢谢!
Kailyn Chen:
为什么在读取数据之前要复位呢?复位之后所有的寄存器都恢复到默认值。
xiang yu:
回复 Kailyn Chen:
谢谢回复。每次读数前复位是因为:ADS8556会受到干扰,经常出现读数异常的情况,此时如果不复位,以后的读数一直保持异常,如果复位一下就会恢复正常,因此干脆每次读数前复位一下。
xiang yu:
请问有遇到这种情况的吗?还望不吝赐教
xyz549040622:
回复 xiang yu:
只要你每次复位后的操作一样,对AD的配置一样,不要额外进行任何滤波操作,读到的数据肯定是一模一样的,当然这个数据不对也有可能是外部干扰的原因,你的外部干扰来自哪方面呢?去除这个干扰源才是最重要的。
xiang yu:
回复 xyz549040622:
谢谢您的回复。我复位和不复位后的操作都是一样的,对AD的配置也是一样的。外部干扰来自逆变桥,开关周期为20kHz,这个干扰不好消除。