我使用F28335与ADIS16488通过SPI通信,连接图和官方手册一样,供电为3.3V,先去用SPI读取传感器的PROD_ID,按照手册上写的,如果读取为0X4068,则代表SPI协议读取正确。
问题在于,我同样的连线,最开始上电能读取数据,ID和其他参数都没问题,放几天之后就不能读取数据了,输出始终为高电平。SPI设置没问题,用他读取ADIS16405可以读取。
我使用F28335与ADIS16488通过SPI通信,连接图和官方手册一样,供电为3.3V,先去用SPI读取传感器的PROD_ID,按照手册上写的,如果读取为0X4068,则代表SPI协议读取正确。
问题在于,我同样的连线,最开始上电能读取数据,ID和其他参数都没问题,放几天之后就不能读取数据了,输出始终为高电平。SPI设置没问题,用他读取ADIS16405可以读取。
void ADIS16488_init(void)
{
GpioDataRegs.GPASET.bit.GPIO27 = 1; // iSensor_CS拉高
DELAY_US(1000);
GpioDataRegs.GPACLEAR.bit.GPIO27 = 1; // iSensor_CS拉低
DELAY_US(1000);
Uint16 PROD_ID = 0;
Mcbspb_SPI_TX(0x8003); // 转到第3页
Mcbspb_SPI_TX(0x8280); // 软件复位配置
Mcbspb_SPI_TX(0x8300);
DELAY_US(500000);
Mcbspb_SPI_TX(0x8000); // 转到第0页 读取数据
if(PROD_ID != 0x4068)
{
while(PROD_ID != 0x4068)
{
GpioDataRegs.GPACLEAR.bit.GPIO27 = 1; // iSensor_CS拉低
DELAY_US(1000);
Mcbspb_SPI_TX(0x7E00);
PROD_ID = Mcbspb_SPI_RX();
GpioDataRegs.GPASET.bit.GPIO27 = 1; // iSensor_CS拉高
DELAY_US(1000);
}
}
GpioDataRegs.GPACLEAR.bit.GPIO27 = 1; // iSensor_CS拉低
DELAY_US(1000);
}
你好 我也遇到同样的问题,请问下你解决了嘛 ,能加下qq嘛1309737053 请教下 谢谢