MinimOsd на Atmega 644

Как известно, наш соотвечественник и коллега, известный под ником Night Ghost переработав программный код из стандартной миним осд весьма симпатичную и функциональную версию, однако развитие прошивки ОСД в очередной раз уперлось в ограничение железа - в 30 оставшихся байтах флеша не разгуляешься. А при этом новая улучшенная версия знакогенератора - AB 7456 от My A ir b ot - имеет возможность переключения на второй набор символов! Что открывает совершенно новые возможности по отрисовке псевдографики.

Поэтому давно висела в воздухе идея заменить АТмегу328 на что-нибудь побольше, дабы было где разгуляться. С тем чтобы дать проекту начало я нарисовал тестовый прототип новой платы. При разработке руководствовался идеями Night Ghost`а

в частности заведено аппаратное прерывание для отрисовки экрана за пределами кадрового импульса
выведен второй usart на внешний разъем
сделаны делители для подключения мониторов двух батарей (силовой и видео)
выведены пины для подключения RSSI и датчика тока
на плате использованы Jst sh 1.0 на 4 и 6 пинов для подключения Serial и два 5-pin для подключения видеопередатчика.
Разъемы видео передатчика спланированы таким образом чтобы видео передатчик ts5828 можно было бы не меняя разъема и не делая специального переходника удобно подключать как через осд так и напрямую
габариты платы осд сделаны близкими к размерам этого передатчика.
В осд использована улучшенная микросхема осд, которая в отличие от своего прототипа MAX7456 работает уже от 3,3 вольт, потребляет на порядок меньше энергии и практически не греется

При разработке этой платы ставилась цель сделать образец удобный для разработки и отладки,
Если все задуманное удастся - сделаем более компактную версию для миниатюрных леталок.
в настоящее время габариты 18Х29мм

схемка

Что собственно требуется.

  1. высказать идеи по совершенствованию осд автору программного кода
  2. высказать замечания и пожелания по аппаратной части мне. либо в Комменты этого блога либо по ссылке выше.
  3. Привлечь внимание всех заинтересованных (прошу сообщить вашим друзьям и знакомым)

Пополняемый по ходу обсуждения список идей, пожеланий
по софту

-прикрутить контроллер ксиоми
-возможность кодировать в КСИ данные для треккера
-побаночное измерение вольтажа батареи
-github.com/ShikOfTheRa/scara...ree/VTX/MW_OSD. возможность управлять передатчиком
-возможность подключение второго канала телеметрии для целеуказания на преследуемый объект при коллективных полетах:)

по харду
-замечена ошибка vsync , исправлена
-замерять потребление и сравнить с миним осд классическим
-возможно понадобится добавить резисторы 22 оm по всем сигналам от процессора к Ab7456 для минимизации шумов CPU
-возможно понадобится добавить еще один стабилизатор для отдельного питания Ab7456
-добавить цепь из диода и резистора на видеовыход для кодирования в кси данных для треккера
( как это было сделано у smalltim,(вывод PD7)
cloud.mail.ru/public/5Z7X/ZW4z9xVn2)
-побаночное измерение батареи в полноразмерной версии
-микро версия платы с процессором в корпусе qfn- нет управляемого диода, помигать нечем

  • не подписаны контакты ISP хотя на второй стороне есть место
  • добавить светодиод с PB1 на землю

заметки для пайки сборки, необходимое для прошивки
см. вики

вики

  • 6596
Comments
Hyperion

с моей колокольни было бы интересно интегрировать с этим проектом
rcopen.com/blogs/7830/20971
чтобы использовать осд сразу для отображения данных с модуля управления камерой xiaomi.

AlexeyStn

Присоединяюсь к пожеланию по поводу Xiaomi

arb

А атмега тоже будет с пониженным потреблением? А то вроде по разводке запитано на 3.5В.

arb

Кстати, а какое планируется потребление?

SergDoc

Правый нижний угол верхней картинки - чего-то не хватает… резюк или кондёр в воздухе висит…

alexeykozin

спасибо, серг, вот что значит глаз алмаз,
усмотрел потерянный Vsync
благодаря тебе сэкономил 20 баксов и месяц времени)
платки перезаказал, картинки в шапке темы заменил

alexeykozin
arb;bt154235

А атмега тоже будет с пониженным потреблением? А то вроде по разводке запитано на 3.5В.

да, при 16 мгц должна стабильно работать от 3,5
но на всякий случай если что не так есть место под перемычку вместо стабилизатора

alexeykozin
Hyperion;bt154232

с моей колокольни было бы интересно интегрировать с этим проектом
rcopen.com/blogs/7830/20971
чтобы использовать осд сразу для отображения данных с модуля управления камерой xiaomi.

AlexeyStn;bt154233

Присоединяюсь к пожеланию по поводу Xiaomi

хорошо, я включу в список предложений по прошивке

alexeykozin
arb:

Кстати, а какое планируется потребление?

сейчас не скажу точно, когда сравинивали MAX и AB заметили разнице и в потребелении и тепловыделении, но не законспектировали сколько конкретно, но нагрева совсем нет

arb
alexeykozin;bt154242

да, при 16 мгц должна стабильно работать от 3,5
но на всякий случай если что не так есть место под перемычку вместо стабилизатора

по даташит вроде написано, что при 3.5В до 10МГц. А для 16Мгц с 4.5В.
Я не думаю, что здесь нужна высокая частота, но вроде для низких частот фильтр больше в размерах.
Кстати, если будет перемычка, то видео чип чем будет питаться. Я думал стаб для него в первую очередь.

arb
alexeykozin;bt154245

сейчас не скажу точно, когда сравинивали MAX и AB заметили разнице и в потребелении и тепловыделении, но не законспектировали сколько конкретно, но нагрева совсем нет

малый нагрев радует. Сразу обратил внимание.
Про потребление спросил, чтобы запроектировать себе питание с расчетом на это ОСД.
Если сейчас нет данных, подожду. Просто неплохо озвучить по возможности.

alexeykozin
arb;bt154247

по даташит вроде написано, что при 3.5В до 10МГц. А для 16Мгц с 4.5В.

эксперименты с atmega328p показали что стабильно работает от 3,3 на 16 мгц, но тут 644 всякое может быть, накрайняк поставим другой стаб в этом же корпусе

emax

del

alexeykozin
emax;bt154269

надо один выход avr соединить с выходным видеосигналом через диод и резистор, как здесь rcopen.com/forum/f8/topic484803/4
тогда можно будет в будущем передавать телеметрию на землю во время КГИ. Да тогда еще и hsync надо завести на какое-нибудь прерывание, что бы начало строки отслеживать.

идея интересная, но тут еще нужно смотреть есть ли у нас ресурсы процессора во время КГИ во время VSYNC проц скидывает в видеочип обновление экрана, в принципе отправка по spi реализована аппаратно и может быть что получится.

схема в весьма смазанном качестве, переменный резистор и диод d12 в базу транзистора? можете нарисовать как бы это могло быть для минимосд?

emax

del

alexeykozin
emax;bt154277

Мы летаем на прошивке от Кирилла

я думаю надо обязательно поставить эксперимент с прошивкой night ghost и проблемной камерой. хотя принцип и схожий, но реализации разные, возможно проблемы в прошивке night ghost вообще нет…

alexeykozin

предложение по диоду, резистору, поддержке данных для треккера внес в чеклист.

Pacific

<мечтательно>побаночный бы контроль… с выводом самой просевшей банки.

alexeykozin

побаночный контроль требует отдельного контроллера который мог бы общаться с осд
дело в том что 1. нужна тщательная калибровка каждого канала. нужна гальваническая развязка т.к. привязка по земле должна быть четко в разъем балансира. если тупо вывести все банки на осд

  • попрут помехи на видео
  • неподготовленный пользователь потенциально все сожжет.

посему предложение- рассмотреть побаночный контроль как отдельное подключаемое по сериалу гальванически независимое устройство

Pacific

тщательная калибровка для каждой банки не сложнее, чем для vbatt и vbatt2. У Ghost-a неплохо реализовано в конфигураторе ввод своих коэффициентов.
Не понял про гальваническую развязку. Если мы меряем vbatt и vbatt2, то земли от батарей уже есть. И опять же, если мы не боимся помех от vbatt и vbatt2, то почему мы боимся помех от отдельных банок этих батарей?

Фактически, нужно добавить дополнительные аналоговые входы с делителями (2 входа для 3s или 3 входа для 4s). Достаточно оформить эти входы в виде пятачков на плате для адвансед юзеров.
А в софте сделать обработчик вывода наименьшей банки.
Ну, это мечталка на будущее.

alexeykozin

>Не понял про гальваническую развязку. Если мы меряем vbatt и vbatt2, то земли от батарей уже есть
земля на банке и земля на силовом проводе батареи - разная. большие токи снимаемые с батареи через силовой провод, даже при относительно небольшом сопротивлении жилы создают напряжение , в результате измерение непосредственно с банки будет сильно отличаться при точном побаночном контроле

Pacific

Понял, о чем речь )
Правда, даже не прикидывал, сколько в реале это падение составляет.
Лично я меряю батарею на силовом разъеме аккумулятора, поэтому в реале «точного контроля» не происходит. Боюсь, у подавляющего большинства летчиков аналогично. Так что на опасения типа неточного контроля я бы забил. Если акки рассчитаны на большИе токи, то и провода на них соответствующие.
ИМХО, лучше иметь ошибку в милливольты, чем прозевать умирающую банку.

arb

Я думаю лучше отдельно сделать такое устройство. Во-первых, не всем надо, а во-вторых, проще скомпановать.
И как бы силовую правильнее заводить в полетник. Это для видео можно посматривать, а силовую чуть прозевал и пока. А полетник на автомате отследит.

Arkady68
alexeykozin;bt154288

>Не понял про гальваническую развязку. Если мы меряем vbatt и vbatt2, то земли от батарей уже есть
земля на банке и земля на силовом проводе батареи - разная. большие токи снимаемые с батареи через силовой провод, даже при относительно небольшом сопротивлении жилы создают напряжение , в результате измерение непосредственно с банки будет сильно отличаться при точном побаночном контроле

Алексей, с балансировочного разъема мы получаем напряжение всех банок включая ноль первой банки. Ноль первой банки можно с тем же успехом измерять как и полюса всех остальных банок и вносить коррекцию падения напряжения на силовом земляном проводе.
По поводу разводки платы, вы знакомы с микроОСД? Она раза в два меньше вашего варианта, очень хотелось бы сохранить достигнутые размеры, тем более с учетом пониженого энергопотребления…

arb

На вид 644 больше 328. Так что вряд-ли получится сделать такие же размеры и разъем занимает много места. Штырьки выглядят меньше, если сразу только использовать провода. А так скорее удастся сократить 2 мм.

Arkady68

Разъемы это еще одна проблема. У меня есть негативный опыт использования таких разъемов с ОСД. Маленькие разъемы при нежестком креплении платы или вибрациях могут терять контакты так как не очень плотно сидят на месте. Если уж так необходим разъем то лучше два маленьких объединить в один большой на 8 пинов. Но я сторонник жесткого впаивания, наелся уже пропаданий ОСД при интенсивном маневрировании. Я предлагаю пэды под тонких силиконовых проводов, тем более если решим добавить входы для побаночного измерения батареи- размеры дополнительного разъема еще сильнее увеличат размер ОСДшки. А размеры это наше всё!

Pacific

Идею с версией платы с пэдами вместо разъемов поддерживаю тремя руками.

kostya-tin

немного не в тему, но где эту AB7456 можно купить?

alexeykozin
Arkady68;bt154298

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

да, так можно.

alexeykozin
Arkady68;bt154298

По поводу разводки платы, вы знакомы с микроОСД? Она раза в два меньше вашего варианта, очень хотелось бы сохранить достигнутые размеры, тем более с учетом пониженого энергопотребления…

я видал эту плату, у нее проц в 4 раза мельче того что стоит на текущей версии, но эта плата в первую очередь для разработки. На будущее надо будет сделать и миним версию.

но тут уж вибирайте что важнее побаночные измерения или микроразмер банально 4-6 банок это уже пятаки для пайки некуда будет ставить на микроверсию. а если их нечаянно замкнуть изза мелкоты …

побаночный измеритель и микро версию добавляю в чеклист

alexeykozin
kostya-tin;bt154312

немного не в тему, но где эту AB7456 можно купить?

напишите производителю mail@myairbot.com
но изза одной штуки будет дорого по доставке.
я брал для тестов, вроде пара штук еще осталась
думаю надо будет купить у него партию для распространения

Arkady68

1.Мой друг лишился дорогой 6S батарейки только из за того, что забыл отключить побаночный измеритель напряжения фирмы FRSKY. (за неделю батарея села и ушла в КЗ)
2.Замечание Алексея по поводу мелкости ОСД и проведения туда кучи проводов от аккумулятора еще один довод в опасности такого типа замера.
Видимо надо разработать дополнительный блок, связаный с ОСД по четырем проводам: два питания, стороб и сигнальный. Если простых процессоров без ATD конверторов уже не выпускают или на этом экономить бессмысленно, можно измерять напряжение в в самом блочке, тогда связь будет всего по 3 проводам. Таким блочком будет невозможно разрядить батарею, он будет безопасен в плане отсутствия силовых проводов от аккума по всему коптеру. 100килоомный делитель не посадит батарею никогда…
Сделать это можно будет в будущем, ну а пока что зарезервировать в программе несколько байт для приема информации по простейшему протоколу 😃

arb

1.Мой друг лишился дорогой 6S батарейки только из за того, что забыл отключить побаночный измеритель напряжения фирмы FRSKY. (за неделю батарея села и ушла в КЗ)

Интересно и что там за принцип измерения, если

100килоомный делитель не посадит батарею никогда…

Видимо надо разработать дополнительный блок, связаный с ОСД по четырем проводам: два питания, стороб и сигнальный.

Неплохая идея. Можно на атмеге. Питание взять со 2 банки.
Только, я считаю, что заводить надо на полетник. ОСД с него инфу все равно получит.
Осталось только выбрать принцип передачи. Или мин напряжение с ЦАП, или по I2C (SPI).

Arkady68
arb;bt154329

Интересно и что там за принцип измерения, если ///
Питание взять со 2 банки.
Только, я считаю, что заводить надо на полетник. ОСД с него инфу все равно получит.
Осталось только выбрать принцип передачи. Или мин напряжение с ЦАП, или по I2C (SPI).

Вот такая же идея- питание взять со второй банки. Эти две банки и умрут если забыть балансный проводок отлючить. Конечно же можно сделать сверхэкономичную схемку, которая и за месяц среднего размера батарею не посадит, но я думаю если все равно тащить жгут, не все ли равно там 2 или 3 провода? Тем более, если измерять на месте, надо делать хороший стабилизатор напряжения, а он уже по определению экономичным быть не может, а если и может то будет совсем не дешёвый. А имея питание с ОСД можно одним стабилитроном обойтись.
Завести на полетник конечно можно, только кто будет для этого полетника программу писать? Ну и протокол там уже не простой потребуется для проформы, а это уже проект…

arb

Насчет питания от дальнего стаба можно согласиться.
Хотя ответ про принцип измерения все же не прозвучал.

Завести на полетник конечно можно, только кто будет для этого полетника программу писать?

Вот здесь не совсем понял. АПМ мерит, пишет в лог и выводит на ОСД.
По мне запись в логе и вывод на ОСД важнее просто вывода на ОСД.

Arkady68
arb;bt154340

Насчет питания от дальнего стаба можно согласиться.
Хотя ответ про принцип измерения все же не прозвучал.

А я не понял что это вопрос.
Принцип измерения строится на делении входного напряжения до уровня меньшего чем логический уровень измерительной микросхемы. Так как входные цепи современных ATD имеют высокий имеданс, то и делитель может быть очень высокоомным. Как то так.

arb;bt154340

Вот здесь не совсем понял. АПМ мерит, пишет в лог и выводит на ОСД.
По мне запись в логе и вывод на ОСД важнее просто вывода на ОСД.

АПМ мерит только один вход, и на индикацию выводит только одно напряжение, и в логи пишет напряжение с одного канала. ПИКС с двух. Вот и все.
По моему мнению измерение напряжение побаночно наиболее критично во время полета, если аккум сдыхает не по правилам и при общем нормальном напряжении одна банка начинает падать… Я думаю что на самом деле надо выводить напряжение не всех банок, а самой просаженной, так и дисплей не перегрузится цифрами и пропустить такое безобразие будет сложнее.

arb

А я не понял что это вопрос.
Принцип измерения строится на делении входного напряжения до уровня меньшего чем логический уровень измерительной микросхемы. Так как входные цепи современных ATD имеют высокий имеданс, то и делитель может быть очень высокоомным. Как то так.

Да меня интересовало почему разрядился. Типа может использовался не высокоомный делитель, а что-то другое. Ну будем считать от питания микры.

АПМ мерит только один вход, и на индикацию выводит только одно напряжение, и в логи пишет напряжение с одного канала. ПИКС с двух. Вот и все.
По моему мнению измерение напряжение побаночно наиболее критично во время полета, если аккум сдыхает не по правилам и при общем нормальном напряжении одна банка начинает падать… Я думаю что на самом деле надо выводить напряжение не всех банок, а самой просаженной, так и дисплей не перегрузится цифрами и пропустить такое безобразие будет сложнее.

Это точно. Смотреть и оценивать все 3-8 банок на экране сложно и бессмысленно. Нужна только просаженная. И в логах писать только ее.
В пиксах 2 это одно, а 2 в ОСД это другое. В результате на экран придется выводить 2 с пикса и 2 своих. Итого 4 напряжения. Зачем столько? На ОСД думаю и 1 достаточно (на всякий случай), чтоб ресурсы не тратить.

alexeykozin

касательно измерения в контрольной точке нуля балансной вилки- ничего не получится без привязки gnd к небольшому отрицательному опорному напряжению это связано с тем что паразитное напряжение возникающее на минусовом проводе силового разъема имеет положительное значение относительно gnd на вилке балансира.

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

Arkady68

На сколько я знаю отрицательное напряжение тоже можно мерить (в определенных пределах разумеется путем предварительного смещения в плюс). Но это не важно, мы с Рамазаном двумя постами выше решили уже что побаночный измеритель будет отдельным блоком. Рамазан только хочет это еще и в логи записывать, но я думаю это невозможно…

alexeykozin

на свою отдельную флешку очень даже можно. но для этого понадобится чип часов, батарейка и подключение к жпс данным для автоматической установки времени

alexeykozin

вопрос по сути осд, по красивым индикаторам итд.
что нужно?
бегущая строка?
индикаторы шкальные, круглые (шлите картинки)
что еще, идеи есть?

arb

По мне.
В первую очередь плавность. Сейчас напрягает квадратный горизонт.
Неплохо бы наложение параметров. А то тот же горизонт занял все место и все. Неплохо наложить как в МП, при этом на выбор русский или не русский вариант.
Для высоты бегущая шкала с цифрой рядом. Курс по этому же принципу.
Напрягает, что не все параметры понятны сейчас.
Для новичков вариант МП в базе вообще был бы актуален. Пока привыкаешь одинаковость помогает. Дальше конечно каждый сам под себя.

Pacific

Хочу выбор выравнивания вывода параметров в пределах отведенных знакомест. Как в обычных редакторах: по левому краю, по правому краю, по центру.
пасиба

upd Хорошо бы иметь возможность форматировать вывод Batt2. Это может понадобиться, например, если подключить датчик температуры LM335 вместо батареи.

Вообще, мне очень нравится, что Ghost практикует возможность форматирования вывода многих параметров.

3km

Отличный проект!
прошу рассмотреть возможность включения в функционал телеметрии для Radiolink.
github.com/zarubik/scarab-osd
это чисто программная функция, аппаратно необходимо запланировать пятаки для подпайки.

DChernov

Пощупал INNOVA OSD-VTX c прошивкой github.com/ShikOfTheRa/scarab-osd/tree/…/MW_OSD.
Само по себе ОСД довольно скудное, но совмещение с управлением передатчиком очень понравилось.
Если бы втянуть функционал управления передатчиком в данный проект - было бы здорово! Из любого модуля передатчика выпаивается один резистор - и можно управлять дистанционно.
Но если в MW-OSD настройки делаются как из ГУИ, так и через экранное меню, то здесь, видимо, только через ГУИ.

Shrizt

Как записаться в бета-тестеры?

alexeykozin

думаю для этого понадобится самостоятельно спаять контроллер
касательно сроков выхода бэта версий разумно спросить у автора программного кода

alexeykozin

пополнил инфу в шапке.
зы. как хорошо когда есть редактируемая шапка

arb

Алексей, а не было идеи вместо Atmega 644 воспользоваться stm32f0 (1).
По идее меньше размер больше возможностей.