Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM7xxxx + ILI9320
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
hd44780
Привет всем ...

Вот вожусь с данным дисплеем. Мой дисплей с параллельной шиной типа стандарта I8080/I8086 - т.е. полный набор управляющих сигналов nReset, nCS, nRD, nWR, RS (A0) ну и 16 бит ШД. Данный дисплей в общем-то без проблем завёлся на меге 16A и 32A.
Исходник на CvAVR для Mega32A прилагаю. Там и часики на экране тикают, осциллограмму, FFT (тормознуто, на си sm.gif ) считает и рисует и ещё всякую всячину делает ....
Схему не выкладывал, там всё по макросам в коде понятно. Да и здесь она есть.

Перепаял его на AT91SAM7S256 - схема. Код управления, инициализации 100% взят из авровского варианта, под армину эту переписал только низкоуровневый "ногодрыг".
2 недели уже вожусь - не заводится sad.gif . Только светодиодик на PA0 мигает (типа проц работает и таймер тикает) и всё ....
Ногами порта управлять вроде умею - HD44780 20x4 на 8-битном интерфейсе пошёл с первого раза sm.gif (если не считать нескольких неудачных попыток с 4-бит режимом).

Смотрел проект Геннадия - http://www.cqham.ru/forum/showthread.php?t=9688 , но у него дисплей с SPI интерфейсом плюс одна доп. нога сброса ...

Других примеров не нашёл, натыкался на буржуйских сайтах на исходники под какие-то STM32, но не смотрел их, толку с них, там всё равно управление портом другое. А сишные алгоритмы типа нарисовать линию и пр. везде одинаковые, хоть под Core i5 их скомпилируй ..
У меня даже заливка цветом не получается. И точку поставить не могу.

Кто может, гляньте пожалуйста, может у меня уже "глаз замылился", бревна какого-нибудь не заметил rolleyes.gif .
Полный проект для IAR приложил.

Спасибо.
RabidRabbit
мож вот это? (ILI9320lib.c)
#define LCD_DATA_BITS (AT91C_PIO_PA16 | AT91C_PIO_PA17 | AT91C_PIO_PA18 | AT91C_PIO_PA19 | \
AT91C_PIO_PA20 | AT91C_PIO_PA21 | AT91C_PIO_PA22 | AT91C_PIO_PA23 | \
AT91C_PIO_PA24 | AT91C_PIO_PA25 | AT91C_PIO_PA25 | AT91C_PIO_PA27 | \
AT91C_PIO_PA28 | AT91C_PIO_PA29 | AT91C_PIO_PA30 | AT91C_PIO_PA31 )
hd44780
Цитата(RabidRabbit @ Oct 29 2012, 15:10) *
мож вот это? (ILI9320lib.c)


Да мож .... Нога PA26 вообще нигде не конфигурировалась никак sm.gif Очепятка, блин. Спасибо.
Ещё одна возможная причина:
// nCS=0, RS=0
LCD_TARGET_PORT_C = LCD_CS_BIT | LCD_RS_BIT;

Одновременое выставление CS и других сигналов... И другие родственные вещи там есть..
Дома вечером проверю и отпишусь.
hd44780
Заработал sm.gif

Тормозит правда, но это я где-то с задержками перестарался sm.gif ....
Задержки, видимо придётся делать на nop-ах и холостых циклах.
RabidRabbit
Отлично! sm.gif Я вот всё никак до 240х64 монохромного не доберусь wink.gif Да, если нужен исходник для HD44780 для 4-битного режима (для SAM7S), могу прислать, только он на ассемблере.
hd44780
Цитата(RabidRabbit @ Oct 29 2012, 19:43) *
если нужен исходник для HD44780 для 4-битного режима (для SAM7S), могу прислать, только он на ассемблере.


Спасибо, пришлите. Гляну на этот ассемблер, я его и в глаза ещё не видел ...
Я с этим 4-битником на дисплее 20x4 неделю корячился, потом достал он меня, сделал на 8-битном, он сразу заработал rolleyes.gif

Задержки поправил.
Часики заработали sm.gif
RabidRabbit
Вот (задержки для частоты процессора 55 МГц).
hd44780
Спасибо.
Genadi Zawidowski
Цитата
Смотрел проект Геннадия

В том же проекте есть функции задержки (на циклах) - приблизительно откалиброваных для известной частоты процесссора.
hd44780
Цитата(Genadi Zawidowski @ Oct 30 2012, 20:58) *
В том же проекте есть функции задержки (на циклах) - приблизительно откалиброваных для известной частоты процесссора.


Ага, гляну.
Я пока занялся остальной частью схемы rolleyes.gif .
Memento Mori
Автор, открою Вам маленький секрет. Выбранный Вами камень не даст вам преимущества в скорости выведения на экран.
Да, контроллер более быстрый, но погуглите на предмет скорости ногодрыганья. AVR у него чуть ли не выигрывает.

Либо дисплей с SPI и контроллер с быстрым SPI. Либо взять STM32F2, если хотите ногодрыганьем дисплей окучивать.
Genadi Zawidowski
Скажу честно, и в режиме с SPI этот дисплей тоже не крут.
12 мегабит SPI, без учёта пауз - 16 бит на пиксель (8-битного режима нет). Экран 320*240 заполняется минимум за 0.1 секунды. Это теоретически или если по DMA ему скармливать буфер. В реальности стирание экрана 0.2 секунды займёт.
Memento Mori
А сколько займет стирание экрана в 8-битном режиме на AVR при 10 МГц?
Genadi Zawidowski
Цитата(Memento Mori @ Nov 4 2012, 00:26) *
А сколько займет стирание экрана в 8-битном режиме на AVR при 10 МГц?

У этого видеоконтроллера нет 8-битного режима.
10 МГц на AVR - это 5 МГц SPI. Четверть секунды - теоретический предел. В реальности до 0.3..0.4. Если бы был 8 битный режим - 0.13 секунды минимум. Но такого режима нет.
Memento Mori
Я имел в виду, если использовать параллельный интерфейс. У меня лежит китайская плата, там ставишь перемычку и режим становится 8битным. ТОлько не экран включается в этот режим, а старшие и младшие 8 бит какой-то логической микрой хитро коммутируются.

Другими словами, если дрыгать ногами на AVR в параллельном режиме или работать по SPI - что быстрее получится?
Genadi Zawidowski
Цитата(Memento Mori @ Nov 4 2012, 10:26) *
Другими словами, если дрыгать ногами на AVR в параллельном режиме или работать по SPI - что быстрее получится?


Мне кажется, одинаково. Если применить AVR с интерфейсом внешней шины (ATMEGA64/128) - то тогда получится быстрее. Раза в три.
Memento Mori
Вы имеет ввиду параллельный режим будет быстрее на mega128?

Кстати, вот дисплеи http://www.ebay.com/sch/i.html?_odkw=ili92...20&_sacat=0
У меня дисплей с переходной платой. Я вначале подумал, что китайцы поленились сделать разводку SPI только на плате. А когда посетил вышеуказанную ссылку - я в шоке - они дисплеи без SPI что ли сделали? На контроллере, который SPI поддерживает...
Genadi Zawidowski
Я имею в виду, что паралельную шину (данные 8 бит + строб) будет быстрее обслуживать процессор, имеющий для этого аппаратуру.
На мой взгляд, дисплеи с разрешением 320*240 и больше обслуживать простым заполнением буфера уже в любом случае медленно. Я приспособил для этих целей видеоконтроллер с SPI интерфейсом - теперь даже на ATMEGA (а на ARM c его 12 МГц SPI и подавно) обновление экрана просто летает. Цифры меняются как на индикаторах "ИН" - мгновенно. Микросхема EPSON S1D13781F00A100. http://www.cqham.ru/forum/showthread.php?t=21207
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.