МикроМашина на AVR

8-битные микроконтроллеры AVR (AT90, ATtiny, ATmega) от Atmel (в настоящий момент принадлежит Microchip)

Moderator: Shaos

Romanich
Banned
Posts: 608
Joined: 12 Oct 2006 16:44

Post by Romanich »

jdigreze wrote:А если дополнительно к 32K SRAM добавлять картридж 32K EEPROM для программ? Можно и для байт-кода...
Размер в 32кБ оперативы в МикроМашине - это следствие недоступности в то время СРАМов бОльшего объёма - т.е. собирал из того, что МОГ достать (и то с трудом)
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Круто. Romanich прёт мои идеи:)

Я тоже довольно давно и долго подумывал о подобном девайсе, правда концепция постоянно мутировала от девайса с LCD до подключения к ТВ; от одного до трёх AVR'ов (формирование растра/логика/звук).. Но всё осталось только в виде задумок, т.к. знаний у меня всё-таки для такого проекта маловато.

Аналогично предложенному Shaos'ом, я предполагал использовать именно байт-код (что-то типа Chip-8), т.е. вывод изображений и подобные вещи - захардкодены, выполняются быстро, а байт-код содержит игровую логику и указания что-куда выводить. Кстати, он даёт и такое преимущество, как возможность изменить аппаратуру без изменения конечного софта, т.е. меняется только прошивка, занимающаяся работой с железом.
Romanich
Banned
Posts: 608
Joined: 12 Oct 2006 16:44

Post by Romanich »

Shiru Otaku wrote: Круто. Romanich прёт мои идеи:)
:)
Shiru Otaku wrote: Я тоже довольно давно и долго подумывал о подобном девайсе, правда концепция постоянно мутировала от девайса с LCD до подключения к ТВ
Вот я раньше тоже долго думал - TV или LCD? Но VDP мне ранше был недоступен, но во Владе в продаже есть очень много LCD-шек. Я очень долго выбирал ту, которая:

1) Цветная - не менее 64цветов
2) Разрешение не менее 64x64
3) ЕСТЬ ДОКУМЕНТАЦИЯ НА КОНТРОЛЛЕР
4) ЕСТЬ РАСПИНОВКА
5) Умеренная цена (1536руб)

То что выделено - самое важное! Кстати у меня в LCD контроллер от Epson, но бывает ещё от Philips. ИМХО Epson круче, так как у него предельная частота 20МГц, у филипса всего 8МГц. Максимальный ФПС легко узнать, зная разрешение и глубину цвета. Вопреки всем форумам(буржуйским), которые хвалят Philips(из-за лёгкости паяния LCD и якобы хорошую контрастность), я взял Epson ;)
Shiru Otaku wrote: Аналогично предложенному Shaos'ом, я предполагал использовать именно байт-код (что-то типа Chip-8), т.е. вывод изображений и подобные вещи - захардкодены, выполняются быстро, а байт-код содержит игровую логику и указания что-куда выводить.
Весьма красиво конечно, но... уже поздно! Если б эти мысли эдак так на год назад... тогда можно было так и сделать!
А сейчас надо двигаться дальше! Благодаря хорошему человеку - CHRV, я стал обладателем VDP :)

У ЛСД есть один недостаток - инертность матрицы. Спрайты при движении на +1 пиксель тянут за собой световой шлейф. У TV такого недостатка нет. Это ещё один плюс в пользу VDP
User avatar
Shaos
Admin
Posts: 24128
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shiru Otaku wrote:Круто. Romanich прёт мои идеи:)

Я тоже довольно давно и долго подумывал о подобном девайсе, правда концепция постоянно мутировала от девайса с LCD до подключения к ТВ; от одного до трёх AVR'ов (формирование растра/логика/звук).. Но всё осталось только в виде задумок, т.к. знаний у меня всё-таки для такого проекта маловато.

Аналогично предложенному Shaos'ом, я предполагал использовать именно байт-код (что-то типа Chip-8), т.е. вывод изображений и подобные вещи - захардкодены, выполняются быстро, а байт-код содержит игровую логику и указания что-куда выводить. Кстати, он даёт и такое преимущество, как возможность изменить аппаратуру без изменения конечного софта, т.е. меняется только прошивка, занимающаяся работой с железом.
А я свой байткодовый подход хотел обкатать на своих прототипах - это типа игровых девайсов для программистов ;)
В живую пока пользуюсь наработками SfS (надо уже найти время и запустить таки там виртуальную машину RW0)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Я изначально думал о девайсе на AVR + LCD-матрица типа 128x64 (одноцветная). Но это не очень интересно, хотя и гораздо более подъёмно с моими знаниями. Поэтому я перешёл к обдумыванию концепций ТВ-приставки, но без использования готовых VDP.

Были примерно такие идеи: два контроллера, два растровых буфера (отдельная SRAM у каждого; в ней-же хранится графика, которую выводим - две копии). В пределах кадра один из них перебирает адреса (формирует растр), пока другой заполняет буфер; на следующем кадре они меняются местами. Третий - заполняет память этих контроллеров при инициализации, и далее передаёт им данные, куда-чего рисовать; крутит байт-код игровой программы; генерирует звук (если звук сложный, на уровне эмуляции AY-подобного чипа - то ещё один контроллер;).

Ещё была идея раздельных слоёв для вывода фона и подвижных объектов - выходы складываются по 'прозрачному цвету', т.е. если в растре подвижных объектов точка имеет прозрачный цвет, то на выход попадает точка из растра фона. Это придумывалось в связи с тем, что для реализации быстрой графики (а хотелось 50fps, все дела) мощности AVR'ов по прикидкам мне не хватило-бы (на заполнение растра с фоновым изображением уже еле хватает).
Romanich
Banned
Posts: 608
Joined: 12 Oct 2006 16:44

Post by Romanich »

Shiru Otaku wrote: Я изначально думал о девайсе на AVR + LCD-матрица типа 128x64 (одноцветная). Но это не очень интересно, хотя и гораздо более подъёмно с моими знаниями. Поэтому я перешёл к обдумыванию концепций ТВ-приставки, но без использования готовых VDP.
Здесь рассматривается вывод изображений на CRT Монитор с помощью PIC-контроллера: http://webpages.charter.net/greener/electronics/
Автор действительно добился много чего(буферизованый вывод, подходящая глубина цвета для игр и.т.п.)
Грезит перспективами, но вероятно очень занят :)

А тут ссылка на множество простых TV-приставок (на базе PIC, SX, ...):
http://www.rickard.gunee.com/projects/video/
Игры: Tetris,Pong,... Тоже интересно!
Shiru Otaku wrote: Были примерно такие идеи: два контроллера, два растровых буфера (отдельная SRAM у каждого; в ней-же хранится графика, которую выводим - две копии). В пределах кадра один из них перебирает адреса (формирует растр), пока другой заполняет буфер; на следующем кадре они меняются местами. Третий - заполняет память этих контроллеров при инициализации, и далее передаёт им данные, куда-чего рисовать; крутит байт-код игровой программы; генерирует звук (если звук сложный, на уровне эмуляции AY-подобного чипа - то ещё один контроллер;)
До того как заимел VDP, собирал на ATmega8515 "VGA-контроллер" c 8-битным резистивным DAC'ом (R:G:B=3:3:2)
На асме писал вывод цветных вертикальных полос на CRT-Мониторе. Короче говоря, разрешение получилось очень маленьким
- в длину 64 пикселя, кривые полосы. Кроме того, можно сжечь монитор, потому что есть очень большая вероятность НЕВЕРНО
расчитать программно все тайминги VGA-сигнала(реле в мониторе тарахтело!). Программа всегда будет нелинейной, содержать
непредвиденные переходы, жрущие такты, что выльется в исковерканный VGA-сигнал!
Понял что это всё - софтварная резиновость, забил на это и заказал VDP :)
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Romanich wrote:Здесь рассматривается вывод изображений на CRT Монитор с помощью PIC-контроллера: http://webpages.charter.net/greener/electronics/
Автор действительно добился много чего(буферизованый вывод, подходящая глубина цвета для игр и.т.п.)
Грезит перспективами, но вероятно очень занят :)

А тут ссылка на множество простых TV-приставок (на базе PIC, SX, ...):
http://www.rickard.gunee.com/projects/video/
Игры: Tetris,Pong,... Тоже интересно!
Да я этих проектов, наверное, около сотни пересмотрел (хотя по первой ссылке вроде не попадался).
Romanich wrote:До того как заимел VDP, собирал на ATmega8515 "VGA-контроллер" c 8-битным резистивным DAC'ом (R:G:B=3:3:2)
На асме писал вывод цветных вертикальных полос на CRT-Мониторе. Короче говоря, разрешение получилось очень маленьким
- в длину 64 пикселя, кривые полосы. Кроме того, можно сжечь монитор, потому что есть очень большая вероятность НЕВЕРНО
расчитать программно все тайминги VGA-сигнала(реле в мониторе тарахтело!). Программа всегда будет нелинейной, содержать
непредвиденные переходы, жрущие такты, что выльется в исковерканный VGA-сигнал!
Понял что это всё - софтварная резиновость, забил на это и заказал VDP :)
Ну, ты без внешней памяти, надо полагать, возился (низкое разрешение)? Т.к. народ делает побольше. А VGA меня как раз ни разу не интересует, чисто ТВ.
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:В живую пока пользуюсь наработками SfS (надо уже найти время и запустить таки там виртуальную машину RW0)
Кстати, о наработках. Не хочу ничего обещать, но сейчас делаю плату на 128й меге. Не для nedopc, но я думаю игловские схемы можно будет и сюда выложить.

там будет следующее:

- ATMega128
- 32К ОЗУ (внешнего)
- FLASH (внешняя)
- ЧАсы-календарь с 4К EEPROM (по I2C, питание от батарейки)
- 2 или 4 слота NI-15 (мне этот стандарт подходит и остальным приятно)
- 6 перемычек-кнопок
- 4 выхода
- 4 входа АЦП

Вот примерно что я сейчас развожу в Eagle. Конечно конфигурация могет еще и поменяться, но незначительно.

Вот ЭТО я считаю очень прикольной конфигурацией для RW. Главное чтобы проект не свернули.
User avatar
Shaos
Admin
Posts: 24128
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Romanich wrote:А тут ссылка на множество простых TV-приставок (на базе PIC, SX, ...):
http://www.rickard.gunee.com/projects/video/
Игры: Tetris,Pong,... Тоже интересно!
Лучше указывать более высокоуровневый линк:

http://www.rickard.gunee.com/projects/

И кстати он уже пролетал летом 2004 года в одном из наших топиков ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 01:00
Location: Москва

Post by CHRV »

Кстати никому не приходило в голову делать мини-машину таким образом:
1) Система вывода и звука и управления собственно в машине;
2) Картридж - собственно микроконтроллер (при современных ценах - это копейки в оптовом эквиваленте)

Нужно токо стандартизировать недо-bus и все :)...
lvd
Maniac
Posts: 230
Joined: 01 Mar 2005 21:42

Post by lvd »

CHRV wrote:Кстати никому не приходило в голову делать мини-машину таким образом:
1) Система вывода и звука и управления собственно в машине;
2) Картридж - собственно микроконтроллер (при современных ценах - это копейки в оптовом эквиваленте)

Нужно токо стандартизировать недо-bus и все :)...
Ага, а ты чо, вернулся с югов (или где ты там был)? =))
Romanich
Banned
Posts: 608
Joined: 12 Oct 2006 16:44

Post by Romanich »

CHRV wrote: 2) Картридж - собственно микроконтроллер (при современных ценах - это копейки в оптовом эквиваленте)
Ничего себе - копейки! Он у нас 425руб. стоил!
А теперь вообще исчез из магазинов :(
Romanich
Banned
Posts: 608
Joined: 12 Oct 2006 16:44

Post by Romanich »

Shiru Otaku wrote: Ну, ты без внешней памяти, надо полагать,
возился (низкое разрешение)?
Вначале стал эксперементировать без внешней памяти. Потом когда оно надежд не оправдало - забил forever
Shiru Otaku wrote: А VGA меня как раз ни разу не интересует, чисто ТВ.
ВГА тоже не люблю, так как это попахивает IBM PC, а части от Писюка мне бы не хотелось юзать!
acidrain
Senior
Posts: 159
Joined: 28 Feb 2005 02:31
Location: Krasnodar, Russia

Re: МикроМашина на AVR

Post by acidrain »

lvd wrote:
Shaos wrote: У меня предложение такое - чтобы не перезаписывать микроконтроллер для каждой игры, надо бы держать там только основные подпрограммы и виртуальную машину, которая будет выполнять внешний байт-код, который может тянуться из внешней памяти (например ПЗУ-картриджа). В таком случае получится более гибкий девайс.
Вообще не стоит выбирать флеш-онли МК для компьютероподобных применений (частая смена программы). 51ый с внешней рамой программы и то лучше =))
Согласен, посему решение предложеное Шаосом - самое то (виртуальная машина).
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Romanich wrote:
Shiru Otaku wrote: А VGA меня как раз ни разу не интересует, чисто ТВ.
ВГА тоже не люблю, так как это попахивает IBM PC, а части от Писюка мне бы не хотелось юзать!
Даже ЖК монитор? ;)