Самодельная консоль за 700 рублей - stm32, дисплей и кнопки - просто создать самому
Вставка
- Опубліковано 5 жов 2024
- Репозиторий с кодом ядра системы:
github.com/sel...
Репозиторий с кодом линкера:
github.com/sel...
Репозиторий с кодом эмулятора:
github.com/sel...
Твиттер
/ honeyderiviera
Привет. Меня зову Deriv'era и я программист. Этот канал повествует о фантазии, воплощённой в железе, играх и коде. Развлекательный канал о транзисторах, рассказывающий о вещах, которые не встретишь на каждом углу. Я люблю погружаться в техническую информацию так далеко, насколько это возможно. Люблю математику, могу даже в уме перемножить пару квадратных матриц. Ежедневно играю в видеоигры и верю в прогресс науки. Чипы, микросхемы, платы - всё это отдельный мир, который и позволяет в последние десятилетия погружаться в фантазии так глубоко. Я настоящий фанат вымышленных миров и стараюсь передать свой интерес к науке другим людям.
Я ЖЁСТКО ЗАФЕЙЛИЛ. У чипа 20 килобайт озу, а не 8. Не знаю, почему был уверен, что 8, въелась эта цифра в голову. Но в остальном это ничего не меняет.
Обязательно подписался))
Надеюсь проект жив)
Сейчас не простые времена, проект медленно развивается, когда время есть.
Есть еще nodemcu на базе esp8266. Да, для спрайтовых игр она кривая и косая, но если всё таки освоить это дело. Потенциал огромен, хоть и микро процессор плюс минус по выч. мощности аналог stm32, вот оперативы не 20kb, а 128kb. Флеш памяти вообще 1mb либо 4mb(зависит от версии) В теории и простейшую псевдо 3d можно сделать.
Странно, маловато ОЗУ, должно быть 20 килобайт. Ну а на счёт звука и вообще производительности в стм32 есть замечательная штука DMA называется, с ее помощью можно попробовать упростить некоторые процессы. Тот же звук можно генерить ШИМом через таймеры (их там вагон), не уверен, что можно как во взрослых звуковухах гнать в них новые данные через DMA, но даже по таймеру через крохотный обработчик прерывания можно, виртуально так можно FM-каналов до кучи выводить. По счёт загрузки наверное проще написать загрузчик с флешки, который будет прошивать мк из файла и запускать. Пофиг на ресурс флеша в мк, а то залез в дебри компиляторов)) Внешне будет выглядеть так же, при сбросе попадаем в загрузчик и выбираем либо запуск того что прошито, либо выбираем файлик с флешки, шьём его и запускаем.
Вот это я зафейлил :D. Там действительно 20 килобайт. Не знаю, почему я так был уверен, что там их 8. Просто железно вбилось в голову откуда-то.
ШИМ само собой активно используется сейчас для дисплея. Есть только одно но. Я вырезал этот момент в видео, но у STM32 у него конкурентный доступ к ОЗУ у шим и ядра, и это создало мне кучу проблем в своё время при генерации видео-сигнала создавая шум. Не знаю, отразится ли это на звуке..., скорее нет, чем да, но скажется всё равно на системе. Но над реализацией надо думать. В принципе это была изначальная идея, освободить а0-а7 и сделать там ЦАП на резисторах и гнать данные через DMA. Но если даже использовать несколько каналов и смешивать синтезаторы через каналы DMA. На самом деле даже может прокатить, надо попробовать, спасибо за идею. Я буду делать отдельное видео по звуку на ямахе, попробую и это реализовать.
Да, загрузчик проще. Но я, видимо, резанул лишнего, пытаясь сделать видео покороче и не донёс до конца мысль, что одна скомпилированная игра должна нормально работать на совершенно разной железной реализации. Для этого будет универсальный абстрактный АПИ, а конкретная реализация будет уже в ядре системы. Поэтому и нужно заморочиться с компилятором.
@@vireyehome4060 Не ЦАП на куче выводов, а ФНЧ на одном выходе(или двух для стерео) ШИМ таймера. Там можно получить больше 8 бит.
@@Black27512 Теперь я понял идею, спасибо.
STM32F407VGT6 по цене MEGA2560 ардуино за 11$ с доставкой возьмите выйдет 196кб ОЗУ и 1024кб ПЗУ
Что за "резиновые кнопки уже купили, но не установили?"
В чём проблема взять STM32F103CBT6, там 128кБ флеша и памяти в STM32F103 20кБ
А почему не использовать ESP8266 NodeMcu 80 МГц, 32-битный процессор и 4 Мб флэш-памяти? Стоит на алике от 150р. Есть наверное платы и дешевле без отладочного обвеса. Поддерживает ардуино ИДЕ и программируется на языке Lua. А и можно потом игрухи по вайфаю заливать наверное или ещё чего с вайфаем замутить, вайфай нынче модно - молодёжно.
Собственное ядро, что привязывает к этому железу, не понятная производительность. Под арм программы можно хоть на телефонах запускать, если сделать ланчер. Если он даже разгонится до 160 мгц и у него 1DMIPS, то stm32 на 128 мгц с 1.25 DMIPS ему не уступит. Судя по всему на нём даже аппаратного умножения нет, инфы не нашёл. Присобачить вай фай можно и к stm32, вай фай платки стоят по 80-90р, выйдет не намного дороже. Ну и ардуино с люа проекту попросту не нужны, потому что ядро всё равно должно быть максимально низкоуровневым, а для создания игр можно применять всё, что душе угодно, в теории. Например, поддержку Rust'a я планирую добавить в обозримом будущем.
что за дисплей, подскажите пж
в начале видео сказано же что за дисплей
почему у меня видео на 1080 распадается на линии в движении чувачка. на меньшем пропадает. попадаются такие видосы что это за галюны гугловские такие
Потому что первые видео снимал на зеркалку и она пишет fullhd межстрочная развёрткой. На меньших разрешениях это сглаживается, на fullhd видно оригинал.
20К! ОЗУ -- какие линкеры, нафига вообще динамическая загрузка ?!
почему нельзя тупо взять appnote USB mass storage и исходники загрузчика от mbed?
воткнул в комп -- появился диск, autorun открыл ссылку на сайт с софтом, выбрал, сохранил скачанный бинарник на "флешку", оно стартовало, все
И отдать под это большую половину rom памяти камня? Отличная идея. Я рассматривал идею использования USB и отмёл эту затею. На f4 прокатило бы, на f1 слишком дороги ресурсы.
Можно схемы подключения и сборки получить?
github.com/seltee/vireye_core/blob/master/Additional/scheme.jpg
Когда новый видос?
Если получится доделать, то в этом году.
Идея не плахая но не даканца дапиленая и имеет недостатки
STM32F7/H7 реально мощное железо, и достаточно недорогое.
С удовольствием купил бы машинку на STM32H7 в исполнении классического кнопочного моноблока, с FPGA+GPIO вообще была бы бомба в качестве спец.компьютера
ua-cam.com/video/FMEZj4VNkJ4/v-deo.html
в качестве встроенной ОС хорошо Форт подходит -- командная консоль, встроенный компилятор и ассемблер в 16К ОЗУ
stm32f7 на платах распаянные очень даже дорогие. f4 по рублей 600-700. f1 по 110 рублей. Я вполне целенаправленно выбрал этот камень.