|
|
  |
LPC2478 + LCD = cтранные проблемы с синхронизацией. |
|
|
|
Sep 2 2008, 14:46
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(aaarrr @ Sep 2 2008, 16:57)  Очень похоже, что у Вас полосы памяти не хватает, а курсор хардварный, вот и стоит на месте. Точно! Уменьшил частоту вдвое(до 12 MHZ) - все стоит жестко. На 16 MHZ картинка стоит, пока программа ходит внутри контроллера, но при записи данных теста в видеопамять картинка опять срывается. Признаюсь, документацию смотрел поверхностно, но данный факт существенно ограничивает расписанные в мануале LPC2478 возможности, на самом деле 24 bpp && display resolution >= 640x480, 800x600, and 1024x768 работать не могут.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 4 2008, 06:31
|
Местный
  
Группа: Свой
Сообщений: 201
Регистрация: 23-01-06
Из: Msk
Пользователь №: 13 490

|
Цитата(Dog Pawlowa @ Sep 2 2008, 19:14)  Ну, разве специфических задач нет? Вывести красотку на экран, а потом долго рассматривать  Буду на 5-6-5 переходить, судя по таблицам в мануале, перераспределения контактов не требуется, достаточно переконфигурирования. 5-6-5 Vas vse ravno ne spaset, t.k. nado ponigat` chastotu obnovleniya i kol-vo "vykachivaemyh" baitov iz pamayati - a eto delaetsya putem umensheniya razrescheniya i bpp
|
|
|
|
|
Sep 4 2008, 08:15
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(abcdefg @ Sep 4 2008, 09:31)  5-6-5 Vas vse ravno ne spaset, t.k. nado ponigat` chastotu obnovleniya i kol-vo "vykachivaemyh" baitov iz pamayati - a eto delaetsya putem umensheniya razrescheniya i bpp Почему же? 5-6-5 это означает 16 bpp, а исходно было 24bpp, из которых я брал аппаратно только 8-8-8. То есть как минимум я уменьшил количество "выкачиваемых" байтов на треть. Но посколько шина 32-разрядная, то наполовину, так как 24bpp записываются в четырех байтах. Самое интересное, что про проблему с полосой шины читал, но не ожидал, что именно так она проявляется визуально.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 4 2008, 10:15
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 9-03-05
Пользователь №: 3 170

|
Цитата(Dog Pawlowa @ Sep 2 2008, 21:34)  Применение права специфическое - для медицинского прибора. Видео не требуется. Статические картинки GUI можно показывать с хорошим качеством, а в динамике можно будет и до 4 bpp снизить. Может быть подойдет готовое решение: ТФТ-КомпаньонКроме SPI порта для него практически ничего не надо... 7" матрица 800х480 поддерживается. Плюсом решается проблема несоответствия времени выпуска конкретного TFT-модуля и вашего конечного изделия. В медтехнике то жизненный цикл изделия 10 лет - норма.
--------------------
Женщины носят кофточки прям на голо тело. Как не выпить водочки за такое дело?
|
|
|
|
|
Sep 4 2008, 12:28
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Al Volovich @ Sep 4 2008, 13:15)  Может быть подойдет готовое решение: ТФТ-КомпаньонКроме SPI порта для него практически ничего не надо... 7" матрица 800х480 поддерживается. Плюсом решается проблема несоответствия времени выпуска конкретного TFT-модуля и вашего конечного изделия. В медтехнике то жизненный цикл изделия 10 лет - норма. Спасибо за предложение. Конечно же, Ваше решение рассматривалось. Достоинства очевидны, а недостатки ... Они тоже есть, кроме первого, недостатки - это скорее отсутствие этих достоинств  1) Более дорогое решение. 2) Если Вы будете адаптировать решение под другие модули, то и мы в общем то в состоянии. Первый опыт показал, что проблем особых нет. 3) Объем памяти для GUI откуда брать? Все равно ядро прибора должно быть продвинутое, графическими примитивами не обойтись. А тут ARM c USB хостом, да я весь GUI как битмапы во флэшку накидаю, а многопроцессорность в системе имеет свои недостатки. Давайте наоборот? Я немного наблатыкаюсь с NXP и замутим "TFT-Брателло" на LPC-2478 ?
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 4 2008, 12:54
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(aaarrr @ Sep 4 2008, 15:39)  "TFT-Брателло" лучше замутить на Fujitsu Jade - вот это будет вещь. BGA-484 Package ? Не, это уже неподъемно. Не говоря уже о программировании.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 4 2008, 12:58
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 9-03-05
Пользователь №: 3 170

|
Цитата(Dog Pawlowa @ Sep 4 2008, 18:28)  1) Более дорогое решение. А вы какой модуль используете? Цитата(Dog Pawlowa @ Sep 4 2008, 18:28)  2) Если Вы будете адаптировать решение под другие модули, то и мы в общем то в состоянии. Первый опыт показал, что проблем особых нет. Как показал опыт, используемый модуль могут снять с производства еще до выхода вашего изделия в тираж. И это еще не самый худший вариант. По медтехнике время разработки и сертификации обычно не меньше двух лет, за это время линейку модулей могут перетряхнуть кардинально. По крайней мере китае-тайваньские производители недорогих модулей к этому склонны. Цитата(Dog Pawlowa @ Sep 4 2008, 18:28)  3) Объем памяти для GUI откуда брать? Все равно ядро прибора должно быть продвинутое, графическими примитивами не обойтись. А тут ARM c USB хостом, да я весь GUI как битмапы во флэшку накидаю, а многопроцессорность в системе имеет свои недостатки. Зато не надо хранить две страницы видеобуфера, а для 800х480х16 bpp это полтора метра памяти. Хотя со SDRAM контроллером это не проблема  Цитата(Dog Pawlowa @ Sep 4 2008, 18:28)  Давайте наоборот? Я немного наблатыкаюсь с NXP и замутим "TFT-Брателло" на LPC-2478 ?  Брателло больше чем 480х272 врядли потянет с нормальной скоростью, не стоит мучить 2478
--------------------
Женщины носят кофточки прям на голо тело. Как не выпить водочки за такое дело?
|
|
|
|
|
Sep 4 2008, 13:23
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Al Volovich @ Sep 4 2008, 15:58)  А вы какой модуль используете? Зато не надо хранить две страницы видеобуфера, а для 800х480х16 bpp это полтора метра памяти. Хотя со SDRAM контроллером это не проблема  Мы решили сделать свой модуль - LPC2478+SDRAM. Три микросхемы на плате решают вопрос и управления, и вывода. А управление прочими блоками по SPI или UART. Цитата(Al Volovich @ Sep 4 2008, 15:58)  Брателло больше чем 480х272 врядли потянет с нормальной скоростью, не стоит мучить 2478  Ну я же говорю - динамика не нужна. Зато женское тело можно вывести со всеми подробностями  Можно подумать, что TFT-компаньон решает проблему быстродействия. Он только добавляет проблему синхронизации дисплея событиями в приборе.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 5 2008, 09:02
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 9-03-05
Пользователь №: 3 170

|
Цитата(Dog Pawlowa @ Sep 4 2008, 19:23)  Мы решили сделать свой модуль - LPC2478+SDRAM Я имел ввиду TFT-модуль. Какой вы используете? Цитата(Dog Pawlowa @ Sep 4 2008, 19:23)  Можно подумать, что TFT-компаньон решает проблему быстродействия. Конечно решает. ATMega8 спокойно может вращать икосаэдр c заливками со скоростью 17 fps.  А записав скрипт, отрисовывающий примитивами все неизменные компоненты экранов прибора, можно отрисовать экран одной командой, послав 9 байт по SPI. Так что вычислительные затраты на GUI кардинально сокращаются.
--------------------
Женщины носят кофточки прям на голо тело. Как не выпить водочки за такое дело?
|
|
|
|
|
Sep 5 2008, 09:45
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Al Volovich @ Sep 5 2008, 12:02)  Я имел ввиду TFT-модуль. Какой вы используете? Пока подключили то, что предлагает региональный Arrow : T4880C03WQ01 от Crystal Clear Technolodgy. Нужно не меньше 7". Цитата Конечно решает. ATMega8 спокойно может вращать икосаэдр c заливками со скоростью 17 fps. А записав скрипт, отрисовывающий примитивами все неизменные компоненты экранов прибора, можно отрисовать экран одной командой, послав 9 байт по SPI. Так что вычислительные затраты на GUI кардинально сокращаются. Мы говорим об одних преимуществах одной технологии проектирования GUI против других преимуществ другой технологии проектирования GUI. Если памяти достаточно, то перерисовать заранее подготовленные битмапы с такой скоростью - не проблема. Еще вопрос, нужно ли 2D для GUI реального прибора. Зато придется автоматизировать технологию подготовки скриптов. Текст выводить - нужно в ATmega8 пару шрифтов поместить. И куда? А 128 мега - уже половина стоимости LPC. Я еще раз посмотрел Ваш сайт. Цены действительно разумные. Но не для тысяч устройств. Решение с отдельной платкой для перехода на плоский кабель логично. Передерем  Получается, что придется создавать что-то похожее, но свое, только для того, чтобы еще свое приложение подгрузить. Кстати, а какой контроллер Вы используете?
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 5 2008, 10:03
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 9-03-05
Пользователь №: 3 170

|
Цитата(Dog Pawlowa @ Sep 5 2008, 15:45)  Зато придется автоматизировать технологию подготовки скриптов. Это сделаем, программу-донора уже нашли  Цитата(Dog Pawlowa @ Sep 5 2008, 15:45)  Текст выводить - нужно в ATmega8 пару шрифтов поместить. И куда? А 128 мега - уже половина стоимости LPC. Шрифты хранятся во флэш на борту ТФТ-компаньона, так что памяти пользовательского МК не отъедают. Так же как и картинки. Цитата(Dog Pawlowa @ Sep 5 2008, 15:45)  Я еще раз посмотрел Ваш сайт. Цены действительно разумные. Но не для тысяч устройств. Разумеется. Целевая аудитория - изделия с тиражом до нескольких сотен в год. Хотя клиенты с тысячными тиражами приветствуются особо  Цитата(Dog Pawlowa @ Sep 5 2008, 15:45)  Решение с отдельной платкой для перехода на плоский кабель логично. Передерем  Да берите пожалуйста, я сам это подсмотрел  Цитата(Dog Pawlowa @ Sep 5 2008, 15:45)  Кстати, а какой контроллер Вы используете?  9261
--------------------
Женщины носят кофточки прям на голо тело. Как не выпить водочки за такое дело?
|
|
|
|
|
Sep 6 2008, 19:03
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600

|
Цитата(KRS @ Sep 6 2008, 15:22)  По поводу самого комплекта Никакой документации не приложено, на DVD только образ для VmWare Player даже его самого нет. Зачем он нужен не понятно - там обычный Debian. ну cross compiler GCC ARM там есть, но никаких средств для разработки нет вообще.В общем абсолютно бесполезная вещь. Зарегистрируйте плату у них на сайте, получите документацию. Цитата(KRS @ Sep 6 2008, 15:22)  Но никаких полезных ихсодников не нашел. Но по исходникам и документации хуже платы у меня не было. ( даже за 30 баксов лучше была) Отдельно надо зарегистрировать сам дисплей, будут доступны пара демок под KEIL и GCC.
|
|
|
|
|
Sep 6 2008, 20:46
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600

|
32 битная версия это отдельный модуль, у него и память явно не TSOP, судя по картинке BGA и появились они позже.
Что касается исходников для платы, так это все в образе виртуальной машины. Для восстановления можно использовать двоичные образы, есть на сайте ... > Resources > Repository, там u-boot, romfs.bin, linux.bin
Сам пробовал перезаливать u-boot, все работает нормально.
Сообщение отредактировал srg_co - Sep 6 2008, 20:48
|
|
|
|
|
Sep 7 2008, 18:27
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(KRS @ Sep 6 2008, 14:22)  А на OLIMEX плате 32 битный SDRAM используется? А то вчера получили Ebmedded Artists - там 16 битная Samsug одна стоит и все. .... На той плате Olimex, что получил я, стоят две микросхемы SDRAM, то есть шина 32-разрядная. Индикатор 24 bpp, может поэтому. Причем на форумах видел фотографии этой же платы Olimex, но с одной микросхемой. Повезло  Ситуация с U-link & ucLinux аналогичная - все есть, но ковыряться в бездне исходников - тяжелый, изнурительный труд. Есть еще пример работы с LCD, который я и мучаю. Инициализация дисплея расписана болгарином очень корректно и понятно. Уважаю. То, что Вы пишете, сняло камень с души  , поскольку уже жалел, что поторопился и заказал Olimex вместо Embedded Artist. Да и расписанная в Embedded возможность быстро начать программирование под Linux навевала мысли о том, что вот, наконец-то можно ничего не делать. В принципе запустить LCD не так то сложно, а примеры поддержки других узлов выложены на Olimex для других плат. Но путь не пройден, просто имеется такое направление
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 8 2008, 08:41
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(zltigo @ Sep 8 2008, 01:48)  Полагаю это Stanimir Bonev? Он, практически единственный хороший писатель всяких болванок и не только для Olimex. Не без фокусов (но это больше специфика продукта влияет) но действительно заслуживающие внимания и изучения исходники в бесконечном море хлама! Да, именно он. А ведь мог все записать одной строчкой! : // Init GLCD cotroller Код PCONP_bit.PCLCD = 1; // enable LCD controller clock CRSR_CTRL_bit.CrsrOn = 0; // Disable cursor LCD_CTRL_bit.LcdEn = 0; // disable GLCD controller LCD_CTRL_bit.LcdBpp= 5; // 24 bpp LCD_CTRL_bit.LcdTFT= 1; // TFT panel LCD_CTRL_bit.LcdDual=0; // single panel LCD_CTRL_bit.BGR = 0; // notmal output LCD_CTRL_bit.BEBO = 0; // little endian byte order LCD_CTRL_bit.BEPO = 0; // little endian pix order LCD_CTRL_bit.LcdPwr= 0; // disable power Кстати, вопрос к Вам по этой плате. Сам не разбирался еще, может подскажете влет После небольшой корректировки проекта Бонева и загрузки его с помощью At200 наблюдаю: после программирования и "горячего старта" программа висит. Если передернуть питание, то стартует нормально. В чем может быть разница?
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 8 2008, 09:00
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Dog Pawlowa @ Sep 8 2008, 10:41)  Кстати, вопрос к Вам по этой плате. Я этой платы не имею и от графики далек, а Бонев - просто встречал несколько раз в совсем других поектах и запомнил. Цитата Да, именно он. А ведь мог все записать одной строчкой! Я именно одной строчкой для реальной работы написал-бы  , а для демки именно так правильно, ибо хидеры готовые. "Не в этом сила,..."
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 9 2008, 17:25
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(muravei @ Sep 9 2008, 17:16)  Что делать?! Что делать?!  А мне что выбрать?  А это сложно физически? у ЕА платы есть разьем специальный, думаю у OLIMEX тоже - нужно просто сделать переходник. обычно самое сложное подключить backlight ( обычно получается внешний использвать ) IMHO получается проще вообще купить SK-MLPC2478 за 1500 руб и не париться. ( правда скорее всего чип придется перепаять на 78)
|
|
|
|
|
Sep 9 2008, 17:51
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(KRS @ Sep 9 2008, 19:25)  IMHO получается проще вообще купить SK-MLPC2478 за 1500 руб и не париться. ( правда скорее всего чип придется перепаять на 78) 1.Перепаивать не на что. 2.Памяти там 512KB 16bit статика 3.Разводка - пракически 1:1 выводы по периметру чипа - подключать максимально неудобно.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 10 2008, 01:31
|
Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 5-09-06
Из: Nsk
Пользователь №: 20 094

|
Цитата(Dog Pawlowa @ Sep 8 2008, 01:27)  На той плате Olimex, что получил я, стоят две микросхемы SDRAM, то есть шина 32-разрядная. Индикатор 24 bpp, может поэтому. Причем на форумах видел фотографии этой же платы Olimex, но с одной микросхемой. Повезло  Ситуация с U-link & ucLinux аналогичная - все есть, но ковыряться в бездне исходников - тяжелый, изнурительный труд. Есть еще пример работы с LCD, который я и мучаю. Инициализация дисплея расписана болгарином очень корректно и понятно. Уважаю. То, что Вы пишете, сняло камень с души  , поскольку уже жалел, что поторопился и заказал Olimex вместо Embedded Artist. Да и расписанная в Embedded возможность быстро начать программирование под Linux навевала мысли о том, что вот, наконец-то можно ничего не делать. В принципе запустить LCD не так то сложно, а примеры поддержки других узлов выложены на Olimex для других плат. Но путь не пройден, просто имеется такое направление  Нельзя узнать как точно называется ваша плата у Olimex?
|
|
|
|
|
Sep 10 2008, 05:52
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(KRS @ Sep 9 2008, 20:25)  у ЕА платы есть разьем специальный, думаю у OLIMEX тоже - нужно просто сделать переходник. обычно самое сложное подключить backlight ( обычно получается внешний использвать ) На настоящий момент это выглядит вот так. Старткит на обратной стороне рукотворного изделия. http://forum.sparkfun.com/viewtopic.php?t=10334Цитата(dmtr @ Sep 10 2008, 04:31)  Нельзя узнать как точно называется ваша плата у Olimex? А на сайт Olimex заглядывали? Там невозможно перепутать - больше с LPC2478 ничего нет.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 10 2008, 12:28
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(KRS @ Sep 6 2008, 15:22)  А то вчера получили Ebmedded Artists - там 16 битная Samsug одна стоит и все. Я был не прав. На моем модуле стоит 32 битный BGA samsung меня просто схема с толку сбила. У них по схеме - samsung 16 битный, а микрон 32 битный. а на плате стоит samsung 32 битный mobile sdram, который на схеме вообще не упоминается.
|
|
|
|
|
Sep 11 2008, 07:15
|
Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 5-09-06
Из: Nsk
Пользователь №: 20 094

|
Цитата(Dog Pawlowa @ Sep 10 2008, 12:52)  А на сайт Olimex заглядывали? Там невозможно перепутать - больше с LPC2478 ничего нет. А есть на диске к киту готовый U-boot для загрузки uCLinux через Ethernet ?
|
|
|
|
|
Sep 11 2008, 07:45
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(dmtr @ Sep 11 2008, 10:15)  А есть на диске к киту готовый U-boot для загрузки uCLinux через Ethernet ? А вот сами посмотрите.
u_boot_manual.pdf ( 235.27 килобайт )
Кол-во скачиваний: 464У меня достучаться до платы по Ethernet не получилось вообще, но мне это особенно и не нужно.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 11 2008, 09:38
|
Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 5-09-06
Из: Nsk
Пользователь №: 20 094

|
Цитата(Dog Pawlowa @ Sep 11 2008, 14:45)  У меня достучаться до платы по Ethernet не получилось вообще, но мне это особенно и не нужно. Это плохо... Может и U-boot выложите?
|
|
|
|
|
Sep 11 2008, 12:03
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(Dog Pawlowa @ Sep 7 2008, 22:27)  На той плате Olimex, что получил я, стоят две микросхемы SDRAM, то есть шина 32-разрядная. А у вас на какой частоте SDRAM работает? А то у EA написано Цитата There is one known limitation of the LPC2478 OEM Board and that is that the clock frequency to the external SDRAM must not exceed 57.6 MHz. This limitation only applies to boards with 32-bit external databus width. Boards with 16-bit databus can run at full speed. И действительно на 72 Мгц память глючит  попробовал 48 работает. Еще не понятно - они предлагают получить 57.6 Mhz таким образом Цитата Normally the internal PLL frequency is set to 288 MHz (the external 12 MHz crystal frequency multiplied by 24). Dividing 288 MHz with 5 gives a core frequency of 57.6 MHz and dividing with 4 gives 72 MHz. Но ведь в даташите написано что можно делить только на четное число. Придется обратно прошить и посмотрю что в оригинале было выставлено. В общем посмотрел я. В оргинале CCLKCFG = 4; что ЗАПРЕЩЕНО в даташите. т.е частота получается 57.6 У меня получилось что SDRAM работает до 66 Мгц ( на 68 уже глючит, но меньше чем на 72). Похоже бага в разводке, потому что ошибка всегда в старших битах (16 - 31)
Сообщение отредактировал KRS - Sep 11 2008, 13:49
|
|
|
|
|
Sep 12 2008, 07:14
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(dmtr @ Sep 11 2008, 12:38)  Это плохо... Может и U-boot выложите? Даже не спрашиваю зачем, потому что мазохистов не спрашивают, зачем им плетка  Я начал выкладывать, но 12 метров, и что-то сбойнуло. Попробую еще раз. Нет, не дает, большой файл. По SDRAM: Код #define SYS_FREQ (72MHZ) ... #if SYS_FREQ == (72MHZ) #define SDRAM_PERIOD 13.8 // 72MHz #elif SYS_FREQ == (57MHZ) #define SDRAM_PERIOD 17.4 // 57.6MHz #elif SYS_FREQ == (48MHZ) #define SDRAM_PERIOD 20.8 // 48MHz #elif SYS_FREQ == (36MHZ) #define SDRAM_PERIOD 27.8 // 36MHz #elif SYS_FREQ == (24MHZ) #define SDRAM_PERIOD 41.7 // 24MHz #else #error Frequency not defined #endif
#define P2C(Period) (((Period<SDRAM_PERIOD)?0:(Int32U)((Flo32)Period/SDRAM_PERIOD))+1)
#define SDRAM_REFRESH 7813 #define SDRAM_TRP 20 #define SDRAM_TRAS 45 #define SDRAM_TAPR 1 #define SDRAM_TDAL 3 #define SDRAM_TWR 3 #define SDRAM_TRC 65 #define SDRAM_TRFC 66 #define SDRAM_TXSR 67 #define SDRAM_TRRD 15 #define SDRAM_TMRD 3
/************************************************************************* * Function Name: SDRAM_Init * Parameters: none * * Return: none * * Description: SDRAM controller and memory init * *************************************************************************/ void SDRAM_Init (void) { // Assign pins to SDRAM controller PINSEL5 &= BIN32(11110000,11111100,11111100,11000000); PINSEL5 |= BIN32(00000101,00000001,00000001,00010101); PINMODE5&= BIN32(11110000,11111100,11111100,11000000); PINMODE5|= BIN32(00001010,00000010,00000010,00101010); PINSEL6 = BIN32(01010101,01010101,01010101,01010101); PINMODE6 = BIN32(10101010,10101010,10101010,10101010); PINSEL8 &= BIN32(11000000,00000000,00000000,00000000); PINSEL8 |= BIN32(00010101,01010101,01010101,01010101); PINMODE8&= BIN32(11000000,00000000,00000000,00000000); PINMODE8|= BIN32(00101010,10101010,10101010,10101010); PINSEL9 &= BIN32(11111111,11110011,11111111,11111111); PINSEL9 |= BIN32(00000000,00000100,00000000,00000000); PINMODE9&= BIN32(11111111,11110011,11111111,11111111); PINMODE9|= BIN32(00000000,00001000,00000000,00000000);
// Init SDRAM controller // Enable EMC clock PCONP_bit.PCEMC = 1; EMCCONTROL = 1; // enable EMC EMCDINAMICRDCFG = 1; EMCDYNAMICRASCAS0_bit.CAS = 3; EMCDYNAMICRASCAS0_bit.RAS = 3; EMCDYNAMICRP = P2C(SDRAM_TRP); EMCDYNAMICRAS = P2C(SDRAM_TRAS); EMCDYNAMICSREX = P2C(SDRAM_TXSR); EMCDYNAMICAPR = SDRAM_TAPR; EMCDYNAMICDAL = SDRAM_TDAL+P2C(SDRAM_TRP); EMCDYNAMICWR = SDRAM_TWR; EMCDYNAMICRC = P2C(SDRAM_TRC); EMCDYNAMICRFC = P2C(SDRAM_TRFC); EMCDYNAMICXSR = P2C(SDRAM_TXSR); EMCDYNAMICRRD = P2C(SDRAM_TRRD); EMCDYNAMICMRD = SDRAM_TMRD; EMCDYNAMICCFG0 = 0x0000680; // 13 row, 9 - col, SDRAM // JEDEC General SDRAM Initialization Sequence // DELAY to allow power and clocks to stabilize ~100 us // NOP EMCDINAMICCTRL = 0x0183; for(volatile Int32U i = 200*30; i;i--); // PALL EMCDINAMICCTRL_bit.I = 2; EMCDINAMICRFR = 1; for(volatile Int32U i= 128; i; --i); // > 128 clk EMCDINAMICRFR = P2C(SDRAM_REFRESH) >> 4; // COMM EMCDINAMICCTRL_bit.I = 1; // Burst 8, Sequential, CAS-2 volatile unsigned long Dummy = *(volatile unsigned short *) ((Int32U)&SDRAM_BASE_ADDR + (0x33UL << (12))); // NORM EMCDINAMICCTRL = 0x0000; EMCDYNAMICCFG0_bit.B = 1; for(volatile Int32U i = 10000; i;i--); }
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 15 2008, 07:23
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(proba @ Sep 13 2008, 10:09)  а тошибовски ARM9 TMPA910 не посмотрели ? ... Spoerle и Glyn для Вас недалеко. Для меня и ARM7 в общем то ново, поэтому встревать в ARM9 не хотелось бы. Видео не требуется, а статические картинки я как-нибудь поборю. Пусть даже ценой уменьшения количества битов на точку. Лучшее - враг хорошему. А в век глобализации все всем близко  Безусловно, стало приятно работать - можно позвонить локальному представителю известного производителя микросхем и получить образцы микросхем и старкиты бесплатно навсегда или во временное пользование. Вот только для игры с этим всем требуется время.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 15 2008, 08:18
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(proba @ Sep 13 2008, 11:09)  а тошибовски ARM9 TMPA910 не посмотрели ? Чтото я не одного + у него не заметил. Частота маленькая. Etherent, CAN нету. Где их покупать тоже не совсем понятно. IMHO лучше уж Atmel 9263 взять, там хоть шины две! И с документацией и доставабельностью все понятно. А так для нормальной работы с большими разрешениями нужно что то посерьезней. А главное пропускная сопсобность памяти побольше. У меня тут коллеги заказли плату с MPC5121 - двуядерный PPC + PowerVR ( 3D ускоритель ) + еще DSP. Одно огорчает - доков на PowerVR нет ( это кстати и OMAP3 касается но у OMAP3 с переферией туго ) и на DSP тоже доков нету.
|
|
|
|
|
Mar 7 2009, 18:46
|
self made
   
Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795

|
Попробую в 16 bpp тоже, правда мне тогда памяти только на 2/3 экрана хватит  Цитата(Dog Pawlowa @ Mar 7 2009, 12:06)  В даташите табличка распределения пинов приведена для всех режимов. Насколько я помню, соответствующие биты данных сдвигаются всегда в старшие биты соответствующего цвета. Вот кстати с этим вот что интересно -- В даташите есть след. варианты подключения линий данных: P2.6 -- LCD0/LCD4 P2.7 -- LCD1/LCD5 P2.8 -- LCD2/LCD6 P2.9 -- LCD4/LCD7 P2.12 -- LCD4/LCD3/8/12 P2.13 -- LCD5/LCD9/19 P4.28 -- LCD6/LCD10/2 P4.29 -- LCD7/LCD11/3 Это из ПИНСЕЛ. Но в разделе про LCD есть только первый.... пс. ой, я кажется нашел проблему. У меня PINSEL11 на TFT запрограммирован... Странно как-то они сделали -- режим ЛЦД надо указывать в двух регистрах ?
Сообщение отредактировал ar__systems - Mar 7 2009, 18:57
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|