各位TI工程师,您好!
我司的开发环境为ARM+ADS1299,主控操作系统是linux。现在我遇到的问题是,主控与AD无法通讯。我测试通讯方法是:读取ADS1299其中一个寄存器的结果值。以下是我的测试步骤:
1.检查上电时序,满足power-up时,DVDD 3.3V与RST同时上电,上电后对AD进行RST操作,并延时18*TCLK,其中上电前,所有的IO脚为低电平;
2.检查驱动发送数据的值,使用示波器核对每次发送数据的值是否为我写入的值,确保至少SPI发送出来的数据是正确的;
3.对主控SPI进行设置以满足AD的通讯要求,设置通讯字长为8bit,CPOL =0; CPHA=1;
4.发送读命令:
a.拉低START pin
b.切换模式 : 发送SDATAC,再发送 0x00
c.发送读的寄存器和位:发送RREG | REG_ADDR , 发送0x00, 在发送0x02 ,其中REG_ADDR=0x05,0x02是需要读的寄存器的位
d.拉高START pin
e.监测DRDY pin状态,如果是低电平 说明 有有效数据返回
f.拉低START pin
g.read spi buf.
这个时候,读取出来的值是0,按demo板上该位RST后的值应该是1才对,请问,我现在应该怎么调试。
另外,需要说明的是,当我发送值的时候,使用示波器监视DOUT的波形,此时,波形是不规则的,无法使用SCLK根据波形分析数据。
非常紧急,盼复,谢谢!
user151383853:
除了 RESET 信号, 是不是时钟出了问题?
HAIXIN YU:
回复 user151383853:
您好!
我们使用的CLK 频率为2.048这点也有确认过,是正常的,波形效果很好。
另外,这个rst信号我的状态是这样的,我们主板供电的时候会直接给AD上电,而主控是还没有上电,要等按了POWER键以后才会上电,这个时候,AD的POWER为3.3 ,RST为1.5,被主控分压了。当主控开机后,RST上升成3.3。进入系统后,我对RST进行拉低动作,可以把3.3完全拉完。
我不确定在一开始的RST 1.5的电压是否会影响AD的上电初始化?如果要改电路会比较麻烦,所以现在还没有尝试去改。请问您了解吗?谢谢!
HAIXIN YU:
各位,你好!
目前最新情况是,我可以获取到返回的值,但是这个值跟我发送出去的一致,感觉像是AD完全没有处理(监听了DRDY为低电平再获取的值)。请问是什么原因呢?