Introdução

O 8051 HAT é uma placa para ensino sobre o microcontrolador 8051, desenvolvida especialmente para ser utilizada em conjunto com um microcomputador Raspberry Pi 3. Pode também ser utilizada em modo isolado, sendo para tal necessário recorrer a um programador ISP, como por exemplo o USB ASP.

8051 HAT

O microcontrolador que equipa este HAT é o AT89S8253 da Microchip, uma dos derivados do 8051 original e totalmente compatível com a família MCS-51, possui 12Kb de memória flash de programa e 2Kb de memória EEPROM.

Esta placa é vocacionada para o ensino de microcontroladores 8051, e tem por base um conjunto de ferramentas de desenvolvimento totalmente abertas e gratuitas em Linux.

Raspberry Pi

_images/Raspberry-Pi-3.jpg

O Raspberry Pi é um computador de baixo custo e que tem o tamanho de um cartão de crédito desenvolvido no Reino Unido pela Fundação Raspberry Pi. Para usá-lo, basta ligar um teclado e um rato USB e de seguida ligar tudo a um Monitor ou Televisão.

A função básica do Raspberry Pi é oferecer uma alternativa barata, prática e acessível para que pessoas de várias idades possam explorar todas as capacidades da computação. Além disso, também visa facilitar a aprendizagem de programação em linguagens como Scratch e Python.

Sobretudo, apesar do tamanho diminuto e de aspecto pouco convencional, o Raspberry Pi é um computador como outro qualquer. Isso quer dizer que ele pode servir para navegação na internet, reprodução de conteúdo multimédia, criação de conteúdo em forma de texto, imagens e, é claro, para jogos. Atualmente bastante utilizado como Media Center de complemento à TV, ou como maquina de jogos Arcade.

Especificações

O 8051 HAT tem as seguintes características:

Processador:

  • AT89S8253
  • Oscilador de 12MHz
  • Malha de RESET
  • Programação in-circuit

Alimentação:

  • Regulador de tensão interno
  • A placa funciona a 3.3V
  • Alimentação a partir do RPi (a partir dos +5V) ou externa (USB) seleccionável

Outros:

  • EEPROM com as informações do HAT (cumpre com as especificações do Raspberry Pi)
  • Header para programação ICSP
  • Quase todos os portos de E/S interligam com os GPIO do RPi
  • Pode funcionar em modo Stand-Alone

Instalação

Este capítulo aborda os passos necessários para a configuração do Raspberry Pi e da instalação do software necessário para a utilização correcta do 8051 HAT.

Configuração do Raspberry Pi

Para que se possam aproveitar ao máximo as potencialidades de comunicação entre o Raspberry Pi e o microcontrolador presente no 8051 HAT, será necessário habilitar o funcionamento dos portos SPI e I2C no RPi.

Para tal será necessário aceder ao menu de configuração do mesmo, neste caso, via linha de comandos:

$ raspi-config

SPI

Aparecendo o seguinte menu:

_images/spi_01.png

Seleccionar a opção 5 Interfacing Options usando as teclas de direcção.

_images/spi_02.png

Escolher a opção P4 SPI, e confirmar a escolha.

_images/spi_03.png

E obtemos a confirmação.

_images/spi_04.png

Atenção! - No final desta operação, o Raspberry Pi solicita se pretendemos efectuar um reboot para activar esta opção, responder Não, pois é ainda necessário efetuar a activação da interface I2C.

I2C

Para activar a interface I2C, seleccionar novamente a opção 5 Interfacing Options

_images/i2c.png

Agora escolher a opção P5 I2C, confirmar, e após resposta positiva à activação, então sim, permitir que o Raspberry Pi efectue um reboot para activar estas opções.

Instalação de software

Para o desenvolvimento, simulação, compilação de programas para o 8051 e respectiva programação do microcontrolador, será necessário proceder à instalação de alguns programas no Raspberry pi:

  • Sdcc
  • MCU 8051 IDE
  • AVRDUDE

Sdcc

O Sdcc (Small Device C Compiler) é um programa open-source que permite a compilação de programas em linguagem C para diversos tipos de microcontroladores de 8 bits.

Para a sua instalação, a partir da linha de comandos, ou se estiver no ambiente gráfico, abrir uma janela de terminal, e executar a seguinte instrução:

$ sudo apt-get install sdcc

Para mais informações sobre o sdcc, podem aceder à página do projecto.

MCU 8051 IDE

O MCU 8051 IDE é um ambiente gráfico de desenvolvimento intergrado para microcontroladores da família 8051. Tem um compilador de assembly próprio e um simulador integrado. Permite também o desenvolvimento de programas para o 8051 em linguagem C, através da integração com o sdcc.

No modo de Debug, o MCU 8051 IDE permite simular diversos tipos de hardware externo, tais como:

  • Botões
  • LEDs
  • Matriz de LEDs
  • Display de 7 segmentos simples e multiplexado
  • Teclado matricial
  • LCD de texto

O MCU 8051 IDE tem ainda um grande conjunto de utilitários que facilitam o desenvolvimento de programas e aplicações para o microcontrolador 8051.

A instalação do MCU 8051 IDE faz-se através da seguinte instrução:

$ sudo apt-get install mcu8051ide

NOTA: Apesar da página oficial do projecto estar off-line, ainda se pode aceder à primeira versão da mesma no Sourceforge.

AVRDUDE

O AVRDUDE (AVR Downloader/UploaDEr) é um gravar/ler e manipular o conteúdo da ROM e EEPROM de diversos tipos de microcontroladores, e suporta uma grande variedade de programadores, incluíndo o interface SPI nativo do Raspberry Pi. Para instalar o AVRDUDE, basta executar o seguinte comando:

$ sudo apt-get install avrdude

Embora o AVRDUDE seja descrito na sua página como um programa destinado a funcionar com microcontroladores AVR, pode também ser utilizado para microcontroladores da família 8051.

Por defeito, o AVRDUDE não suporta a programação do microcontrolador AT89S8253. Para adicionar a capacidade de programar este microcontrolador, será necessário editar o ficheiro avrdude.conf.in e acrescentar todos os dados necessários.

O 8051 HAT

é uma placa para ensino sobre o microcontrolador 8051, desenvolvida especialmente para ser utilizada em conjunto com um microcomputador Raspberry Pi 3. Pode também ser utilizada em modo isolado, sendo para tal necessário recorrer a um programador ISP, como por exemplo o USB ASP.

A grande vantagem desta placa é o facto de quase todos os pinos de E/S estarem ligados aos pinos de GPIO do Raspberry Pi, permitindo a interacção entre os dois.

Esta interligação, permite diversos tipos de situações, em que quer o microcontrolador, quer o RPi, podem para actuação ou leitura de sinais. O exemplo mais básico da interacção entre eles é a utilização do RPi para verificar o funcionamento do clássico blinky no microcontrolador sem necessitar de recorrer a uma resistência e um LED, bastanto para tal cirar/utilizar um pequeno programa, por exemplo, em Python para ler o estado de um pino de GPIO do RPi e apresentar essa informação ao utilizador.

Interligação RPi <-> microcontrolador

A tabela apresenta a correspondência entre os pinos E/S do microcontrolador e os GPIO do Raspberry Pi, bem como as suas funcionalidades.

Raspberry Pi 8051
GPIO Pino Função Pino Porto/bit Função
02 03 SDA1, I2C 42 P1.2  
03 05 SCL1, I2C 43 P1.3  
04 07 GPCLK0 08 P3.2 /INT0
05 29 GPCLK1 10 P3.4 T0
06 31 GPCLK2 11 P3.5 T1
07 26 CE0_N SPI0 12 P3.6  
08 24 CE1_N SPI0 44 P1.4 /SS
09 21 MISO SPI0 02 P1.6 MISO
10 19 MOSI SPI0 01 P1.5 MOSI
11 23 CLK SPI0 03 P1.7 SCK
12 32 PWM0 40 P1.0 T2
13 33 PWM1 09 P3.3 /INT1
22 15   13 P3.7  
23 16   37 P0.0  
24 18   36 P0.1  
25 22   35 P0.2  
14 08 TxD0 05 P3.0 RxD
15 10 RxD0 07 P3.1 TxD
16 36 CE2 SPI1 34 P0.3  
17 11 CE1 SPI1 33 P0.4  
18 12 PWM2 CE0 SPI1 41 P1.1 T2EX
19 35 PWM3 MISO SPI1 32 P0.5  
20 38 MOSI SPI1 31 P0.6  
21 20 SCLK SPI1 30 P0.7  
26 37   18 P2.0  
27 13   19 P2.1