Проблема 3.3V стабилизатора, на некоторых китайских клонах APM2.5

Как известно многим, кто использует в своих устройствах клоны Arduflyer 2.5, 2.5.2 или 2.6, после перехода на версию прошивку выше 3.0.1, возникает проблема со стабилизатором на 3.3В. Она проявляется в том, что в MissionPlaner постоянно появляются сообщения “Bad Gyro health”, а на соответствующих выводах питания датчиков напряжение вместо 3.3В становится около 5.
С подобной ситуацией столкнулся и я. Как и все остальные, я почитав форумы, пришел к выводу, что у меня накрылся штатный стабилизатор 3.3 V. Не долго думая (а стоило бы!) я срезав ножки выпаял его, и вместо него на проводках впаял AMS 1117 3.3. Но увы, это не помогло. Как было на ноге 4.6В так и осталось.
Тогда, я обратился к сообществу пользователей Arducopter, в соответствующей ветке форума, и получил очень ценную наводку от Олега Панкрашкина (Олег24), о том, что китайские клоны, для управления регулятором (или еще каких то целей, но не суть) используют центральный процессор (хорошо описано в дневнике Алексея Козина (alexeykozin)), и что вполне может быть, что напряжение в 4.6 вольта может возникать от выходного уровня одной из ног процессора. После прозвонки ног процессора, и вправду такая нога была обнаружена! Ею оказалась 51 нога процессора ATMEGA 2650 (PG0, она же WR строб, правый нижний угол процессора, последняя нога в вертикальном ряду). Аккуратно отпаяв ногу и повесив ее в воздухе,я получил искомые 3.3в без всяких превышений! После заливки последней прошивки, никаких проблем с сообщениями и работой датчиков!
Далее, настала очередь посмотреть, за что отвечает данная нога. С этого выхода, сигнал подается через преобразователь уровней (c 5в на 3.3В) на микросхему управления записью в микросхему энергонезависимой памяти AT45DB161D-MU. Насколько я понимаю, она служит для записи полетных логов. Соответственно, данный выход необходим для инициализации микросхемы перед ее использованием. Вот код:

#define DF_RESET 41 // RESET (PG0)
.
.
.
// Public Methods //////////////////////////////////////////////////////////////
void DataFlash_APM2::Init(const struct LogStructure *structure, uint8_t num_types)
{
DataFlash_Class::Init(structure, num_types);
// init to zero
df_NumPages = 0;

hal.gpio->pinMode(DF_RESET, GPIO_OUTPUT);
hal.gpio->pinMode(DF_CARDDETECT, GPIO_INPUT);

// Reset the chip
hal.gpio->write(DF_RESET,0);
hal.scheduler->delay(1);
hal.gpio->write(DF_RESET,1);
(далее интересуемый выход нигде не используется)

В общем, я в некотором сомнении корректности подобной модификации. Еще не пробовал, но мне так кажется что логи не должны после неё писаться и читаться из внутренней памяти контроллера. С другой стороны, совсем не ясно, чем руководствовались разработчики клона, когда сажали этот выход на постоянное напряжение в 3.3В. Может просто схематическая ошибка разводки?
upd 28.02
В общем продолжаю расследования интриги и все такое…
Продолжил я ковыряться со своей платой. В общем, после исследования схему платы в Eagle никак не выходило что проблема в разводке. Но так или иначе упорно выходило что соседние ноги преобразователя уровня сигнала из 3.3 в 5В (собственно на которую заводится +3.3 и той, которая и есть сигнальная) соединены.

Тогда я все же решил рискнуть и перерезал таки дорожку ведущую от 51 ноги процессора (номер 1) ко второй (номер 2)ноге преобразователя уровня сигнала. Как и ожидалось - видимо где то сопля на уровне пайки, ибо как звонились обе ноги от 3.3В стабилизатора так так и продолжают. Ногу процессора впаял обратно, по пути едва окончательно ее не отломав.
Увы, первоначальный план прямого подключения к третьей ноге (номер 3 на фото, RESET микросхемы флэш-памяти) не удалась, ибо совсем уж малая площадь контакта с платой. Ну и на выходную линию от преобразователя так же не удалось кинуть проводок - уж слишком тесно и узкие дорожки. Так что, видимо дальше биться конкретно с этой платой не буду, просто учту опыт на будущее. Видимо останусь без возможности вести лог файл в полете, и наверное буду брать после испытаний новую плату, с учетом полученного опыта.

upd 03.03
После монтажа и подключения двигателей, проверил пишутся и читаются ли логи. Пишутся. Читаются. Посему. предварительно можно сказать, что мое решение проблемы обрезанием дорожки на преобразователь хоть частично, но решило проблему. Как будет дальше - судить сложно. Покажут испытания в полетах.

Впредь, у кого возникает подобная проблема, я думаю стоит сперва производить прозвонку выхода стабилизатора и ног процессора . Вполне может оказаться что проблема аналогичная моей

  • 4390
Tags:
Comments
Shuricus

Немного непонятно, нога 51 управляет стабилизатором или флешем? И почему она еще одновременно посажена на 3.3в?

starfair

Ну, все как то становится запутанней и запутанней, по мере того как я пытаюсь разобраться с проблемой 😦.
По схеме, 51 нога занимается сбросом через преобразователь уровней 5/3.3 в микросхеме отвечающей за запись логов. Одновременно с этим, эта же нога почему то, постоянно подключена к выходу стабилизатора 3.3В. Но поскольку на ней постоянно висит с процессора логическая 1 (4.6В) соответственно, постоянно и попадает этот уровень на линии питания по 3.3В.
Далее, на diydrones, сегодня опубликовали заметку, где решение предлагается в районе микросхемы преобразования уровней. Там якобы напутаны уровни (линии питания 3.3 и 5) Если их поменять местами, перерезав дорожки и запаяв ноги (ооочень сложно ибо микросхема и дорожки просто микроскопические), вроде как напряжение стабилизатора становится на нужном уровне (3.3).
Но мне опять не понятно - как происходит управление записью, если по умолчанию выходит, что ниже 3.3В напряжение на вход преобразователя уровней просесть не может (туда же по дорожке все время идет напруга со стабилизатора 3.3) Выходит, сброс никогда не происходит?

DWK

RD(RDR) и WR(WRD) сигналы чтения и записи,во времена ZX с WR(WRD) тоже любили поизгаляться!

starfair

Ну да. Было такое! Только, увы, в конкретно моем случае мне от китайских выпендросов не легче 😦

vlad155

тоже похожая проблеммка… после подвешивания в воздух указанной Вами ноги процессора все заработало… еще у меня в отличии от Вашей фотки на микросхеме той что у Вас в кружочке с номером 2 , левые верхние два контакта закорочены !! может это от этого у меня 4,5в на выходе было вместо 3,3в ( до выпайки ноги51 процессора) ? просто у меня сначала заработал APM а потом , через несколько дней уже не заводился(писал что нет мавлинка)

starfair

Так и у меня они закорочены. Просто я перерезал дорожку, которая +5 выводила постоянно (отмечено крестиком) и тогда проблема с 3.3В ушла.

vlad155

а что,просто с отпаянной ногой процессора нельзя оставить ?

starfair

Честно говоря - не помню уже точно почему я обратно запаял. В теории наверное можно. На практике - можно так случайно и закоротить на соседние ноги или вообще отломать. Я то отпаивал для эксперимента, чтобы понять что к чему. Когда понял что в другом месте причина, проще оказалось перерезать аккуратно и запаять обратно ногу
.

saster

Виталий, здравствуйте.
А на старых версиях МР - напряжение норм?

starfair

Не берусь судить как был реализован код в старых версиях ArduCopter (MissionPlaner тут не причем), но начиная с 3.0.1 версии проверяется калибровка барометра, и при повышенных напряжениях он видимо вел себя как то не так, что и диагностируется как Bad Baro Health. Но собственно, это не означает что нужно летать с указанной проблемой, только сменив прошивку на более старую, или задубив проверку в исходном коде. Вообще, по уму лучше покупать более новые версии контроллеров, где возможно, эта ошибка в разводки платы устранена и применяется стабилизатор не сгорающей от обратного напряжения при подключении USB и внешнего питания одновременно.

AndrewDeTuS

Добрый день всем. У меня вот какая проблема - появилась надпись bad gyro helth но гироскоп при этом работает, не работает барометр (высота не показывается). Померил напряжение оказалось 3.8 вольт. Перепаял стабилизатор, ничего не изменилось. Но даже если его отпаять то все равно 3.8 вольта не пропадают. Куда копать?

starfair

А что за версия платы? Если китайский клон версий 2.5.2 или 2.6 то у них проблема с разводкой. Тогда скорее всего решается как в моем случае - перерезанием дорожки.

AndrewDeTuS
starfair;bt132320

А что за версия платы? Если китайский клон версий 2.5.2 или 2.6 то у них проблема с разводкой. Тогда скорее всего решается как в моем случае - перерезанием дорожки.

Да, Китай. Спасибо, попробую. Но странно вообще. Было то все хорошо.

starfair

Ну, как верно заметил Козин, может и преобразователь уровней конечно быть пробитым, если сперва вышел из строя стабилизатор на 3.3В. Если так, то наверное нужно менять эту микросхему а дело это конечно не для слабонервных 😦

AndrewDeTuS
starfair;bt132369

Ну, как верно заметил Козин, может и преобразователь уровней конечно быть пробитым, если сперва вышел из строя стабилизатор на 3.3В. Если так, то наверное нужно менять эту микросхему а дело это конечно не для слабонервных 😦

Преобразователь проверю конечно. А еще у меня вроде как 51 нога не туда идет и резать нечего. И на плате 3DR написано.

starfair

Ну, если 3DR, то конечно может быть и оригинальная плата. В ней вроде той проблемы которая есть на клоне не было замечено. И кстати, неисправность проявилась не от перепрошивки? Просто, на клонах она появляется именно потому, что начиная с 3.1 версии поменялся алгоритм проверки, и то что раньше не особо хорошо и работало, но не тестировалось стало тестироваться. Если же просто само по себе, без перепрошивки то почти наверняка проблема не схемотехнике платы а в исправности какого то из элементов.

AndrewDeTuS

Было все хорошо. И прошивка 3.2 стояла. Я купил телеметрию, решил подключить к компу. Коптер был разобран частично ао причине сломанного луча. Пока игрался дал питание от внешней батареи 4.8 вольта (питание борта) в итоге так и не соединился комп с контроллером. Потом просто включил через юсб (все остальное отключил) и увидел bad gyro health