ADI 技术
直播中

方娟

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

ADXRS450读不出数据输出的结果为全高

请问:
我用PIC18的8位单片机SPI控制该陀螺仪,应用电路如下:

SPI部分的时序等均通过示波器验证了正确性,控制流程如下:
Startup();//send 0x02000003    02000000    02000000
Send_450_Command(0x0c,0x00,READ);
Read_450_D_C(recv_buf.S_buf);
product_id = recv_buf.I_buf>>5;

但是就是读不出数据,输出的结果为全高,也就是SPI输入过程采样口均是高位。

现在怀疑是电路的原因,我怎样能判断电路是否工作或陀螺仪是否正常?还有我的电路元件,特别是二极管型号,是不是选错了,其正向压降是0.3V。

回帖(6)

张博

2018-11-14 10:00:05
您好。请您检查一下CP5引脚的电压,是否有近似24V的电压。如果电压比较低的话,那么可能是外部的电感或者二极管不满足要求。也请对应手册检查start up流程,发送0x2000003,0x2000000,0x2000000,0x2000000,时间是否满足对应要求。
举报

方娟

2018-11-14 10:14:39
引用: st94wo 发表于 2018-11-14 08:19
您好。请您检查一下CP5引脚的电压,是否有近似24V的电压。如果电压比较低的话,那么可能是外部的电感或者二极管不满足要求。也请对应手册检查start up流程,发送0x2000003,0x2000000,0x2000000,0x2000000,时间是否满足对应要求。

Dear adi_rock:
 
按照你的提醒检查了CP5引脚的电压是23V,且参考了链接中讨论,发现我与贴中的用户用了同样的错误datasheet
随后我修改了启动序列为 0x20000003 0x20000000 0x20000000。如:WriteSPI(0x20);WriteSPI(0x00);WriteSPI(0x00);WriteSPI(0x00);// spi频率为125khz,两个写字节间的间隔为两个CLK
而后我发送了读取数据命令0x80000000,再发送0x00000000时读取数据。成功读出了数据。
 
非常感谢!
举报

方娟

2018-11-14 10:24:36
引用: st94wo 发表于 2018-11-14 08:19
您好。请您检查一下CP5引脚的电压,是否有近似24V的电压。如果电压比较低的话,那么可能是外部的电感或者二极管不满足要求。也请对应手册检查start up流程,发送0x2000003,0x2000000,0x2000000,0x2000000,时间是否满足对应要求。

Dear adi_rock:
 
抱歉!我发现我得到的响应序列为0x1E0400A5,继续重复检查了多遍,还是依旧这个情况。分别对应:
SPI=1;
PLL=1;
NVM=1;CST=1;

我应该怎么做?
1 举报

张博

2018-11-14 10:36:42
引用: hytgab 发表于 2018-11-14 08:43
Dear adi_rock:
 
抱歉!我发现我得到的响应序列为0x1E0400A5,继续重复检查了多遍,还是依旧这个情况。分别对应:

您好。建议您通过示波器检查一下时序是否正确。
请尝试按照手册推荐的startup进行,发送0x20000003,0x20000000,0x20000000,0x20000000
举报

更多回帖

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