发 帖  
原厂入驻New
ads1261使用问题
700 STM32 寄存器
分享
本帖最后由 大学士鳌拜 于 2020-1-15 15:21 编辑

刚注册,没积分,站着求解答。
设备是ads1261+STM32F429ZI开发板
使用CubeMX配置的SPI5。
使用HAL_TransmitReceive(&hspi5,TxBuffer,RxBuffer,1000)进行SPI通讯。
根据手册,ads1261在power_on的时候会RESET。
第一个操作就是读取这个AD的STATUS寄存器(地址为01h),CRC关闭时RREG命令格式如下:
               byte1____________byte2__________byte3
发送        0x20+addr         Arbitary            00h
接收        FFh                     Echo byte1       Register data
执行 以下代码:

TxBuffer [3]={0x21,0x00,0x00};
RxBuffer[3];
HAL_TransmitReceive(&hspi5,TxBuffer,RxBuffer,1000)
完毕后RxBuffer={0xFF,0xA1,0xFF};
如果我继续在读一次该寄存器,则RxBuffer ={0x80,0xFF,0x80};
如果不停读下去,RxBuffer 会在{0x80,0xFF,0x80};和{0xFF,0xB0,0xFF};之间交替
结果显然是错误的!
问题:
1.Echo byte1  字面意思是字节1的回声,是不是应该是 0x20+addr ?我试了很多命令,收到的Echo byte1 都是发送命令的第一字节的高位bit置1,就像上面的0xA1
2.无论读哪个寄存器,读到的寄存器数据都是0xFF;这是为什么?
3.我认为SPI应该正常。大家是否另有见解?



0
2020-1-14 22:58:24   评论 分享淘帖 邀请回答

相关问题

2个回答
首先保证你能够读取到ID信息,这个片子的通讯时钟不能太快
2020-1-16 09:29:15 评论

举报

看不懂啊   英文都是什么意思
2020-2-8 11:32:08 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
关闭

站长推荐 上一条 /6 下一条

快速回复 返回顶部 返回列表