|
H P S P I N E l e t r ô n i c a D i g i t a l e P r o g r a m a ç ã o d e M i c r o c o n t r o l a d o r e s P I C |
| HOME PROJETOS PROGRAMAÇÃO |
Como o Linux se tornou um sistema operacional definitivo e está presente no controle de servidores em quase todas as áreas de negócios ao redor do mundo, os usuários comuns, como nós, também passaram a usar o Linux adotando uma de suas diversas distribuições como Fedora, Ubuntu, Debian, Mint, entre outras.
Usar Linux no dia a dia já deixou de ser uma realidade somente reservada a especialista pois hoje existem interfaces gráficas que podem até superar aquela do seu concorrente, sem contar a estabilidade do sistema, a segurança contra ataques de vírus, a disponibilidade do sistema para o usuário, isto é, "ligou o sistema, a máquina é sua". Além disso o usuário é livre para escolher entre várias distribuições e um variado número de interfaces gráficas, desde as mais leves, que permitem operar em computadores mais lentos, até as mais sofisticadas.
O problema mais difícil, para quem se acostumou com o 'concorrente', é vencer o medo da mudança e, talvez, não querer abandonar o investimento feito com as licenças dispendiosas e compras de softwares proprietários.
Para quem programa microcontroladores, talvez não seja tão difícil fazer essa mudança e, para isso, vamos apresentar aqui a configuração de um ambiente de programação.
Os exemplos aqui apresentados serão baseados na distribuição Fedora que tem um gerenciador de pacotes chamado DNF. No Debian ou no Ubuntu, o gerenciador de pacotes é o APT. Outras distribuições podem usar outros gerenciadores.
O ambiente proposto aqui tem os seguintes requisitos:
Abrir um terminal Linux e não sair do diretório do usuário.
Esse pacote vai instalar o compilador e o linker.
Para instalar esse pacote, abrir o terminal do Linux e digitar o comando:
sudo dnf install gputils
Uma vez instalado, digitar no terminar o comando:
gpasm -v
Deverá aparecer uma resposta como:
gpasm-1.5.2 #1325 (Jan 16 2026)
Digitar o comando:
gplink -v
Deverá aparecer uma resposta como:
gplink-1.5.2 #1325 (Jan 16 2026)
Para gravar o arquivo executável no microcontrolador será usado o programa 'MPLAB IPE' que deverá ser instalado seguindo os passos abaixo.
Entrar na página da Microchip e, na caixa de pesquisa, logo no início da página, pesquisar por 'mplabx'.
A pesquisa vai levar a uma página de resultado onde aparece o link abaixo.
Application Center
MPLAB® X IDE | Microchip Technology
(O link real desta página muda constantemente por isso não é colocado aqui)
Clicar sobre esse link para ir a página de download.
Uma vez na página de download, rolar a tela, procurar pela versão Linux e
fazer o download.
Será baixado um arquivo de nome parecido com 'MPLABX-v6.30-linux-installer.tar'.
Criar um diretório como, por exemplo:
mkdir mplab
Mover o arquivo baixado para o diretório criado:
mv MPLABX-v6.30-linux-installer.tar mplab
Descomprimir o arquivo com o comando:
tar -xvf MPLABX-v6.30-linux-installer.tar
A descompressão criará o arquivo 'MPLABX-v6.30-linux-installer.sh'
que já deve ter premissão de execução.
Se não tiver permissão, use o comando:
chmod 755 MPLABX-v6.30-linux-installer.sh
Iniciar a instalação com o comando:
sudo ./MPLABX-v6.30-linux-installer.sh

Checar a opção "I accept the agreement" e, em seguida, clicar em "Avançar" para prosseguir.

Não modificar e apenas clicar "Avançar".

Como o objetivo aqui é apenas usar o gravador, vamos selecionar apenas as opções
"MPLAB IPE" e "8-bit MCUs" mas, se quiser, pode
deixar todas elas marcadas para instalação, porém, isso pode consumir muito espaço
do HD (veja o espaço usado ao lado de cada opção dessa tela).
Clicar em "Avançar" para continuar a instalação.

Clicar em "Avançar" para instalar.

A tela abaixo avisa que em alguns sistemas operacionais pode ser necessário
reiniciá-lo (boot) para que o programa possa ser executado.
Clicar em "OK" para continuar.

Clicar em "Finish" para encerrar a instalação.

Desenvolvimento do código fonte
Compilação do código fonte e geração do arquivo executável
Gravação do arquivo executável no microcontrolador
Desenvolver o código fonte é responsabilidade do programador ou do projetista que tem uma idéia para implementar no microcontrolador e isso não é objeto deste artigo. A única ressalva é que vamos tratar apenas de programação em linguagem assembly.
Vamos agora compilar um programa assembly para ver se funciona.
Criar um diretório: mkdir picprograms
Entrar no diretório: cd picprograms
Criar um arquivo para colocar o programa: touch pisca.asm
Abrir o arquivo 'pisca.asm' com um editor de texto qualquer.
Colar o programa da caixa de texto abaixo no arquivo aberto no editor de textos e salvar o arquivo.
Compilar o program usando o comando:
gpasm -L -eON -c pisca.asm
As mensagens do compilador poderão ser visualizadas no arquivo 'pisca.lst' no mesmo diretório.
Abrir o arquivo 'pisca.lst' para conferir se tudo deu certo.
Gerar o arquivo executável usando o comando:
gplink -cm pisca.o -o pisca
Vai aparecer somente a seguinte mensagem:
message: Using default linker script "/usr/share/gputils/lkr/16f628a_g.lkr".
As mensagens do resultado da geração do arquivo executável estarão gravadas no arquivo
'pisca.map'.
Abrir esse arquivo para visualizar as mensagens.
Antes de iniciar o processo de gravação,
Durante a inicialização essa tela irá aparecer informando a carga dos módulos.

Na tela principal abaixo, abrir o menu 'Settings' e selecione a opção 'Advanced Mode' para fazer Login no modo avançado.

Fornecer a senha 'microchip' que é a senha default de instalação e, a seguir, acionar o botão 'Log in'

Abrir o menu 'Settings' novamente (ver figura 9) e checar a opção 'Release from Reset'.
Essa opção permite que o microcontrolador comece a funcionar assim que o programa for gravado.
Se a opção 'Hold in Reset' estiver selecionada, o microcontrolador permanecerá em estado
de 'Reset' até que a opção 'Release from Reset' seja selecionada.
Na janela principal (figura 11 abaixo) digitar, na caixa de texto da lista 'Device',
o nome do microcontrolador que está sendo usado no projeto (PIC16F628A).
Abrir a lista 'Too' e selecionar o programador (PICKit3).
Acionar o botão 'Connect' para o 'MPLAB IPE' se conectar ao programador 'PICKit3'.

Ao conectar, o 'MPLAB IPE' mostra uma janela de aviso para rertificar-se que
o microcontrolador usado opera a 5V ou 3.3V (ver figura 12 abaixo).
Acionar o botão 'OK'.

Se a conexão ocorreu bem, a área de mensagens do 'MPLAB IPE' apresentará as seguintes mensagens:

Na tela principal (figura 9) digitar, na caixa de texto 'Hex_File:',
o caminho completo (diretório) onde se localiza o arquivo executável.
Acionar o botão 'Browse' para abrir a janela de seleção de arquivos.
Selecionar o arquivo desejado (.hex) e acionar o botão 'Abrir'.
A figura 14 mostra a área de mensagens para confirmar a carga do programa.

Na tela principal (figura 9) acionar o botão 'Program' para transferir
o arquivo executável para o microcontrolador.
Ao terminar a gravação, observar as mensagens emitidas na área de mensagens.
Neste ponto, se tudo correu bem, o microcontrolador já deve estar operando.

A fim de automatizar o processo de compilação, sugerimos usar o script Shell abaixo que fará a compilação e a geração do arquivo executável.
Este script mostrará, também, as mensagens de compilação e geração do executável, facilitando a correção de erros quando houver.
No diretório do usuário (/home/usuario), criar um novo diretório para armazenar scripts Shell usando o comando:
mkdir shellEntrar no diretório criado:
cd shellCriar um novo arquivo para conter o script Shell de automação:
touch pic_compile
Abrir o arquivo criado num editor de textos qualquer, arrastar e copiar o código da janela abaixo, colar dentro do arquivo aberto no editor e, em seguida, salvar o arquivo.
Atribuir permissões de execução para o arquivo com o comando:
chmod 755 pic_compile
Para acessar o Shell de qualquer localização do sistema, fazer um link simbólico usando o comando:
sudo ln -s /home/usuario/shell/pic_compile /usr/local/bin/pic_compile
Para executar uma compilação, voltar no diretório onde se encontra o arquivo fonte:
cd ../picprograms
Executar o script de compilação fornecendo o nome do arquivo fonte sem especificar a extensão:
pic_compile <nome_do_fonte_sem_extensao>
Antes de usar isto, certificar-se de quanta corrente o circuito alimentado vai necessitar e comparar com a capacidade de fornecimento de corrente da porta USB do computador.
Este modo é o recomendado.
Para evitar erros de programação, principalmente nos chips 16F, recomenda-se o seguinte:
Sempre dar preferência pela alimentação do circuito com uma fonte externa para não forçar a drenagem de corrente da porta USB.
O microcontrolador sempre deve ter um capacitor de 100nF entre os pinos Vdd e Vss.
Os fios ou trilhas que levam as saídas do Pickit3 aos pinos de programação ICSP devem ser curtos.
Se durante a conexao o MPLAB-IPE emitir a mensagem:
"Target Device ID (0x0) is an Invalid Device ID. Please check your connections to the Target Device."
Conectar um resistor pull-up de 10k ao pino PGD.
Se nao funcionar com o resistor pull-up, tentar com pull-down.
O que se notou é que, quando consegue conectar com um resistor pull-up ou pull-down, pela primeira vez, pode-se
retirar o resistor e continuará funcionando nas conexões subsequentes.
|
H P S P I N Desde 04 de Março de 2010 Atualização: 21 de Jun de 2026 |
|