O que eu preciso para colocar meu código em um microcontrolador?

8

Aprendi a codificar um controlador, mas nunca coloquei o código no dispositivo físico. Estou tentando descobrir o que preciso solicitar para começar a desenvolver um sistema incorporado básico.

Por exemplo, se eu tiver um PIC18F1330, tenho o MPLAB IDE e o compilador XC8. Ótimo, então eu tenho o código compilado e estou pronto para colocar isso no controlador. O que preciso para transferir meu código compilado no meu PC para o controlador?

Eu já vi coisas como um depurador no circuito e um kit PIC. Eu só estou perdido neste momento.

Adão
fonte
Então, uma vez que eu tenho um PICkit, o PICkit permite que eu conecte fisicamente meu PC ao microcontrolador?
Adam
Sim, há um conector no PICKit, ICD etc. que você conecta à sua placa para programação e depuração no circuito.
Spehro Pefhany

Respostas:

4

Existem várias maneiras de atualizar seu código para um microcontrolador.

Na web, você encontrará muitos programadores criados por eles, mas eles geralmente também têm software criado e não são (bem) integrados no MPLAB IDE.

A solução mais barata da Microchip é um PicKit por ~ 40 €, que é apenas conectado ao PC via USB. Embora o PicKit tenha algumas opções de depuração, também existe o CDI 'In Circuit Debugger' mais poderoso por ~ 180 €, que possui mais recursos de depuração, mas é claro que também pode exibir os chips.

Eu sempre senti que o PicKit é suficiente para mim.

Existem versões de terceiros por aí, pois o microchip publica firmware e esquemas para o PicKit, mas se você os comprar, verifique se realmente consegue o que pensa. Uma vez vi uma oferta para o PicKit 3, mas não tinha certeza se não era um PicKit 2.


Apenas como comentário: Existem Microchip MCUs, que podem ser atualizados. Por exemplo, usamos a família PIC18F2450 / 2550/4450/4550 com USB incorporado e colocamos um carregador de inicialização nele. Quando um jumper é fechado, o MCU entra no modo do carregador de inicialização na inicialização, e você pode fazer o flash do seu MCU com o seu código. Esse material está disponível na Microchip.

Para usar isso, você precisa de algumas modificações no seu código. E, é claro, você precisa de um programador regular para fazer o flash inicial do carregador de inicialização no MCU. Portanto, esse recurso não faz sentido se você tiver um programador. Mas é bom se você deseja atualizações de firmware para seus clientes.

sweber
fonte
12

Como você está usando o MPLAB IDE com o compilador XC8 C, é possível verificar a compatibilidade no menu Configurar-> Selecionar dispositivo (indicador verde significa totalmente suportado, amarelo é parcial e vermelho não é suportado).

No momento, as melhores opções seriam Pickit 3, ICD3 ou RealICE (em ordem de aumento de preço)

Aqui estão os programadores compatíveis, depuradores:

Você realmente quer ter suporte a depuração, bem como suporte a programação.

insira a descrição da imagem aqui

Após a instalação dos drivers de dispositivo, você pode selecionar e conectar-se a ele (um determinado dispositivo pode ser instalado apenas como depurador ou programador em um determinado momento):

insira a descrição da imagem aqui

Então, quando você programa é compilado (na forma de depuração ou liberação), você pode programar o microcontrolador com os botões mostrados abaixo:

insira a descrição da imagem aqui

Fisicamente, o PICkit ou outra unidade de depuração / programador possui um conector que você conecta ao seu sistema. Existem 6 pinos, dos quais 5 são usados, incluindo energia e terra.

insira a descrição da imagem aqui

Spehro Pefhany
fonte
4

No momento da redação deste artigo, existem três maneiras principais de gravar um binário em um microcontrolador. Dependendo de um micro específico, três deles podem estar disponíveis. O método mais antigo é o programador / depurador específico do dispositivo. Os atuais para as peças de microchip são Pickit3 / ICD3, são compatíveis com todos os micros PIC atuais e alguns mais antigos. Você não pode usá-los para programar peças fabricadas por outros fabricantes.

O segundo método é chamado de carregador de inicialização. É um pequeno programa gravado no micro antes de você se apossar da peça. O gerenciador de inicialização permite a programação via interface (s) padrão (s) do micro - UART, SPI, Ethernet, etc. Os chips ARM geralmente vêm com um gerenciador de inicialização pré-carregado, assim como o AVR. Você não precisa de equipamento de programação proprietário se houver um gerenciador de inicialização, mas não poderá fazer a depuração em uma única etapa facilmente.

O terceiro é chamado JTAG. É uma interface semi-genérica, você pode programar várias partes diferentes com ele e também depurar. Você precisará de um equipamento chamado JTAG dongle. Algumas partes do PIC possuem JTAG. Os chips ARM normalmente têm JTAG e muitos não têm nenhuma outra interface de depuração.

Oleg Mazurov
fonte
3

Receita geral:

  1. Digite seu código em um editor de texto usando o idioma de sua escolha
  2. Traduza esse idioma para o código da máquina usando um compilador. O código da máquina é uma lista de números hexadecimais: alguns representam uma instrução, o restante são argumentos / parâmetros para essas instruções. Geralmente chamado de "arquivo HEX". Qualquer parte do programa se resume a essa sucessão de instruções elementares + seus parâmetros.
  3. Transfira este código de máquina para a memória do programa do seu dispositivo. Isso é feito usando um programador. O programador é enviado com um driver, que é um software que controla o programador: forneça um arquivo HEX, ele fará o resto. O programador irá ler seu arquivo HEX e mover as linhas de programação do dispositivo (como código morse) de maneira codificada para realmente gravar a memória do programa. Quando o programa é carregado, o dispositivo é reiniciado e, em seguida, o dispositivo inicia automaticamente a execução do código no início da memória do programa. Esse é o seu código. Isso é grosseiro, mas é praticamente o que você precisa saber por enquanto.

Você está quase lá . Você tem o ambiente de desenvolvimento integrado que faz 1 e 2 de uma maneira muito amigável. Ele ainda possui interfaces com programadores para que você não precise se preocupar com o que é um arquivo HEX (pressione "play" e pronto).

No entanto, você ainda precisa do programador físico para fazer a interface do seu dispositivo com o PC - há um número lá para PICs. Pickit é um deles. Se você pretende levar a sério a programação incorporada, provavelmente deve investir em um ICD (In Circuit Debugger). É um programador, e também algo que permite espiar ou cutucar variáveis ​​e registros no micro, e até mesmo avançar e interromper um programa à vontade.

Mister Mystère
fonte
3

Um dispositivo de programação de microcontrolador é o que você precisa. É um hardware que se conecta ao seu PC e ao microcontrolador, para executar as funções necessárias para carregar o programa no chip. No depurador de circuito, é um dispositivo que tem mais funcionalidade que um programador, como depurar seu código enquanto ele está sendo executado no chip. Você pode usar o ICD ou o PIC Kit para programar o uC. Ou, se desejar, você pode usar um circuito muito simples como o programador JDM também.

Observe que o MPLAB IDE suporta PIC Kit e ICD. Mas se você usar um programador JDM, precisará usar outro software como o PICPgm para carregar seu chip compilado.

chamod
fonte