Como aprendi a trabalhar com microcontroladores - a experiência de um iniciante

Olá pessoal. Neste artigo, eu queria falar sobre como aprendi a trabalhar com microcontroladores
(doravante referido como MK) e em que armadilhas eu voei. Devo dizer imediatamente - o artigo não afirma ser exclusivo, já que qualquer pessoa que trabalha com MK passou pelo que passei. Peço que você não julgue estritamente, mas que leia isso como uma história.



Em vez de se juntar


Meu primeiro interesse em MK surgiu quando eu estava na 10ª série. Naquela época era 2009. Eu sabia como programar um pouco no PC no QBasic e Visual Basic - um programa escolar, mas isso aconteceu para que eu não soubesse muito sobre programação e a falta de pessoas com conhecimento em eletrônica e MK fez seu trabalho - para mim, era um novo nicho. Embora desde a infância eu estivesse mexendo nas placas e microcircuitos encontrados nas latas de lixo, mas realmente não entendi como funcionava - ninguém realmente podia explicar. Como o transistor funcionou normalmente, descobri apenas alguns anos após os eventos descritos. Quando escolhi o primeiro MK, observei as características no site do CHIP-DIP. Francamente - para mim, eram como hieróglifos. Portanto, não tenha medo disso. E sim, ninguém tinha idéia do Arduino na época.

Como tudo começou


Começou a escolher no Yandex e no Google. Eu entendi que o próprio controlador é metade da batalha, eu também preciso de um programa. E como dito na introdução, eu não tinha muito com programação. No final, cheguei a algum site. Como ficou claro mais tarde, eu realmente "consegui" esse site. O criador do site também escreveu um livro de programação, baixei o livro com alegria e a primeira coisa que vi foi “usei o PIC16F84A como modelo para o trabalho”. Na verdade, foi assim que escolhi meu primeiro MK. Agora a questão é por que eu "entendi". E cheguei lá porque o criador deste livro e site sugeriu programar o MK no ASSEMBLER. Nem todos os programadores sabem disso, mas aqui está um novato ... Eu já pedi o controlador e só então comecei a ler o livro, infelizmente.

Como saí da posição


Depois que percebi que não entendia nada, abandonei o MK por alguns anos, mas ao mesmo tempo vasculhei fóruns como o Scheme.net e outros, e gradualmente me ocorreu uma compreensão do problema. Eu decidi estudar a propósito no modelo PIC16F877A.

Então, o que um iniciante precisa saber:


Um microcontrolador é um computador pequeno, também possui um dispositivo de lógica aritmética - na verdade, um processador e RAM e uma espécie de disco rígido - programa e memória de dados, mas tudo é feito em um chip. Por conseguinte, dependendo do modelo e do fabricante, possui as seguintes características (provisoriamente):

  • Operando frequências de unidades a ~ 100 MHz, eu pessoalmente uso em meus dispositivos, como regra, frequências de 20 MHz, a saber MEGAhertz, e não GIGAhertz. A frequência é definida por uma fonte de relógio externa - um ressonador de quartzo ou cerâmica.

  • RAM - unidades e dezenas de kilobytes
  • A quantidade de memória para dados e o programa é de várias dezenas de kilobytes. Se desejar, você pode expandir a memória para dados usando chips de memória. Para usar esses microcircuitos para expandir a memória de um programa, um iniciante deve esquecer: nem todo profissional pode fazer o que é certo e nem todo microcontrolador permite que você altere seu firmware durante a operação.
  • Tensão de operação de 1 a 5 volts, dependendo do modelo e fabricante.

O microcontrolador foi projetado para funcionar na placa, digamos, em uma peça específica de hardware, na placa, no dispositivo. Então não pense que você pode jogar CS nele :)

Linguagens de programação


Ele começou a escolher uma linguagem de programação e um ambiente em que você pode programar. Como de alguma forma conhecia o Basic, pensei que seria bom ignorá-lo. Sim, não é muito perfeito e ainda apresenta muitas deficiências, mas, para começar, foi muito adequado. Eu tive sorte, verificou-se que existe uma linguagem básica do PIC. Segundo ele, há um livro didático, o autor Chuck Helibike e traduzido para a liderança russa, na verdade foi além do livro e do manual. O ambiente funciona no DOS, mas você pode estragar o CodeStudio e tudo funcionará no Windows.

Programador


O próximo problema que ficou no meu caminho foi como escrever o programa no chip. Está claro que você precisa de um programador, decidi salvar, tentei coletar vários circuitos destes na sua Internet. Um esquema não é suficiente, também precisamos de um programa que, usando o programador (a peça de hardware), armazene o código na memória. Todos os meus experimentos terminaram em fracasso, devido à pouca experiência. Decidi não olhar mais para a fumaça proveniente dos chips e pedi o PICKit3; depois disso, não conheci nenhum problema, brinquei com ele por alguns dias e funcionou.



O que um iniciante precisa saber:



  • Atualmente, existem linguagens de programação adaptadas para MK, o mesmo Basic, SI e outros.
  • Após escrever o programa, ele é compilado no código da máquina - um arquivo com a extensão HEX, que deve ser atualizado na memória MK.
  • Para fazer "flash MK" - para escrever um código executável, você precisa de duas coisas:

    1) a placa do programador, que é um dispositivo intermediário entre o conector do computador e o próprio chip
    2) Um programador que saberá como trabalhar com um programador montado de acordo com um esquema específico.
    Ou seja, é necessário que o programa no PC saiba qual circuito está conectado ao PC para piscar corretamente o chip. No meu caso, esta é uma solução de fábrica - junto com o programador PicKit, há um disco com os programas necessários.
  • Há uma quantidade limitada de memória no MK, isso deve ser levado em consideração, às vezes você precisa cortar cada byte do firmware, apenas para entrar na memória do chip. Também deve ser entendido que não há sistema operacional no MK e seu firmware é o único dado que o MK conhece.

Algumas palavras sobre a periferia


Para conexão com o mundo externo e a conveniência do trabalho e desenvolvimento, vários circuitos periféricos são incorporados ao MC, por exemplo, um ADC - um conversor analógico-digital, para que você possa medir a tensão fornecida à saída MK sem a necessidade de cintas desnecessárias, mas não deve ser maior que a tensão de alimentação, caso contrário, o chip vai queimar. Usando um divisor de tensão, você pode fabricar um voltímetro, por exemplo. Periféricos, o número de funções integradas e suas características também dependem do modelo, como regra, quanto mais caro o modelo, mais rico o pacote de pacotes. Além disso, não esqueça que o controlador possui um número limitado de pernas às quais você pode se conectar.

Por exemplo, o PIC16F877A possui 40 deles e 7 peças voam imediatamente, porque usado para ligar, conecte o ressonador e controle a redefinição de emergência. Você também precisa examinar atentamente a documentação do chip. Por exemplo, o mesmo ADC - no PIC16F877A, ele só pode medir a tensão em 8 partes específicas do chip, em outras não. Ou seja, para cada função interna, conclusões específicas são atribuídas e não podem ser alteradas.

A essência dessa fábula é essa


Para dominar o MK realmente mesmo do zero, mas há lugares em que não é muito claro. Se você nunca encontrou a programação, primeiro aprenda pelo menos o básico da programação e escreva “Hello World” no seu computador. Depois disso, será mais fácil. Se você não quer se preocupar muito, o Arduino é tudo para você. Os MK são projetados para uso em hardware - unidades de controle, placas, controladores etc. etc., este não é um computador completo, mas um controlador. E espere dele, respectivamente. O benefício agora está cheio de exemplos no YouTube, e espero que minha experiência de começar do zero não seja tão amarga e que meu artigo ajude alguém.

Source: https://habr.com/ru/post/pt479250/


All Articles