Eu guardo uma fantasia secreta (opa, não tão secreta mais) para construir um computador simples do zero. Estou procurando um microprocessador fácil de usar para começar. Conheço os suspeitos do costume, como o 6502, 68000, 8086, Z80, etc. Mas estou me perguntando se algo melhor está por aí. Aqui está minha lista de desejos:
Deve ter:
- Baixa taxa de clock (4-25 MHz)
- Não mais que 40-60 pinos, de preferência na configuração DIP
- Capacidade de endereçar cerca de 64 KB de memória, mas até 1 MB seria bom
- Arquitetura de programa armazenado (não espaço de instrução somente leitura) (Editar: isso exclui a maioria dos microcontroladores low-end, como o PIC e o AVR)
- Modelo de memória plana, não depositado ou segmentado como o 8086
Gostaria, mas não é necessário ter:
- Conjunto de instruções RISCy (armazenamento de carga)
- Registros de uso geral
- Variedade de pinos TTL I / O
- ROM flash incorporada
Para qual microprocessador ou microcontrolador você sugere que é relativamente fácil conectar e obter as primeiras rotinas de ROM escritas?
Meu objetivo é obter um sistema Forth simples (ou similar). Só para dizer que eu fiz.
Edit: Depois de fazer um pouco de pesquisa, acho que algo como o ARM7 seria adequado para mim. Ele vem com uma quantidade não trivial de flash e SRAM para jogar - às vezes até 256K de flash e 64K de SRAM - junto com E / S digital, ADC, E / S serial e muito mais.
Aqui está um: a placa de desenvolvimento do STR711 ARM .
fonte
Respostas:
Concordo que o ARM é o caminho a seguir para microcontroladores de 32 bits. O ARM é onipresente e sua linguagem assembly pode ser usada em uma ampla variedade de famílias de microcontroladores. O ARM também possui um bom suporte da cadeia de ferramentas do GCC. A arquitetura do chip ARM7TDMI dominou o espaço mcu de 32 bits nos últimos 5 anos e o ARM Cortex-M3 é o substituto emergente. O Cortex-M3 tem uma arquitetura de Harvard (espaços separados para instruções e endereços de dados), mas não acho que isso seja uma limitação.
A Micromint tem uma reputação sólida e oferece uma placa Cortex-M3 com opções configuráveis por um preço razoável. No entanto, se você realmente precisa da configuração DIP, obtive sucesso com o mbed
Agora, a próxima coisa são as línguas. Você mencionou FORTH. Também recomendo o Python-on-a-Chip e o eLua como linguagens poderosas e fáceis de aprender que funcionam nessa plataforma de tamanho alvo. O eLua é mais completamente desenvolvido, mas possui requisitos de recursos maiores que o Python-on-a-Chip. Divulgação completa: sou o autor da VM PyMite usada no Python-on-a-Chip. Portanto, se seu objetivo é criar seu próprio idioma, compreendo perfeitamente a alegria desse exercício.
fonte
Para pequenas coisas uC Arduino , barato, divertido, boa comunidade
Para as máquinas da classe ARM, o mais barato é provavelmente o plugue sheeva, eles fazem uma máquina completa incrível incorporada a uma fonte de alimentação resistente à parede e uma máquina de placa única um pouco grande com muito mais I / O
Ou há o beagle board , voltado mais para o desempenho de áudio / vídeo.
Todos eles rodam Linux, para que você tenha uma enorme variedade de softwares de desenvolvimento
fonte
O MSP430 da Texas Instruments possui um consumo de energia muito baixo, conjunto de instruções pequeno, mas muito sensato (ao contrário do PIC), ferramentas de código aberto e formato DIP em sua linha de valor. Eles lançaram recentemente um kit inicial de US $ 4,30 (sim, são quatro dólares e trinta centavos, frete grátis) que inclui interface USB para programação e depuração e dois chips DIP para brincar. Confira .
fonte
Você pode obter um FPGA e zombar de tudo - não é necessário processador.
Eu já fui tentado a criar um computador MIPS simples antes. Eu tenho um design básico de CPU, mas seria difícil dizer o mínimo para conectar ou prototipar.
fonte
Confira os microcontroladores ATmega da Atmel, eles têm tudo o que você pede, exceto a capacidade de executar código da RAM, e eles são muito fáceis de configurar.
Algum pequeno processador ARM de 32 bits, como o ARM7TDMI, seria uma alternativa, mas eles não vêm em pacotes DIP. O mesmo se aplica aos microcontroladores Renesas R8C / M16C.
fonte
Parece um ótimo projeto! Eu fiz uma nos anos 70 com um chip 8008 e um pouco de RAM e ROM. Programei-o para tocar um pouco com os alto-falantes conectados à porta de E / S. Parte do circuito de memória envolvia um chip de timer controlado por um capacitor. Soldei um capacitor extra que, quando colocado em contato, diminuiu a velocidade em 1000. Depois usei na aula como demonstrador. Primeiro, eu corria devagar e os alunos podiam ouvir os alto-falantes clicando, clicando. Depois, soltei o capacitor e eles ouviram a música. Eu estava tentando impressionar com eles como os computadores terminam uma instrução antes de começar a próxima.
fonte
Confira o OLIMEX, que possui placas de desenvolvimento para os microcontroladores mais modernos e, se você realmente deseja DIP, possui processadores ARM em placas no formato DIP, como no formato 1 . Eles também vendem JTAGs e têm algum código de demonstração disponível para a maioria das placas (gcc), para que sejam muito fáceis de usar. A maioria de suas placas está disponível via Sparkfun . Pessoalmente, gosto dos micros baseados em Phillips LPC ARM, mas qualquer coisa da Olimex é boa.
O AVR32 também funcionará para você (sem risco). Recentemente, comecei a usá-los e fiquei muito surpreso com a capacidade e facilidade de uso deles.
Hoje, construir do zero não é realmente uma opção, a menos que você use um micro de 8 bits ou tenha uma configuração para soldar placas de montagem em superfície e depurar placas de PC digitais complexas.
fonte
Dependendo de seus objetivos, considere construir sua própria CPU com os recursos que deseja, em vez de usar uma CPU existente. Confira o webring da CPU Homebuilt . Há até um entusiasta
lunáticoque construiu uma CPU a partir de relés!fonte
Parallax Propeller
O único processador de 32 bits atualmente fabricado em um pacote DIP é o Parallax Propeller . (O mesmo chip também está disponível em pacotes QFP de 44 pinos e QFN de 44 pinos muito menores, todos com 32 pinos de E / S de uso geral). Além do Windows IDE, também existem algumas ferramentas de desenvolvimento que são executadas no Linux .
Parece atender a todos os seus requisitos, exceto a "ROM flash incorporada". Em vez disso, o Propeller é carregado a partir de uma EEPROM externa de 8 pinos. (Isso é mais uma coisa para conectar, mas é muito mais fácil conectar um chip de 8 pinos do que a maioria dos chips de armazenamento de programas externos).
fonte
+1 Para os micros ATmega. Você os possui um gerenciador de inicialização para programar via USB - facilitando ainda mais a execução da primeira placa sem a necessidade de um programador dedicado. Você perderá as coisas do ICE se seguir essa rota.
fonte
Uma segunda votação para a Amtel. Gosto particularmente do pequenino ++ para protótipos e experimentação. O USB fornece energia, fornece uma interface de programação e exibe a saída de depuração. Ferramentas de desenvolvimento GNU. Toneladas de diversão por cerca de US $ 30.
fonte
Atmel será bastante popular, os arduinos (eu gosto dos modelos profissionais da sparkfun) são populares. Você encontrará MUITOS entusiastas por aí que estão familiarizados e podem responder a qualquer pergunta sobre o uso do AVR.
Prefiro a instrução msp430 definida para o avr e a instrução arm definida acima das outras. A Olimex fabrica várias placas de cabeçalho perfeitas para experimentos. O Luminary micro possui alguns bons, mas muitos dos pinos são consumidos no chip, exibindo os periféricos do chip, bom para aprender o chip e os recursos, mas você eventualmente deseja cortá-los para obter E / S. De qualquer forma, o olimex é bom, tente http://www.sparkfun.com e navegue pelas placas de desenvolvimento, algumas são da olimex, outras são da sparkfun, uma ampla seleção e muitas com menos de US $ 40 ou US $ 50, para que você possa tentar algumas para ver o que deseja. gostar. Estou prestes a pedir um armmite, que, se corresponder à sua lista de recursos, é provavelmente a melhor placa controladora para meus propósitos.
fonte
Eu tive o mesmo sonho, mas nunca cheguei a ele.
A maioria das recomendações acima são para placas de desenvolvimento. Desde que você disse "do zero", eu assumiria que você deseja começar com um único chip de processador DIP e não comprar uma placa de desenvolvimento. Nesse caso, eu recomendaria extremamente super que você ficasse com algo como os suspeitos comuns que você listou em seu post. Eles são populares porque funcionam bem para essa tarefa. Você pode superar a necessidade de mais linhas de E / S com multiplexadores e desmultiplexadores.
Suponha que você tenha encontrado a CPU "perfeita" que faz tudo o que você deseja e tem o número exato de linhas de E / S que você deseja. Você não encontrará nem um pouco do suporte que encontrará para os processadores populares. Você deve facilmente encontrar livros usados antigos no E-Bay, Amazon etc. por apenas alguns centavos que mostram como projetar um sistema completo usando esses processadores. Sem mencionar sites, compiladores e outras pessoas fazendo a mesma coisa.
Se você escolher outra coisa, acho que vai se arrepender profundamente. Você gastará mais tempo frustrado com a falta de suporte do que com os problemas técnicos que tiver com esses processadores. Além disso, como as pessoas já projetaram computadores inteiros com esses chips, você sabe que isso pode ser feito. Com qualquer outra coisa, sempre há uma chance de você bater em uma parede de tijolos.
fonte
Escolha Atmel AVR. Aqui estão algumas plataformas de jogos:
fonte
Prefiro a instrução msp430 definida para o avr e a instrução arm definida acima das outras.
fonte