已回答假定已回答

从adxl362中读取的数据有时候正确,有时都是0x00,请问有哪些原因呢?

paddyxu 在 2015-3-5 詢問的問題
最後回覆由neilzhao於2015-3-11提供

你好
   我在使用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_PARTID, 1);
     HexOutByte(temp); 

    上面设置中断寄存器ADXL362_REG_INTMAP1的值为0x84.读取到的值是0x00.

    测试波形看,写入的数据确实是0x84,包括写入命令0x0A,地址都正确。读时测量到读命令0x0B,和地址,但读

到的数据一直是0x0。

    读取ADXL362_REG_PARTID的值也是0x00.这个值初始值是0xF2.

    但我通过测试,发现当出现上面情况时,还是能读取fifo数据的,很奇怪。
    以上说明adxl362在一定情况下会出现不响应读取指令情况,请问会有什么原因导致adxl362出现这种情况呢?我

用的单片机是msp430f5438A。adxl362芯片资料上也无上电顺序要求,复位要求。
    谢谢

 


結果