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


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. Итак, если ваша цель - создать свой собственный язык, я полностью понимаю радость этого упражнения.


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. У меня есть базовый дизайн процессора, но было бы трудно сказать, мягко говоря, проволочную или иным образом прототип.


Это интересная идея. Существуют ли источники эталонных конструкций процессоров, которые можно запрограммировать в FPGA?

Большинство FPGA-устройств поставляются с бесплатным или лицензированным процессором. Иногда даже с сопровождающей ОСРВ.

PDP-1 было бы возможно. Он построен из модульных компонентов. Логические схемы для каждого компонента опубликованы в Digital Logic Handbook, 1969 (мой только что пришел по почте сегодня!).
Люзер Дрог

2

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

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



Все 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-микро или не имеете установки для пайки плат поверхностного монтажа и отладки сложных цифровых печатных плат.


1

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


1
ВОТ ЭТО ДА! Это страшно! И он выглядит гордым этим ....
asp316

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

1

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

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

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


0

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


0

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


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

0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.