-675 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 887
1

Компьютер на микроконтроллере АТмега

12.02.2019, 11:44. Показов 7622. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть тут специалисты(?) которые могут спроектировать такую схему:
К микроконтроллеру ATmega2560 подключить планку ОЗУ от компьютера к которой программно можно получить доступ. На базе arduino можно думаю ещё подключить: монитор(VGA), телевизор(HDMI), Enternet, видеокамеру, микрофон, USB (клавиатура, мышь), SD картридер. Получится по сути простой дешёвый компьютер.

В чём идея? Этот микроконтроллер легко программируется и прошивается. Можно написать скетч операционной системы в виде интерпретатора и прошить им. Затем интерпретатор грузит текст программы в ОЗУ, выполняет команды... Информация выводится на экран монитора/телевизора, воспроизводится звук, видео(с небольшим разрешением думаю возможно), передаётся и получается информация по сети.

В чём скажете прикол? Сейчас почти у всех есть навороченные компьютеры и никому эта фигня не нужна. Прикол в том, что по сути получится очень дешёвый, но полноценный компьютер, который может оказаться в каждом доме(потому как взаимодействовать с ним возможно сделать и голосом для старшего поколения будет удобно). Не большой, но полезный функционал: от мини игр, получения и передачи информации(без рекламы) до общения с родными и друзьями онлайн. Для которого будет легко писать свои программки, создать новую интернет сеть, на базе этого создавать другие проекты... и тд. Такой своего рода народный проект

ЗЫ. Прошу не пинать, это просто идея, ностальгия своего рода по старому ZX, в детстве была идея создать инет сеть на ZX. Сейчас много разных самоделок на ардуино, вот и у меня возникла такая вот идея. Может через пару дней отпустит, а может найдутся тут кому это покажется интересным, а главное реализуемым.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2019, 11:44
Ответы с готовыми решениями:

Компьютер на микроконтроллере
Иногда хочется чего-то простого и своего, путь примитивное как ZX, но на базе современных чипов....

АТМЕГА 8
Неправильно работает прерывание по переполнению Т0. Сделал проверочную программу для Атмега 8....

АТМЕГА 8
Будет ли вводиться программа в Атмега 8 с программатора AS4, если в программе MOSI, SCK или RESET...

Атмега + USB
Посоветуйте как лучше связать контроллер атмегу с компом по USB. Видел уже есть меги с usb...

Видео камера + атмега?
Доброго времени суток! Возникла необходимость передавать потоковое видео с видео/веб камеры на ПК...

20
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
12.02.2019, 15:21 2
USB для клавиатуры и мыши - есть варианты вроде, SD тоже без особых проблем скорее всего. Все остальное потребует специальной обвязки и контроллеров, размеры, сложность и в конечном счете стоимость которых приведут вас к понимаю того, почему же до сих пор это все еще никто не сделал и в здравом уме не сделает.
Куда легче прошиваются ARM контроллеры, да еще и с отладкой, если вдруг потребуется. Программатор же с отладкой для AVR стоит странных денег.
"Операционная система" для пространства памяти 64К будет выглядеть именно так, как они всегда в таком пространстве и выглядели - темный экран и мигающий курсор, причем (для экономии памяти) даже команды скорее всего будут сокращенные до одной-двух букв. Команды типа "загрузить" - "сохранить" - "запустить". Все. Следует добавить полное отсутствие программного обеспечения под эту "операционку".
О легкости создания программ - тоже сомнительно. Чтобы уместить что-то более-менее сложное в 64К, надо сильно постараться. Переключение же страниц памяти радости и простоты тоже не добавляет, хоть и позволит выйти за эти 64К.
Если вы фанат "старого ZX", можете вспомнить насколько "просто" там создавались приложения, если вы конечно этим занимались.
Практически все, что вы здесь указали в железе, реализовано в устройстве например STM32F746G-DISCO. Даже "монитор" есть -)).
0
-675 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 887
12.02.2019, 16:58  [ТС] 3
Немного поискал по интернету. Вот интересные пара статей:
https://habr.com/ru/post/177425/
http://avrdevices.ru/podklucha... c16_k_avr/
0
Эксперт .NET
10519 / 6445 / 1502
Регистрация: 25.05.2015
Сообщений: 19,561
Записей в блоге: 14
12.02.2019, 17:05 4
Цитата Сообщение от pgb Посмотреть сообщение
Прикол в том, что по сути получится очень дешёвый, но
абсолютно никому не нужный девайс, на котором даже консольный линукс будет грузится по 8 часов.
В этой нише дешёвых систем уже есть Raspberry Pi, BeagleBone и прочие.
0
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
12.02.2019, 17:27 5
pgb,
странный выбор атмеги, нету аппаратного USB для мышки и клавы, нет SDIO для карты памяти, ладно хоть SPI есть. Ethernet - нет , HDMI - нет.
Реализовать на атмеге все это хозяйство программно выглядит маловероятным, да еще и используя скетчи ардуины - последний гвоздь в крышку этого проекта. Это как собираться провести хирургическую операцию топором.
Интересно из каких соображений вообще выбирался контроллер.
alexey6689 вам дело говорит посмотрите в сторону stm32 там за такой же ценник можно найти ну хотя бы с половиной уже готовых аппаратных модулей. Ну и быстродействие конечно же совершенно на другом уровне.
На ардуино все просто программируется, потому что обычно работает один два модуля. Состыковать все то что вы хотите и чтобы это все работало не мешая друг другу, задача на мой взгляд не тривиальная.
Или малинки кстати есть с линухом
0
4393 / 2243 / 252
Регистрация: 28.10.2011
Сообщений: 8,570
Записей в блоге: 6
12.02.2019, 17:43 6
Цитата Сообщение от pgb Посмотреть сообщение
К микроконтроллеру ATmega2560 подключить планку ОЗУ от компьютера к которой программно можно получить доступ. На базе arduino можно думаю ещё подключить: монитор(VGA), телевизор(HDMI), Enternet, видеокамеру, микрофон, USB (клавиатура, мышь), SD картридер. Получится по сути простой дешёвый компьютер.
Откройте даташит на ATmega2560 и ознакомьтесь с возможностями МК.

Цитата Сообщение от pgb Посмотреть сообщение
Можно написать скетч операционной системы в виде интерпретатора и прошить им. Затем интерпретатор грузит текст программы в ОЗУ, выполняет команды...
В МК 8КБ ОЗУ и выполнение из памяти не поддерживается.

Цитата Сообщение от pgb Посмотреть сообщение
Информация выводится на экран монитора/телевизора, воспроизводится звук, видео(с небольшим разрешением думаю возможно), передаётся и получается информация по сети.
Производительности и объема памяти не хватит.

Цитата Сообщение от pgb Посмотреть сообщение
Прикол в том, что по сути получится очень дешёвый, но полноценный компьютер, который может оказаться в каждом доме
Купите нулевую малину и получите простой и дешевый (5$) полноценный компьютер.

Цитата Сообщение от pgb Посмотреть сообщение
Не большой, но полезный функционал: от мини игр, получения и передачи информации(без рекламы) до общения с родными и друзьями онлайн.
Вы напишите эти программы для этого компа? С ПК программы работать не будут.

Цитата Сообщение от pgb Посмотреть сообщение
Для которого будет легко писать свои программки, создать новую интернет сеть
Вот напишите их и тогда расскажите насколько легко.
0
-675 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 887
12.02.2019, 18:50  [ТС] 7
Есть же примеры как можно подключить ардуино к монитору/телевизору, воспроизведение музыки и тд. Я не замахивался сделать быстрый и многофункциональный компьютер к каким мы все уже привыкли, мне интересно сделать подобие ZX, но программы писать не на компьютере и зашивать их, а один раз сделать прошивку которая эмулировала бы текст и выполняла действия также как и Pyton в Rasspberry.
Да я думал и над использованием Raspberry. Если найти описание того как программировать графику напрямую с голова железа и тд. тогда я подумал бы над написанием под неё такой операционки. Всё упирается в нехватку информации и времени. Под ардуино можно сделать подобие такого графического интерфейса
https://habr.com/ru/post/325692/
0
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
13.02.2019, 02:25 8
Дайте ссылку на пример подключения к монитору/телевизору. Интересно посмотреть даже -)).
Эмулятор имеет быстродействие в десятки раз (если не сотни) ниже эмулируемой платформы. Быстродействия не хватит на работу "Z80 в реальном времени", хотя сам эмулятор сделать можно.
О динамической памяти (а "модули памяти от компьютера" - это именно она). Этот вопрос теоретически может быть рассмотрен в отношении совсем старых SIMM модулей, типа 30-контактных, протоколы обмена и тайминги которых можно пытаться эмулировать ногодрыгом, но вся (почти) ваша Mega на это и уйдет по быстродействию. О подключении синхронной памяти (SDRAM и выше) речь не идет вообще. Но главное - все это не имеет смысла, поскольку больше 64К памяти вы все равно не увидите - в таком варианте правильнее взять микросхему статической памяти на 64К или более (если хотите переключаемые страницы как Spectrum 128K и выше было делать).
Вывод на экран силами Mega - не вариант. Ethernet и прочее - тоже. По хорошему получится устройство с десятком микросхем обвески чтобы все реализовать. Размеры, стоимость...

Почему вам так претит идея сделать все тот же эмулятор на ARM? Вот Raspberry например. Поднимаете там C ну или Python тот же, и вперед. Тот уровень графики, который вам нужен для ZX Spectrum, не потребует много времени на освоение, фактически нужно понять как менять цвета экрана и ставить точки нужного цвета в нужном месте. Все.

Куда больше проблем вы огребете на эмуляции аппаратных систем Spectrum:
- процедура "загрузки" программ. Нужно либо эмулировать работу магнитофона/дисковода, либо "ломать" программы и загружать в память сразу их образы для исполнения. Чтобы их ломать, их нужно откуда-то взять, загружать на реальном ZX-Spectrum и собственно ломать, что требует весьма приличных навыков. Кроме того, после этого вы получите ни с чем не совместимый формат, который нафиг никому не нужен. А для "совместимых" уже есть эмуляторы и для PC, и для Linux наверное;
- работа с клавиатурой, джойстиками. Нужно перехватывать обращения к портам и подсовывать нужные данные в нужное время в соответствии с реальной клавиатурой и т.д.;
- AY-3-8910/8912 (знаете что это такое?). Вот это совсем хардкор -)).
0
-675 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 887
13.02.2019, 09:17  [ТС] 9
Цитата Сообщение от alexey6689 Посмотреть сообщение
Дайте ссылку на пример подключения к монитору/телевизору. Интересно посмотреть даже -)).


0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
13.02.2019, 10:27 10
Цитата Сообщение от locm Посмотреть сообщение
В МК 8КБ ОЗУ и выполнение из памяти не поддерживается.
думаю, если говорить о каком-нибудь интерпретаторе - то код программы есть данные. То бишь технически это все же возможно, хоть и звучит странно ).
Цитата Сообщение от Rius Посмотреть сообщение
В этой нише дешёвых систем уже есть Raspberry Pi, BeagleBone и прочие.
соглашусь и поддержу. Из заявленных требований они вполне себе подходят. Тут разве что "коммуницации" не потянут, по части современных инстаграмм, скайпов, вайберов. Ну, медиа будет на "базовом" уровне, уровне "картинку мы вам еще покажем (развернем)", но "видео - 3fps при декодировании".
Цитата Сообщение от pgb Посмотреть сообщение
Всё упирается в нехватку информации и времени.
)). Конечно все упирается в нехватку времени! Вы что, это же железное объяснение. А еще вы ходите в туалет и кушаете - на это у вас время есть. Есть этому, по-вашему объяснение - почему так получается, что на покушать время всегда находится, а вот на изобретение велосипеда - не всегда?
Цитата Сообщение от alexey6689 Посмотреть сообщение
- AY-3-8910/8912 (знаете что это такое?). Вот это совсем хардкор -)).
в чем же "хардкор" ? Вполне себе нормальный сопроцессор.
Цитата Сообщение от pgb Посмотреть сообщение
ЗЫ. Прошу не пинать, это просто идея, ностальгия своего рода по старому ZX, в детстве была идея создать инет сеть на ZX. Сейчас много разных самоделок на ардуино, вот и у меня возникла такая вот идея. Может через пару дней отпустит, а может найдутся тут кому это покажется интересным, а главное реализуемым.
Оставайтесь тогда на платформе ZX ), никуда не уходите. Есть Z8-серия у Zilog, ассемблер если я верно помню, похож с Z80: Z8F6423FT020SG. Ибо выбор сегодняшних плат, изображающих из себя "ПК" действительно очень велик и разнообразен - уже больше 10ти лет прошло с тех пор, когда появились PC-based контроллеры с Windows CE на борту. И это только на базе 166х процессорах - что уже говорить за их конкурентов в виде кортексов разного калибра.
0
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
13.02.2019, 10:48 11
Цитата Сообщение от Voland_ Посмотреть сообщение
в чем же "хардкор" ? Вполне себе нормальный сопроцессор.
Да не, сопроцессор нормальный. Хардкор будет состоять в его эмуляции -)).
0
-675 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 887
13.02.2019, 21:47  [ТС] 12
На Arduino Due можно нечто примитивное конечно сделать, по цене сопоставимо с Raspberry Zero который конечно же мощнее. Вот только программирование под него тоже сложнее или я просто не вник в ARM ассемблер.

Может кто-то написать простенький пример на ассемблере для вывода например: "Hello world!" напрямую через видеопроцессор на голом железе Rasspbery? Вот документация: https://github.com/dddrrreee/c... G100-R.pdf
0
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
13.02.2019, 21:55 13
Зачем вам ассемблер и "голое железо" на Raspberry, если есть Си/Питон с их графическими библиотеками (я уверен, что они есть)?
0
-675 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 887
13.02.2019, 22:35  [ТС] 14
Цитата Сообщение от alexey6689 Посмотреть сообщение
Зачем вам ассемблер и "голое железо" на Raspberry, если есть Си/Питон с их графическими библиотеками (я уверен, что они есть)?
Есть конечно. Я программировал на нём. Свою ОС интерпретатор хочу. Есть задумки как сделать программирование ещё проще и тд.

Вот нашёл https://habr.com/ru/post/194816/
0
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
13.02.2019, 22:37 15
Про интерпретатор я понял. Почему не сделать его на том, что я написал?
0
-675 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 887
13.02.2019, 23:59  [ТС] 16
Цитата Сообщение от alexey6689 Посмотреть сообщение
Про интерпретатор я понял. Почему не сделать его на том, что я написал?
Нет, не поняли. Вы знаете, что такое интерпретатор и думаете, что я просто хочу изобрести свой велосипед(язык программирования) и можно подкрутить готовые библиотеки которые будут рисовать графику и тд.

Я написал "Свою Операционную систему интерпретатор" - то есть под этим я имел виду, что меня не устраивает Linux с его каталогами, команды bash для заядлых линуксоидов(остальные просто переписывают)...

Короче мне хочется простую, универсальную и надёжную систему. То есть с одной системной директорией(доступ и изменение только система), остальные пользовательские(документы, музыка, видео и тд.). В системной директории будут следующие директории: ядро, драйвера, интерпретатор, библиотеки. Приложение имеет доступ только к дисковому пространству в своей директории и глубже. Интерпретатор ОС с интуитивно простыми командами и простой документацией, запускает и выполняет программы. Всё просто и понятно. Короче система для людей, а не мозголомов, напридумывали чёрте что, постоянно голову ломаешь..
0
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
14.02.2019, 01:09 17
Прикладное и системное программное обеспечение к этому кто писать будет? -))
Вы вначале что-то про HDMI, Ethernet и прочее писали. Устройства, подключенные по этим интерфейсам и не только имеют совершенно конкретные протоколы инициализации, передачи данных, форматов данных и команд. Все это тоже будете сами писать? К пенсии успеете? То пишете, что времени нет ассемблер ARM изучить, то на целую операционку замахиваетесь.

Добавлено через 1 минуту
Все нынешние "системы для мозголомов" когда-то задумывались как "системы для людей", не думаете так?
Однако потом оказалось что нужно добавить еще что-то, потом что-то поменять и т.д...

Добавлено через 40 минут
Насколько я знаю, современные операционные системы и пишутся на C, местами может даже на C++. Только отдельные части ядра пишутся на асме. Ассемблер - неблагодарный и долгий язык. Он использовался от безвыходности десятилетия назад (но и объемы кода были много меньше чем сейчас), но как только появилась возможность от него уйти - это случилось.

Дальше мое ИМХО.
Успех любой операционной системы зависит от ряда факторов. Среди них - наличие программного обеспечения под ОС. Если под ОС нет программ, то ей не будет пользоваться никто. Вот вообще никто, ни один человек. Как минимум нужно иметь компиляторы/библиотеки под эту ОС для распространенных языков программирования и некоторый набор прикладных и системных программ. (Здесь вы наверное скажете что C - "язык для мозголомов" и вы сделаете язык лучше -))).

Задача, которую вы перед собой поставили может иметь академический интерес, но не более. Та же Raspberry как-то пошла в дело только потому что под ней работает Linux со своим набором ПО, там "из коробки" есть Python и ее разработчики сильно озаботились повышением ее популярности. Однако даже она распространена весьма слабо в общем-то, причем часто в качестве элемента сетевой инфраструктуры где-нибудь в шкафу - то, в чем силен Linux.

Чем будет хороша ваша "операционка"? Тем, что она "не такая как все"? Да нахрен оно кому такое надо. Надо наоборот, чтобы было также как все и даже лучше/проще.
Попробуйте написать какую-нибудь программу (можно на ассемблере) для компа ДВК-3, например чтобы она прочитала с дискеты файл, заданный в команде и вывела его содержимое на экран. Вот ровно в таком положении находится пользователь "новой и крутой операционки".
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
14.02.2019, 10:57 18
Цитата Сообщение от alexey6689 Посмотреть сообщение
Да не, сопроцессор нормальный. Хардкор будет состоять в его эмуляции -)).
ну чего? в симуляторах ZX Spectrum'а на винду вроде ж есть его симуляция? Не думаю что добиться того же результа невозможно с помощью МК - у него для этого есть развитая периферия. Вы сами знаете - чего можно добиться одним только таймером. А таймер + DMA + ШИМ + (программная обертка со стейт-машиной) - это вообще ядерная смесь )... Я думаю, на озвученных компонентах сделать симулятор звукового сопроцессора можно сделать в элементе.

Цитата Сообщение от alexey6689 Посмотреть сообщение
Задача, которую вы перед собой поставили может иметь академический интерес, но не более.

Не по теме:

Ну чего вы человека останавливаете ). Может он попробует, поизучает... А потом вникнет, и допишет в тот же Линукс какую-то новую фичку. На моей памяти, пока я учился (давно), было человек 5 мечтателей, кто создавал или писал свою ОСь. Никто из них не написал что-либо лучше Линукса или близко к этому. Но каждый стал отличным специалистом системного уровня, разобрался с вопросами низкоуровневого программирования.

я в одном из проектов использовал свою собственную консольку команд, сходных по своей природе с AT-командами модема. И это отлично корреспондировалось, интегрировалось с другими системами и отлично "смотрелось" с точки зрения дебага. Нельзя сказать что это ОСь (похоже, автор топика не очень понимает значение этого термина), но сам интерпретатор вполне оказался полезен и востребован в системе с МК как интерфейс.

0
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
14.02.2019, 12:18 19
Так я и написал про академический интерес именно в том смысле, что наберется опыт, понимание что к чему.
0
-675 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 887
15.02.2019, 08:56  [ТС] 20
Теперь понятно почему мне хочется найти платформу на которой такую ОС возможно реализовать. Нужен чип на котором написать интерпретатор, озу для загрузки данных, ну и возможность подключения ещё периферии. Никто не занимался проектированием подобных схем?
0
15.02.2019, 08:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2019, 08:56
Помогаю со студенческими работами здесь

Атмега: фьюзы на кварц, запустится от внешнего? [РЕШЕНО]
Собсно, в сабже весь вопрос. МК (атмега168) прошит на работу от кварца 8 Мгц в режиме Full Swing....

СМА Candy Evo4 1074LWT2 - 06 3100565313200156, Нужен Full дамп на процессор Атмега 644
KD60EB20HA28 https://www.cyberforum.ru/savedimages/2017/10/18/2266641283.jpg

заменить функцию непрерывное преобразование в атмега 8 работает, в атмега328 не работает
Есть код (ADCSRA |= (1<<ADFR); // непрерывное преобразование ) работает в протеусе на Атмега8, но...

Освещение на микроконтроллере
Добрый день, уважаемые! Мне необходимо сделать аварийное освещение на микроконтроллере со...

Таймер на микроконтроллере
помогите пожалуйста составить схему электрическую структурную таймера

Диммер на микроконтроллере
Доброго времени суток! Надеюсь на вашу помощь. Собрал диммер по схеме с сайта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru