Qual microprocessador para experimentação?

33

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 .

Barry Brown
fonte
Não é realmente relacionado à programação. Parece mais uma pergunta de hardware (ou seja, material superuser.com).
3
Sim, mas apenas um público programador pode responder corretamente
Stefano Borini
Deseja que o dispositivo manipule o teclado, o mouse e a tela por conta própria ou você só vai se conectar via serial?
Serial seria bom para mim.
STR711 ARM não é realmente mergulho

Respostas:

15

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.

dwhall
fonte
1
O ARM possui barramentos de instruções e dados separados , o espaço de endereço é unificado (ou seja, você pode ler instruções e executar dados, se necessário). Eu também recomendaria olhar para os chips Cortex-Mx da NXP - confira o LPCXpresso.
Igor Skochinsky
7

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

Martin Beckett
fonte
Totalmente. Adquira o kit Fuzebox, monte-o e corte pequenos jogos (todos eles são software livre até agora, eu acho) para sua TV.
5

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 .

Igor Skochinsky
fonte
Isso é bem legal! Eu marquei esse site como favorito. :)
4

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.

McPherrinM
fonte
Essa é uma ideia interessante. Existem fontes para projetos de processadores de referência que podem ser programados em um FPGA?
A maioria dos devkits de FPGA vem com um design de CPU livre ou licenciado. Às vezes, mesmo com um RTOS que o acompanha.
Um PDP-1 seria viável. É construído a partir de componentes modulares. Os diagramas lógicos para cada componente são publicados no Digital Logic Handbook, 1969 (o meu chegou hoje pelo correio!).
Luser droog 13/09/11
2

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.

starblue
fonte
Todos os AVRs usam um espaço de instrução somente leitura, não é? Eu preciso ser capaz de executar a partir da RAM, para que meus programas possam escrever programas.
Sim, parece que você está certo. Embora quando eu toquei com Forth há 25 anos, usei uma implementação de código encadeada, o que seria possível com o AVR.
Starblue 5/08/09
Um braço Cortex M0 num pacote DIP 28 pinos tenha sido observado: nxp.com/products/microcontrollers/cortex_m0/lpc1100_x_l/...
starblue
2

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
1

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.

Gerhard
fonte
1

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ático que construiu uma CPU a partir de relés!

Arco Alto de Dour
fonte
1
UAU! Isso é assustador! E ele olha orgulhoso dele ....
asp316
É um bom projeto. Alan Turing trabalhou com hardware baseado em relé. O material de revezamento desse pessoal parece bem montado e construído em armários legais. Bom trabalho!
Kaz
1

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).

davidcary
fonte
0

+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.

Belrog
fonte
0

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.

Frobozz512
fonte
0

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.

old_timer
fonte
0

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
Além disso, você pode considerar a opção de copiar uma arquitetura existente como o C64, que já foi hackeada até a morte.
0

Escolha Atmel AVR. Aqui estão algumas plataformas de jogos:

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
fonte
0

Prefiro a instrução msp430 definida para o avr e a instrução arm definida acima das outras.

Rckt
fonte