打印
[其他ST产品]

ads1261使用问题

[复制链接]
437|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laocuo1142|  楼主 | 2021-6-7 11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设备是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应该正常。大家是否另有见解?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1188

主题

5182

帖子

12

粉丝