你好
我在使用adxl362传感器采集加速度值,现在遇到一个问题,就是从adxl362中读取数据时,读取的值都是0x00.。
具体信息如下:
设计上VS是与VDD使用一个电压,同时这个电压与cpu的工作电压也一样,spi的clk是500khz,时序都完全符合要求
。工作电压是2.8v。
不断测试,发现经常在读adxl362数据时读取的值是0x00.但如果长时间不上电,再上电大概率读取到正确的数据,
如果运行一段时间后,再下电、上电运行,这时读取adxl362数据的值都是0x00。
测试函数很简单。
ADXL362_SetRegisterValue(0x84,ADXL362_REG_INTMAP1,1);
ADXL362_GetRegisterValue( temp, ADXL362_REG_INTMAP1, 1);
HexOutByte(temp);
ADXL362_GetRegisterValue( temp, ADXL362_REG_PAR
tiD, 1);
HexOutByte(temp);
上面设置中断寄存器ADXL362_REG_INTMAP1的值为0x84.读取到的值是0x00.
测试波形看,写入的数据确实是0x84,包括写入命令0x0A,地址都正确。读时测量到读命令0x0B,和地址,但读
到的数据一直是0x0。
读取ADXL362_REG_PARTID的值也是0x00.这个值初始值是0xF2.
但我通过测试,发现当出现上面情况时,还是能读取fifo数据的,很奇怪。
以上说明adxl362在一定情况下会出现不响应读取指令情况,请问会有什么原因导致adxl362出现这种情况呢?我
用的
单片机是msp430f5438A。adxl362芯片资料上也无上电顺序要求,复位要求。
谢谢