[单片机芯片]

CH582 硬件I2C的问题

[复制链接]
205|2
手机看帖
扫描二维码
随时随地手机跟帖
pq113_6|  楼主 | 2023-3-18 12:21 | 显示全部楼层 |阅读模式
本帖最后由 pq113_6 于 2023-3-18 12:35 编辑

请问一下,CH582 硬件I2C,如何发送RESTART,发送完地址后需要再发START
CTRL1 |= RB_I2C_START;
后面的发送数据就失败了,而且只能断电才能再工作。接的是EERPOM,地址时0xA0,下面是打印数据:
Send 0xA0
***********************
CTRL1:401
CTRL2:3c
OADDR1:a0
OADDR2:0
DATAR:0
STAR1:1
STAR2:3
CKCFGR:c006
RTR:13
Send Mem Addr
***********************
CTRL1:401
CTRL2:3c
OADDR1:a0
OADDR2:0
DATAR:0
STAR1:84
STAR2:7
CKCFGR:c006
RTR:13
ReStart
***********************
CTRL1:401
CTRL2:3c
OADDR1:a0
OADDR2:0
DATAR:0
STAR1:84
STAR2:7
CKCFGR:c006
RTR:13
Send 0xA1
***********************
CTRL1:401
CTRL2:3c
OADDR1:a0
OADDR2:0
DATAR:0
STAR1:1
STAR2:3
CKCFGR:c006
RTR:13
Send Byte a1 : 2, 3


Send Byte a1 : 2, 3表示发送地址0xA1错误,返回时STAR1和STAR2的值为2,3

使用特权

评论回复
zhuotuzi| | 2023-3-19 17:08 | 显示全部楼层
确认地址没错吗,跑一下官方的例子看看。

使用特权

评论回复
pq113_6|  楼主 | 2023-3-20 10:04 | 显示全部楼层
zhuotuzi 发表于 2023-3-19 17:08
确认地址没错吗,跑一下官方的例子看看。

写没问题,用逻辑分析仪可以看到写256个字节都是正确的,就是读有问题,官方那个例子不知道接的什么,应该不是EEPROM。直接跑的话(相当于没接I2C从设备),写数据直接卡死了,好像是直接卡再START里面了。

使用特权

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

本版积分规则