OSD на ATmega1281

Kappitoshka

На счет преобразователя.

Я где то видел отличную схему SEPIC для питания ноутбука в машине. Там правда только “+” гальванически развязан, но он преобразовывает 9-16 -> 12в.
www.rlocman.ru/shem/schematics.html?di=33999

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

Dikoy
msv:

LDO или обычный линейник рассеивает одинаковую мощность при одинаковом входном/выходном напряжении и токе…

Нет. Тепловая мощьность, выдетяемая на переходе, складывается из прямого тока, сопротивления и падения напряжения на управляющем элементе стабилизатора. Последние два понятия не одно и то же.
Падение зависит от физико-химических свойств полупроводника. Пример - мосфет или IGBT транзисторы, которые управляют сотнями ампер при этом не греясь, когда как биполярник на том же токе и напряжении расплавился бы нафиг. Та же система и в стабилизаторах.
Потому сейчас многие задачи, которые раньше решались только импульсниками, могут быть решены LDO. Например, вот этот очень массовый и ширподребный зверь сам лопает всего 2 мкА: ww1.microchip.com/downloads/en/…/21874b.pdf У меня в головке он формирует 3,3 вольта из 5 для питания гиро и пирометров.

msv:

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

Вы сражаетесь с мельницей, ИМХО. Вам надо взять 12 вольт входного и через пару LDO распитать от него всю станцию. А ноутбук пусть живёт своей жизнью. И не нужна будет никакая гальваническая развязка. На видеопередатчик подать 12 прямо со входа. Уверен, что у него внутри свои стабилизаторы и 12 там нужно ±лапоть. Те же TI выпустили целую линейку линейных стабилизаторов, заточеных под авто: focus.ti.com/docs/prod/folders/…/tl751l05.html

msv:

МС34063 не совсем шим, даже совсем не шим.

Зато доступность на уровне 7805. На край - разломать китайскую автозарядку для сотового и там она будет 😉 100% ШИМ, это L4971. Хорошая микра, я ей ЖПС питал на авто с бортсетью 12/24 вольта. Увеличением дросселя и кондёра бобиваемся нужного уровня шумов.

msv
Dikoy:

Нет. Тепловая мощьность, выдетяемая на переходе, складывается из прямого тока, сопротивления и падения напряжения на управляющем элементе стабилизатора. Последние два понятия не одно и то же.

😵Посчитайте сами какая мощность рассеивается на обычном и LDO линейнике при скажем 12v входного, 5v выходного и токе в нагрузке 500ма…

Dikoy:

И не нужна будет никакая гальваническая развязка.

Тут сложнее… Всю агрументацию я уже привели, да она собственно на поверхности… Вы не видите проблему, а она есть… 😃

Lazy

Решил проблему радикально.
Собрал себе комп для наземки на базе вот такого:

Монитор поставил с питанием 12В, привод антенны тоже 12В. А если не хочется постоянно гонять двигатель в автомобиле, то беру бензоагрегат на 900 Вт и 7А БП на 12В.

msv

Такую платку интересно поставить бы на борт… 😃 Правда у меня не хватает фантазии, какие еще задачи надо решать на борту, где не справится единственная мега… 😃
То, что все потребители 12в-ые, не гарантирует отсутствии проблем с земляной петлей…

MikeMDR
Dikoy:

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

…при полностью открытом переходе!!! А в линейном (к коим обычно и относится LDO) стабилизаторе,например, “5в из 12в” вне зависимости от применяемого транзистора (мосфет, IGBT или биполярник) будет падать 7в!!!

Dikoy:

Пример - мосфет или IGBT транзисторы, которые управляют сотнями ампер при этом не греясь, когда как биполярник на том же токе и напряжении расплавился бы нафиг.

Это скорее отностся к импульсным стабилизаторам. А в линейном стабилизаторе “на сотни ампер” расплавился бы нафиг и мосфет, и IGBT!

Dikoy:

Та же система и в стабилизаторах.
Потому сейчас многие задачи, которые раньше решались только импульсниками, могут быть решены LDO. Например, вот этот очень массовый и ширподребный зверь сам лопает всего 2 мкА: ww1.microchip.com/downloads/en/…/21874b.pdf У меня в головке он формирует 3,3 вольта из 5 для питания гиро и пирометров.

Не надо путать “тёплое с мягким”😉. LDO будет эффективнее импульсника при малой разнице между входным и выходным напряжением и(!) при малых токах нагрузки(да и то, в Вашем случае КПД будет менее 66%😵). В остальных случаях, если бы не цена и не помехи, то про линейные все забыли бы!

Dikoy
msv:

Вы не видите проблему, а она есть…

Я пытаюсь её избежать 😉

msv:

Посчитайте сами какая мощность рассеивается на обычном и LDO линейнике при скажем 12v входного, 5v выходного и токе в нагрузке 500ма…

Во-1, хрен бы с ней. Автомобильному аккуму это что слону дробина, во-2 не будет у вас там постоянных потребителей 500 мА при наличии LDO в каждой цепи. А значит и мощьность эта на ЛДО выделяться постоянно не будет.
Сколько есть 900 серва? Миллиампер 200. А работает не всегда и не на 100%. Про мегу вообще молчу - 20 мА максимум со всем фаршем. Ядро, то вообще 1 мА по даташиту.
На кой лях лепить 1 импульсник, с дросселем, Low ESR кондёрами и прочими радостями, да ещё настраивая фильтры под его частоту, когда можно поставить 5 LDO по 15р (и пару керамик спереди/сзади) и получить надёжный девайс?

MikeMDR:

А в линейном (к коим обычно и относится LDO) стабилизаторе,например, “5в из 12в” вне зависимости от применяемого транзистора (мосфет, IGBT или биполярник) будет падать 7в!!!

Я говорю про тепло на переходе, оно убивает. Стабы сейчас могут 80 градусов держать практически неограничено долго. Перепады этой температуры убьют, да, но пребывание на ней на ресурс почти не влияет. Посмотрите хотя бы схемотехнику отладочных плат атмела STK200-300-500

MikeMDR:

А в линейном стабилизаторе “на сотни ампер” расплавился бы нафиг и мосфет, и IGBT!

Да не о том вы все…

MikeMDR:

LDO будет эффективнее импульсника при малой разнице между входным и выходным напряжением и(!) при малых токах нагрузки

Неа. Ещё, и это главное, LDO будет адекватно работать в широком диапазоне токов нагрузки и на пол ставки подрабатывать фильтром. Чтобы так заработал импульсник, надо тщательно продумывать схемотехнику, рассчитывать все режимы и т.д. И на практике всё равно начинает мозг клевать.
Примеры я уже приводил - производители делают целые серии линейников для авто. Зачем, спрашивается? 😃
Импульсник адекватен на больших токах нагрузки и(или) большой разнице вход/выход, вольт 20 или более. Ну или для КПД, но тут опять же нужен постоянный ток нагрузки, иначе вся оптимальность пойдёт лесом по логарифму. На кой лях для данной задачи два последовательных импульсника - не понимаю категорически. Мазохизм?..

msv
Dikoy:

Я пытаюсь её избежать

И как? Двадцатый раз… Про сервы забудем… Первым делом подключил ноут через DC/DC без развязки к прикуривателю. И к прикуривателю же подключил приемник. Соединил по видео ноут-приемник,- жуткая помеха на картинке на ноуте. Питание приемника проверил осциллом - все чисто. Ваши действия?😉
Ну пытаться опровергать магические свойства LDO по сравнению с простыми линейниками уже лениво… А с импульсниками сравнивать как бы некорректно…

Потому сейчас многие задачи, которые раньше решались только импульсниками, могут быть решены LDO.

Очень узкий круг задач. Когда разница между входом и выходом гарантировано больше 2В практически без разницы LDO или простой линейник.
Ладно, офф затянулся…
Поскажите, как лучше сделать миникарту? Самое очевидное натаскать jpeg-ов из какой-нибудь “планета-земля” и сделать ручками привязку к координатам. Но наверняка более приличное решение есть…
Правда, строго говоря, это тоже офф…

cvy7

совсем даже не офф 😃
посмотреть на openpilot.org - там под qt4 все это сделано
и кросплатформа реальная ,и под лицензией правильной 😃 😃 😃
те можно надергать и сделать свое со своей функциональностью

Dikoy
msv:

Питание приемника проверил осциллом - все чисто.

Я так понимаю, приёмник был также подключён к прикуривателю? Тогда какой смысл был проверять его питание? Помеха очевидно идёт от БП либо с его выхода, через цепи ноутбука (землю например), либо, что вероятней, от самого БП по воздуху. Вы бы фотку хитросплетений проводов показали, стало бы яснее.
Если же приёмник был подключён после БП, то там в принципе не могло быть чистого питания 😉

msv:

Ну пытаться опровергать магические свойства LDO по сравнению с простыми линейниками уже лениво…

Выделять анахронизмы системы 7805 в отдельный класс “обычных линейников” Ваша иницатива. Сейчас все линейники ЛДО, даже КФ1158ЕН501А.
Я же пытался отговорить от применения импульсника, ибо в вашей задаче он не нужен. Ну и от 7805 за одно, т.к. к ней тут на форуме питают явную любоффь. Ну да дело ваше. Я таких проблем не имею, питая наземку как от прикуривателя, так и от USB ноута (версия без слежения). Кстати, есть там версия и с ИБП, сепиком, чтобы питать наземку от 2-4 банок липоля. Но тут уж без ИБП никак…

msv:

А с импульсниками сравнивать как бы некорректно…

Импульсники бывают разные. Грести все под один шаблон тоже некорректно.

msv:

Поскажите, как лучше сделать миникарту? Самое очевидное натаскать jpeg-ов из какой-нибудь “планета-земля”

Так все и делают, тот же Ози. Самый простой и верный вариант.

msv
Dikoy:

Я таких проблем не имею, питая наземку как от прикуривателя

А как запитываете ноут? Пока я его запитывал через инвертер->БП ноута тоже проблем не было…
БП Наземной станции теперь поприличнее выглядит 😃

Наконец заставил себя обновить схемку осд/ап. Сложно назвать ее окончательной, куча компромиссов… Добавлен канал звука (примитивный унч, даже без ару, плюс пассивный микшер). Добавлен компаратор для группового ппм с приемника (навороченные приемники оказалось могут вообще не иметь компаратора, аналоговый сигнал сразу у них подается на ножку проца). Вся аналоговая часть сейчас собрана на отдельных мелких платках. надоели сопли, решил перенести на одну плату хотя бы ее. Может кому будет интересно…osd.rar

Dikoy
msv:

А как запитываете ноут?

Через китайский БП для ноутбуков, универсальный, стоимостью 570р. В комплекте переходники на все модели. Ещё 50р отдал за тройник в прикуриватель. Через тройник питание уходит на наземку. Версия без слежения питается от одного линейника (можно питать прям от ЮСБ), версия со слежением имеет дополнительно два на каждую серву. Линейники были чуть тёплые в наше сумасшедшее лето, радиаторов нет, все корпуса SMD. Это я к тому, что ваша серва никогда 500 мА на постоянке не возьмёт (если её не стопарить, но в этом случае сработает защита ЛДО по току или температуре).
И вся любовь.
Вообще пришёл к выводу, что блок слежения надо делать самостоятельным. Со своим питанием, а наземку питать от ЮСБ. С наземки кабелёк на блок слежения. Ибо далеко не всегда данный блок нужен.

1 month later
MikeMDR
msv:

Последний вариант схемы могу выложить (надо только себя заставить нарисовать…), hex-ом последней версии поделюсь безвозмездно, те. даром…

Удалось себя заставить 😉?
(Если - “нет”, то, PLS, хотя бы в двух словах: в чём отличие от первоначальной схемы?)

msv

Дык сообщение 222… Там правда тоже неточности по номиналам есть, но пока повторять никто не собирается- не принципиально…
ЗЫ Очень медленно и жутко лениво пишу софтину для наземной станции. С захватом видео (DirectDraw), мини-картой (свой движок), виртуальной приборной панелью, трендами параметров. Такими темпами, не уверен, что вообще закончу…

MikeMDR
msv:

Дык сообщение 222… Там правда тоже неточности по номиналам есть, но пока повторять никто не собирается- не принципиально…

Признаю свою ошибку - проглядел!!! (Когда тема ушла в сторону БП - читать стал менее внимательно…😌)
А теперь, восстановив былые навыки кодинга и получив АрдуиноМега1280 - решил начать с повторения чужого опыта. Поэтому, (если не сильно затруднит), можно чуть-чуть подробнее о неточностях в номиналах…😋

MikeMDR

P.S. забыл сказать САМОЕ главное: Большое Спасибо!!!

korall
msv:

За длинные выходные, в перерывах между “отмечаниями” великого празника, осилил передачу телетексто-подобных тестовых строк с OSD на свою GrounStation. Передаю в двух строках по 24-байта. 1,5 байта теряется на синхронизацию+0.5байта номер фрейма+2байта на CRC итого в остатке 40 байт чистых данных на полукадр. Более чем достаточно выдать практически все что можно с самолета, по сути в реальном времени…

Тоже озадачился данной темой, если не секрет расскажите по подробней алгоритм синхронизации начала посылки, есть ли привязка к КСИ и ССИ или вполне возможно выловить синхробайт из видео сигнала, а также пару слов ,как реализована аналоговая часть декодара ?

msv
korall:

есть ли привязка к КСИ и ССИ

Да. Первоначально планировал синхру ловить встроенным в мегу компаратором, а для данных- внешний LM311. Но почему то (не понял почему) данные надежнее (при больших изменения опорного напряжения) хватались через встроенный компаратор, хотя по дш быстродействие у него значительно меньше… Пришлось внешний пустить для синхро. Знал бы, поставил вместо него 1881…
Так что по импульсам видео-синхронизации, отсчитываю нужный номер строки от начала кадра, дальше захват синхро-байта и синхронный прием.

korall:

как реализована аналоговая часть декодара ?

Был уверен, что выкладывал схему… За точность номиналов не гарантирую, может что слегка менял…
В принципе могу и исходники GS выложить, но там понять кроме меня что-то довольно сложно…😃
ЗЫ Забыл для 311 подтягивающий резистор на выходе нарисовать…

korall

Если есть привязка к СИ видео сигнала, зачем тогда нужен целый синхро байт? почему нельзя сразу начать прием данных после нужного ССИ за старт используя первый же перепад уровня по типу USARTA . А уж если использовать синхронизирующую последовательность байт, то ведь можно её отловить и без видео СИ, и как мне кажется так будет более надежно.
Проводились ли испытания на устойчивость передачи данных в условиях плохого приема изображения ?
Если исходники не на СИ то интересно былобы взглянуть ,особенно интересует начало приема синхро байта и момент где принимается решение, что закончился синхробайт и начинаем прем пакета. если не в напряг то это место с коментами, или просто на словах опишите процедуру.
За ламерские вопросу прошу сильно не пинать, так как в теме не оч. шарю,и пытаюсь вникнуть в суть.
Спасибо за внимание !

MikeMDR
korall:

Если исходники не на СИ то интересно былобы взглянуть

А если на С, то тогда уже мне тоже интересно взглянуть!

msv
korall:

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

Полевых испытаний пока не проводил. Имитируя плохой сигнал интерференциями в комнате, вполне доволен результатом. Пока картинка хоть немного читаема, данные, хоть и с дропами, идут.

korall:

зачем тогда нужен целый синхро байт?

Ну это не синхро-байт в полном смысле слова. Нужен лишь его передний фронт для фазовой синхронизации. А дальше время входа в процедуру прерывания, сохранение регистров, инициализация… Вообщем на все про все теряю 1,5 байта (5 бит пропускаю, дабы сразу попадать бит в бит не занимаясь дополнительно их сдвигами). Может и возможно сделать многие вещи заранее и не “зарыться” в стеке при всех возможных ситуациях, ну уж как сделал…

korall:

А уж если использовать синхронизирующую последовательность байт, то ведь можно её отловить и без видео СИ

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


//-----------------------------------------------------
interrupt [EXT_INT0] void ext_int0_isr(void)
{  // ССИ+КСИ
u_char ind;
static u_char fpv=0;

if(!(PIND & 0x4)) TCNT2=0; // Начало СИ
else
  { // Окончание СИ
  if(TCNT2>30) { gNumLine=0; return; } // КСИ
  if(gNumLine<200) gNumLine++;
  if(gNumLine>=START_LINE_TT)
    { // Пора поработать...
    if(fpv) return; // повторное вхождение, ай-ай..
    fpv=1;
    ind=gNumLine-START_LINE_TT;
    if(ind<COUNT_LINE_TT)
      { // Точно пора работать..
      gVideoBuffPoint=gVideoBuff[ind]; // Указатель на буфер для приема
      ACSR=0x1B;  //AC_int=rising, int_flag=clear
      MCUCR=0x80; //sleep=enable, int0=disable
      #asm("sei")
      #asm("sleep") //wait AC_int, всего готово, спим и ждем прерывания от синхро байта
      }
    if(ind==COUNT_LINE_TT)
      {
      #asm("sei")
      rec_v_data(); // Разбираем, что напринимали.. Контроль CRC, распихиваем по структурам..
      }
    fpv=0;
    }
  }
}

Продолжение следует… (Если еще кому интересно…)