请问,ADS1246的数据输出速率如何更改。我的程序是这样的,
/*命令写入子函数*/
void ADS1246_WriteReg(uint8_t RegAddr,uint8_t *Buffer,uint8_t Length)
{
uint8_t Cmd[2];
ADC_SPI_CS_CLR ;
Cmd[0]=ADC_CMD_WREG|RegAddr;
Cmd[1]=Length-1;
ADC_WriteBytes(Cmd,2);
ADC_WriteBytes(Buffer,Length);
//Cmd[0] = ADC_CMD_NOP;
//ADC_WriteBytes(Cmd,1);
ADC_SPI_CS_SET ;
}
/*采样增益和速率设置函数*/
void ADS1246_Config(uint8_t CovGain,uint8_t CovRate)
{
uint8_t Cmd;
Cmd=CovGain|CovRate;
ADS1246_WriteReg(ADC_REG_SYS0,&Cmd,1); //采样增益和速率输出
}
/*配置速率*/
ADS1246_Config(ADC_GAIN_1,ADC_SPS_2000);
问题:此处配置,不管我设置的ADC_SPS_5还是ADC_SPS_2000,其输出速率都没有变化,都是按照ADC_SPS_5的速率输出?这是为何?
请问我的程序是否有错?
我应该怎么配置ADS1246的输出速率,使其达到2KSPS?
求助各位好心人!万分感谢,感谢!!
user151383853:
好几天过去了, 看看有没有进展
参考一下 ADS1246EVM-PDK 这个完整的评估/演示套件的资料吧
http://www.ti.com.cn/tool/cn/ads1246evm-pdk
jj xu:
回复 user151383853:
没有进展呀,大神帮帮忙
user151383853:
回复 jj xu:
相信 TI 肯定对这个器件有详细的测试, 看看那个 EVM 里的资料, 应该会有这方面的设置
jj xu:
回复 user151383853:
没有讲,ti关于这款芯片的datasheet不是很完善
大林:
不知道你做到什么程度了,简单提几点
1.用内部晶振
2.spi通信是否正常,读读ID,然后确保能够正常写入读出。
3.寄存器写入最好在SDATAC模式下,采样输出最好用中断来做
jj xu:
回复 大林:
使用的是内部晶振,然后ID能读出来,spi通信正常,因为能够正常的进行AD转换,并且能将转换后的数据传输到串口上。现在的问题就是速率和增益无法更改,芯片一直按照默认的速率和增益在工作。我把配置速率和增益的程序删除以后,整个程序仍然能正常运行。就是没有配置进去,不知该怎么办。(刚才按照你说的在SDATAC模式下工作,所以我在配置速率之前先加了一条语句把程序切换到SDATAC状态下,但是结果仍然没有配置进去)
大林:
回复 jj xu:
你的改速率和增益就是通过改寄存器的方式啊,把修改的放到芯片初始化那边去,然后改完读一次寄存器看看有没有写进去,没写进去就SPI有问题,这个不难的,
jj xu:
回复 大林:
好的,我现在试试哈
jj xu:
回复 大林:
你好,能不能加个qq聊呀,我读了寄存器以后发现,寄存器的值一直没有变化,就是没有配置进去?程序该怎么改呀
大林:
回复 jj xu:
没配进去就是SPI写入有问题啦。QQ就不加啦,你的问题过程还能给其他人看,加QQ别人就看不了了
你写入应该木有正确,流程应该是
• First Command Byte: 0100 rrrr, where rrrr is the address of the first register to be written.
• Second Command Byte: 0000 nnnn, where nnnn is the number of bytes to be written – 1.
• Byte(s): data to be written to the registers.
写的挺清楚了,然后还不行就上示波器或者信号分析仪看SPI协议的timing。要和datasheet里面12页的对上,如果对不上就要自己修改延时