都知道STM32的I2C Master有雷 没关系模拟I2C绕过去
I2C Slave不好用模拟 仔细研究手册好像也没彩蛋 抱着侥幸心理用用看
ok 按照手册代码完成 轮询3天无一丢包发给客户测试就不ok了 I2C查不通 查不通 不通
样品退回来挂上主机通的啊 又连续轮询无一丢包又仔细研究手册,协议,代码看不出任何问题
协议很简单类似24Cxx EEPROM 把数据地址看成是一个命令,收到STOP中断后处理数据后把要返回的数据放内存缓冲等待主机读取
STA 0xA0 ACK 00 ACK STO
STA 0xA1 ACK D0 ACK D1 ACK D2 NACK STO
具体要读多少字节无所谓有效数据之后读出的都是0
能看出什么问题吗 反正我的2万块的zlg逻辑分析仪告诉我very nice
发给客户还是查不通 无奈亲自跑了一趟上海 确实是查不通的 别人的产品都能通 why 难道他们的控制器跟我们公司有仇吗?
百思不得其解找客户借了台示波器
STA 0xA0 ACK 00 ACK RSTA 0xA1 ACK 00 ACK 00 ACK 00 NACK STO
RSTA 不就是STOP+STA吗?
打开103手册问RSTA要怎么处理?
103手册:RSTA什么鬼不认识,你要是以为 RSTA=STOP+STA而且我还会给你一个STO中断那是你太天真了.
打脸了有木有 珍爱生命远离STM32F1的I2C
|