传感技术
直播中

李永每

7年用户 1400经验值
私信 关注
[问答]

从adxl362中读取的数据有时正确有时是0x00的原因?

你好
   我在使用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芯片资料上也无上电顺序要求,复位要求。
    谢谢

更多回帖

发帖
×
20
完善资料,
赚取积分