Исходники VGA тестера deogen. Помогите разобраться!

Обсуждаем контроллеры компании Atmel.
Ответить
Собутыльник Кота
Аватара пользователя
Сообщения: 2564
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

Хочу разобраться как автор этого исходника строит изображение на VGA мониторе.
Для примера возьмем кусок кода, который отвечает за вывод картинки 640*480*60 Гц
Спойлер

Код: Выделить всё

;*************************************
R640x480x60Hz: /* For VGA 640x480:60Hz the synchro signals are negative polarised */
               cbi  DEO_u8SyncOut,DEO_biSyncV


		//PWM
               ldi acc,((1<<WGM13)|(1<<WGM12)|(1<<CS10)) // clk/1
	           out TCCR1B,acc
               ldi acc,((1<<COM1B1)|(1<<COM1B0)|(1<<WGM11)) //mode14, set on compare match clear at TOP
	           out TCCR1A,acc

		/* 20MHz / 31469Hz = 635.54  = 0x027B*/
		/* Hsync pulse = 3.77us, at 50ns/instr cycle = 75.4 = 0x004B */

               ldi acc,0x02
               out ICR1H,acc
               ldi acc,0x7B
               out ICR1L,acc

               ldi acc,0x00
               out OCR1BH,acc
               ldi acc,0x4A
               out OCR1BL,acc

               
               //38  = 0x0025
               ldi  BC,0x1D
               ldi  D,20
               ldi  E,3


               //2 lines
               ldi  DEO_u8CounterPH,0x00
               ldi  DEO_u8CounterPL,0x02
               mov  P,DEO_u8CounterPL

               //32 lines = 0x0020h
               ldi  DEO_u8CounterPQH, 0x00
               ldi  DEO_u8CounterPQL, 0x22
			   mov  PQ,DEO_u8CounterPQL

		//513 lines = 0x0201h
               ldi  DEO_u8CounterPQRH, 0x02
               ldi  DEO_u8CounterPQRL, 0x01
               mov  PQRH, DEO_u8CounterPQRH
			   mov  PQRL, DEO_u8CounterPQRL

		//524 lines = 0x020Ch
               ldi  DEO_u8CounterPQRSH,0x02
               ldi  DEO_u8CounterPQRSL,0x0C
               mov  PQRSH,DEO_u8CounterPQRSH
			   mov  PQRSL,DEO_u8CounterPQRSL

               ret
;*************************************
Судя по fuse bits микроконтроллер работает на частоте 4,8 МГц. Итого время исполнения одного машинного кода 1/4,8 МГц = 0,21 мкс.
С кодом PWM, то есть настройкой прерывания таймера на частоту 31469 Гц тут все понятно и вопросов не вызывает. Это строчная развертка и ее длительность 31,78 мкс с импульсом синхронизации 3,77 мкс. И это время 1 lines по коду.
Кадровая развертка равна 525 линиям и это число задается в последнем блоке кода записью значения 0х020С в регистры DEO_u8CounterPQRSH / DEO_u8CounterPQRSL.
Это тот участок кода с которым я разобрался. Но, к сожалению, автор не прокомментировал расчеты значений для других регистров:
BC
D
E
DEO_u8CounterPH / DEO_u8CounterPL
DEO_u8CounterPQH / DEO_u8CounterPQL
DEO_u8CounterPQRH / DEO_u8CounterPQRL

Вот в этом вопросе я и прошу помощи у участников форума!
В сети есть несколько источников, я приведу два из них, в которых я пытался найти ответ на свои вопросы:
1) https://www.epanorama.net/documents/pc/vga_timing.html
2) https://vsblogs.wordpress.com/2012/10/1 ... ls-part-1/

В первом источнике указан так называемый "VGA industry standard" 640x480 pixel mode
СпойлерGeneral characteristics
Clock frequency 25.175 MHz
Line frequency 31469 Hz
Field frequency 59.94 Hz

One line
8 pixels front porch
96 pixels horizontal sync
40 pixels back porch
8 pixels left border
640 pixels video
8 pixels right border
---
800 pixels total per line

One field
2 lines front porch
2 lines vertical sync
25 lines back porch
8 lines top border
480 lines video
8 lines bottom border
---
525 lines total per field

если еще блоки кода 2 lines и 32(хотя скорее всего 33) lines Еще как-то совпадают со значениями 2 lines front porch и (2 lines vertical sync + 25 lines back porch) = 33, то откуда взялись следующие 513 lines?
Да и значения регистров BC, D, E вообще выше моего понимания, хотя на приведенных в источниках диаграммах сигналов есть такие временные значения импульсов. Но, то ли я не так считаю, только не совпадает у меня значение времени для них
Вложения
1.zip
Исходник на asm
(4.38 КБ) 75 скачиваний
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20137
Зарегистрирован: Чт янв 26, 2012 16:44:29
Откуда: Таксимо

Сообщение vlasovzloy »

Автору напиши
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2564
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

[uquote="vlasovzloy",url="/forum/viewtopic.php?p=4594705#p4594705"]Автору напиши[/uquote]
А у Вас есть его e-mail?
В сети есть ссылка https://eosystems.ro/index.php/projects/deogen на оригинальную страницу с описанием схемы, но браузер пишет, что этот домен свободен.
Друг Кота
Аватара пользователя
Сообщения: 20137
Зарегистрирован: Чт янв 26, 2012 16:44:29
Откуда: Таксимо

Сообщение vlasovzloy »

https://www.rlocman.ru/shem/schematics.html?di=55404
В редакцию напиши, я так понял автор иностранец и видимо переводчик статьи знает автора. Ну или обсуждения почитай на форуме
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
Реклама
Эиком - электронные компоненты и радиодетали
Собутыльник Кота
Аватара пользователя
Сообщения: 2564
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

[uquote="vlasovzloy",url="/forum/viewtopic.php?p=4594810#p4594810"]Ну или обсуждения почитай на форуме[/uquote]
Я там на форуме уже спрашивал.
Реклама
Ответить

Вернуться в «AVR»