主题中讨论的其他器件: ADS131E04
您好!
我使用12.5MHz SPI 与 ADS131E08器件进行通信。 以下是来源:
=初始化源=
/* AFE 配置*/
IO_SETCLR (AFE_CS|AFE_PWDN|AFE_RST、AFE_START);
//满足 tPOR 要求(> 2^18 tCLK ~ 130ms 加电后等待直到复位)*/
ArchDelay (65000);
ArchDelay (65000);
/*设备重置*/
IO_CLR (AFE_RST);
archDelay (50);//满足 t_RST (> 1 tCLK ~ 0.5us 复位低电平持续时间)*/
IO_SET (AFE_RST);
archDelay (900);//满足 t_RST (> 18 tCLK ~ 9.0us、直到器件启动)*/
/*设备初始化*/
_WrCmd (SDATAC);/*停止连续读取数据模式*/
_WrReg (CONFIG1_REG、0b11010011);// 24位输出、8ksps *
_WrReg (CONFIG2_REG、0b11110100);
_WrReg (CONFIG3_REG、0b01000000);//关闭内部基准电源*/
_WrReg (CH1SET_REG、0b00010000);
_WHRReg (CH2SET_REG、0b00010101);
_WHRReg (CH3SET_REG、0b00010101);
_WHRReg (CH4SET_REG、0b00010101);
_WHRReg (CH5SET_REG、0b00010101);
_WHRReg (CH6SET_REG、0b00010101);
_WHRReg (CH7SET_REG、0b00010101);
_WHRReg (CH8SET_REG、0b00010101);
/*开始转换*/
IO_SET (AFE_START);
_WrCmd (RDATAC);/*启用连续读取数据模式*/
=/DRDY 中断服务例程=
/*读取状态*/
IO_CLR (AFE_CS);
status =_RdStat();
/*读取通道*/
AFE_val[0]=_RdChan24Bit ();
AFE_val[1]=_RdChan24Bit ();
AFE_val[2]=_RdChan24Bit ();
AFE_val[3]=_RdChan24Bit ();
AFE_val [4]=_RdChan24Bit ();
AFE_val[5]=_RdChan24Bit ();
AFE_val[6]=_RdChan24Bit ();
AFE_val[7]=_RdChan24Bit ();
archDelay (200);//满足 t_SCCS (>4 t_CLK ~ 2.0 us、在 CS=1之前)*/
IO_SET (AFE_CS);
archDelay (100);//符合 t_CSH (> 2 t_CLK ~ 1.0 CS=1脉冲持续时间)*/
=
正确读取通道1-4、反映外部施加的电压和/或测试信号、第5个通道为无常量值、第6至8个通道为应用于通道1-3的值。 读数看起来需要更长的时间、但情况并非如此@ 12.5MHz SPI 时钟(在示波器上检查)。 我计划进行更多调查、但希望您已经了解了调查内容、并能提供一些关于尝试哪些内容的想法。
谢谢、
Martin M.




