各位大神,请帮忙分析下ADS1258配置寄存器不成功问题
上电程序如下
// initialize the device
SYSTEM_Initialize();
INTERRUPT_GlobalInterruptEnable();
INTERRUPT_PeripheralInterruptEnable();
SPI_CS = 1;
ADS_1258_START = 0;
ADS_1258_RESET = 0;
ADS_1258_PWDN = 0;
delay_ms(50);
ADS_1258_RESET = 1;
delay_ms(5);
SPI_CS = 0;
SPI_read = SPI_Exchange8bit(0x70);
SPI_read = SPI_Exchange8bit(0x2A);
SPI_read = SPI_Exchange8bit(0x03);
SPI_read = SPI_Exchange8bit(0x00);
SPI_read = SPI_Exchange8bit(0x00);
SPI_read = SPI_Exchange8bit(0x3F);
SPI_read = SPI_Exchange8bit(0x00);
SPI_read = SPI_Exchange8bit(0x00);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0x00);
SPI_CS = 1;
delay_ms(100);
SPI_CS = 0;
SPI_read = SPI_Exchange8bit(0x50);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_read = SPI_Exchange8bit(0xFF);
SPI_CS = 1;
delay_ms(100);
ADS_1258_PWDN = 1;
ADS_1258_START = 1;
while (1)
{
// Add your application code
while(ADS_1258_DRDY);
SPI_CS = 0;
ADS1258_data[0] = SPI_Exchange8bit(0xFF);
ADS1258_data[1] = SPI_Exchange8bit(0xFF);
ADS1258_data[2] = SPI_Exchange8bit(0xFF);
ADS1258_data[3] = SPI_Exchange8bit(0xFF);
SPI_CS = 1;
}
ADS1258原理图
新建 Microsoft Word 文档.docx
hen wu:
ADS1258写完寄存器后再读出全部为0x00,芯片上电默认是可以工作的,就是芯片默认配置,16个通道全速采样
hen wu:
ADS1258上电后读写配置寄存器失败后,进入while循环可以默认工作状态下工作,即ADS1258上电默认配置 16个通道都采集数据,我们实际用6个通道采集。
hen wu:
回复 hen wu:
放大2
放大1f
放大3
Mickey Zhang:
回复 hen wu:
确认下参考电压是否稳定,建议您可以通过ADS1258EVM来调试:www.ti.com/…/ads1258evm-pdk
hen wu:
回复 Mickey Zhang:
参考电压稳定,外部LDO供电,我们现在只是对配置寄存器读写不了,读也不行,写也不行,有参考例程吗?
hen wu:
回复 Mickey Zhang:
还请帮忙再看一下
Kailyn Chen:
回复 hen wu:
很抱歉,没有参考例程。
写入寄存器之后,不要立即去读,给一个等待时间再读取试试?
另外,更换一片新的IC再试试?
user5300245:
回复 hen wu:
你好,你这个问题解决了吗?我也遇到这种情况。