This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
电路:
单片机:STM32F373
通信接口:SPI3,速率2Mbps
初始化代码:
读取AD值代码:
读取结果,发回的AD值始终为0
测试二:读取地址为00H-0AH的寄存器值
代码:
返回值:
00H-0AH: 32 01 00 03 E0 00 30 75 00 00 00
最后三位为:FSC,值为0,根据公式:
这可能是导致读取AD值始终为0的原因。
但是,什么原因导致校准后的FSC为0?
我的建议是先不要使用AD的校准功能,能够正确读取AD转换结果后,再使用
下面是TMS320C5500 的ADS1256的sample code,ADS1256与ADS1255区别不大,大概看了下好像是模拟输入接口数与GPIO口数的区别,您可以参考下:
昨晚把电路从原理图,PCB,焊接好的板子,仔细检查了一遍,终于发现问题:焊板子的时候,把R51焊成一个0.1uF的电容!!!
今早换掉,一切问题解决!
电路原理图没错!
初始化程序没错!
读取程序没错!
焊错一个元件,折腾了接近两周,总结一下吧:
1.ADS1255的模拟电源,模拟地,参考电压和参考地,是决定ADC正常与否的关键,需要从原理,PCB和真实的板子上去确认。原理图上看的没错,但是焊出来的板子,是否真的跟设计的一致,是需要确认的。我一开始没有往这想,直到我换了一片ADS1255,问题依旧,就开始认为我的板子有问题。
2.认真读手册。(这点我一开始就做的可以)
3.不要轻易怀疑一个成熟的芯片,是不是坏了,尤其是还有部分功能正常的情况下(通信、读写寄存器一直正常)
4.注意3.3V和5V的电平匹配,如果单片机是5V的话。
5.重视电平时序,必要的延时
6.这么小的板子,第一次用的时候,一定要引出信号测试针,以便调试!