我尝试使用来自i2c包的i2cdetect实用程序来检测i2ctools总线上的rtc设备。由于我在扫描i2c总线时看不到任何东西,所以我使用示波器,在第9 SCL的上升边缘上,我在SDA信号上得到了一半的振幅。
进一步详情:
你通常测量的电压是多少?在不寻常的情况下是什么?
正常电压: 0V为0逻辑,3.3V为1逻辑。在不寻常的情况下,我测量1.4V (在正常情况下,几乎是1逻辑的一半电压)。
你有拉起电阻和开式收集器驱动器的方式吗?
是的,SDA和SCL线路是用4k7电阻拉上来的,rtc器件被配置为开路漏(CMOS)。
主从双方在同一电压下工作吗?
是的,在3.3V
@马丁·汤普森:谢谢。因此,这是我的i2c总线的原理图(实际上,只连接了一个rtc设备)。
3.3V 3.3V 3.3V 3.3V
____ ____ ____ ____
| | | |
| +--+ +--+ |
| 4k7 | | 4k7 | | |
+-----------------+ | | | | +--------------+
| | +--+ +--+ | |
| FPGA Cyclone 4 | | | | Real time |
| (Altera) | | | | clock |
| GPIO | ---SDA----------------+-------------------|-------------| ST m41t83 |
| | | | |
| | ---SCL------------------------------------+-------------| |
| | | |
| | | |
+-----------------+ +--------------+
| |
| |
_____ ______
0V 0V这是示波器的屏幕截图,它接收SDA和SCL信号:
SDA
________ ______________ _________________________________ __ ___________
| | | | | | | | |
| | | | | | | | |
| | | | | _____| | | |
| | | | | | | | |
|______| |_______| |________________________________| |_____| |_______________
SCL
____________ ___ ___ ___ ___ ___ ___ ___ ___ ___ _______________________________
| | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
|___| |___| |___| |___| |_______________________________| |___| |___| |___| |___| |___|当我使用i2cdetect实用程序(i2cdetect 0 0x680x68)从linux向地址0x68的rtc设备发送请求时,将获得这些信号。
顺便说一句,对不起,我的ascii设计不好,但由于我是新的论坛,我不能张贴图片。希望这是可以理解的
关于“屏幕截图”的澄清:scl和SDA的振幅约为3.5V,而在不寻常的情况下(在9 scl的上升边缘)为1.4V
发布于 2018-03-20 12:09:06
我得到了同样的问题,它是有关的SDA/SCL的IOs配置上的主(应使用开放式排水,而不是推拉)。
https://stackoverflow.com/questions/18890629
复制相似问题