【BUG】发现一处零知开发板的硬件问题
今天粗略测试了零知开发板(标准F103RB版),发现一处应该能算“错误”的硬件设计,特来记录下。经测试开发板 F103RB、板载接口 A4/A5,以及板载 EEPROM(24C02)连接如下:
F103RB.PC5 <=> A5 <=> EEPROM.PIN5(SDA)
F103RB.PC4 <=> A4 <=> EEPROM.PIN6(SCL)
由于 PC5/PC4 并非硬件 I2C,显然此 F103RB 将使用 IO 模拟 I2C:A5/A4分别模拟SDA/SCL。
然而问题来了:这个 SDA/SCL 顺序与标准 Arduino(例如UNO)相反!
标准的 Arduino 当中,A4 为 SDA,A5 为 SCL。从零知官方论坛截来的这个图片可以看出,零知也推荐 A4 接 SDA.
原链接:http://www.lingzhilab.com/forum.php?mod=viewthread&tid=659
也许有人说,既然是模拟 I2C,SDA/SCL 定义可以软件改,这样就适配标准 Arduino 了。
但是代价呢?核心板上有一个 SDA接在模拟SCL上、SCL接在模拟SDA上的 24C02 在抽风!
紧接着目测就是 24C02 频繁电平冲突,总线上总有一个玩意要报销。
该问题的根源在于:24C02的 SDA(SCL) 被连接在了 A5(A4) 上,但顺序不符合 Arduino 标准。
无论怎么定义模拟 I2C,A5/A4 上总有器件接反了,除非 I2C 用其他端口,也就是放弃与 Arduino 的兼容.....
以上,就是关于零知标准开发板的一点建议,私以为这个问题可大可小,但终究是问题。
附图 24C02 引脚定义:
本帖最后由 零知实验室-roc 于 2019-1-8 09:01 编辑
谢谢你提出问题,最开始的设计是有这个问题,不过我们在软件库上已经避免了,使用EEPROM库不用指定I2C的引脚,硬件上已经固定,使用I2C库时候是和Arduino兼容的,因此你这个问题在使用上并没有啥区别。 零知实验室-roc 发表于 2019-1-8 08:57
谢谢你提出问题,最开始的设计是有这个问题,不过我们在软件库上已经避免了,使用EEPROM库不用指定I2C的引 ...
单独使用EEPROM肯定是没问题的,使用外挂 Arduino_I2C 设备就可能出问题了。
不是说通信成功一两次就没事,是连续几个小时的通信不能有冲突。
毕竟板载 24C02 在外部 I2C 通信时,处于总线反接的状态,并且不能避免。
结果就是:要么拆掉 24C02,要么不要用 Arduino_I2C 扩展板/器件。 t3486784401 发表于 2019-1-8 18:27
单独使用EEPROM肯定是没问题的,使用外挂 Arduino_I2C 设备就可能出问题了。
不是说通信成功一两次就没 ...
同时使用时候也是分时复用的,并不会冲突
页:
[1]