Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 20.05.2009, 22:54  
zloy2005
Частый гость
 
Регистрация: 19.08.2005
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
zloy2005 на пути к лучшему
По умолчанию 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-х мониторах. Подскажите кто-нибудь, что я не учел? Может кто даст ссылку на какойнибудь провереный похожий проект.
Реклама:
zloy2005 вне форума  
Непрочитано 21.05.2009, 04:03  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Формирование VGA сигнала на AVR

Сообщение от zloy2005
Информацию о таймингах брал отсюда:
http://vga-avr.narod.ru/vga_timing/vga_timing_RUS.gif
А слабо сначала осцилографом посмотреть что формирует PC для этого монитора?...
и как вы вслепую пишете программы .. я диву даюсь...

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

И ещё.. при задаче времени выдержек.. как вы учитываете время вызова и возврата из функций? компилятор то может это делать по разному (длинна кода и время прохода)
picavr вне форума  
Непрочитано 21.05.2009, 10:20  
zloy2005
Частый гость
 
Регистрация: 19.08.2005
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
zloy2005 на пути к лучшему
По умолчанию Re: Формирование VGA сигнала на AVR

Сообщение от picavr
Сообщение от zloy2005
Информацию о таймингах брал отсюда:
http://vga-avr.narod.ru/vga_timing/vga_timing_RUS.gif
А слабо сначала осцилографом посмотреть что формирует PC для этого монитора?...
и как вы вслепую пишете программы .. я диву даюсь...

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

И ещё.. при задаче времени выдержек.. как вы учитываете время вызова и возврата из функций? компилятор то может это делать по разному (длинна кода и время прохода)
Я никогда не исследую то на что есть открытая документация. Ведь не обязательно исследовать шину I2C или RS232 осцилографом, чтобы их использовать, они отлично документированы. На VGA конкретно одного стандарта нет, но есть инфа с таймингами для различных видеорежимов.
То что выдает мой контроллер я глянул осцилом - вроде все ок.
Не думаю что для реализации vga необходима такая точность, чтобы считать время вызова и возврата функций.
zloy2005 вне форума  
Непрочитано 21.05.2009, 16:29  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию

Цитата:
Не думаю что для реализации vga необходима такая точность, чтобы считать время вызова и возврата функций
К сожалению Вы ошибаетесь, время отображения одной строки 32 мкС, и даже пара лишних команд может дать отрицательный эффект, особенно, если строки получаются разной длины по времени. А какой размер точки Вы хотите получить на экране? Не думаю, что получится меньше 4-х пикселей.
MisterDi вне форума  
Непрочитано 21.05.2009, 21:13  
zloy2005
Частый гость
 
Регистрация: 19.08.2005
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
zloy2005 на пути к лучшему
По умолчанию

Хочется добиться отображения 80-ти символов в строке. При каком разрешении еще не знаю, хочу выжать максимум. Предполагаю использовать внешний регистр сдвига, тактировать сдвиг внешним генератором, avr тактировать от него же через делитель. Для начала хочу получить просто изображение, не важно чего.
Когда я делал такую же штуку для телека (пару лет назад) все было без проблем... удалось добиться где-то 40 символов в строке (разрешение 320) без внешних элементов avr, только пара резисторов. Но на сколько я помню телек вообще некритичен к таймингам, там я не учитывал мелочей в виде задержек на вызов функций... правда сам процесс прогисовки изображения был написан на ассемблере, тут каждый такт был на счету. К слову синхроимпульсы телека сложней vga, да еще вдобавок черезстрочная развертка.
Ума не приложу в чем у меня трудность с vga.
zloy2005 вне форума  
Непрочитано 21.05.2009, 23:25  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Формирование VGA сигнала на AVR

Сообщение от zloy2005
1)Схема простейшая: ATmega32 на 16 МГц (внешний генератор). Два пина порта D используются для Hsync и Vsync соответственно - подключены к монитору напрямую; один пин через резак 160 Ом подключен к сигналам RGB. Ну и GND. Все.
.
По твоей же ссылке все есть
http://vga-avr.narod.ru/main_rus.html
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 21.05.2009, 23:35  
Popeye
Почётный гражданин KAZUS.RU
 
Аватар для Popeye
 
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
Popeye на пути к лучшему
По умолчанию

http://www.4dsystems.com.au/prod.php?id=15
Опробовал, работает, более-менее. 620х320 Не помню точно. 256 цветов. Правда пошло со второго варианта. RST ножка плохо работает. Пришлось выключать/включать питание PICASO когда зависнет.
Popeye вне форума  
Непрочитано 22.05.2009, 01:09  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от 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+медленый МК, как это делалось в простейших компьютерах.
picavr вне форума  
Непрочитано 22.05.2009, 01:29  
zloy2005
Частый гость
 
Регистрация: 19.08.2005
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
zloy2005 на пути к лучшему
По умолчанию

picavr, вы бы хоть внимательно прочитали то что я писал. Планируется использовать внешний сдвиговый регистр с тактированием от внешнего генератора. Т.е. avr необходимо записать в регистр 8 бит, "выплевывать" их будет регистр.
Плюс ко всему времени не 32 мкс как пишете вы а еще меньше - 25. Ну не получится 80 символов - не беда. Главное чтобы работало и было дешево.
Вообще я собираю "эмулятор" компьютера altair - так для души. Уже имею "ядро" системы на avr которое эмулирует работу процессора intel 8080. На нем уже запускается Basic 3.2 - тот самый кот. написал Билл Гейтс и кто-то еще... ради этого он кстати бросил учебу. Вывод у моего эмулятора пока только через терминал windows... в принципе на basic програмить уже можно . Но хотелось бы прикрутить эмулятор терминала. Видел в нете хороший проект на Paralax Propeller - но это уже слишком я щитаю.
zloy2005 вне форума  
Непрочитано 22.05.2009, 01:47  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от zloy2005
Видел в нете хороший проект на Paralax Propeller - но это уже слишком я щитаю.
таки ИМХО проще на ПЛИС

Сообщение от zloy2005
Ну не получится 80 символов - не беда. Главное чтобы работало и было дешево.
Ну вы бы тогда с тех заданием сначала определились))))
picavr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
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.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot