I2C
Admin (обсуждение | вклад) (→Рекомендации по обеспечению безошибочной работы шины I2C) |
Admin (обсуждение | вклад) (→Гальваническая развязка) |
||
Строка 29: | Строка 29: | ||
== Гальваническая развязка == | == Гальваническая развязка == | ||
Применение [[ADUM1250ARZ]] по идее должно решить все известные проблемы с ошибками шины I2C. [http://multicopter.ru/forum/viewtopic.php?p=20811#p20811] [http://multicopter.ru/forum/viewtopic.php?p=20797#p20797] | Применение [[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.terraelectronica.ru/pdf/AD/ADUM1250.pdf ADUM1250ARZ PDF] |
Версия 12:36, 17 января 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]
Кроме того, неисправность одного контроллера мотора не позволит подвесить всю шину, остальные контроллеры смогут работать как будто ничего не случилось.