Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM9XE + LCD controller
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
MiniMax
Сейчас начал новый проект с прицелом на AT91SAM9XE процессор.
Хотелось бы иметь возможность подключать стандарные VGA, QVGA, TFT и др.
Какой LCD контроллер лучше использовать ?
aaarrr
ИМХО, нет тут приемлемых решений - всяко будет дороже, прожорливее и хуже встроенного контроллера.

P.S. А почему Вы решили выбрать SAM9XE? Это же тот же самый SAM9260 только с маленькой флеш внутри, и пока еще он только в стадии разработки, что у Атмела может затянуться на пару лет.
MiniMax
Цитата(aaarrr @ Mar 16 2008, 12:13) *
P.S. А почему Вы решили выбрать SAM9XE? Это же тот же самый SAM9260 только с маленькой флеш внутри, и пока еще он только в стадии разработки, что у Атмела может затянуться на пару лет.


Я знаю об SAM9261 со встроенным LCD.
Но выбор SAM9XE по причине того, что проектируется универсальная ( development board) плата.
В самой простой конфигурации это будет просто "микроконтроллерная" плата
( без внешней SDRAM и др). Только SAM9XE.
В полной комплектации это будет "микропроцессорная" плата с 64M SDRAM, MicroSD, Ethernet, LCD.
Размеры платы будут 60x60мм. Поэтому все очень сложно втиснуть.
Подумываю об установке FPGA в качестве LCD контроллера.

Посмотрел на RoadMap от Epson.
http://media.digikey.com/pdf/Data%20Sheets...0Controller.pdf

В принципе для QVGA было бы достаточно S1D13A05B00B200 ( 256KB встроенной памяти)
aaarrr
Цитата(MiniMax @ Mar 16 2008, 11:30) *
Я знаю об SAM9261 со встроенным LCD.
Но выбор SAM9XE по причине того, что проектируется универсальная ( development board) плата.
В самой простой конфигурации это будет просто "микроконтроллерная" плата
( без внешней SDRAM и др). Только SAM9XE.
В полной комплектации это будет "микропроцессорная" плата с 64M SDRAM, MicroSD, Ethernet, LCD.
Размеры платы будут 60x60мм. Поэтому все очень сложно втиснуть.
Подумываю об установке FPGA в качестве LCD контроллера.

SAM9261 тоже можно использовать без SDRAM - 160Кбайт SRAM вполне достаточно даже для не очень мелких задач, загружаться можно с DataFlash.

Цитата(MiniMax @ Mar 16 2008, 11:30) *
Посмотрел на RoadMap от Epson.
http://media.digikey.com/pdf/Data%20Sheets...0Controller.pdf

В принципе для QVGA было бы достаточно S1D13A05B00B200 ( 256KB встроенной памяти)

Он один стоит дороже, чем SAM9263 (который перекроет все Ваши потребности, включая Ethernet), и с наличием глухо.
dmtr
Небольшой вопрос, хотя не совсем в тему...
А можно на платах на SAM9260 впоследствии запаиваивать SAM9XE, т.е. совпадают ли они по ногам ?
MiniMax
Цитата(dmtr @ Mar 16 2008, 21:18) *
Небольшой вопрос, хотя не совсем в тему...
А можно на платах на SAM9260 впоследствии запаиваивать SAM9XE, т.е. совпадают ли они по ногам ?


Да, можно. DEVKIT для SAM9XE должен появиться в продаже только в апреле.
Пока рекомендуют покупать DEVKIT для 9260 и просто запаять туда новый 9XE.
По выводам все попадает
Pronic
Оживляю вопрос, поскольку микросхемы доступны и тема актуальна.

Мне как раз подходит AT91SAM9XE512 по всем параметрам, за исключением отсутствия контроллера дисплея.
Можно подключить дисплей с 16-битным CPU интерфейсом, как это сделано на плате EVK 1105 для AT32UC3A0512.

Остается главный вопрос - можно ли будет запустить графический интерфейс Linux и использовать какие-либо готовые библиотеки?
aaarrr
Цитата(Pronic @ Jan 23 2010, 17:51) *
Остается главный вопрос - можно ли будет запустить графический интерфейс Linux и использовать какие-либо готовые библиотеки?

Можно, конечно. А вот будет ли доступен драйвер для вашего дисплея, или же его придется писать самому - вопрос.
MiniMax
Я подключил MTF-TQ24NN731-LB. Дисплей имеет встроенный контроллер.
Готового драйвера не нашел. Пришлось написать самому fb драйвер для ILI9325 контроллера.
В принципе, не особо сложно.
Программная пересылка FrameBuffer из SDRAM в память LCD контроллера 25 раз в секунду. Процессор не нагружается

Запускал Minigui
Фотографии можно посмотреть здесь
sasamy
Цитата(MiniMax @ Jan 23 2010, 21:43) *
Программная пересылка FrameBuffer из SDRAM в память LCD контроллера 25 раз в секунду. Процессор не нагружается


Забавно - а данные из sdram в lcd чертик из табакерки перекидывает 25 раз в секунду ? smile.gif
MiniMax
Цитата(sasamy @ Jan 24 2010, 03:23) *
Забавно - а данные из sdram в lcd чертик из табакерки перекидывает 25 раз в секунду ? smile.gif


Да, 25 раз в секунду
Дисплей имеет 18-bit шину. Процессор пишет 32-bit словами. Старшие 14 разрядов не используются.
Организация FB подогнана под железо, чтобы цикл записи был оптимизирован по скорости
Код
....
static struct fb_var_screeninfo mmarm9_ili9325_var __devinitdata = {
    .xres           = X_RES,
    .yres           = Y_RES,
    .xres_virtual   = X_RES,
    .yres_virtual   = Y_RES,
    .height         = -1,
    .width          = -1,
    .activate       = FB_ACTIVATE_NOW,
    .vmode          = FB_VMODE_NONINTERLACED,
    .bits_per_pixel = B_PP,
    .red            = {12, 6, 0 },
    .green          = { 6, 6, 0 },
    .blue           = { 0, 6, 0 },
    .nonstd         = 0,
};
.....

static int mmarm9_ili9325_thread(void *param)
{
    int ndx;
    u32 *videodata;
    struct mmarm9_ili9325_info *sinfo = (struct mmarm9_ili9325_info *)param;
    printk(KERN_ALERT "ILI9325 Thread Enter\n");
    while(!kthread_should_stop()) {
        videodata = (u32*)sinfo->buffer;
        /* X=0,Y=0 */
        iowrite32(0x40,sinfo->ir);
        iowrite32(0x0,sinfo->dr);
        iowrite32(0x42,sinfo->ir);
        iowrite32(0x0,sinfo->dr);
        iowrite32(0x44,sinfo->ir);
        /* Update LCD VIDEO RAM from FrameBuffer */
        for ( ndx=0; ndx< MEM_LEN>>2; ndx++)  iowrite32(*videodata++,sinfo->dr);
        /* Frames Per Second = 25 */
        schedule_timeout_interruptible(HZ/25);
   }
    printk(KERN_ALERT "ILI9325 Thread Exit\n");
    return 0;
}
....
aaarrr
Просто общественность удивила фраза "процессор не нагружается", в то время как именно ему и приходится за всех отдуваться.
MiniMax
Цитата(aaarrr @ Jan 24 2010, 12:56) *
Просто общественность удивила фраза "процессор не нагружается", в то время как именно ему и приходится за всех отдуваться.

Процессор показывает загрузку 0%. Я это имел ввиду.
Т.е. время пересылки очень маленькое и не тормозит другие задачи.
aaarrr
Цитата(MiniMax @ Jan 24 2010, 13:54) *
Процессор показывает загрузку 0%. Я это имел ввиду.
Т.е. время пересылки очень маленькое и не тормозит другие задачи.

Показывать он может все что угодно, но пересылка 7.32Мбайт/с не самым эффективным способом не грузить его не может.
MiniMax
Цитата(aaarrr @ Jan 24 2010, 14:51) *
Показывать он может все что угодно, но пересылка 7.32Мбайт/с не самым эффективным способом не грузить его не может.

Это понятно что грузит. Но практически это не влияет на работу других приложений.
Конечно-же все работало бы более эффективно при наличии DMA "memory-memory".
Но в этом контроллере его нет.
И вообще этот конроллер ( 9260) не для мультимедиа. Никто не собирается крутить на нем кино
Для простого GUI все работает удовлетворительно
Pronic
Посмотрел продукцию Bipom. Впечатляет.


Долго рассматривал фото платы MINI-MAX/ARM9260-E.
По-моему, дисплей к ней подключен через 16-битный драйвер шины типа 74АВТ16245.
Или я чего-то не заметил?
MiniMax
Цитата(Pronic @ Jan 26 2010, 04:05) *
По-моему, дисплей к ней подключен через 16-битный драйвер шины типа 74АВТ16245.
Или я чего-то не заметил?

Установлено 2 чипа SN74AVCB164245VR.
3.3V дисплей подключен к 1.8V SRAM контроллеру ARM9 через эти драйверы.
Мануал ( PDF) на плату здесь

Кстати, сейчас готовится к выпуску версия 1.03 (Mini-Max/ARM9260, Mini-Max/ARM9G20)
Там будет установлен дополнительный микроконтроллер (ATMEGA168)
в качестве контроллера питания.
Для новых SAM9 чипов последовательность включения питания очень жестко регламентирована.
AVR обеспечивает:
- контроль входного питания ( 6-26V);
- правильную последовательность подачи напряжений;
- контроль всех питающих напряжений на плате;
- контроль и зарядка 3B батареи (ML621S/ZT);
- ....

ARM9 может общаться с AVR через I2C.
vmp
Цитата(MiniMax @ Jan 26 2010, 09:44) *
Для новых SAM9 чипов последовательность включения питания очень жестко регламентирована.

Кстати, похоже Атмел решил поработать над ошибками. В свежей версии (Rev.C) даташита на SAM9XE требования на порядок включения питания сняты.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.