MinimOSD перестала работать
- Войдите на сайт для отправки комментариев
Всем привет!
Собираю устройство, выводящее информацию на экран монитора. Для вывода использую плату на базе Max7456 и процессора Atmega328. Вот такую:
Их обычно используют авиамоделисты для отображения на экране полетных данных. Мне же надо выводить на экран только одну строчку, поэтому я использую ее нестандартно. Поскольку не все пины Atmega328 распаяны на плате, а подпаяться напрямую к ножкам мне не позволяют кривые руки и страх потерять эту довольно редкую плату, я залил во встроенную Атмегу скетч, который принимает строку по UART и передает ее с помощью библиотеки на Max7456. Скетч очень простой и работает стабильно:
#include <SPI.h> #include <max7456.h> Max7456 osd; char str[20]; String inData; void setup() { SPI.begin(); Serial.begin(9600); osd.init(6); osd.activateExternalVideo(); osd.activateOSD(); } void loop() { while (Serial.available() > 0) { char recieved = Serial.read(); if (recieved == '\n'){ inData.toCharArray(str, 20); osd.clearScreen(); osd.print(str, 4, 30); inData = ""; } else { inData += recieved; } } }
После заливки я подсоединил USB-uart переходник и монитор к плате, отправил на нее пару строк через монитор порта, убедился что они отобразились на экране и продолжил собирать устройство дальше. Собрал все вместе, а именно Arduino Nano + MinimOSD и запитал все это от DC-DC преобразователя LM2596 заранее настроенного на 5В. Включил - не работает. Причем сдохла именно Atmega328: обычно при включении раньше однократно мигал светодиод, соединенный с цифровым пином 13, а теперь перестал. Заменил плату MinimOSD на новую - все заработало как и должно.
Попытки оживить плату были неудачными. Везде на форумах пишут, что у них иногда слетает загрузчик, попытался его залить через разъем ISP на плате, воспользовавшись ардуиной как программатором - получаю ошибку http://joxi.ru/J2byj0LhVxZBBm
Хотелось бы понять из-за чего дохнут эти платы (из 6 штук у меня так сдохли две) и как можно их вернуть к жизни? Ну, например, может кварц у них хилый или еще какое слабое место. Плата довольно редкая и в магазинах города, ее найти проблематично. А ждать из Китая - месяца полтора точно. И как вообще узнать что произошло с ней. У меня в распоряжении есть мультиметр и простенький осцилограф.
Оборудование дохнет из-за ошибок в схеме.
В схеме сложно что-то накосячить, там всего 4 провода: два на питание, Rx и Tx. Ну и на выходе 4 провода: две земли, видео вход и выход. Но выходные цепи и сама Max7456 остались целыми. Т.е. при подаче питания на нее - видеосигнал начинает проходить.
Если бы я перепутал питание - сгорела бы и Max7456. Если бы я перепутал Rx и Tx - ничего бы не произошло. И еще странно то, что вторая плата в той же схеме работает нормально, без сбоев. Я специально переносил по одному проводку с одной платы на другую, чтоб не перепутать. И проверил все на несколько раз.
Ты думаешь, что для удачной схемы достаточно что-то подключить проводами, не проверяя электрических параметров?
Я думаю, что для удачной схемы, собранной из модулей, надо подключать все согласно описанию на эти модули.
Перед подключением я проверил питание, что оно не превышает 5 Вольт (еще специально по мультиметру выставил где-то 4.95, на случай если мультиметр имеет погрешность в несколько сотых вольта). UART-интерфейс - я даж не знаю что там проверять, у меня это два коротеньких провода, длиной сантиметра три. Даже можно использовать один провод, в обратку данные не идут. По сути на левой части платы MinimOSD находится Arduino Pro Mini (там даже загрузчик от Pro Mini), только не все выводы у нее доступны, а те которые доступны приспособлены под замеры полетных параметров (напряжения, тока и т.п.). А две ардуины по UART соединяют просто двумя проводами "крест-накрест".
Поэтому я и не могу понять в чем причина их подыхания. Сначала я грешил на кнопку Reset, которая могла заклинить и быть в постоянно замкнутом состоянии (это единственная "подвижная" деталь на плате). Но удаление кнопки с платы ничем не помогло. Вот и теперь не могу понять где искать причину, и главное как диагностировать
Была мысль еще купить ардуино Pro Mini с таким же камнем и поменять их местами. Но боюсь, что еще больше накосячу, например перегрею проц или сдую феном что-то лишнее. Короче это будет последнее на что я решусь в попытке восстановить этот модуль.
Попытки оживить плату были неудачными. Везде на форумах пишут, что у них иногда слетает загрузчик, попытался его залить через разъем ISP на плате, воспользовавшись ардуиной как программатором - получаю ошибку http://joxi.ru/J2byj0LhVxZBBm
Неужто сложно скопировать сообщение с экрана терминала и вставить в пост? Можно под спойлер.
Нет, нужно лезть на какой то хостинг и рассматривать картинку на которой ничего не видно...
А вы до этого шили загрузчик на подобную плату? Может имеет смысл потренироваться на...
Бывает что шьётся не с первого раза.
Раньше прошивал загрузчик в обычные ардуинки. Не помню прошивал ли в minimOSD. Схема соединений проста: на обоих ISP разъемах мультиметром нахожу массу и +5В, соединяю массы, на minimOSD подаю питание от отдельного источника, ардуино нано питается от USB. Затем соединяю одноименные контакты на ISP-разъемах, контакт Reset от MinimOSD подсоединяю к пину №10 Nano. На ардуинке остаются два не занятых ISP-контакта: Reset и 5V. Далее включаю источник питания для MinimOSD, ардуину подсоединяю к USB-порту компа. В ардуину зашиваю скетч Arduino as ISP, затем в списке плат выбираю ProMini с процессором Atmega328 5V и нажимаю "Записать загрузчик".
Раньше прошивал загрузчик в обычные ардуинки. Не помню прошивал ли в minimOSD. Схема соединений проста: на обоих ISP разъемах мультиметром нахожу массу и +5В, соединяю массы, на minimOSD подаю питание от отдельного источника, ардуино нано питается от USB. Затем соединяю одноименные контакты на ISP-разъемах, контакт Reset от MinimOSD подсоединяю к пину №10 Nano. На ардуинке остаются два не занятых ISP-контакта: Reset и 5V. Далее включаю источник питания для MinimOSD, ардуину подсоединяю к USB-порту компа. В ардуину зашиваю скетч Arduino as ISP, затем в списке плат выбираю ProMini с процессором Atmega328 5V и нажимаю "Записать загрузчик".
нет, надо подключиться всеми 6 пинами, никаких иных питаний на pro mini не подавать, она запитается от ISP программатора
Попробовал запитать от Нано (без сторонних источников) - результат тот же самый
у меня камни не дохли, можно попробовать подкинуть любой кварц, с материнок на 14 с копейками к примеру, плату какую выбираете для программирования? просто двойными вспышками отметился загрузчик от miniCore
Я тоже грешу на кварц, т.к. там другой обвязки особо и нет (ну кроме кнопки, которой уже нет). Встроенный светодиод однократно мигает при подключении нано вместо программатора, значит он исправен. А вот просто при подаче питания - никакой реакции, горит только светодиод питания. Попробую найти SMD-кварц и поменять. Авось поможет. Камень менять побаиваюсь пока. Вдруг еще живой.
подкинуть кварц можно и не смд, да попробуйте версию IDE 1.8.3 она через ISP шьёт без проблем, выше у меня не заработали (не шили)