最近一个项目,使用光耦作为AD采样芯片作为SPI的隔离使用。
众所周知,使用光耦嘛,速度肯定得降下来,于是把spi速度调整到了8Kbps,开始使用。
光耦电路是最标准也是最简单的电路。
板子是其它人画的,他们告诉我,此处的R258为680欧,R263为4.7K,U68为TLP181
作了简单的测试,基本没有问题,数据可以正常获取。
准备放到产品上去使用时,问题来了:经常读取到错误的数据,在仔细琢磨,难道是前端 AD采样不准?于是作为滤波处理,对采集到的数据进行kalman滤波,想着问题应该解决了。结果发现,还是有很大的偏差。
于是,做处理,每次对AD采集的数据进行处理,每采一次,记录cnt++,每发现一次与上一次的数据值相差>0.2V,记录err_cnt++,长期运行看。
运行一段时间后,发现err_cnt占总的cnt的比例接近4%,问题严重呢。
再次跟踪,看看当数据错误时,与正常数据的差值有多大,发现差别非常大,再仔细研究一下,发现约为正常值的1/2或是1/4左右&#x