在编写好ADS1148 读写数据的驱动时候,发现SPI总线上的数据并没有被读回来,从示波器上,可以发现SPI的read命令是没有问题的,可是SDO上面没数据,后来进一步查看是ADS1148的数据转换完成状态引脚ready信号时钟为高电平?大家有遇到过么,可能是什么原因呢?现在没有头绪
Amy Luo:
您好,
reset信号和start信号是什么电平呢,reset和start应该是高电平。设备默认设置为RDatac模式(连续读取数据),提供5 sps的转换。当16个SCLK输入设备时,设备将输出转换结果。你是输入16个SCLK吗
user3704226:
回复 Amy Luo:
我确认了设置reset和start信号初始化为始终是高电平,下面是我使用了读命令,读取数据的函数,SPI
是8位通信,发了两次0xff ,16个clk, 但是ready指示信号始终一直是高电平,是不是初始化哪里有问题?
void ADS1148_READ_DATA()
{Multi_SPI1_Init(Multi_SPIIstance,Baud_2000K,8,SPI_Master);unsigned char temp,data;unsigned char Spi_write_data[3];Spi_write_data[0]=0x12;//read commandSpi_write_data[1]=0xff;Spi_write_data[2]=0xff;
// Current_START_LOW;Current_START_HIGH;ADS1148AssertCS(0);delay10us();Spi_Read_Write_8bit(Spi_write_data,3,&Multi_SPIIstance);ADS1148AssertCS(1);
// Current_START_LOW;for(temp=0;temp<2;temp++){data=Spi_write_data[temp];HV_Data=(HV_Data<<8)|data;}
}