Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC2478 + LCD = cтранные проблемы с синхронизацией.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
Dog Pawlowa
Подключил к плате от Олимекс другой ЖКИ (800 480 вместо 320 240) с соответствующей корректировкой инициализации. На экране мельтешение.
Нажмите для просмотра прикрепленного файла
Можно было бы списать на строчную синхронизацию, но круглый курсор в центре экрана стоит как вкопанный. Значит, нет синхронизации от кадра к кадру между содержимым ОЗУ и контроллером ОЗУ. То есть при окончании кадра данные берутся с другого места (но незначительно, т.к. общие полосы по кадрам отображаются похоже).
Вот я и думаю, как это может быть вообще и что это нужно еще подправить.
aaarrr
Очень похоже, что у Вас полосы памяти не хватает, а курсор хардварный, вот и стоит на месте.
Dog Pawlowa
Цитата(aaarrr @ Sep 2 2008, 16:57) *
Очень похоже, что у Вас полосы памяти не хватает, а курсор хардварный, вот и стоит на месте.

Точно!
Уменьшил частоту вдвое(до 12 MHZ) - все стоит жестко. На 16 MHZ картинка стоит, пока программа ходит внутри контроллера, но при записи данных теста в видеопамять картинка опять срывается.
Признаюсь, документацию смотрел поверхностно, но данный факт существенно ограничивает расписанные в мануале LPC2478 возможности, на самом деле 24 bpp && display resolution >= 640x480, 800x600, and 1024x768 работать не могут.
aaarrr
Цитата(Dog Pawlowa @ Sep 2 2008, 18:46) *
Признаюсь, документацию смотрел поверхностно, но данный факт существенно ограничивает расписанные в мануале LPC2478 возможности, на самом деле 24 bpp && display resolution >= 640x480, 800x600, and 1024x768 работать не могут.

Ну, на странице продукта в Block Diagram контроллер называется "LCD controller for QVGA STN and TFT displays" smile.gif

А 800x480x24bpp - это больше 118Мбайт/с в пике. Да и силами ARM7 @ 72MHz с таким экраном мало что сделаешь sad.gif
Dog Pawlowa
Цитата(aaarrr @ Sep 2 2008, 17:58) *
А 800x480x24bpp - это больше 118Мбайт/с в пике. Да и силами ARM7 @ 72MHz с таким экраном мало что сделаешь sad.gif

Ну, разве специфических задач нет? Вывести красотку на экран, а потом долго рассматривать smile.gif

Буду на 5-6-5 переходить, судя по таблицам в мануале, перераспределения контактов не требуется, достаточно переконфигурирования.
aaarrr
16bpp тоже не сахар, ARM9 @ 200MHz с кэшами только-только хватает тянуть 640x480x16bpp без тормозов. 8bpp - более реальное значение.
Dog Pawlowa
Цитата(aaarrr @ Sep 2 2008, 18:19) *
16bpp тоже не сахар, ARM9 @ 200MHz с кэшами только-только хватает тянуть 640x480x16bpp без тормозов. 8bpp - более реальное значение.

Спасибо, учту.
Применение права специфическое - для медицинского прибора. Видео не требуется. Статические картинки GUI можно показывать с хорошим качеством, а в динамике можно будет и до 4 bpp снизить.
abcdefg
Цитата(Dog Pawlowa @ Sep 2 2008, 19:14) *
Ну, разве специфических задач нет? Вывести красотку на экран, а потом долго рассматривать smile.gif

Буду на 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
Dog Pawlowa
Цитата(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 записываются в четырех байтах.

Самое интересное, что про проблему с полосой шины читал, но не ожидал, что именно так она проявляется визуально.
Al Volovich
Цитата(Dog Pawlowa @ Sep 2 2008, 21:34) *
Применение права специфическое - для медицинского прибора. Видео не требуется. Статические картинки GUI можно показывать с хорошим качеством, а в динамике можно будет и до 4 bpp снизить.

Может быть подойдет готовое решение: ТФТ-Компаньон
Кроме SPI порта для него практически ничего не надо...
7" матрица 800х480 поддерживается.
Плюсом решается проблема несоответствия времени выпуска конкретного TFT-модуля и вашего конечного изделия. В медтехнике то жизненный цикл изделия 10 лет - норма.
Dog Pawlowa
Цитата(Al Volovich @ Sep 4 2008, 13:15) *
Может быть подойдет готовое решение: ТФТ-Компаньон
Кроме SPI порта для него практически ничего не надо...
7" матрица 800х480 поддерживается.
Плюсом решается проблема несоответствия времени выпуска конкретного TFT-модуля и вашего конечного изделия. В медтехнике то жизненный цикл изделия 10 лет - норма.

Спасибо за предложение. Конечно же, Ваше решение рассматривалось.
Достоинства очевидны, а недостатки ... Они тоже есть, кроме первого, недостатки - это скорее отсутствие этих достоинств smile.gif
1) Более дорогое решение.
2) Если Вы будете адаптировать решение под другие модули, то и мы в общем то в состоянии. Первый опыт показал, что проблем особых нет.
3) Объем памяти для GUI откуда брать? Все равно ядро прибора должно быть продвинутое, графическими примитивами не обойтись. А тут ARM c USB хостом, да я весь GUI как битмапы во флэшку накидаю, а многопроцессорность в системе имеет свои недостатки.

Давайте наоборот? Я немного наблатыкаюсь с NXP и замутим "TFT-Брателло" на LPC-2478 ? smile.gif
aaarrr
Цитата(Dog Pawlowa @ Sep 4 2008, 16:28) *
Давайте наоборот? Я немного наблатыкаюсь с NXP и замутим "TFT-Брателло" на LPC-2478 ? smile.gif

"TFT-Брателло" лучше замутить на Fujitsu Jade - вот это будет вещь.
Dog Pawlowa
Цитата(aaarrr @ Sep 4 2008, 15:39) *
"TFT-Брателло" лучше замутить на Fujitsu Jade - вот это будет вещь.

BGA-484 Package ? Не, это уже неподъемно.
Не говоря уже о программировании.
aaarrr
Цитата(Dog Pawlowa @ Sep 4 2008, 16:54) *
BGA-484 Package ? Не, это уже неподъемно.
Не говоря уже о программировании.

BGA детский, pitch 1.0mm. А программирование пугать не должно smile.gif
Al Volovich
Цитата(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 контроллером это не проблема smile.gif
Цитата(Dog Pawlowa @ Sep 4 2008, 18:28) *
Давайте наоборот? Я немного наблатыкаюсь с NXP и замутим "TFT-Брателло" на LPC-2478 ? smile.gif

Брателло больше чем 480х272 врядли потянет с нормальной скоростью, не стоит мучить 2478 smile.gif
Dog Pawlowa
Цитата(Al Volovich @ Sep 4 2008, 15:58) *
А вы какой модуль используете?
Зато не надо хранить две страницы видеобуфера, а для 800х480х16 bpp это полтора метра памяти. Хотя со SDRAM контроллером это не проблема smile.gif

Мы решили сделать свой модуль - LPC2478+SDRAM. Три микросхемы на плате решают вопрос и управления, и вывода. А управление прочими блоками по SPI или UART.

Цитата(Al Volovich @ Sep 4 2008, 15:58) *
Брателло больше чем 480х272 врядли потянет с нормальной скоростью, не стоит мучить 2478 smile.gif

Ну я же говорю - динамика не нужна. Зато женское тело можно вывести со всеми подробностями smile.gif
Можно подумать, что TFT-компаньон решает проблему быстродействия. Он только добавляет проблему синхронизации дисплея событиями в приборе.
Al Volovich
Цитата(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 кардинально сокращаются.
Dog Pawlowa
Цитата(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.

Я еще раз посмотрел Ваш сайт. Цены действительно разумные. Но не для тысяч устройств. Решение с отдельной платкой для перехода на плоский кабель логично. Передерем smile.gif Получается, что придется создавать что-то похожее, но свое, только для того, чтобы еще свое приложение подгрузить.
Кстати, а какой контроллер Вы используете? smile.gif
Al Volovich
Цитата(Dog Pawlowa @ Sep 5 2008, 15:45) *
Зато придется автоматизировать технологию подготовки скриптов.

Это сделаем, программу-донора уже нашли smile.gif
Цитата(Dog Pawlowa @ Sep 5 2008, 15:45) *
Текст выводить - нужно в ATmega8 пару шрифтов поместить. И куда? А 128 мега - уже половина стоимости LPC.

Шрифты хранятся во флэш на борту ТФТ-компаньона, так что памяти пользовательского МК не отъедают. Так же как и картинки.
Цитата(Dog Pawlowa @ Sep 5 2008, 15:45) *
Я еще раз посмотрел Ваш сайт. Цены действительно разумные. Но не для тысяч устройств.

Разумеется. Целевая аудитория - изделия с тиражом до нескольких сотен в год. Хотя клиенты с тысячными тиражами приветствуются особо smile.gif
Цитата(Dog Pawlowa @ Sep 5 2008, 15:45) *
Решение с отдельной платкой для перехода на плоский кабель логично. Передерем smile.gif

Да берите пожалуйста, я сам это подсмотрел smile.gif
Цитата(Dog Pawlowa @ Sep 5 2008, 15:45) *
Кстати, а какой контроллер Вы используете? smile.gif

9261
Dog Pawlowa
Цитата(Al Volovich @ Sep 5 2008, 13:03) *
Хотя клиенты с тысячными тиражами приветствуются особо smile.gif

Я мосты не жгу, но покувыркаюсь немного в своей песочнице smile.gif
KRS
А на OLIMEX плате 32 битный SDRAM используется?
А то вчера получили Ebmedded Artists - там 16 битная Samsug одна стоит и все.
По схеме(которой почему то в комплекте нет, а надо скачивать с сайта) на модуле может стоять или samsung или микрон но уже 32 битный, но на самом модуле под этот микрон место TSOP54 - а на схеме явно ног побольше в общем фигня какая то ( должно быть TSOP86)

По поводу самого комплекта
Никакой документации не приложено, на DVD только образ для VmWare Player даже его самого нет. Зачем он нужен не понятно - там обычный Debian. ну cross compiler GCC ARM там есть, но никаких средств для разработки нет вообще.В общем абсолютно бесполезная вещь.

Еще собстевнно ucLinux и uBoot с патчем EA. Но никаких полезных ихсодников не нашел.
Сама плата отлично работает. Демка очень хорошая, матрица качественная.( но странная еще и по SPI подключена и документации нет, только исходник который чтото посылает для конфигурирования причем числовыми константами)
Но по исходникам и документации хуже платы у меня не было. ( даже за 30 баксов лучше была)
srg_co
Цитата(KRS @ Sep 6 2008, 15:22) *
По поводу самого комплекта
Никакой документации не приложено, на DVD только образ для VmWare Player даже его самого нет. Зачем он нужен не понятно - там обычный Debian. ну cross compiler GCC ARM там есть, но никаких средств для разработки нет вообще.В общем абсолютно бесполезная вещь.

Зарегистрируйте плату у них на сайте, получите документацию.

Цитата(KRS @ Sep 6 2008, 15:22) *
Но никаких полезных ихсодников не нашел. Но по исходникам и документации хуже платы у меня не было. ( даже за 30 баксов лучше была)

Отдельно надо зарегистрировать сам дисплей, будут доступны пара демок под KEIL и GCC.
KRS
Цитата(srg_co @ Sep 6 2008, 23:03) *
Зарегистрируйте плату у них на сайте, получите документацию.
Отдельно надо зарегистрировать сам дисплей, будут доступны пара демок под KEIL и GCC.

Плату я естественно сразу зарегистрировал, иначе даже схему не посмотреть. Самое обидное что везде написано что 32 битная шина используется, а на деле 16 бит и еще не сответсвие схемы и платы!
Но и после регистрации там мало чего интересного есть. Исходников чего то полезного под ucLinux я не нашел. Исходников того что прошито в плату и как это восстановить тоже.

Что дисплей надо отдельно регистрировать, я даже как то не подумал.
srg_co
32 битная версия это отдельный модуль, у него и память явно не TSOP, судя по картинке BGA и появились они позже.

Что касается исходников для платы, так это все в образе виртуальной машины.
Для восстановления можно использовать двоичные образы, есть на сайте ... > Resources > Repository, там u-boot, romfs.bin, linux.bin

Сам пробовал перезаливать u-boot, все работает нормально.
Dog Pawlowa
Цитата(KRS @ Sep 6 2008, 14:22) *
А на OLIMEX плате 32 битный SDRAM используется?
А то вчера получили Ebmedded Artists - там 16 битная Samsug одна стоит и все.
....

На той плате Olimex, что получил я, стоят две микросхемы SDRAM, то есть шина 32-разрядная. Индикатор 24 bpp, может поэтому. Причем на форумах видел фотографии этой же платы Olimex, но с одной микросхемой. Повезло smile.gif
Ситуация с U-link & ucLinux аналогичная - все есть, но ковыряться в бездне исходников - тяжелый, изнурительный труд.
Есть еще пример работы с LCD, который я и мучаю. Инициализация дисплея расписана болгарином очень корректно и понятно. Уважаю.
То, что Вы пишете, сняло камень с души smile.gif , поскольку уже жалел, что поторопился и заказал Olimex вместо Embedded Artist. Да и расписанная в Embedded возможность быстро начать программирование под Linux навевала мысли о том, что вот, наконец-то можно ничего не делать.
В принципе запустить LCD не так то сложно, а примеры поддержки других узлов выложены на Olimex для других плат. Но путь не пройден, просто имеется такое направление smile.gif
zltigo
Цитата(Dog Pawlowa @ Sep 7 2008, 20:27) *
Инициализация дисплея расписана болгарином очень корректно и понятно. Уважаю.

Полагаю это Stanimir Bonev? Он, практически единственный хороший писатель всяких болванок и не только для Olimex. Не без фокусов (но это больше специфика продукта влияет) но дейсвительно заслуживающие внимания и изучения исходники в бесконечном море хлама!
Dog Pawlowa
Цитата(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


Кстати, вопрос к Вам по этой плате. Сам не разбирался еще, может подскажете влет smile.gif
После небольшой корректировки проекта Бонева и загрузки его с помощью At200 наблюдаю: после программирования и "горячего старта" программа висит. Если передернуть питание, то стартует нормально. В чем может быть разница?
zltigo
Цитата(Dog Pawlowa @ Sep 8 2008, 10:41) *
Кстати, вопрос к Вам по этой плате.

Я этой платы не имею и от графики далек, а Бонев - просто встречал несколько раз в совсем других поектах и запомнил.
Цитата
Да, именно он. А ведь мог все записать одной строчкой!

Я именно одной строчкой для реальной работы написал-бы smile.gif, а для демки именно так правильно, ибо хидеры готовые. "Не в этом сила,..."
KRS
Цитата(Dog Pawlowa @ Sep 7 2008, 22:27) *
Да и расписанная в Embedded возможность быстро начать программирование под Linux навевала мысли о том, что вот, наконец-то можно ничего не делать.

Да это у них супер рекламный ход!!!
Но зачем нужен debian с распакованными исходниками и ARM toolchain под VMWarePlayer ( который еще и не удосужились полоджить на диск) непонятно! Хоть бы Eclipse что ли туда поставили, ведь абсолютно ничего нет! даже readme файла. Проще все под CygWin делать. Или под настоящим Linux.
muravei
Цитата(Dog Pawlowa @ Sep 7 2008, 22:27) *
То, что Вы пишете, сняло камень с души smile.gif , поскольку уже жалел, что поторопился и заказал Olimex вместо Embedded Artist.

Что делать?! Что делать?! crying.gif А мне что выбрать? sad.gif
Цитата(Dog Pawlowa @ Sep 2 2008, 16:09) *
Подключил к плате от Олимекс другой ЖКИ

А это сложно физически?
KRS
Цитата(muravei @ Sep 9 2008, 17:16) *
Что делать?! Что делать?! crying.gif А мне что выбрать? sad.gif

А это сложно физически?

у ЕА платы есть разьем специальный, думаю у OLIMEX тоже - нужно просто сделать переходник.
обычно самое сложное подключить backlight ( обычно получается внешний использвать )

IMHO получается проще вообще купить SK-MLPC2478 за 1500 руб и не париться. ( правда скорее всего чип придется перепаять на 78)
zltigo
Цитата(KRS @ Sep 9 2008, 19:25) *
IMHO получается проще вообще купить SK-MLPC2478 за 1500 руб и не париться. ( правда скорее всего чип придется перепаять на 78)

1.Перепаивать не на что.
2.Памяти там 512KB 16bit статика
3.Разводка - пракически 1:1 выводы по периметру чипа - подключать максимально неудобно.
dmtr
Цитата(Dog Pawlowa @ Sep 8 2008, 01:27) *
На той плате Olimex, что получил я, стоят две микросхемы SDRAM, то есть шина 32-разрядная. Индикатор 24 bpp, может поэтому. Причем на форумах видел фотографии этой же платы Olimex, но с одной микросхемой. Повезло smile.gif
Ситуация с U-link & ucLinux аналогичная - все есть, но ковыряться в бездне исходников - тяжелый, изнурительный труд.
Есть еще пример работы с LCD, который я и мучаю. Инициализация дисплея расписана болгарином очень корректно и понятно. Уважаю.
То, что Вы пишете, сняло камень с души smile.gif , поскольку уже жалел, что поторопился и заказал Olimex вместо Embedded Artist. Да и расписанная в Embedded возможность быстро начать программирование под Linux навевала мысли о том, что вот, наконец-то можно ничего не делать.
В принципе запустить LCD не так то сложно, а примеры поддержки других узлов выложены на Olimex для других плат. Но путь не пройден, просто имеется такое направление smile.gif

Нельзя узнать как точно называется ваша плата у Olimex?
Dog Pawlowa
Цитата(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 ничего нет.
muravei
Цитата(KRS @ Sep 9 2008, 21:25) *
проще вообще купить SK-MLPC2478 за 1500 руб и не париться.

Размышлял на эту тему, в этом памяти маловато, да и хотелось бы динамическую, а в том что подороже ПЛИСка приделана , смысл вообще теряется, можно контроллер дисплея на ней заморочить.
KRS
Цитата(KRS @ Sep 6 2008, 15:22) *
А то вчера получили Ebmedded Artists - там 16 битная Samsug одна стоит и все.

Я был не прав. На моем модуле стоит 32 битный BGA samsung
меня просто схема с толку сбила.
У них по схеме - samsung 16 битный, а микрон 32 битный.
а на плате стоит samsung 32 битный mobile sdram, который на схеме вообще не упоминается.
dmtr
Цитата(Dog Pawlowa @ Sep 10 2008, 12:52) *
А на сайт Olimex заглядывали? Там невозможно перепутать - больше с LPC2478 ничего нет.

А есть на диске к киту готовый U-boot для загрузки uCLinux через Ethernet ?
Dog Pawlowa
Цитата(dmtr @ Sep 11 2008, 10:15) *
А есть на диске к киту готовый U-boot для загрузки uCLinux через Ethernet ?

А вот сами посмотрите. Нажмите для просмотра прикрепленного файла
У меня достучаться до платы по Ethernet не получилось вообще, но мне это особенно и не нужно.
dmtr
Цитата(Dog Pawlowa @ Sep 11 2008, 14:45) *
У меня достучаться до платы по Ethernet не получилось вообще, но мне это особенно и не нужно.


Это плохо... Может и U-boot выложите?
KRS
Цитата(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 Мгц память глючит sad.gif
попробовал 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)
Dog Pawlowa
Цитата(dmtr @ Sep 11 2008, 12:38) *
Это плохо... Может и U-boot выложите?

Даже не спрашиваю зачем, потому что мазохистов не спрашивают, зачем им плетка smile.gif
Я начал выкладывать, но 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--);
}
KRS
Цитата(dmtr @ Sep 11 2008, 13:38) *
Это плохо... Может и U-boot выложите?

Я могу diff от EA выложить для uboot.
Собственно он и здесь поместится ( прилагаю)
proba
Цитата(Dog Pawlowa @ Sep 2 2008, 17:46) *
на самом деле 24 bpp && display resolution >= 640x480, 800x600, and 1024x768 работать не могут.

а тошибовски ARM9 TMPA910 не посмотрели ?
http://www.spoerle.com/cda/semiconhotoffer...74,4522,00.html
http://www.toshiba-components.com/microcon...SKTOPAS910.html
Spoerle и Glyn для Вас недалеко.
Dog Pawlowa
Цитата(proba @ Sep 13 2008, 10:09) *
а тошибовски ARM9 TMPA910 не посмотрели ?
...
Spoerle и Glyn для Вас недалеко.


Для меня и ARM7 в общем то ново, поэтому встревать в ARM9 не хотелось бы.
Видео не требуется, а статические картинки я как-нибудь поборю. Пусть даже ценой уменьшения количества битов на точку. Лучшее - враг хорошему.

А в век глобализации все всем близко smile.gif Безусловно, стало приятно работать - можно позвонить локальному представителю известного производителя микросхем и получить образцы микросхем и старкиты бесплатно навсегда или во временное пользование. Вот только для игры с этим всем требуется время.
KRS
Цитата(proba @ Sep 13 2008, 11:09) *
а тошибовски ARM9 TMPA910 не посмотрели ?

Чтото я не одного + у него не заметил.
Частота маленькая. Etherent, CAN нету. Где их покупать тоже не совсем понятно.
IMHO лучше уж Atmel 9263 взять, там хоть шины две! И с документацией и доставабельностью все понятно.
А так для нормальной работы с большими разрешениями нужно что то посерьезней. А главное пропускная сопсобность памяти побольше.

У меня тут коллеги заказли плату с MPC5121 - двуядерный PPC + PowerVR ( 3D ускоритель ) + еще DSP.
Одно огорчает - доков на PowerVR нет ( это кстати и OMAP3 касается но у OMAP3 с переферией туго ) и на DSP тоже доков нету.
Wano
Люди добрые help.gif . Не получилось резвой работы с видеоконтроллером S1D Эпосна, преобрёл плату EA c LPC2478 , скачал пример с сайта,но при переделки под Keil ну никак не выходит хоть что-нить показать на экранчике. Осциллом смотрел - вроде в память пишу, при отладке область памяти с 0xA0000000 заполняется значениями цвета при работе. Видеоконтроллер выдаёт сигнал LCDPWR тоесть вроде как всё запускается,но обсалютно никаких сподвижек на экране.Может кто не жадный и поделится рабочим примером под Keil для работы с этой платой.
Wano
Подключил к плате от EA вненюю панель и начал каждый бит проверять в настройках видеоконтроллера.Вроде что-то заработало,но частота клоков при всех возможных минимальных значенях делителей не превышает 260 Гц. НУ неужели никто ещё не работал ниразу со встроенным видеоконтроллером на Lpc2478? Ну может хоть настройки для TFT панели кто знает?
Axel
Мне понадобилось два дня гипноза доки для запуска LCD панели с LPC2478 (аналогичных примеров не было). Так что "Все у Вас получится". А для TFT - не смотрели "Embedded Artists" на FTP? Там вроде было чего-то...
ar__systems
Не знал что столько людей в России с процессорами работают. Это радует.

Пытаюсь запустить ЛПС2478 с STN LCD 640х480 экраном, 8 bit, в режиме паллитры 256 цветов.

Строчная и кадровая синхронизация работает безупречно, но какие-то глюки с линиями данных.

Записываю 100% белый цвет в первый пиксел каждой строки и смотрю на выход:
(в столбцах значения на соответсвующих линиях данных, в каждый клок, начиная с первого клока в строке)

0 0 0 ...
1 1 0 ...
2 1 0 ...
3 1 0 ...
4 0 0 ...
5 0 0 ...
6 0 ...
7 0 ...

WTF? Вместо линий 012 зажигаются 123.

Записываю белый цвет во второй пиксел.

0 1 0 ...
1 1 0 ...
2 1 0 ...
3 1 0 ...
4 0 0 ...
5 0 0 ...
6 1 0 ...
7 1 0 ...

Т.е. вместо линий 345 зажглись 670.
Я уж начал думать что у меня линии данных перепутаны, но нет. Все идет куда надо. Я правда заметил что у меня бит RGB-BGR неправильно стоит, но он же не должен к таким последствиями приводить? С исправленым этим битом еще проверить не успел.
Dog Pawlowa
Цитата(ar__systems @ Mar 7 2009, 17:22) *
Пытаюсь запустить ЛПС2478 с STN LCD 640х480 экраном, 8 bit, в режиме паллитры 256 цветов.

В этом режиме не пробовал, только 24 bpp и 16 bpp, но никаких проблем не было.
В даташите табличка распределения пинов приведена для всех режимов. Насколько я помню, соответствующие биты данных сдвигаются всегда в старшие биты соответствующего цвета.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.