реклама на сайте
подробности

 
 
> подключение монитора к AT91SAM9261
ZAA
сообщение Dec 15 2009, 16:20
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 141
Регистрация: 10-02-08
Из: Екб
Пользователь №: 34 906



Всем добрый день)
Необходимо подключить обычный CRT монитор с разрешением 800х600 к отладочной плате AT91SAM9261. Какие параметры в исходниках u-boot'а нужно поменять, чтобы добиться появления изображения на мониторе (пробовали менять vl_clk и разрешение в файле board/atmel/at91sam9261/at91sam9261.c - не помогло).
Подскажите, пожалуйста, если кто-то сталкивался с подобным?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Dec 16 2009, 22:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ZAA @ Dec 15 2009, 19:20) *
пробовали менять vl_clk и разрешение в файле board/atmel/at91sam9261/at91sam9261.c - не помогло

Хоть бы написали, к чему это привело в результате.

Цитата(ZAA @ Dec 15 2009, 19:20) *
Подскажите, пожалуйста, если кто-то сталкивался с подобным?

Глянул исходники - фреймбуфер для LCD под платформу 9261EK расположен в SRAM, поэтому просто поменять разрешение нельзя, нужно сначала перенести его в SDRAM, как это сделано для 9G10.

Цитата(Jury093 @ Dec 16 2009, 21:48) *
А разве 9261 умеет VGA?

Умеет.
Go to the top of the page
 
+Quote Post
ZAA
сообщение Dec 17 2009, 15:55
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 141
Регистрация: 10-02-08
Из: Екб
Пользователь №: 34 906



Цитата(aaarrr @ Dec 17 2009, 01:37) *
Хоть бы написали, к чему это привело в результате.

Опишу проблему подробнее. smile3046.gif
Задача - подключить к отладочной плате AT91SAM9261-EK VGA монитор с разрешением 800x600 и на 60 ГЦ. Глубина цвета - 8 бит на пиксель. Цифровые сигналы RGB, DCLK и LCDEN перехватываются и посылаются на конвертер TFT-VGA, реализованный на микросхеме ADV7125(самодельный переходник).
Проблемы:
1) Не можем получить частоту выше 18 Мгц на линии DCLK. Для разрешения 800x600@60Hz необходимо F=800*600*60*0.8 = 36Mhz (данная формула взята из описания на микросхему ADV7125).
В файле board/atmel/at91sam9261/at91sam9261.c меняем настройки:
Изначально:
Код
vidinfo_t panel_info = {
    vl_col:        240,
            vl_row:        320,
    vl_clk:        4965000,
    vl_sync:    ATMEL_LCDC_INVLINE_INVERTED |
            ATMEL_LCDC_INVFRAME_INVERTED,
    vl_bpix:    3,
    vl_tft:        1,
    vl_hsync_len:    5,
    vl_left_margin:    1,
    vl_right_margin:33,
    vl_vsync_len:    1,
    vl_upper_margin:1,
    vl_lower_margin:0,
    mmio:        AT91SAM9261_LCDC_BASE,
};

Мы сделали:
Код
vidinfo_t panel_info = {

    vl_col:        800,        
    vl_row:        600,        
    //vl_clk:        25175000,
    vl_clk:        39720000,
    vl_bpix:        4,
    vl_tft:        1,

    vl_hsync_len:    96,    //HPW    
    vl_left_margin:    48,    //HBP
    vl_right_margin:    16,    //HFP

    vl_vsync_len:    2,    //VPW
    vl_upper_margin:    31,    //VBP
    vl_lower_margin:    12,     //VFP

    mmio:        AT91SAM9261_LCDC_BASE,
};

В файле 'atmel_lcdfb.c' делитель (CLKVAL) подбирается автоматически:
Код
            /* Set pixel clock */
    value = get_lcdc_clk_rate(0) / panel_info.vl_clk;
    if (get_lcdc_clk_rate(0) % panel_info.vl_clk)
        value++;
    value = (value / 2) - 1;

    if (!value) {
        lcdc_writel(panel_info.mmio, ATMEL_LCDC_LCDCON1, ATMEL_LCDC_BYPASS);
    } else
        lcdc_writel(panel_info.mmio, ATMEL_LCDC_LCDCON1,
                value << ATMEL_LCDC_CLKVAL_OFFSET);

где:
Код
static inline unsigned long get_lcdc_clk_rate(unsigned int dev_id)
    {
        return AT91_MASTER_CLOCK;    
    }

AT91_MASTER_CLOCK определен в файле include/configs/at91sam9261ek.h
Код
#define AT91_MAIN_CLOCK        198656000    /* from 18.432 MHz crystal */
#define AT91_MASTER_CLOCK    99328000    /* peripheral = main / 2 */

Функция get_lcdc_clk_rate() возвращает #define-частоту. Но какая частота при этом реальная?
После прошивки U-Boot'а и запуска контроллера сигнала DCLK нет вообще. Есть подозрение, что МК не может обеспечить такую частоту,так как работает от SLCK (Low-power 32768 Hz Slow Clock Oscillator ). Возможно, плохо искали, но ни в одном файле мы не нашли места, в котором бы устанавливался Master Clock (MCK). А MCK может быть и 200Мгц.
В чем может заключаться проблема и как получить рабочую частоту в 36 МГц и более???

2)Также есть путаница с параметрами INVVD, INVFRAME, INVLINE, INVCLK, INVVDVAL. В разных примерах их настаривают по-разному. Плюс еще нужно учесть параметры VGA-режима.
И еще - DMABDDR1 - это адрес, по которому находится выводимая на экран картинка??

Спасибо, сорри за обилие вопросов)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 17 2009, 16:33
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ZAA @ Dec 17 2009, 18:55) *
1) Не можем получить частоту выше 18 Мгц на линии DCLK.
...
После прошивки U-Boot'а и запуска контроллера сигнала DCLK нет вообще. Есть подозрение, что МК не может обеспечить такую частоту,так как работает от SLCK (Low-power 32768 Hz Slow Clock Oscillator ). Возможно, плохо искали, но ни в одном файле мы не нашли места, в котором бы устанавливался Master Clock (MCK). А MCK может быть и 200Мгц.
В чем может заключаться проблема и как получить рабочую частоту в 36 МГц и более???

Так и не понял, DCLK есть, но не выше 18МГц, или же ее нет вообще?
Судя по наличию дефайна CONFIG_SKIP_LOWLEVEL_INIT U-boot в этой конфигурации тактирование не настраивает, а пользуется тем, что получено от bootstrap'а - к нему и вопросы.
Кроме того, в вашем случае DCLK будет равна MCK/2, т.к. нечетные делители не предусмотрены.

Цитата(ZAA @ Dec 17 2009, 18:55) *
2)Также есть путаница с параметрами INVVD, INVFRAME, INVLINE, INVCLK, INVVDVAL. В разных примерах их настаривают по-разному. Плюс еще нужно учесть параметры VGA-режима.

Все в 0. Монитор поймет.

Цитата(ZAA @ Dec 17 2009, 18:55) *
И еще - DMABDDR1 - это адрес, по которому находится выводимая на экран картинка??

Да.
Go to the top of the page
 
+Quote Post
Viatcheslav_CPU
сообщение Dec 21 2009, 09:11
Сообщение #5





Группа: Участник
Сообщений: 11
Регистрация: 20-12-09
Пользователь №: 54 366



Цитата(aaarrr @ Dec 17 2009, 21:33) *
Так и не понял, DCLK есть, но не выше 18МГц, или же ее нет вообще?
Судя по наличию дефайна CONFIG_SKIP_LOWLEVEL_INIT U-boot в этой конфигурации тактирование не настраивает, а пользуется тем, что получено от bootstrap'а - к нему и вопросы.
Кроме того, в вашем случае DCLK будет равна MCK/2, т.к. нечетные делители не предусмотрены.


Здравствуйте. Мы работаем вместе над этой задачей.
Все верно, DCLK есть, но не выше 18 МГц.
Решили проверить частоту процессора. Вывели на ножку В8 (PCK1) частоту PLLA с делителем 16. В итоге получили 200/16 Мгц. Т.е. процессор работает на 200 Мгц, а master clock (MCK) они настраивают на 100 Мгц. В bootstrap'e.
Но в случае вывода частоты на DCLK и PCK1 больше 20 Мгц, на осцилографе получается какой-то модулированный сигнал. По напряжению находится в пределах 1.65В и 1.9В - нижняя и верхняя граница.
Почему так происходит??? У ADV7125 (tft-vga) порог единицы = 2В. Использовали логический анализатор, настроенный на порог срабатывания 2В, не захватывает сигнал... В любом случае меандр должен быть в пределах 0 - 3,3В. Так ведь??
Почему не можем посмотреть сигнал в 30-40 Мгц????.....

Вот, к примеру, сигнал DCLK ghb 25 Мгц. Как я понимаю такого не должно быть... Должен быть в диапазоне от 0 до 3,3В.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ZAA   подключение монитора к AT91SAM9261   Dec 15 2009, 16:20
- - Jury093   Цитата(ZAA @ Dec 15 2009, 19:20) Необходи...   Dec 16 2009, 18:48
|- - ZAA   Цитата(aaarrr @ Dec 17 2009, 01:37) Хоть ...   Dec 17 2009, 03:50
|- - aaarrr   Цитата(Viatcheslav_CPU @ Dec 21 2009, 12...   Dec 21 2009, 15:10
|- - Viatcheslav_CPU   Цитата(aaarrr @ Dec 21 2009, 20:10) Полос...   Dec 21 2009, 16:40
|- - aaarrr   Цитата(Viatcheslav_CPU @ Dec 21 2009, 19...   Dec 21 2009, 17:02
|- - singlskv   Цитата(aaarrr @ Dec 21 2009, 20:02) И при...   Dec 21 2009, 21:29
||- - Viatcheslav_CPU   Вот сам правленный код: файл : at91sam9261ek.c CO...   Dec 22 2009, 09:37
|- - Viatcheslav_CPU   Цитата(aaarrr @ Dec 21 2009, 22:02) Каков...   Dec 22 2009, 06:14
|- - aaarrr   Цитата(Viatcheslav_CPU @ Dec 22 2009, 09...   Dec 22 2009, 15:54
|- - Viatcheslav_CPU   Цитата(aaarrr @ Dec 22 2009, 21:54) Схема...   Dec 23 2009, 08:41
|- - aaarrr   Цитата(Viatcheslav_CPU @ Dec 23 2009, 11...   Dec 23 2009, 08:49
|- - Viatcheslav_CPU   Цитата(aaarrr @ Dec 23 2009, 13:49) Очеви...   Dec 23 2009, 10:36
|- - aaarrr   Цитата(Viatcheslav_CPU @ Dec 23 2009, 13...   Dec 23 2009, 11:02
|- - Viatcheslav_CPU   Цитата(aaarrr @ Dec 23 2009, 17:02) Да не...   Dec 23 2009, 11:05
|- - AlexN   Цитата(Viatcheslav_CPU @ Dec 23 2009, 18...   Dec 23 2009, 14:46
- - aaarrr   Как почему? Если не задействуете два старших бита,...   Dec 23 2009, 11:20
|- - Viatcheslav_CPU   Все исправил. Теперь цвета насыщенные и похоже на ...   Dec 24 2009, 05:50
- - Snegovik86   Доброго времени суток! С образованием у нас де...   Jun 8 2010, 10:51


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 11:01
Рейтинг@Mail.ru


Страница сгенерированна за 2.55464 секунд с 7
ELECTRONIX ©2004-2016