完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
2个回答
|
|
您应该是没有发送完整的帧造成的,如下截图所示,对于大多数命令,一帧中有八个words。在DIN上,主机提供命令,如果启用输入CRC,则提供命令CRC,如果禁用输入CRC则提供一个0 word,以及6个0 words。同时在DOUT上,设备输出来自前一帧命令的响应、表示六个ADC通道的六个ADC数据字和一个CRC字。datasheet |
|
|
|
在I2C通信中,ADS131M06读取寄存器时需要一定的延时,这是因为I2C通信协议的特性和ADS131M06内部处理机制决定的。以下是一些可能的原因:
1. **I2C通信协议的时序要求**:I2C通信协议规定了严格的时序要求,包括起始条件、地址传输、读写位、应答位等。在发送指令后,需要等待一段时间以确保ADS131M06有足够的时间处理指令并准备数据。 2. **ADS131M06内部处理时间**:ADS131M06在接收到读取寄存器的指令后,需要一定的时间来处理这个指令,包括从内部存储器中读取数据。这个处理时间可能因芯片的不同而有所差异。 3. **I2C总线延迟**:I2C总线上的信号传输可能受到线长、线阻、电容等因素的影响,导致信号传输延迟。这种延迟可能会影响到ADS131M06接收指令和发送数据的时间。 4. **主设备处理时间**:主设备(如280049)在发送指令后,也需要一定的时间来准备接收数据。如果主设备处理速度不够快,可能会导致读取到错误的数据。 在你提供的代码中,如果在`return sendCommand(OPCODE_NULL);`后添加断点,程序能正常读到寄存器值,这可能是因为断点导致程序暂停,从而给了ADS131M06足够的时间来处理指令和准备数据。 为了解决这个问题,你可以尝试以下几种方法: - **增加延时**:在发送指令后,增加一定的延时,以确保ADS131M06有足够的时间处理指令和准备数据。 - **检查I2C总线**:检查I2C总线的连接是否正确,是否存在线长过长、线阻过大等问题。 - **优化主设备处理速度**:优化主设备(如280049)的处理速度,确保它能够及时处理ADS131M06发送的数据。 - **使用I2C库函数**:如果可能,使用I2C库函数来处理I2C通信,这些库函数通常已经考虑了I2C通信的时序要求和延迟问题。 请注意,具体的延时值需要根据你的硬件配置和实际测试结果来确定。 |
|
|
|
只有小组成员才能发言,加入小组>>
351 浏览 1 评论
546 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
790 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
660 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1140 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
85浏览 29评论
314浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
262浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
210浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
69浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 20:24 , Processed in 0.949861 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号