Pergunta

Como posso fazer o meu próprio microcontrolador? Eu fiz algum trabalho usando chips de GAL e programado um chip para fazer comandos simples, como add, carga, movimento, XOR, e de saída, mas eu gostaria de fazer algo mais parecido com um microcontrolador real.

Como posso fazer sobre isso? Eu li um pouco sobre FPGA e CPLD, mas não muito, e por isso estava à procura de alguns conselhos sobre o que comprar e como começar a desenvolver nele.

Foi útil?

Solução

aqui para um livro bom wiki. Eu tive alguns cursos que eu escrevi quando eu estava ensinando eletrônico Eng, mas eu não poderia encontrá-lo ao redor. Quando eu estava ensinando, a maioria dos estudantes foram felizes para usar as ferramentas de captura de esquemáticos no pacote de Xilinx Foundation. Eles mudaram-se para ISE e Webpack agora. Você pode baixar o Webpack de graça, o que é útil, e tem captura e simulação esquemática nele.

Se você realmente quiser brilhar, aprender VHDL ou Verilog (VHDL parece ser mais comum, onde eu trabalhei, mas isso é apenas um pequeno punhado de lugares) e o código de design em vez de inseri-lo através do GUI.

Se você sabe alguma coisa sobre design de lógica digital (e alguns HDL) I rekon você pode ter um microprocessador de 8 bits pouco funcional simulação em VHDL em cerca de 2 dias. Você não vai construir qualquer coisa incrivelmente rápido ou extremamente poderoso naquele tempo, mas é um bom ponto de partida a crescer a partir. Se você tem que aprender sobre design digital, fator em um par de dias para aprender como as ferramentas funcionam e simular alguns circuitos lógicos básicos antes de passar para o desenho para cima.

Começar a aprender as noções básicas de sistemas digitais, e como construir um somador binário. Passar para a construção de uma ALU para além punho, subtração e, OR, XOR, etc e, em seguida, um sequenciador de ler opcodes da RAM e fornecê-los para a unidade de execução.

Você pode começar a fantasia com o projeto conjunto de instruções, mas eu recomendo começando realmente simples até que você tenha a sua cabeça em torno do que está acontecendo, em seguida, jogá-lo fora e começar de novo com algo mais complexo.

Uma vez que você tem o projeto simulando bem você pode avaliar sua complexidade e comprar um dispositivo para se adequarem. Você deve olhar para um sistema de desenvolvimento para a família de dispositivos que você escolheu. Escolha um dispositivo maior do que o que você precisa para o desenvolvimento porque é bom ser capaz de adicionar instrumentação extra para depurá-lo quando ele está correndo, e você quase certamente não vai ter otimizado seu projeto nos estágios iniciais de consegui-lo no dispositivo.

EDIT: Colin Mackenzie tem um bom tutorial sobre design uC e algumas placas FPGA, bem como um pouco de outras coisas.

Outras dicas

Você pode querer ter um olhar ao redor OpenCores.org , um site "forja" para o desenvolvimento do núcleo IP open source. Além disso, considerar obtendo-se uma placa de desenvolvimento como um destes para brincar.

A maior parte das ferramentas do ecossistema gira em torno VHDL , embora Avalda está trabalhando em ferramentas para compilar F # para FPGAs.

Eu vi um livro, uma vez que passou pela construção de uma máquina de chips TTL. Isto teve o mesmo conjunto de instruções como um PDP-8, que é muito - e eu quero dizer muito - simples, de modo a arquitetura real máquina é fácil de implementar dessa forma.

O PDP-8 FAQ menciona um livro: " The Art of design digital, " segunda edição, por Franklin Prosser e David Winkel (Prentice -Hall, 1987, ISBN 0-13-046780-4). Ele também menciona pessoas implementá-lo em FPGA do.

Dada a extrema simplicidade dessa arquitetura de CPU e disponibilidade de código PDP-8 ou referência implementações que poderia ser um bom ponto de partida para se aquecer com.

Como alternativa, um conhecido meu implementado um polegar (corte baixo ARM) em um FPGA como um projeto universitário prazo por um Steve Furber (um aluno Acorn proeminente). Dado que este poderia ser comprimido em uma pequena o suficiente formato para um projeto universitário também pode ser um bom começo.

Para jogar com microprocessadores soft-core, eu como a Spartan 3 Conselho de arranque de Digilent apenas porque tem 1MB de RAM estática. SDRAM e DDR RAM são mais difíceis de começar, você sabe.

Os leds, interruptores e uma interface serial simples são um plus para depurar e comunicar.

Como alguém já salientado, OpenCores.org é um bom lugar para encontrar exemplos de trabalho. Eu usei o Plasma uC para escrever alguns papéis, enquanto na universidade.

Um microcontrolador pode ser tão simples como uma ROM (instrução * 2 ^ x + (fase de relógio) é o endereço, as saídas são os sinais de controle, e você está pronto para ir). Ou pode ser um complexo harry besta com três braços e hardware suporte previsão de desvios.

Pode dar mais detalhes sobre suas aspirações?

Depois de pesquisar alguns links muito úteis por todos vocês, me deparei com este curso Wikiversidade .

Uma das primeiras frases é: "Alguma vez você já pensou em construir o seu próprio microprocessador?"

Xilinx tem um MicroBlaze e uma PicoBlaze controlador macio para suas FPGAs. Este último é gratuito, enquanto, IIRC, o Microblaze é para ser pago.
Como o seu nome sugere a PicoBlaze é um pequeno processador, que tem as suas limitações, mas OTOH é suficientemente compacto para executado em um CPLD . Enfim um processador bom para você começar.
Pablo Bleyer tem uma PicoBlaze compatível PacoBlaze . PacoBlaze foi escrito em Verilog (que, como Adam disse, menos comum do que VHDL).

Você precisa de um grande FPGA para um pouco MCU.

Você precisa de um FPGA com os blocos de hardware corretas se você precisar de coisas como AD.

Você precisa de um núcleo macio para colocar no FPGA.

Mas como sobre a apenas brincar com um MCU normal antes deste projeto, assim você tipo de saber onde você está indo? Que tal um pouco AVR:. S da Atmel

Você pode obter amostras gratuitas de micro controladores pic neste site. Última eu sabia, você não precisa nem de envio de pagamento.

http://www.microchip.com/stellent/idcplg?IdcService = SS_GET_PAGE & nodeId = 64

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top