I2C
Admin (обсуждение | вклад) (→Рекомендации по обеспечению безошибочной работы шины I2C) |
Admin (обсуждение | вклад) (→На что обратить внимание) |
||
Строка 25: | Строка 25: | ||
* Согласно [http://www.nxp.com/documents/user_manual/UM10204.pdf официальной спецификации (PDF)], ёмкость шины не может быть больше 400 nF, что эффективно лимитирует шину на длину около нескольких метров. теперь прикинем, что это октокоптер с длиной пропеллеров 12х3.8 - в результате длина одного I2C провода может достигать 35см, помножить всё это на 8, получаем 280см - почти 3 метра, что само по себе уже МНОГО для этой шины. Таким образом, вынос регуляторов на балки под пропеллеры становится проблематичным. [http://multicopter.ru/forum/viewtopic.php?p=20811#p20811 Источник] | * Согласно [http://www.nxp.com/documents/user_manual/UM10204.pdf официальной спецификации (PDF)], ёмкость шины не может быть больше 400 nF, что эффективно лимитирует шину на длину около нескольких метров. теперь прикинем, что это октокоптер с длиной пропеллеров 12х3.8 - в результате длина одного I2C провода может достигать 35см, помножить всё это на 8, получаем 280см - почти 3 метра, что само по себе уже МНОГО для этой шины. Таким образом, вынос регуляторов на балки под пропеллеры становится проблематичным. [http://multicopter.ru/forum/viewtopic.php?p=20811#p20811 Источник] | ||
* Для нормальной функциональности I2C шина должна иметь общее питание! | * Для нормальной функциональности I2C шина должна иметь общее питание! | ||
− | + | ||
+ | |||
+ | == Гальваническая развязка == | ||
+ | Применение [[ADUM1250ARZ]] по идее должно решить все известные проблемы с ошибками шины I2C. [http://multicopter.ru/forum/viewtopic.php?p=20811#p20811] [http://multicopter.ru/forum/viewtopic.php?p=20797#p20797] | ||
+ | |||
+ | [http://www.terraelectronica.ru/pdf/AD/ADUM1250.pdf ADUM1250ARZ PDF] | ||
== Ссылки == | == Ссылки == | ||
* [http://www.nxp.com/documents/user_manual/UM10204.pdf Официальная спецификация PDF] | * [http://www.nxp.com/documents/user_manual/UM10204.pdf Официальная спецификация PDF] |
Версия 13:48, 13 января 2012
Шина I²C предназначена для последовательной передачи управляющих сигналов. Для этого в ней используются две двунаправленные линии: D (Data, SDA) - для передачи управляющих данных, и C (Clock, SCL) - для синхронизации.
Особенностью применения шины I²C в полётных контроллерах мультикоптеров является параллельное подключение всех контроллеров моторов к шине.
Содержание |
Рекомендации по обеспечению безошибочной работы шины I2C
- Вывести напрямую из FC провода C-D и землю от процессора, эти 3 провода уходят в контроллеры.
- Провода в экране, экран соединён с общей землёй коптера, на стороне контроллеров висит в воздухе.
- Провода проходят внутри балки. Контроллеры размещены на балках максимально близко к куполу.
- Силовые провода толстые и короткие 3-4 см.
- Замена кондеров вместо 220uF на 2xCapxon 330uF LZ (Ultra Low Impedance)
- Добавил согласование и фильтр на шину, как в регулях 2.0 (два резистора по 27 Ом последовательно, и конденсатор 1uF на SDA)
- Поменял подтяжку шины к питанию +5В на 3.6к как в 2.1, вместо 1к (в 2.0)
- Шина i2c проложена в экранированом кабеле, со стороны регулей экран не замкнут, со стороны FlightCtrl экран подключен к минусу питания.
Помогло, но не сильно. Посчитал суммарную емкость шины, вышло около 800 pF. Это очень много. После чтения мануалов поменял pull up резисторы на главной плате на 750 ом, что в общем-то за пределами рекомендаций по i2c, и знаете, помогло - ошибки ушли, по крайней мере на 3S. На будущее сделал выводы: провода шины как можно короче, регули в центр, ну а с охлаждением как-то разберемся. Резисторы подтяжки начинать с 4.7к и уменьшать до пропадания ошибок, но ниже 750 ом опускаться уже стремно. Провод шины (если провод, а не печатный проводник) - как можно с меньшей емкостью. Источник
- Уменьшать сопротивление минусового провода питания регулятора (увеличивая сечение или укорачивая его)
- Ставить качественные конденсаторы большей емкости с низким ESR (эквивалентным последовательным сопротивлением)
На что обратить внимание
- Согласно официальной спецификации (PDF), ёмкость шины не может быть больше 400 nF, что эффективно лимитирует шину на длину около нескольких метров. теперь прикинем, что это октокоптер с длиной пропеллеров 12х3.8 - в результате длина одного I2C провода может достигать 35см, помножить всё это на 8, получаем 280см - почти 3 метра, что само по себе уже МНОГО для этой шины. Таким образом, вынос регуляторов на балки под пропеллеры становится проблематичным. Источник
- Для нормальной функциональности I2C шина должна иметь общее питание!
Гальваническая развязка
Применение ADUM1250ARZ по идее должно решить все известные проблемы с ошибками шины I2C. [1] [2]