Há algum tempo, o painel do Raspberry Pi3 apareceu à minha disposição. Suas capacidades são realmente impressionantes: um processador quad-core rápido e codecs / decodificadores de hardware embutidos de áudio / vídeo / jpeg, Ethernet / WIFI, USB2, HDMI ... É um computador real. É muito bacana o fato de haver um conector GPIO, que permite que diferentes artesãos conectem algo que não seja padrão e especial. Há um grande número de placas de expansão diferentes instaladas neste conector: monitores, telas de LED, adaptadores para motores, placas ADC ...
Gostaria de falar um pouco sobre a placa FPGA do Mars Rover 2RPI, que, como outras placas de expansão, se conecta ao slot GPIO da baga e adiciona propriedades completamente novas ao nosso microcomputador.
A taxa é bem simples. Instalado nele:
- FPGA Cyclone IV EP4CE6E22C8
- elementos lógicos 6272;
- memória incorporada 270Kbps;
- Multiplicadores 15 (18x18);
- PLL 2;
- Quatro LEDs
- Três botões
- Oscilador de cristal de 100MHz;
- Possibilidade de instalar um chip EPCS4 (caso a placa seja usada de forma autônoma);
- Conector JTAG (caso a placa seja usada de forma autônoma);
- Dois conectores de 40 pinos em cada um dos 28 conectores GPIO do usuário compatíveis com Raspberry;
- Um conector de 40 pinos para conectar ao Raspbery, no qual você pode usar 24 ou 20 GPIOs (dependendo se o chip EPCS4 está instalado ou não).
A placa rover2RPI da Mars não é instalada acima da placa Raspberry Pi, mas de lado, através de um adaptador especial. Isso é feito intencionalmente. O Raspberry Pi3 já está bastante quente ao carregar 4 núcleos; cobrir a placa de cima não parece muito humano em termos de refrigeração.
Então você pode conectar a placa Raspberry Pi2 / Pi3:

E aqui está o Pi-zero:

É possível (mas isso não é exato), a mesma placa de expansão pode ser usada com o OrangePi.
A primeira aplicação desta placa que vem à mente é dobrar o número de sinais GPIO: havia um conector e dois. Você só precisa criar e enviar o projeto desejado para o FPGA, bem, você terá que gerenciar as entradas e saídas de alguma maneira especial, existem muitas opções: porta serial, SPI, GPIO, você pode usar DMA ...
É possível fazer o download do FPGA da placa Mars rover2RPI diretamente do Raspberry por meio de sinais JTAG, que, é claro, são exibidos no GPIO
- tck → GPIO7
- tms → GPIO0
- tdi → GPIO11
- tdo ← GPIO1
Existe um projeto de código-fonte aberto OpenOCD, depurador e depurador, que permite usar o Raspberry como programador JTAG. O OpenOCD é um servidor, você pode iniciá-lo e, em seguida, conectar-se a ele remotamente por telnet e, usando o comando “svf”, você pode carregar a imagem do projeto compilado no FPGA.
Saiba mais sobre o OpenOCD no raspberry pi .
Aqui está apenas uma demonstração em vídeo:
O primeiro projeto de "teste" da placa rover2RPI da Mars já está pronto, embora ainda não seja muito impressionante em sua funcionalidade. O primeiro projeto para FPGAs geralmente é sempre "piscando um LED", como um "olá mundo!" mundo do microcontrolador e FPGA.
Sua fonte pode ser
acessada no github:
github.com/marsohod4you/m2rpi_firstMas aqui, mesmo neste caso simples, já existe uma interação entre o FPGA e o microcomputador. No raspberry, você pode enviar bytes pela porta serial para o FPGA que altera a velocidade do LED. Além disso, o primeiro "projeto de teste" FPGA aceita bytes da porta serial, modifica (adiciona um) e envia de volta. Claro, bastante primitivo, mas já a interação dos dois sistemas FPGA e do processador.
Demonstração em vídeo:
Esta é a minha primeira experiência de acesso ao Raspberry FPGA. Eu acho que seria interessante tentar fazer projetos realmente complexos, como capturar quadros de uma câmera de vídeo em framboesa e transferi-los via DMA para o FPGA para processamento. Eu acho que pode haver muitos projetos interessantes com essa placa de expansão.