Часовой пояс: UTC + 3 часа




Куратор(ы):   zauropod   



Форум закрыт Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 399 • Страница 6 из 20<  1 ... 3  4  5  6  7  8  9 ... 20  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Первое знакомство с микроконтроллерами Atmel, STM и другими.

Первый рассказ
Предэксплуатационный ремонт отладчика Atmel AVR Dragon
Цветное изображение на монохромном LCD
Конвертер растровой графики для монохромного LCD (128х64)
Дизеринг для монохромных LCD и конвертер растровых изображений
ZP-STM32 и беспроводной последовательный порт
Куда уходят миллисекунды? Способ повышения FPS
Open Logic Sniffer в действии
AVR XMEGA – разгон, вольтмод и производительность SDRAM


Последний раз редактировалось zauropod 15.12.2010 0:33, всего редактировалось 6 раз(а).


Партнер
 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Поздравляю всех с демократическим Рождеством!

Под стать этому празднику ролик mp4 с достижением 20фпс полноэкранного QVGA вывода на 8-битной ATXMEGA @52MHz, платка XPLAIN.
LCD переведен на параллельную шину, из тюнинга пока только перевод на виртуальный порт шины данных и управления LCD, иначе битовые поля доступны только за три такта МК, что непозволительная роскошь в этом случае. Параллельный порт взят кнопочный, PORTF, подпаяны провода от кнопок на колодку, как можно с трудом увидеть (снято стареньким асусрвским смартфоном):
QVGA анимация на 8-битной ATXMEGA, 3МБ

Кадр из анимации:

#77

Скоро попробуем выжать побольше, так как пока не остается процессорного времени на дополнительную обработку и прочие чудеса, только добавил пока вывод номера фрейма (внизу посередине красненьким). Еще бы миллисекунд 15 с фрейма скинуть, и было бы замечательно. Иначе придется ставить два сопроцессора (один на звук так и так надо).


 

Member
Статус: Не в сети
Регистрация: 23.07.2007
zauropod
спасибо за проделанные труды =)
Сам потихоньку начинаю возиться с xmega128a3 (опыт использования atmega и программирования МК вообще - пока один год) =)
Уже успешно вывожу картинки на экран от s65 с sd карточки, пока только через CPU, с DMA не экспериментировал.
Сейчас пришли несколько xmega128a1... Хочу попробовать EBI и DMA в действии. Мне QVGA анимация не нужна. В принципе, сейчас для своих целей разрабатываю прибор с примерно следующими характеристиками:
2 дисплея от S65 (176х132) подключенные по SPI, один дисплей монохромный QVGA с параллельной шиной.
На это всё чудо планируется выводить информацию с разных датчиков. Красивость интерйеса имеет значение, но отодвинута на задний план... Ну эт всё лирика.

Вопрос в следующем: хочу попробовать подключить SDRAM через EBI, но 4битная SDRAM - штука довольно редкая, как я погляжу. В "мусорке" у меня нашлась парочка плат от ноутбучных хардов, на которых висит замечательная SDRAMка на 4мегабайта, я её сдул, но прежде чем травить плату хотелось бы уточнить, память там 16битная, если я подключу её к 4х битной шине xMeg'и, будет ли она работать? (ясное дело, что я потеряю 3/4 объёма), но мне и мегабайта пока за глаза. И как поступить с ножками UDQM, LDQM, подключить только LDQM к DQM ножке EBI?
Есть еще такие же как у XPLAIN, только опять 16ти битные :(

Большое спасибо заранее =)


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Fasterpast
Практически я не подключался в режиме, когда половина шины данных не нужна. Теоретически - должно работать, только эту неиспользуемую часть нужно через терминальные резисторы на землю подключить.

Что касается DQM - так если есть маска на старший байт, то на этот вывод нужно постоянно подать высокий уровень, чтобы неиспользуемые выводы всегда были в HighZ и тогда там терминальные резисторы не нужны. Маска младшего байта - к ножке DQM EBI.

Но если вы не гонитесь за максимальным объемом, то гораздо проще подключить статическую RAM. 512К х 8 стоит всего пяток евро, но зато будет 8-битная шина данных. Если питание не батарейное, то можно взять SRAM с временем доступа 10нс и работать c ней на 100MHz, SDRAM будет нервно курить в сторонке (хотя такие SRAM на самом деле не чистая статика, а PSRAM).


 

Member
Статус: Не в сети
Регистрация: 23.07.2007
Просто SDRAM'a 16ти и 8ми битного на 3.3В у меня куча валяется, а SRAM только на 5В вижу, в "простых" розничных магазинах тоже... Городить преобразователи уровня - тоже не хочется в экспериментальных платах, ибо если окажется, что производительности хмеги мне не хватает, буду переползать на АРМ какой-нить...
Питание не батарейное. Если вы можете подсказать конкретную модель SRAM с 10нс на 3.3В, которую можно откуда-нибудь сдуть или купить не в партии по 100шт, буду очень признателен.
А пока тогда буду экспериментировать с SDRAM от харда...


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Fasterpast

Вот на вскидку кое-что из каталога Farnell 512К х 8, все доступны поштучно, цена без НДС менее 6 евро.

BS62LV4006EIP55
CY7C1049DV33-10ZSXI
AS7C4096A-12JIN

На Mouser первые две позиции подешевле, плюс доступна

IS61LV5128AL-10TLI

Кстати, 5V SRAM, как правило, могут прекрасно работать и от 3.3 вольт, даже если в спецификации нижняя планка указана как 4.5. Возможно только, что время доступа увеличится. В критичные по надежности устройства не стоит ставить, а для home-made вполне себе отлично работают.

Что касается ARM - то у МК на базе CortexM клок на память в полшины, а у XMEGA - 2х, так что это надо посмотреть еще кто кого. Надо тогда ARM9/11 на 200-400MHz прикручивать, если ПСП требуется побольше.


Последний раз редактировалось zauropod 25.01.2011 20:09, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 23.07.2007
Спасибо, попробую заказать несколько микросхем, лишними не будут.
Еще вопросик по DMA, нормальный ли драйвер дан в апноуте или лучше написать самому/взять где-нибудь еще?


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Fasterpast писал(а):
нормальный ли драйвер дан в апноуте или лучше написать самому/взять где-нибудь еще?

Вопросы управления памятью-тонкая материя, я бы даже сказал - личная. Зависит от много чего, поэтому для чего и как DMA использовать таким вопросом не спрашивают, как-то более предметно надо бы подходить.

Если имеется в виду апнот 1502, то, конечно, это для тех, кому влом читать рефмануал и он для применения с EBI не годится.
Там тупо один за одним устанавливаются регистры отдельными функциями, старший байт 24-битных адресов всегда обнулен. Это чтобы на винавре компилилось, (а IARовский компилятор работает и с 32-битными указателями). Так что в винавр нужно RAMPZ ручками забивать (т.е. ассемблерным макросом, как его приспособить лучше посмотреть в xplain firmware, а не в апноте 1312 про EBI).
Но тут опять все упирается в архитектуру конкретного случая.

Но в целом за полдня все можно с нуля написать и отладить.


 

Member
Статус: Не в сети
Регистрация: 23.07.2007
Через DMA нужно делать 2 вещи:
1. Выводить в цикле из области внешней памяти массив данных на экран по SPI (виртуальный, через USART), т.е. как фрейм буфер.
2. Принимать массив данных через USART и сохранять его во внешней памяти (а затем, возможно, выводить на чб LCD). Прога на компе будет делать снимок экрана, конвертировать его в 1bpp и отправлять по USART, примерно раз в секунду, так что скорость не нужна особая.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Так если делать статичную привязку к адресам, без менеджмента памяти, то какие вообще проблемы? Надо только установить базовый адрес внешней памяти (в диапазоне от 0х004000 до 0хFFFFFF). Дальше - все по мануалу.

Я сам сейчас свой стенд переделывать буду, вернусь пока тоже на S65. Все-таки 320х240 полноэкранный динамический вывод на ATXMega впритык получается, ни поблендить, ни толком чего другого трехмерного сотворить окромя кубика. К тому же чего-то файловая система отказывается записывать, (у меня SD карта тоже на USART сидит), хотя все читает прекрасно. Но я последний раз записывал в FATFS на своей платке с ATmega128, там никаких проблем не было, надо переключиться на стандартный SPI. Но пока нету свободного порта, сейчас вот эту кучу (на фото) буду разгребать, переберемся на макетку побольше.

К слову, подключил (еще в том году) контроллер тачскрина/клавиатуры TSC2200:

#77

И все бы хорошо с ним, только вот ADC мылит в пару пикселов туда-сюда, никакими установками и фильтрациями не могу убрать. Грешу на эту кучу длинных проводов, хотя контроллеры тача TSC2007 и AR1020 и с длинными проводами отрабатывали так, что можно на экране рисовать линией толщиной в один пиксел, а с TSC2200 однопиксельная линия не выходит.

На фото видна рамка и колодка под S65, перемерял для изготовления новой платы, а то в прошлый раз с рамкой промахнулся маленько. Уже три месяца никак не могу сесть за новый блок своих печаток, уже на квадратный метр накопилось в голове ерунды разной. Я еще не решил точно, какую память буду использовать с ATXMega, будет статика либо 4Мх8 одной микросхемой, либо что-то х16 - возможно, для интереса подключу шину данных через мультиплексор, это даст возможность в одном цикле не только читать текущий фреймбуфер, но сразу и записывать в бэкбуфер, получится фпс быстрее.


 

Member
Статус: Не в сети
Регистрация: 23.07.2007
Ок, спасибо. буду пробовать =)
Моя система-витязь пока выглядит так:
#77
Это хмегаА3, так что пока никакого EBI...
Уже выжег ей один SPI порт вытащив "на горячую" SDшку... Теперь все 3 ножки SPIE прозваниваются между собой... Но МК по-прежнему жив.


 

Member
Статус: Не в сети
Регистрация: 26.01.2011
Привет zauropod и другим участникам форума. Заценил статьи zauropod.
Особенно как он уничтожает будующих терминаторов в лице atxmega16A4.
Борьба не замеченной не пройдет!
Отсутствие компов в детстве дало о себе знать. Вот моя игрушка:
Прикрутил ls020 к xplain. Пока только залил фон и вывел прямоугольник 8х12 под будующии буквы из азбуки, но зато через dma.
Возник вопрос можно ли перелить из eeprom (отображеном в sramе) в usart(spi) используя dma, у меня не получилось.
Пришлось при инициализации переливать eeprom в sram, а потом уже в дисплей. Но блин жалко sramа и несколько мксекунд (планируется азбуку запихнуть в eeprom).
Спосибл зарание.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Fasterpast писал(а):
Уже выжег ей один SPI порт вытащив "на горячую" SDшку...

Это надо очень постараться. Сам все время так делаю, но проблем никогда не было. А новый (май 2010) стандарт "SD Specifications ... Version 3.01" вообще это уже официально делать разрешает, причем в таких случаях гарантирует и сохранность данных.


 

Member
Статус: Не в сети
Регистрация: 23.07.2007
Вполне вероятно, что у меня разъем плохой (выпаивал с китайского картридера), там ведь поидее сигнальные линии должны размыкаться до питания, а в этом разъеме расстояние между контактами могло быть не соблюдено... А я её еще вытащил неудачно, чуть вытащил, потом она застряла, и только потом вытащил окончательно... Обратно вставляю - молчит. Выключаю, тыкаю мультиметром - три ноги пищат :(


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
На стандартном XMEGA SPI запись в SD-карту в файловой системе восстановилась. Наверное, где-то в коде накосячил, при случае разберусь, так как DMА будет нужен. Теперь можно скриншоты экрана делать без фотографирования (производится запись в стандартный bmp-файл).

Я уже упоминал ранее, как для графического экрана можно быстро получить в свой арсенал любой TTF шрифт. Но это была теоретическая посылка, а вот практическая реализация на дисплее 2.8" 320х240:

Скриншот:

#77

Фотография экрана:

#77

Сиреневый цвет в реальности не такой яркий, как на скриншоте, но и не такой блеклый, как на фото.
Первые три строчки - моноширинный системный шрифт 6x7 от Atmel, я только в него добавил русские символы в кодировке 1251 (40 минут жизни ушло на это).

Далее - Times New Roman Bold 16, первая строчка с использованием таблицы ширины символов, ниже - "моноширинная" работа, которую часто можно увидеть в демо-программах производителей МК. Как говорится, две большие разницы по восприятию.

Красным цветом дан шрифт CyrillicGoth 24, сиреневым - Times New Roman Bold 52.
Возможно заполнение текстурой, блендинг, но это уже совсем другая тема.

Карты шрифтов загружаются с SD-карты (из RAW 1bpp формата) во внешнюю RAM, легко можно организовать менеджмент подгрузок-выгрузок, в зависимости от того, как вы работаете с раширенной памятью.

На фото в левом углу показан размер последнего загруженного шрифта в байтах (десятичный формат), в правом углу - начальный адрес в 16МБ адресном пространстве XMEGА у последнего выведенного символа.

Время подготовки любого шрифта - около пяти минут (имеется в виду работа с внешними программами до записи готового фонта на SD).


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
max0000000

Из-за премодерации для новых участников форума их сообщения "зависают" и, в случае одобрямса, потом проявляются. На мой взгляд, они должны ставиться последним сообщением в теме на момент одобрямса, но сделано на форуме так, что их вставка в хронологию постов идет по времени первичной подачи. В результате - только сейчас случайно увидел ваш пост.

max0000000 писал(а):
можно ли перелить из eeprom (отображеном в sramе) в usart(spi) используя dma, у меня не получилось

Я XMEGA EEPROM еще не пользовал. С точки зрения теории все должно работать, п4.11 рефмануала:
Цитата:
EEPROM page load (write) takes one cycle and three cycles are required for read. For
burst read, new data is available every second cycle


Вероятно, ваша проблема в настройках или обработке получаемых данных. Кстати, константные данные удобно хранить и в Application Table Section.

Скоро снова подключу SD карту к USART(mSPI), надо разобраться, почему не было с USART записи на диск в файловой системе, заодно тогда попробую и передачу из mapped EEPROM в USART по DMA.

Если к тому времени проблема уже будет решена, здесь не поленитесь отписаться.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
max0000000
Проверил на XMEGA128A1 работу по DMA трансферу из мапированного EEPROM. Считывал в RAM с максимальным burst, никаких проблем не увидел, все работает, как и положено. Пока до USART руки не дошли.


 

Member
Статус: Не в сети
Регистрация: 26.01.2011
zauropod
Разобрался. Из за отсутствия должного оборудования (имеется только С1-107) сразу не врубился
что при перепрограмировании FLASH стирается и EEPROM. По этому у меня и шли одни FF вместо
кода инициализации на LS020. Потом уже понял что стирается EEPROM, но стал переливать его
в SRAM.
Щяс протестил EEPROM в USART(mspi) через DMA перелил на LS020. Все прошло окейно.
Но наверное всетаки по совету коды инициализации LS020, выключения и шрифты расположу в Application Table Section перелью в SRAM а от туда в дисплей по DMA.
А то если сразу из EEPROM в USART(mspi) через DMA то приходится циклить проц до окончания передачи. Пока незнаю чем его озадачить, а спать нельзя пока EEPROM читается.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
max0000000 писал(а):
не врубился что при перепрограмировании FLASH стирается и EEPROM

А зачем для этого наличие оборудования?
Программируется фьюз EESAVE (т.е. FUSEBYTE5 &= 0xF7), и EEPROM стираться не будет.


 

Member
Статус: Не в сети
Регистрация: 26.01.2011
zauropod
Да решил наскоком вывести чевонибуть на экран и с фьюзами разбираться не стал. В результате
потерял уйму времени (говорили же учи матчасть). А с цешкой пока не понизил частоту SPI не
мог понять что же там передается. Но зато понял что LS020 прекрасно себя чуствует себя с
2 до 16 MHz, щяс пихаю ему на 16MHz сбоев не было.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
max0000000 писал(а):
пихаю ему на 16MHz сбоев не было

Мобильник S65 работает с дисплеем на частоте SPI 13МГц. У меня пара Epson L2F50 работает на частоте SPI 36МГц (на МК Cortex-M3)

max0000000 писал(а):
А то если сразу из EEPROM в USART(mspi) через DMA то приходится циклить проц до окончания передачи.
Пока незнаю чем его озадачить, а спать нельзя пока EEPROM читается.

Какая-то неправильная логика.
DMA применяется как раз, чтобы разгрузить главный процессор. А если процессор не нагружен, то зачем тогда вообще DMA применять? DMA в общем случае будет медленне прямой работы процессора, так как любые обращения процессора к шине прерывают на это время операции DMA.


Показать сообщения за:  Поле сортировки  
Форум закрыт Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 399 • Страница 6 из 20<  1 ... 3  4  5  6  7  8  9 ... 20  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  

Лаборатория














Новости

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan