Я питаю секретную фантазию (ой, уже не так секрет), чтобы создать простой компьютер с нуля. Я ищу простой в использовании микропроцессор для начала. Я знаю об обычных подозреваемых, таких как 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 .
источник
Ответы:
Я согласен, что 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. Итак, если ваша цель - создать свой собственный язык, я полностью понимаю радость этого упражнения.
источник
Для маленьких вещей UC Arduino , дешево, весело, хорошее сообщество
Для машин класса ARM самый дешевый, вероятно, шеева вилка они делают удивительную комплектную машину, встроенную в блок питания Wallwart, и немного большую одноплатную машину с гораздо большим количеством ввода / вывода.
Или есть доска гончей , нацеленная больше на аудио / видео производительность.
Все они работают под Linux, так что у вас есть огромный выбор программного обеспечения для разработки
источник
MSP430 от Texas Instruments отличается очень низким энергопотреблением, небольшим, но очень разумным набором команд (в отличие от PIC), инструментами с открытым исходным кодом и форматом DIP в своей линейке. Недавно они выпустили стартовый комплект стоимостью 4,30 доллара (бесплатная доставка) стоимостью 4,30 доллара США, который включает в себя интерфейс USB для программирования и отладки и два DIP-чипа для игры. Проверьте это .
источник
Вы могли бы получить FPGA и смоделировать все это - процессор не требуется.
Раньше я пытался сделать простой компьютер MIPS. У меня есть базовый дизайн процессора, но было бы трудно сказать, мягко говоря, проволочную или иным образом прототип.
источник
Посмотрите на микроконтроллеры ATmega от Atmel, у них есть все, о чем вы просите, кроме возможности выполнения кода из оперативной памяти, и их очень легко настроить.
Некоторый небольшой 32-битный процессор ARM, такой как ARM7TDMI, будет альтернативой, но они не входят в пакеты DIP. То же самое относится и к микроконтроллерам Renesas R8C / M16C.
источник
Звучит как отличный проект! Я сделал это еще в 70-х годах с чипом 8008 и небольшим количеством RAM и ROM. Я запрограммировал его на небольшую мелодию с динамиками, подключенными к порту ввода / вывода. Часть схемы памяти включала микросхему таймера, управляемую конденсатором. Я припаял дополнительный конденсатор, который при нажатии на него замедлял все это на 1000. Затем я использовал в классе в качестве демонстратора. Сначала я запускал его медленно, и студенты могли слышать, как колонки щелкают, щелкают. Затем я отцепил конденсатор, и они услышали мелодию. Я пытался убедить их, как компьютеры заканчивают одну инструкцию перед началом следующей.
источник
Проверьте OLIMEX, у них есть платы разработки для большинства современных микроконтроллеров, и если вы действительно хотите DIP, у них есть процессоры ARM на платах в DIP-подобном формате ( 1 ). Они также продают JTAG и имеют некоторый демонстрационный код, доступный для большинства плат (gcc), поэтому с ними очень легко начать работу. Большинство их досок доступно через Sparkfun . Мне лично нравятся микросхемы на основе Phillips LPC ARM, но все от Olimex хорошо.
AVR32 также будет работать для вас (не havard). Я только недавно начал использовать их и был очень удивлен их способностью и простотой использования.
Собирать с нуля на самом деле не вариант сегодня, если вы не используете 8-битный DIP-микро или не имеете установки для пайки плат поверхностного монтажа и отладки сложных цифровых печатных плат.
источник
В зависимости от ваших целей, вы можете рассмотреть возможность создания собственного ЦП с нужными вам функциями вместо использования существующего ЦП. Проверьте Homebuilt CPU webring. Есть даже
безумныйэнтузиаст, который построил процессор из реле!источник
Параллакс пропеллер
Единственный 32-битный процессор, который в настоящее время выпускается в DIP-упаковке, - это Parallax Propeller . (Этот же чип доступен и в гораздо меньших корпусах с 44-контактным QFP и 44-контактным QFN, все с 32 выводами ввода / вывода общего назначения). В дополнение к Windows IDE для него есть несколько инструментов разработки, которые работают под Linux .
Похоже, он отвечает всем вашим требованиям, за исключением «Встроенного флэш-ПЗУ» - вместо этого, Propeller загружается с внешнего 8-контактного EEPROM. (Это еще одна вещь, которую нужно подключить, но гораздо проще подключить 8-контактный чип, чем большинство внешних чипов хранения программ).
источник
+1 для микросхем ATmega. Вы получаете их с помощью загрузчика для программирования через USB - что еще более упрощает запуск первой платы без необходимости использования специального программиста. Если вы пойдете по этому пути, то пропустите ICE.
источник
Второй голос за Amtel. Мне особенно нравятся подростки ++ для прототипов и экспериментов. USB обеспечивает питание, обеспечивает интерфейс программирования и отображает выходные данные отладки. Инструменты разработки GNU. Тонны веселья примерно за 30 долларов.
источник
Atmel будет очень популярен, сами Arduinos (мне нравятся про-модели в sparkfun) популярны. Вы найдете МНОГО любителей, которые знакомы и могут ответить на большинство вопросов об использовании AVR.
Я предпочитаю команду msp430, установленную для avr, и команду arm, установленную над остальными. Olimex выпускает несколько досок для заголовков, которые идеально подходят для экспериментов. У Luminary micro есть несколько хороших, но многие выводы используются чипом для демонстрации периферийных устройств чипа, что полезно для изучения чипа и его функций, но в конечном итоге вы захотите обрезать их, чтобы получить возможность ввода-вывода. В любом случае, olimex хорош, попробуйте http://www.sparkfun.com и просмотрите доски для разработки, некоторые из них от olimex, от sparkfun, широкий выбор и многие из них менее $ 40 или $ 50, так что вы можете попробовать несколько, чтобы увидеть, что вы нравится. Я собираюсь заказать armmite, который, если он соответствует своему списку функций, вероятно, является лучшей платой контроллера для моих целей.
источник
У меня была одна и та же мечта, но я никогда не удосужился к ней.
Большинство рекомендаций, приведенных выше, предназначены для плат разработчиков. Поскольку вы сказали «с нуля», я бы предположил, что вы хотите начать с одного чипа DIP-процессора, а не покупать плату разработчика. В этом случае я очень рекомендую вам придерживаться чего-то вроде обычных подозреваемых, перечисленных в вашем посте. Они популярны, потому что хорошо работают для такой задачи. Вы можете преодолеть потребность в большем количестве линий ввода / вывода с мультиплексорами и демультиплексорами.
Предположим, вы нашли этот «идеальный» процессор, который делает все, что вы хотите, и имеет точное количество строк ввода-вывода, которое вы хотите. Вы не найдете нигде рядом поддержки, которую вы найдете для популярных процессоров. Вы очень легко сможете найти старые использованные книги по E-Bay, Amazon и т. Д. Всего за копейки, которые показывают, как проектировать полную систему с использованием этих процессоров. Не говоря уже о сайтах, компиляторах и других людях, делающих то же самое.
Если вы пойдете с чем-то еще, я думаю, вы будете глубоко сожалеть об этом. Вы потратите больше времени на разочарование из-за отсутствия поддержки, чем на любые технические проблемы, возникающие у вас с этими процессорами. Кроме того, поскольку люди уже разработали целые компьютеры с этими чипами, вы знаете, что это можно сделать. С чем-то еще всегда есть шанс, что вы столкнетесь с кирпичной стеной.
источник
Выберите Atmel AVR. Вот несколько игровых платформ вокруг него:
источник
Я предпочитаю команду msp430, установленную для avr, и команду arm, установленную над остальными.
источник