|
|
  |
EP9307, настройка видеоадаптера |
|
|
|
Sep 14 2006, 07:36
|

Участник

Группа: Новичок
Сообщений: 42
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 373

|
Здравствуйте!
Не могу достичь вывода информации на монитор. Измеряю сигналы на контактах с помощью осциллографа - все статичны (на мой взгляд, никакой информации на монитор не поступает). Настраиваю следующие регистры всевозможными образами, но эффекта никакого: VidClkDiv VLinesTotal VSynStrtStop VActiveStrtStop VBlankStrtStop VClkStrtStop HClkTotal HSynStrtStop HActiveStrtStop HBlankStrtStop HClkStrtStop VideoAttribs VidScrnPage ScrnLines LineLenght VLineStep PixelMode Нужно ли настраивать регистры ClkSet1 и ClkSet2 для получения хоть каких-нибудь сигналов на разъеме? Наверняка упустил какую-то тривиальную, но важную вещь...
Сообщение отредактировал metalkain - Sep 14 2006, 07:42
--------------------
Мне триста лет - я выполз из тьмы...
|
|
|
|
|
Sep 14 2006, 09:32
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(metalkain @ Sep 14 2006, 11:36)  Нужно ли настраивать регистры ClkSet1 и ClkSet2 для получения хоть каких-нибудь сигналов на разъеме? Если в качестве источника клока используется PLL1 или PLL2, очевидно, да. Цитата(metalkain @ Sep 14 2006, 11:36)  Не могу достичь вывода информации на монитор. Проверьте, есть ли запись SysSWLock и RasterSWLock там, где это необходимо; сброшены ли биты RAS и EXVC в DeviceCfg. Наверное, стоит опубликовать код инициализации.
|
|
|
|
|
Sep 14 2006, 16:08
|

Участник

Группа: Новичок
Сообщений: 42
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 373

|
Благодарю, aaarrr. Именно в SysSWLock и RasterSWLock, похоже, и было дело, хоть и допер до этого независимо. Верно, телепатия
--------------------
Мне триста лет - я выполз из тьмы...
|
|
|
|
|
Sep 21 2006, 14:47
|

Участник

Группа: Новичок
Сообщений: 42
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 373

|
Похоже, погорячился, сказав, что разобрался, в чем дело( Задача прежняя: вывести хоть что-нибудь на монитор. Какие системы необходимо настроить? Надо ли настраивать SDRAM?
ClkSet1= 0x00039A67; //0000 0000 0000 0011 10011 010011 00111
for(int i=0;i<0xFFFF;i++){ asm("nop;");} printf("Hello, Man!\n\n");
SysSWLock= 0xAA; VidClkDiv= 0x0000C102; //0000 0000 0000 0000 1100 0001 0000 0010
//Setting up SDRAM SDRAMDevCfg0= 0x01220008; //00000001 0010 0010 00000000 0000 10 00
for(int i=0;i<0xFFFF;i++){ asm("nop;");}//waiting for 200mks GIConfig= 0x00000001; //00 00000000000000 00000000 000 000 01 RefrshTimr= 0x00000190; //400d - 16ms with 92,16MHz clock GIConfig= 0x00000000; //00 00000000000000 00000000 000 000 00
/*640*480 4bpp video mode*/ RasterSWLock= 0xAA; VideoAttribs= 0x0000C0AF; //0000 0000 0 00 0 0000 1100 0 000 1000 1111
VidScrnPage=(unsigned long)&VideoPage[0]; ScrnLines= 479; LineLength= 0x4F; VLineStep= 0x4F;
RasterSWLock= 0xAA; VSyncStrtStop= 0x01DF01DC; RasterSWLock= 0xAA; VActiveStrtStop=0x01DA0006; RasterSWLock= 0xAA; VBlankStrtStop= 0x01DA0006; RasterSWLock= 0xAA; VClkStrtStop= 0x01D5000B;
RasterSWLock= 0xAA; HSyncStrtStop= 0x02930290; RasterSWLock= 0xAA; HActiveStrtStop=0x029E0006; RasterSWLock= 0xAA; HBlankStrtStop= 0x029E0006; RasterSWLock= 0xAA; HClkStrtStop= 0x0299000B;
RasterSWLock= 0xAA; VLinesTotal= 479; RasterSWLock= 0xAA; HClkTotal= 659;
Pixelmode= 0x1;
--------------------
Мне триста лет - я выполз из тьмы...
|
|
|
|
|
Sep 23 2006, 19:20
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(metalkain @ Sep 21 2006, 18:47)  Похоже, погорячился, сказав, что разобрался, в чем дело( Задача прежняя: вывести хоть что-нибудь на монитор. Какие системы необходимо настроить? Надо ли настраивать SDRAM? SDRAM настраивать нужно. У Вас это делается не совсем корректно, но работать должно. Также после записи ClkSet1 нужно добавить 5 nop'ов. Регистр VLineStep должен иметь значение 0x50, а не 0x4F. Для вывода в режиме 4 бита на точку должна быть загружена палитра в LUT. Что сейчас происходит с сигналами синхронизации?
|
|
|
|
|
Sep 25 2006, 07:57
|

Участник

Группа: Новичок
Сообщений: 42
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 373

|
Цитата Для вывода в режиме 4 бита на точку должна быть загружена палитра в LUT. Как это сделать? 1. Подозреваю, нужно в PixelMode установить бит C3 (Grayscale Palettes Enabled). Так ли это? 2. Нужно ли настраивать ColorLUT и GrySclLUTx регистры?
Сообщение отредактировал metalkain - Sep 25 2006, 08:23
--------------------
Мне триста лет - я выполз из тьмы...
|
|
|
|
|
Sep 25 2006, 12:20
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(metalkain @ Sep 25 2006, 11:57)  Цитата Для вывода в режиме 4 бита на точку должна быть загружена палитра в LUT.
Как это сделать? 1. Подозреваю, нужно в PixelMode установить бит C3 (Grayscale Palettes Enabled). Так ли это? 2. Нужно ли настраивать ColorLUT и GrySclLUTx регистры? 1. Нет. У Вас ведь TFT экран? 2. ColorLUT настраивать нужно.
|
|
|
|
|
Sep 25 2006, 16:03
|

Участник

Группа: Новичок
Сообщений: 42
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 373

|
Цитата 1. Нет. У Вас ведь TFT экран? 2. ColorLUT настраивать нужно. Благодарю, aaarrr. Но появляются новые вопросы 1. В том-то и дело, что CRT (Philips 105B). Потом вероятен переход на портативное индикаторное устройство, но на данный момент необходимо добиться результата на этом мониторе. 2. Как я понял, имеется по одному регистру GrySclLUTx для каждого цвета, которые названы в User's Guide'е "Grayscale Look-Up-Tables". Вопрос такой: как заполнять эти таблицы, если регистров всего лишь 3 (хотя написано, что их по 32 каждого)? Надо ли это делать вручную? Они (эти таблицы) уже существуют, или их надо создавать, основываясь на характеристиках монитора? 3. На чем основывается выбор между FRAME_CNT3 и FRAME_CNT4 и тд? 4. Зачем вообще нужен регистр (регистры? - я теперь совсем запутался: их тоже вроде 256) ColorLUT?
Сообщение отредактировал metalkain - Sep 25 2006, 16:05
--------------------
Мне триста лет - я выполз из тьмы...
|
|
|
|
|
Sep 28 2006, 15:14
|

Участник

Группа: Новичок
Сообщений: 42
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 373

|
Загрузил LUTы. После этого обнаружил на выводах сигналы HSync (~310KHz), VSync (~74Hz). Монитор даже отреагировал на это, вспыхнув светодиодом другого цвета. Теперь недоумеваю, почему не видно информационных сигналов. Может это быть связано с установкой регистров развертки, регистра Brightness, неверной записью информации в память?
--------------------
Мне триста лет - я выполз из тьмы...
|
|
|
|
|
Sep 28 2006, 20:31
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(metalkain @ Sep 25 2006, 20:03)  1. В том-то и дело, что CRT (Philips 105B). CRT с точки зрения контроллера - почти то же самое, что и TFT LCD. Цитата(metalkain @ Sep 25 2006, 20:03)  2. Как я понял, имеется по одному регистру GrySclLUTx для каждого цвета, которые названы в User's Guide'е "Grayscale Look-Up-Tables". Вопрос такой: как заполнять эти таблицы, если регистров всего лишь 3 (хотя написано, что их по 32 каждого)? Надо ли это делать вручную? Они (эти таблицы) уже существуют, или их надо создавать, основываясь на характеристиках монитора?
3. На чем основывается выбор между FRAME_CNT3 и FRAME_CNT4 и тд? Grayscale LUTs нужны для STN и CSTN экранов, для формирования полутонов при помощи FRC (своеобразный ШИМ). У Вас, как я понимаю, на выходе стоит нормальный ЦАП. Цитата(metalkain @ Sep 25 2006, 20:03)  4. Зачем вообще нужен регистр (регистры? - я теперь совсем запутался: их тоже вроде 256) ColorLUT? Для формирования на выходе 15-, 16- или 24-бит цвета из данных размерностью 8 и менее бит. Цитата(metalkain @ Sep 28 2006, 19:14)  Загрузил LUTы. После этого обнаружил на выводах сигналы HSync (~310KHz), VSync (~74Hz). Монитор даже отреагировал на это, вспыхнув светодиодом другого цвета. Теперь недоумеваю, почему не видно информационных сигналов. Может это быть связано с установкой регистров развертки, регистра Brightness, неверной записью информации в память? Очень странно. Никакой взаимосвязи между LUT и синхронизацией нет. Разве что монитор начал синхронизироваться по каналу зеленого. HSync 310KHz - это далеко за рабочими пределами монитора. Опечатка? Регистр Brightness управляет ШИМ'ом на соответствующем пине для регулировки яркости подсветки. Настоятельно рекомендую внимательно почитать мануал на процессор и AN269 Using the EP93xx's Raster Engine.
|
|
|
|
|
Sep 29 2006, 15:23
|

Участник

Группа: Новичок
Сообщений: 42
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 373

|
Вы правы, aaarrr, связи между синхронизацией и LUTами не оказалось. Я ошибся. Частоты подправил. Теперь 77Hz, 37KHz. Информационных сигналов нет по-прежнему. Допустимо ли определение: unsigned long VideoPage[38400]; VidScrnPage=(unsigned long)&VideoPage[0];? Если предположить, что SDRAM настроена верно, как можно объяснить отсутствие сигналов RGB?
Сообщение отредактировал metalkain - Sep 29 2006, 15:26
--------------------
Мне триста лет - я выполз из тьмы...
|
|
|
|
|
Sep 29 2006, 16:59
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(metalkain @ Sep 29 2006, 19:23)  Допустимо ли определение: unsigned long VideoPage[38400]; VidScrnPage=(unsigned long)&VideoPage[0];? Допустимо. У меня еще маскировались старшие 4 бита, но не уверен, что это необходимо. Цитата(metalkain @ Sep 29 2006, 19:23)  Если предположить, что SDRAM настроена верно, как можно объяснить отсутствие сигналов RGB? Вы не забыли после загрузки переключить SWTCH в LUTSwCtrl?
|
|
|
|
|
Oct 6 2006, 15:21
|

Участник

Группа: Новичок
Сообщений: 42
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 373

|
Получил изображение. Но на экран выводится лишь 231 строка (при желаемых 480-ти). Как настроить V-регистры?
Сообщение отредактировал metalkain - Oct 6 2006, 16:06
--------------------
Мне триста лет - я выполз из тьмы...
|
|
|
|
|
Oct 9 2006, 15:54
|

Участник

Группа: Новичок
Сообщений: 42
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 373

|
Цитата(aaarrr @ Oct 6 2006, 20:30)  Выводится или наблюдается на экране? Откуда такая точность - 231? На данный момент имею следующую картину. 1. Начало видеостраницы находится в левом верхнем углу. 2. В строке 80 слов (т.е. если выводить слова с номерами, кратными 80-ти, получается ровный вертикальный столбец), из которых отображаются 70 слов целиком и начало 70-го слова (считая с нуля). 3. На экране нормально отображается теперь 241 строка. Строки с 241-й по 350-ю не видны. Строки с номерами от 351-й и далее отображаются начиная с верха экрана со смещением 12 слов влево от нормального расположения. При коде VideoPage[0]= 0x66666666; for(int i=0;i<480;i++) VideoPage[i*80+20]= 0x77777777; получаю примерно следующее изображение: 1....3..........2................................ ......3..........2................................ ......3..........2................................ ......3..........2................................ ..................2................................ ..................2................................ ..................2................................ где 1 - первое слово видеостраницы, 2 - слова [20; 240*80+20], 3 - слова [351*80+20; 480*80+20].
Сообщение отредактировал metalkain - Oct 9 2006, 15:57
--------------------
Мне триста лет - я выполз из тьмы...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|