Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
07.07.2009, 12:53
|
|
Временная регистрация
Регистрация: 08.12.2006
Сообщений: 84
Сказал спасибо: 5
Сказали Спасибо 13 раз(а) в 10 сообщении(ях)
|
Дрожание изображения, генерируемое микроконтроллером
Генерирую простой чернобелый видеосигнал контроллером ATmega162, работающем на частоте 20МГц. Строки второго полукадра повторяют строки первого полукадра. Все синхросигналы по длительности выверены с точностью до 0,05 мкс (1 такт контроллера) с ГОСТ-ом.
Всё бы хорошо, да вот беда, присутствует мало заметное дрожание изображения по строкам и вертикальные полосы местами не идеально прямые.
Кто-нибудь сталкивался с генерированием видеосигнала? Подскажите в какую сторону тут можно копать?
Программно проверил всё, синхросигналы идут в правильной последовательности, правильной длительности и в нужном количестве. Уже начал грешить на телевизор, однако, подключаю к нему денди, никакого дрожания изображения нет.
Обвязка между микроконтроллером и телевизором такая же, как на этой схеме: http://www.serasidis.gr/circuits/AVR...s/image002.jpg
|
|
|
|
07.07.2009, 13:22
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Как вы в программе начинаете развертку строки?
По прерыванию?
А скорость реакции на прерывание зависит от того на какой команде оно произошло. Не знаю как на 20 МГц, на 8-ми разница в 1 такт была очень заметна.
Потому делал так:
SLEEP
вывод строки
и опять на SLEEP
В конце строки все равно есть "пустое", неотображаемое время.
Ну и, естественнно, чтобы во время вывода никаких других прерываний не было.
Не по прерыванию, а по ожиданию флага? Так ведь ветвление тоже не за такт делается.
|
|
|
|
07.07.2009, 13:40
|
|
Временная регистрация
Регистрация: 08.12.2006
Сообщений: 84
Сказал спасибо: 5
Сказали Спасибо 13 раз(а) в 10 сообщении(ях)
|
Все прерывания запрещены! Микроконтроллер больше ничего не делает, кроме как генерирует видеосигнал. Все задержки сделаны пустыми циклами с учетом кол-ва тактов на проверку условия и переход. Задержки выверены в отладчике. От кадра до кадра в отладчике проходит ровно 800000 тактов (40 мс), от строки до строки ровно 1280 тактов (64 мкс).
|
|
|
|
07.07.2009, 14:28
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Отладчик это конечно хорошо... Но изображение-то дрожит
Покажите тогда программу, что ли.
|
|
|
|
07.07.2009, 15:40
|
|
Прописка
Регистрация: 29.06.2006
Сообщений: 218
Сказал спасибо: 34
Сказали Спасибо 65 раз(а) в 37 сообщении(ях)
|
Для м-схем OSD повышеннные требования к крутизне фронта и среза импульсов. Вы можете посмотреть любой даташит к OSD.
|
|
|
|
07.07.2009, 16:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,729
Сказал спасибо: 2,435
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Размер изображения (по горизонтали) телевизора с диагональю 61см будет примерно 50см или 500мм.Время активной части строки видеосигнала =50 мксек.То есть дрожание фазы изображения в один такт (0,05мксек) даст на экране 0,5мм, что весьма заметно.
Длительность тактов высталена, скорее всего, точно,но их фаза.в разных строках,наверное различается.
Посмотреть-бы все это телевизионным осциллографом.
|
|
|
|
07.07.2009, 18:48
|
|
Частый гость
Регистрация: 06.07.2006
Сообщений: 41
Сказал спасибо: 3
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
|
Это биения между
строчной частотой и программой.
Делал лет 5 тому назад на PIC.
Без внешнего клока не обойтись.Принцип такой.
Генератор на 74HC00 на 20мГц+триггер защелка 74HC74 .
МК от кадрового импульса отсчитывал нужное количество строк.Перед нужной строкой МК защелкивает триггер и такты не проходят до начала следующей строки.
МК просто стоит.
По фронту строки триггер опрокидывается выдаем в эту строку нужное,снова останока.
По фронту следующей строки всё повторяется.
Таким образом погрешность получается 50 нсек.
|
|
|
|
07.07.2009, 21:18
|
|
Прописка
Регистрация: 14.08.2006
Сообщений: 106
Сказал спасибо: 19
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
без внешнего клока
Сообщение от udar
|
Это биения между
строчной частотой и программой.
Делал лет 5 тому назад на PIC.
Без внешнего клока не обойтись.
|
Глупости, что то криво делали. Попробуйте этот проект http://www.alexm.lainnet.lv/pal_gen.htm Ни чего дрожать не будет, ни на каком экране и без внешнего клока.
|
|
|
|
07.07.2009, 21:21
|
|
Прописка
Регистрация: 14.08.2006
Сообщений: 106
Сказал спасибо: 19
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Сообщение от kaf-0
|
От кадра до кадра в отладчике проходит ровно 800000 тактов (40 мс), от строки до строки ровно 1280 тактов (64 мкс).
|
Нуна смотреть как Вы делаете уравнивающие врезки как начинаете новый кадр. Как точно выдерживаете тайминги врезок уравнивающих и синхро импульсов.
|
|
|
|
07.07.2009, 22:06
|
|
Частый гость
Регистрация: 06.07.2006
Сообщений: 41
Сказал спасибо: 3
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
|
Цитата:
|
Глупости, что то криво делали.
|
Знакомое выражение.
Делалось для врезки в видеосигнал .Часы на экране.
По приведенной ссылке сигнал с МК является синхронизирующим.У меня наоборот синхронизирующим был видеосигнал с камеры наблюдения.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:29.
|
|