Author |
Message |
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
Доборе время суток всем!
ну вот, мой отпуск закончился...
а вместе с ним дефицит инета
предлагаю вашему вниманию продвинутую версию МикроМашины на ARM920T ядре!!!
Обовсём по-порядку...
Вот такую отладочную плату купил я за 3500 рублей:
Она на базе AT91SAM7S256. Олимексовская... именно с этой платой я стал входить в мир АРМов
Далее разобрался с MP3-декодером VS1003, который ещё мидюки играет. Фотки ниже:
Героически сам сделал ЛУТом платы с толщиной/промежутком 0.25мм
|
20 Aug 2007 17:59 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22730 Location: Silicon Valley
|
Ну ты однако монстр
|
20 Aug 2007 18:19 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
Продолжаю дальше:
Освоил YMF721, которые у Романа заказал.
Это MPU401 и OPL3 FM в одном флаконе
|
20 Aug 2007 18:35 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
AT91SAM7S256 не имеет шины EBI, чтоб красиво подрубить периферию! Пришлось одним 32-битным PIOA извращаца!
Но это не надолго
Кроме того, пришла мне OLED-матрица с графическим 2Д-ускорителем!!!
OLEDы - это гибрид LCD и CRT:
1) тонкий профиль
2) малый вес
3) мылые габариты
4) свечение как у CRT(каждая точка светится и есть One-frame эффект)
5) дешёвые по сравнению с STN- TFT- LCD
Оцените высокую яркость свечения OLED-дисплея!
|
20 Aug 2007 18:40 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
В общем освоил всё нужное в SAM7S256:
1) параллельный порт вв./выв.
2) SPI
3) DMA
4) IRQ
5) Работа с Flash-памятью
6) Загрузчики
7) Разгон до 110 МГц
в то время испытывал 8-битную графику - было в десятки раз быстрее, чем на AVR-овской Микромашине, но хотелось большего...
и понял - что этого мне мало!
Перешёл на ЭТО:
Развёл(неделю в поте лица...) в Layout'e:
Да простит меня Shaos (за размер фоток, старался как мог жал без потери подробностей)! Печатная плата с напаянным ARM9200:
http://www.nedopc.org/nedopc/upload/ARM920T.jpg
Shaos заменил большую картинку на линк и вставил маленькую:
Обратная сторона (питание/земля и то что в ТОП не влезло):
|
20 Aug 2007 21:04 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
Создаю проекты в Keil uVision v3. Компилю RealView C Compiler'ом
hex2bin делаю бинарник из хекса.
fromelf - сломалась через 2 месяца (выкинул)
сразу предупрежу, что стартап под AT91RM9200 наикривущий!!!
нужно ручками дорабатывать (виснет PLL, неверно инициализирует SDRAM 16bit, недостаточно глубоко производит настройку КЭШей(DCache),которые в десятки раз повышают быстродействие)
в целом Keil - мой размер Есть иде, компилер, ассемблер и даже дебагер...
|
20 Aug 2007 23:06 |
|
|
Different
Doomed
Joined: 18 Feb 2007 11:40 Posts: 408
|
Попробуй еще VS1033, у него форматов больше
|
21 Aug 2007 05:29 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
мне мощей VS1003 хватает - собираюсь юзать MP3 иил MID для фоновой музыки в играх. AAC - излишек
а YMF721 - для спецэффектов - тут и LowLevel MIDI(секвенции MPU401) и OPL3 - многоканальный FM-синтезатор
|
22 Aug 2007 15:20 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
Немножко о самодельной девборде:
http://www.nedopc.org/nedopc/upload/Bold.pdf
Фотка сделанной печатной платы, которую два дня делал неимоверными усилиями:
|
22 Aug 2007 15:25 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
Написал собственный загрузчик в DataFlash и прошил его самим АРМом.
Загрузчик тоже самодельный.
Позже большУю 28-пиновую AT45DB021 заменил 8-пиновую AT45DB011
Алгоритм загрузки:
1) загрузчик в ROM AT91RM9200 находит на SPI DataFlash и переносит код во внутреннюю SRAM
2) В SRAM'е мой загрузчик, который читает сектора с MMC-карточки и пихает их во внешнюю SRAM (256K x 16). А также настройка контроллеров шин и нужной периферии(внутренняя+внешняя) и инициализация.
3) запуск кода во внешней SRAM
Пашущая МикроМашина целиком:
Небольшая статейка, как мы делаем "игры"(пока демки FPS-метры)
http://www.nedopc.org/nedopc/upload/Game.pdf
|
22 Aug 2007 16:08 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
|
22 Aug 2007 16:14 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
Но не всё так гладко!
SDRAM выше 25мгц не пошла.
Специальными усилиями смог только до 45 мгц
и это не удивительно - большие провода/неправильная разодка(наличие ground bounce,засорённый и несогласованный клок)
- враги SDRAM.
В начале делал шину 32бит("крылья"), потом урезал до 16 бит (убрал одну микросхему). Пришлось подправить стартап(для 16-битной версии SDRAM)
|
22 Aug 2007 17:45 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
Немножко про YMF721(MPU)
Оригинал: http://www.nedopc.org/nedopc/upload/Original.mid
Звучание YMF721(при записи использовался линейный вход AC'97): http://www.nedopc.org/nedopc/upload/YMF721.mp3
YMF721 обсуждалось ещё тут: http://zx.pk.ru/showthread.php?t=5413
Нашёл исходник, как играть миди-секвенции. Перелоапатил его под ARM.
P.S. а вообще VS1003 и YMF721 дают разное звучание миди. Считаю, что VS1003 на кучу спецэффектов не годится (нужно софтварный микшер писать). Поэтому решено взять ещё и YMF721 (очень много каналов MIDI и OPL). Оба чипа можно заставить работать по прерываниям. Основной цикл программы - игровая логика и отрисовка графики
|
22 Aug 2007 19:10 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
Итак, с превеликим удовольствием продолжу
Настал тот день, когда я реализовал наброски 16-битной графики (5:6:5)! Причем с анимацией!
Фон движется по горизонтали (BackGround с Thunder Force 4 SEGA MD)
Пузыри выдраны с SNES'овского Gradius'а 3
Остальное - из инета
До этого игрался с 8-битной графикой(3:3:2)
4-битная графика не интересует меня ни в какую!
Считаю, что 16-битная графика - самое то - поможет избежать потери цвета, если палитры с разных картинок обобщаются.
|
23 Aug 2007 16:25 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
Краткая структурная схема Advanced MicroMachine:
http://www.nedopc.org/nedopc/upload/Structure.gif
Адресное пространство:
И наконец, развёрнутая структурная схема:
http://www.nedopc.org/nedopc/upload/Chip.gif
|
23 Aug 2007 16:30 |
|
|