|
|
(не показаны 9 промежуточных версий 1 участника) |
Строка 1: |
Строка 1: |
| Шина I²C предназначена для последовательной передачи управляющих сигналов. Для этого в ней используются две двунаправленные линии: D (Data, SDA) - для передачи управляющих данных, и C (Clock, SCL) - для синхронизации. | | Шина I²C предназначена для последовательной передачи управляющих сигналов. Для этого в ней используются две двунаправленные линии: D (Data, SDA) - для передачи управляющих данных, и C (Clock, SCL) - для синхронизации. |
| | | |
− | Особенностью применения шины I²C в полётных контроллерах мультикоптеров является параллельное подключение всех [[Контроллеры моторов|контроллеров моторов]] к шине. | + | Особенностью применения шины I²C в полётных контроллерах мультикоптеров является '''параллельное''' подключение к шине всех периферийных устройств (датчиков, модулей [[компас]]а/[[GPS]] или, например, [[Шина I2C в Mikrokopter|контроллеров моторов в Mikrokopter]]. |
− | | + | |
− | | + | |
− | | + | |
− | == Рекомендации по обеспечению безошибочной работы шины I2C ==
| + | |
− | # Вывести напрямую из FC провода C-D и землю от процессора, эти 3 провода уходят в контроллеры.
| + | |
− | # Провода в экране, экран соединён с общей землёй коптера, на стороне контроллеров висит в воздухе.
| + | |
− | # Провода проходят внутри балки. Контроллеры размещены на балках максимально близко к куполу.
| + | |
− | # Силовые провода толстые и короткие 3-4 см.
| + | |
− | [http://multicopter.ru/forum/viewtopic.php?p=20828#p20828 Источник]
| + | |
− | | + | |
− | # Замена кондеров вместо 220uF на 2xCapxon 330uF LZ (Ultra Low Impedance)
| + | |
− | # Добавил согласование и фильтр на шину, как в [[Mikrokopter BL-Ctrl V2.0|регулях 2.0]] (два резистора по 27 Ом последовательно, и конденсатор 1uF на SDA)
| + | |
− | # Поменял подтяжку шины к питанию +5В на 3.6к как в 2.1, вместо 1к (в 2.0)
| + | |
− | # Шина i2c проложена в экранированом кабеле, со стороны регулей экран не замкнут, со стороны [[Mikrokopter FlightCtrl|FlightCtrl]] экран подключен к минусу питания.
| + | |
− | Помогло, но не сильно. Посчитал суммарную емкость шины, вышло около 800 pF. Это очень много. После чтения мануалов поменял pull up резисторы на главной плате на 750 ом, что в общем-то за пределами рекомендаций по i2c, и знаете, помогло - ошибки ушли, по крайней мере на 3S. На будущее сделал выводы: провода шины как можно короче, регули в центр, ну а с охлаждением как-то разберемся. Резисторы подтяжки начинать с 4.7к и уменьшать до пропадания ошибок, но ниже 750 ом опускаться уже стремно. Провод шины (если провод, а не печатный проводник) - как можно с меньшей емкостью.
| + | |
− | [http://multicopter.ru/forum/viewtopic.php?p=20793#p20793 Источник]
| + | |
− | | + | |
− | * Уменьшать сопротивление минусового провода питания регулятора (увеличивая сечение или укорачивая его)
| + | |
− | * Ставить качественные конденсаторы большей емкости с низким ESR (эквивалентным последовательным сопротивлением, низкоимпедансные). Минимизируют просадки и скачки земли при импульсах.
| + | |
| | | |
| == На что обратить внимание == | | == На что обратить внимание == |
− | * Согласно [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 шина должна иметь общее питание! | + | * Проверять I²C на КЗ с помощью мультиметра не советую, там вольтаж подаётся, способный убить I²C. [http://multicopter.ru/forum/viewtopic.php?p=25061#p25061] |
− | | + | |
− | | + | |
− | == Гальваническая развязка ==
| + | |
− | Применение [[ADUM1250ARZ]] по идее должно решить все известные проблемы с ошибками шины I2C. [http://multicopter.ru/forum/viewtopic.php?p=20811#p20811] [http://multicopter.ru/forum/viewtopic.php?p=20797#p20797]
| + | |
− | | + | |
− | Кроме того, неисправность одного контроллера мотора не позволит подвесить всю шину, остальные контроллеры смогут работать как будто ничего не случилось.
| + | |
− | | + | |
− | [http://multicopterwiki.ru/downloads/ADUM1250.pdf ADUM1250ARZ PDF]
| + | |
| | | |
| == Ссылки == | | == Ссылки == |
Строка 39: |
Строка 12: |
| == См. также == | | == См. также == |
| * [[Конвертер I2C в PWM]] | | * [[Конвертер I2C в PWM]] |
| + | * [[Шина I2C в Mikrokopter]] |
Шина I²C предназначена для последовательной передачи управляющих сигналов. Для этого в ней используются две двунаправленные линии: D (Data, SDA) - для передачи управляющих данных, и C (Clock, SCL) - для синхронизации.
Особенностью применения шины I²C в полётных контроллерах мультикоптеров является параллельное подключение к шине всех периферийных устройств (датчиков, модулей компаса/GPS или, например, контроллеров моторов в Mikrokopter.