Какой микропроцессор для экспериментов?

33

Я питаю секретную фантазию (ой, уже не так секрет), чтобы создать простой компьютер с нуля. Я ищу простой в использовании микропроцессор для начала. Я знаю об обычных подозреваемых, таких как 6502, 68000, 8086, Z80 и т. Д. Но мне интересно, есть ли что-нибудь лучше. Вот мой список пожеланий:

Должен иметь:

  • Низкая тактовая частота (4-25 МГц)
  • Не более 40-60 контактов, желательно в конфигурации DIP
  • Возможность адресации около 64 КБ памяти, но до 1 МБ или около того было бы хорошо
  • Архитектура хранимой программы (не только для командного пространства только для чтения) (Редактировать: это исключает большинство низкоуровневых микроконтроллеров, таких как PIC и AVR)
  • Модель с плоской памятью, без кеглей или сегментированных, как у 8086

Хотелось бы, но не обязательно иметь:

  • Набор команд RISCy (load-store)
  • Регистры общего назначения
  • Ассортимент выводов ввода / вывода TTL
  • Встроенная флешка

Какой микропроцессор или микроконтроллер вы бы посоветовали относительно легко подключить и получить первые программы для ПЗУ, написанные для?

Моя цель - запустить простую систему Forth (или аналогичную). Просто чтобы сказать, что я сделал это.

Изменить: После небольшого исследования, я думаю, что-то вроде ARM7 подойдет мне. Он поставляется с нетривиальным количеством флеш-памяти и SRAM для воспроизведения - иногда до 256K флеш-памяти и 64K-SRAM - наряду с цифровым вводом / выводом, АЦП, последовательным вводом / выводом и многим другим.

Вот одна из них: плата разработки STR711 ARM .

Барри Браун
источник
Не совсем связанный с программированием. Похоже на аппаратный вопрос (например, материал superuser.com).
3
да, но только программистская аудитория может ответить правильно
Стефано Борини
Вы хотите, чтобы устройство обрабатывало клавиатуру, мышь и дисплей самостоятельно или вы собираетесь подключаться только через последовательный порт?
Серийный будет хорошо для меня.
STR711 ARM на самом деле не падение

Ответы:

15

Я согласен, что ARM - это путь для 32-битных микроконтроллеров. ARM вездесущ, и его язык ассемблера может использоваться в широком диапазоне семейств микроконтроллеров. ARM также имеет хорошую поддержку от GCC toolchain. За последние 5 лет архитектура микросхем ARM7TDMI доминировала в 32-битном пространстве mcu, и ARM Cortex-M3 является новой заменой. Cortex-M3 имеет архитектуру Гарварда (отдельные адресные пространства и инструкции), но я не считаю это ограничением.

Micromint имеет солидную репутацию, и они предлагают плату Cortex-M3 с настраиваемыми опциями по приемлемой цене. Однако, если вам действительно нужна конфигурация DIP, у меня есть успех с mbed

Теперь следующая вещь - это языки. Вы упомянули ФОРТ. Я также рекомендую Python-on-a-Chip и eLua как мощные и простые в изучении языки, которые работают на целевой платформе такого размера. eLua более полно разработана, но требует больших ресурсов, чем Python-on-a-Chip. Полное раскрытие: я являюсь автором виртуальной машины PyMite, используемой в Python-on-a-Chip. Итак, если ваша цель - создать свой собственный язык, я полностью понимаю радость этого упражнения.

dwhall
источник
1
ARM имеет отдельные команды и шины данных , адресное пространство унифицировано (т.е. вы можете читать инструкции и выполнять данные, если вам нужно). Я также рекомендовал бы взглянуть на более дешевые чипы Cortex-Mx от NXP - посмотрите LPCXpresso.
Игорь Скочинский
7

Для маленьких вещей UC Arduino , дешево, весело, хорошее сообщество

Для машин класса ARM самый дешевый, вероятно, шеева вилка они делают удивительную комплектную машину, встроенную в блок питания Wallwart, и немного большую одноплатную машину с гораздо большим количеством ввода / вывода.

Или есть доска гончей , нацеленная больше на аудио / видео производительность.

Все они работают под Linux, так что у вас есть огромный выбор программного обеспечения для разработки

Мартин Беккет
источник
Полностью. Получите комплект Fuzebox, соберите его и взламывайте маленькие игры (я думаю, что все они пока бесплатны) для вашего телевизора.
5

MSP430 от Texas Instruments отличается очень низким энергопотреблением, небольшим, но очень разумным набором команд (в отличие от PIC), инструментами с открытым исходным кодом и форматом DIP в своей линейке. Недавно они выпустили стартовый комплект стоимостью 4,30 доллара (бесплатная доставка) стоимостью 4,30 доллара США, который включает в себя интерфейс USB для программирования и отладки и два DIP-чипа для игры. Проверьте это .

Игорь Скочинский
источник
Это круто! Я добавил этот сайт в закладки. :)
4

Вы могли бы получить FPGA и смоделировать все это - процессор не требуется.

Раньше я пытался сделать простой компьютер MIPS. У меня есть базовый дизайн процессора, но было бы трудно сказать, мягко говоря, проволочную или иным образом прототип.

McPherrinM
источник
Это интересная идея. Существуют ли источники эталонных конструкций процессоров, которые можно запрограммировать в FPGA?
Большинство FPGA-устройств поставляются с бесплатным или лицензированным процессором. Иногда даже с сопровождающей ОСРВ.
PDP-1 было бы возможно. Он построен из модульных компонентов. Логические схемы для каждого компонента опубликованы в Digital Logic Handbook, 1969 (мой только что пришел по почте сегодня!).
Люзер Дрог
2

Посмотрите на микроконтроллеры ATmega от Atmel, у них есть все, о чем вы просите, кроме возможности выполнения кода из оперативной памяти, и их очень легко настроить.

Некоторый небольшой 32-битный процессор ARM, такой как ARM7TDMI, будет альтернативой, но они не входят в пакеты DIP. То же самое относится и к микроконтроллерам Renesas R8C / M16C.

starblue
источник
Все AVR используют пространство инструкций только для чтения, не так ли? Мне нужно иметь возможность выполнять из ОЗУ, чтобы мои программы могли писать программы.
Да, похоже, ты прав. Хотя, когда я играл с Forth 25 лет назад, я использовал реализацию многопоточного кода, что было бы возможно с AVR.
звездно-голубой
ARM Cortex M0 в 28-контактном корпусе DIP обнаружен: nxp.com/products/microcontrollers/cortex_m0/lpc1100_x_l/…
starblue
2

Звучит как отличный проект! Я сделал это еще в 70-х годах с чипом 8008 и небольшим количеством RAM и ROM. Я запрограммировал его на небольшую мелодию с динамиками, подключенными к порту ввода / вывода. Часть схемы памяти включала микросхему таймера, управляемую конденсатором. Я припаял дополнительный конденсатор, который при нажатии на него замедлял все это на 1000. Затем я использовал в классе в качестве демонстратора. Сначала я запускал его медленно, и студенты могли слышать, как колонки щелкают, щелкают. Затем я отцепил конденсатор, и они услышали мелодию. Я пытался убедить их, как компьютеры заканчивают одну инструкцию перед началом следующей.


источник
1

Проверьте OLIMEX, у них есть платы разработки для большинства современных микроконтроллеров, и если вы действительно хотите DIP, у них есть процессоры ARM на платах в DIP-подобном формате ( 1 ). Они также продают JTAG и имеют некоторый демонстрационный код, доступный для большинства плат (gcc), поэтому с ними очень легко начать работу. Большинство их досок доступно через Sparkfun . Мне лично нравятся микросхемы на основе Phillips LPC ARM, но все от Olimex хорошо.

AVR32 также будет работать для вас (не havard). Я только недавно начал использовать их и был очень удивлен их способностью и простотой использования.

Собирать с нуля на самом деле не вариант сегодня, если вы не используете 8-битный DIP-микро или не имеете установки для пайки плат поверхностного монтажа и отладки сложных цифровых печатных плат.

Gerhard
источник
1

В зависимости от ваших целей, вы можете рассмотреть возможность создания собственного ЦП с нужными вам функциями вместо использования существующего ЦП. Проверьте Homebuilt CPU webring. Есть даже безумный энтузиаст, который построил процессор из реле!

Dour High Arch
источник
1
ВОТ ЭТО ДА! Это страшно! И он выглядит гордым этим ....
asp316
Это хороший проект. Алан Тьюринг работал с аппаратным обеспечением на основе реле. Эстафета этого парня выглядит аккуратно собранной и встроенной в красивые шкафы. Отличная работа!
Каз
1

Параллакс пропеллер

Единственный 32-битный процессор, который в настоящее время выпускается в DIP-упаковке, - это Parallax Propeller . (Этот же чип доступен и в гораздо меньших корпусах с 44-контактным QFP и 44-контактным QFN, все с 32 выводами ввода / вывода общего назначения). В дополнение к Windows IDE для него есть несколько инструментов разработки, которые работают под Linux .

Похоже, он отвечает всем вашим требованиям, за исключением «Встроенного флэш-ПЗУ» - вместо этого, Propeller загружается с внешнего 8-контактного EEPROM. (Это еще одна вещь, которую нужно подключить, но гораздо проще подключить 8-контактный чип, чем большинство внешних чипов хранения программ).

davidcary
источник
0

+1 для микросхем ATmega. Вы получаете их с помощью загрузчика для программирования через USB - что еще более упрощает запуск первой платы без необходимости использования специального программиста. Если вы пойдете по этому пути, то пропустите ICE.

Belrog
источник
0

Второй голос за Amtel. Мне особенно нравятся подростки ++ для прототипов и экспериментов. USB обеспечивает питание, обеспечивает интерфейс программирования и отображает выходные данные отладки. Инструменты разработки GNU. Тонны веселья примерно за 30 долларов.

Frobozz512
источник
0

Atmel будет очень популярен, сами Arduinos (мне нравятся про-модели в sparkfun) популярны. Вы найдете МНОГО любителей, которые знакомы и могут ответить на большинство вопросов об использовании AVR.

Я предпочитаю команду msp430, установленную для avr, и команду arm, установленную над остальными. Olimex выпускает несколько досок для заголовков, которые идеально подходят для экспериментов. У Luminary micro есть несколько хороших, но многие выводы используются чипом для демонстрации периферийных устройств чипа, что полезно для изучения чипа и его функций, но в конечном итоге вы захотите обрезать их, чтобы получить возможность ввода-вывода. В любом случае, olimex хорош, попробуйте http://www.sparkfun.com и просмотрите доски для разработки, некоторые из них от olimex, от sparkfun, широкий выбор и многие из них менее $ 40 или $ 50, так что вы можете попробовать несколько, чтобы увидеть, что вы нравится. Я собираюсь заказать armmite, который, если он соответствует своему списку функций, вероятно, является лучшей платой контроллера для моих целей.

Старожил
источник
0

У меня была одна и та же мечта, но я никогда не удосужился к ней.

Большинство рекомендаций, приведенных выше, предназначены для плат разработчиков. Поскольку вы сказали «с нуля», я бы предположил, что вы хотите начать с одного чипа DIP-процессора, а не покупать плату разработчика. В этом случае я очень рекомендую вам придерживаться чего-то вроде обычных подозреваемых, перечисленных в вашем посте. Они популярны, потому что хорошо работают для такой задачи. Вы можете преодолеть потребность в большем количестве линий ввода / вывода с мультиплексорами и демультиплексорами.

Предположим, вы нашли этот «идеальный» процессор, который делает все, что вы хотите, и имеет точное количество строк ввода-вывода, которое вы хотите. Вы не найдете нигде рядом поддержки, которую вы найдете для популярных процессоров. Вы очень легко сможете найти старые использованные книги по E-Bay, Amazon и т. Д. Всего за копейки, которые показывают, как проектировать полную систему с использованием этих процессоров. Не говоря уже о сайтах, компиляторах и других людях, делающих то же самое.

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


источник
Кроме того, вы можете рассмотреть вариант копирования существующей архитектуры, такой как C64, которая уже была взломана до смерти.
0

Выберите Atmel AVR. Вот несколько игровых платформ вокруг него:

http://belogic.com/uzebox/index.asp
http://avga.prometheus4.com/
http://www.innovativedevice.com/console/GameStation.asp
http://www.lucidscience.com/pro-lazarus-64%20prototype-1.aspx
http://www.lucidscience.com/pro-vga%20video%20generator-1.aspx
Avra
источник
0

Я предпочитаю команду msp430, установленную для avr, и команду arm, установленную над остальными.

Rckt
источник