youzaixiaoya 发表于 2025-8-15 15:23:20

ercircle 发表于 2025-8-15 14:38
关于ACK可以搜索I2C总线规范看看:
I2C-bus specification and user manual

谢谢大佬,刚刚手忙脚乱的,已经回复你上一个帖子的链接了,劳烦你看一下,感谢

youzaixiaoya 发表于 2025-8-15 15:27:04

王昱顺 发表于 2025-8-15 15:21
可以将代码和硬件电路图部分一并贴出吗?ADC部分如果容易受到干扰,可以尝试将采样时间拉到最大。因为单片 ...

好的,感谢建议,不过新手第一次打板做这个,没有留出额外的引脚来探测,得等我打新板子了

youzaixiaoya 发表于 2025-8-15 15:31:19

DebugLab 发表于 2025-8-15 15:13
黄色波形上升沿慢,应该是I2C时钟,I2C时钟是单向的信号,不存在电平冲突或释放总线的问题,I2C主机,IO模 ...

有设置主机的,推挽模式也一开始就设置了,都是同样的情况,我在考虑是不是硬件做的不好导致的。在时序上ACK附近经常会出现一个尖峰,这是不符合预期的。如果信号采集时候干扰到了,有可能会导致我单片机无法正确采样。但我不知道怎么去验证他

王昱顺 发表于 2025-8-15 15:31:57

youzaixiaoya 发表于 2025-8-15 15:27
好的,感谢建议,不过新手第一次打板做这个,没有留出额外的引脚来探测,得等我打新板子了
...

可以尝试一下减低i2c的通讯速率,因为我看波形并不是十分方正,如果上升缓慢,则有可能出现检测不到的情况。
因为是I2C主机模式,发CLK,向ADC芯片作为的I2C从机索要SDA。所以要求芯片的SDA驱动能力足够,还有一个问题就是,如果芯片发送的SDA数据是最大5V电压,而芯片使用的电压是3.3的话,需要中间串一个电阻防止电压倒灌到芯片

ercircle 发表于 2025-8-15 15:49:07

youzaixiaoya 发表于 2025-8-15 15:20
你好,因为上一篇帖子有很多代码,所以没有重复发。另外示波器里是SDA和SCL,他们是同在5
V电压的,但是 ...

上一篇帖子里USB相关的问题:
红框里的代码不需要,删掉。
蓝框里这句挪出来,只要进了bUsbOutReady判断条件,就调用usb ouT done;。





youzaixiaoya 发表于 2025-8-15 15:50:57

yao眼的光 发表于 2025-8-15 13:40
您的问题已经帮您反馈给技术,稍后会有回复,耐心等待下

感谢你

youzaixiaoya 发表于 2025-8-15 15:52:04

王昱顺 发表于 2025-8-15 15:21
可以将代码和硬件电路图部分一并贴出吗?ADC部分如果容易受到干扰,可以尝试将采样时间拉到最大。因为单片 ...

硬件电路图我找一下,但是感觉不够清晰,都是用杜邦线飞来飞去的,谢谢大佬

ercircle 发表于 2025-8-15 16:00:45

I2C相关问题:

1.中断里不需要开关EAXFR,初始化时保持常开
2.库函数例程里有硬件I2C,可以替换试下,注意例程里用的查询模式没用中断。
https://www.stcaimcu.com/data/download/DemoCode/AI8051U-SOFTWARE-LIB.zip






ercircle 发表于 2025-8-15 16:06:52

youzaixiaoya 发表于 2025-8-15 15:20
你好,因为上一篇帖子有很多代码,所以没有重复发。另外示波器里是SDA和SCL,他们是同在5
V电压的,但是 ...

波形相关问题:

虽然说是都在5V,但是根据左下角这个1V/div,最后一张图电压对不上?可能要检查下


youzaixiaoya 发表于 2025-8-15 17:34:33

王昱顺 发表于 2025-8-15 15:31
可以尝试一下减低i2c的通讯速率,因为我看波形并不是十分方正,如果上升缓慢,则有可能出现检测不到的情 ...

好的感谢,有确定是5V环境下的。已经在调用看看时钟可以多慢了,非常感谢,感觉也是因为自己做的板子不够好导致的,应答位附近经常有几个不应该存在的尖峰
页: 1 [2] 3
查看完整版本: ai8051u控制adc采集数据 通讯方法为i2c协议与官方usb通讯