请教I2C通信被电机干扰的问题
给电机FOC控制板添加I2C通信功能,电机线不接(没有三相电流)一切正常。一接上三相线,I2C通信就有概率ackfail或者传输数据错误。
1个电机板子做主机,若干个电机板子做从机,还有1个I2C读取的陀螺仪模块(距离主机最远,约50cm),相当于I2C总线上有4~6个个I2C设备。
测试发现,I2C读取陀螺仪模块很稳定,任何情况下都不会受到干扰。而电机从机在不接三相线时也通信正常。
这说明干扰源头是电机控制的三相电流,而且干扰局限在从机PCB板内部,因为读取最远处的陀螺仪一直没问题,这说明I2C总线和主机之间的通信是不受干扰的。
---------------------------------------------------------------------------------------------------------------------------------------------------
想请教如何去除这种干扰,是不是把电机控制的功率地和I2C通信的数字地分开,只在单点用磁珠或者0ohm电阻相连?还是需要多加几个电容?(处于节省空间考虑,不想用485或CAN)
要不要减小上拉电阻,从4.7kohm减小为2kohm?还有人建议我给SCL和SDA加100pf滤波电容,但说实话我没听说过给I2C总线加电容的。
希望大佬给点意见
软件工程师掌握逻辑分析仪排查bug很重要 这种情况需要用示波器看下波形, 本帖最后由 dukelec 于 2024-6-28 18:45 编辑
最直接有效的方法是源头降低噪音:降低 mos 管 gate 脚的驱动电流
i2c 并联电容也是可以降低干扰的,我的 cdcam 串口摄像头,之前接长一点排线的 ov2640 会有问题,后来 i2c 上拉电阻并电容改善很多,可以看一下 cdcam 最新原理图,github 可以查到
节省空间可以用 dfn 3x3mm 的小封装 485 芯片,且底部大焊盘可以不画,空间留下来走线 电机控制板还是不要用iic这种消费类媒体总线吧。换成差分485或者can总线吧。在可靠面前,一切易用性都要让步。 dukelec 发表于 2024-6-28 17:32
最直接有效的方法是源头降低噪音:降低 mos 管 gate 脚的驱动电流
i2c 并联电容也是可以降低干扰的,我的...
(引用自4楼)
为什么说是mos管栅极驱动电流导致的噪声?根据测试,只要不接电机,单纯地让三相逆变器高频地开关并不会干扰I2C
楼上说的换485协议 本帖最后由 dukelec 于 2024-6-29 12:42 编辑
NFYG2022 发表于 2024-6-28 20:43
为什么说是mos管栅极驱动电流导致的噪声?根据测试,只要不接电机,单纯地让三相逆变器高频地开关并不会 ...
(引用自6楼)
mos 输出空着,即便输出电压再陡,因为没有接导线,没有天线效应,不会有多少干扰
mos 输出接电机,首先有导线,然后电机线圈关电的瞬间,mos 死区的时间,线圈电压会突变很大(mos 等效开关瞬间断闸,要是没有 mos 寄生二极管钳位,理论上都能打火花的那种)
而降低 mos gate 电流,mos 开关速度会变慢(mos 等效电阻缓慢增大到无穷,平稳过度),那么线圈电压突变就会小很多,产生的干扰就会小很多,代价是 mos 效率低一些、死区时间也要加长一些
有打火花(或者有倾向)的带线圈的电路,才是最猛的干扰源,譬如有刷电机也算一个,碳刷容易产生火花。拿线圈在电池上摩擦会产生火花应该都玩过吧。 dukelec 发表于 2024-6-29 08:54
mos 输出空着,即便输出电压再陡,因为没有接导线,没有天线效应,不会有多少干扰
mos 输出接电机,首先 ...
(引用自8楼)
那我把栅极电阻从10ohm换到22ohm,让他开关波形不那么陡峭试试 本帖最后由 zhuyi25762 于 2024-6-30 20:00 编辑
SCL和SDA加100pf很多啊,很多传感器的推荐电路上都会加
我有个产品用510的上拉+100pFI2C通信干到10米,不受变频器和电机的干扰,很稳定,不加就不行
页:
[1]