Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
20.05.2009, 22:54
|
|
Частый гость
Регистрация: 19.08.2005
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
AVR,PIC вывод на VGA , TV,LCD
Помогите плз разобраться с сабжем. Разрабатываю на AVR эмулятор терминала - необходимо принимать символы по RS232 и выводить их на VGA монитор. С первой частью все понятно. Со второй (вывод графики на VGA монитор) тоже проблем думал не будет, т.к. пару лет назад успешно разрабатывал тоже самое но для телевизора, но столкнулся с трудностью. Монитор сигнал определяет, синхру ловит но изображение не выводит. Теперь поподробней:
1)Схема простейшая: ATmega32 на 16 МГц (внешний генератор). Два пина порта D используются для Hsync и Vsync соответственно - подключены к монитору напрямую; один пин через резак 160 Ом подключен к сигналам RGB. Ну и GND. Все.
2)Сначала начал писать прогу с использованием прерываний. Не получилось. Решил тогда для теста написать простейшую программу вывода белого поля на весь экран:
PORTD.2=1; //Hsync
PORTD.3=1; //Vsync
PORTD.4=0; //Video info
while (1)
{
for(line=1;line‹481;line++){
PORTD.4=1; //
delay_us(25); // Видимое изображение
PORTD.4=0; //
delay_us(1); //
PORTD.3=0; //
delay_us(4); // Горизонтальная синхронизация
PORTD.3=1; //
delay_us(1); //
}
delay_us(350); //
PORTD.2=0; // Вертикальная синхронизация
delay_us(60); //
PORTD.2=1; //
delay_us(1000); //
};
}
Информацию о таймингах брал отсюда:
http://vga-avr.narod.ru/vga_timing/vga_timing_RUS.gif
Результат одни - монитор ловит сигнал (пропадает натпись No input signal) а изображения нет. Проверял на 2-х мониторах. Подскажите кто-нибудь, что я не учел? Может кто даст ссылку на какойнибудь провереный похожий проект.
|
|
|
|
21.05.2009, 04:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Формирование VGA сигнала на AVR
А слабо сначала осцилографом посмотреть что формирует PC для этого монитора?...
и как вы вслепую пишете программы .. я диву даюсь...
я бы сначала исследовал что нужно формировать, а уж потом бы писал программу...
И ещё.. при задаче времени выдержек.. как вы учитываете время вызова и возврата из функций? компилятор то может это делать по разному (длинна кода и время прохода)
|
|
|
|
21.05.2009, 10:20
|
|
Частый гость
Регистрация: 19.08.2005
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Формирование VGA сигнала на AVR
Сообщение от picavr
|
А слабо сначала осцилографом посмотреть что формирует PC для этого монитора?...
и как вы вслепую пишете программы .. я диву даюсь...
я бы сначала исследовал что нужно формировать, а уж потом бы писал программу...
И ещё.. при задаче времени выдержек.. как вы учитываете время вызова и возврата из функций? компилятор то может это делать по разному (длинна кода и время прохода)
|
Я никогда не исследую то на что есть открытая документация. Ведь не обязательно исследовать шину I2C или RS232 осцилографом, чтобы их использовать, они отлично документированы. На VGA конкретно одного стандарта нет, но есть инфа с таймингами для различных видеорежимов.
То что выдает мой контроллер я глянул осцилом - вроде все ок.
Не думаю что для реализации vga необходима такая точность, чтобы считать время вызова и возврата функций.
|
|
|
|
21.05.2009, 16:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Цитата:
|
Не думаю что для реализации vga необходима такая точность, чтобы считать время вызова и возврата функций
|
К сожалению Вы ошибаетесь, время отображения одной строки 32 мкС, и даже пара лишних команд может дать отрицательный эффект, особенно, если строки получаются разной длины по времени. А какой размер точки Вы хотите получить на экране? Не думаю, что получится меньше 4-х пикселей.
|
|
|
|
21.05.2009, 21:13
|
|
Частый гость
Регистрация: 19.08.2005
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Хочется добиться отображения 80-ти символов в строке. При каком разрешении еще не знаю, хочу выжать максимум. Предполагаю использовать внешний регистр сдвига, тактировать сдвиг внешним генератором, avr тактировать от него же через делитель. Для начала хочу получить просто изображение, не важно чего.
Когда я делал такую же штуку для телека (пару лет назад) все было без проблем... удалось добиться где-то 40 символов в строке (разрешение 320) без внешних элементов avr, только пара резисторов. Но на сколько я помню телек вообще некритичен к таймингам, там я не учитывал мелочей в виде задержек на вызов функций... правда сам процесс прогисовки изображения был написан на ассемблере, тут каждый такт был на счету. К слову синхроимпульсы телека сложней vga, да еще вдобавок черезстрочная развертка.
Ума не приложу в чем у меня трудность с vga.
|
|
|
|
21.05.2009, 23:25
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Формирование VGA сигнала на AVR
Сообщение от zloy2005
|
1)Схема простейшая: ATmega32 на 16 МГц (внешний генератор). Два пина порта D используются для Hsync и Vsync соответственно - подключены к монитору напрямую; один пин через резак 160 Ом подключен к сигналам RGB. Ну и GND. Все.
.
|
По твоей же ссылке все есть
http://vga-avr.narod.ru/main_rus.html
__________________
Осторожно , злой кот
|
|
|
|
21.05.2009, 23:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
http://www.4dsystems.com.au/prod.php?id=15
Опробовал, работает, более-менее. 620х320 Не помню точно. 256 цветов. Правда пошло со второго варианта. RST ножка плохо работает. Пришлось выключать/включать питание PICASO когда зависнет.
|
|
|
|
22.05.2009, 01:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от Popeye
|
http://www.4dsystems.com.au/prod.php?id=15
Опробовал, работает, более-менее. 620х320 Не помню точно. 256 цветов. Правда пошло со второго варианта. RST ножка плохо работает. Пришлось выключать/включать питание PICASO когда зависнет.
|
специализированый графический контроллер http://delanet.ru/content/view/749/68/
Вы бы сначала посчитали, прежде чем писать. обычно сначала изучают вопрос а уж потом строят алгоритм...
Сообщение от zloy2005
|
Хочется добиться отображения 80-ти символов в строке.
|
80 символов умножим на 7 пикселей на 1 символ = 560 пикселей
теперь 32 микросек / 560 пикселей = 57 наносек на 1 пиксель... думаете успеете?
1 команда 16 мегагерц (ATMEGA) = 62,5 наносек
следовательно один пиксель МИНИМУМ 125 наносек (две команды) или 256 пикселей за 32 микросек или 36 симолов, по 7 пикселя на символ.
Сообщение от zloy2005
|
правда сам процесс прогисовки изображения был написан на ассемблере, тут каждый такт был на счету.
|
В том то и дело, там вы полностью контролировали время выполнения каждого прохода.
Сообщение от zloy2005
|
К слову синхроимпульсы телека сложней vga, да еще вдобавок черезстрочная развертка.
|
Особо ничего сложного, в началае кадра есть врезки удвоеной сторочной частоты.
Я писал когда то декодер для вырезаных синхроимпульсов, кодировали у нас в городе телепрограммы способом удаления синхроимпульсов...
http://vga-avr.narod.ru/main_rus.html
по этой ссылке:
Технические характеристики VGA-адаптера:
Количество символов: 20 строк по 20 символов
Разрешение матрицы знакогенератора: 8x12 точек
Формируемый сигнал: VGA
Разрешение: 640x480
На микроконтроллерах Mega48,88,168 поддерживающих официальную тактовую частоту 20MHz возможно получение разрешения 20 строк по 25-30 символов при абсолютно той же схемотехнике
Мне кажется это задача для быстрого МК мегагерц 80-100 (SCENIX например или из серии PIC на 80 МГЦ) или ПЛИС+RAM+медленый МК, как это делалось в простейших компьютерах.
|
|
|
|
22.05.2009, 01:29
|
|
Частый гость
Регистрация: 19.08.2005
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
picavr, вы бы хоть внимательно прочитали то что я писал. Планируется использовать внешний сдвиговый регистр с тактированием от внешнего генератора. Т.е. avr необходимо записать в регистр 8 бит, "выплевывать" их будет регистр.
Плюс ко всему времени не 32 мкс как пишете вы а еще меньше - 25. Ну не получится 80 символов - не беда. Главное чтобы работало и было дешево.
Вообще я собираю "эмулятор" компьютера altair - так для души. Уже имею "ядро" системы на avr которое эмулирует работу процессора intel 8080. На нем уже запускается Basic 3.2 - тот самый кот. написал Билл Гейтс и кто-то еще... ради этого он кстати бросил учебу. Вывод у моего эмулятора пока только через терминал windows... в принципе на basic програмить уже можно ![Улыбка](images/smilies/icon_smile.gif) . Но хотелось бы прикрутить эмулятор терминала. Видел в нете хороший проект на Paralax Propeller - но это уже слишком я щитаю.
|
|
|
|
22.05.2009, 01:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от zloy2005
|
Видел в нете хороший проект на Paralax Propeller - но это уже слишком я щитаю.
|
таки ИМХО проще на ПЛИС
Сообщение от zloy2005
|
Ну не получится 80 символов - не беда. Главное чтобы работало и было дешево.
|
Ну вы бы тогда с тех заданием сначала определились))))
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Вывод переменной на LCD
|
DDimon |
Микроконтроллеры, АЦП, память и т.д |
9 |
12.01.2009 22:36 |
Вывод русского языка на LCD.
|
uhbwtyrj1987 |
Микроконтроллеры, АЦП, память и т.д |
24 |
12.06.2008 19:55 |
LCD DEM16216 инвертный вывод символов
|
ajborman |
Микроконтроллеры, АЦП, память и т.д |
8 |
02.06.2007 00:00 |
Схема включения LCD панели от Motorola StarTAC для AVR/PIC
|
Gobsek |
Микроконтроллеры, АЦП, память и т.д |
0 |
11.03.2007 17:44 |
Вывод Float на ЖКИ в AVR assembler
|
Tcom |
Микроконтроллеры, АЦП, память и т.д |
18 |
07.03.2006 20:48 |
Часовой пояс GMT +4, время: 04:12.
|
|