Desenvolvimento de eletrônicos. Sobre microcontroladores nos dedos



Ao pensar em uma startup de tecnologia, você não precisa ser um especialista em eletrônica, é muito mais provável que um especialista restrito, com conhecimento dos conceitos básicos de marketing, tenha uma boa ideia, mas mesmo encomendando alguém para desenvolvê-la, você precisa navegar pelos recursos da base elementar moderna e apresentar o preço da solução. Caso contrário, você pode exigir o impossível ou obter um dispositivo com custos excessivos em uma base de elementos desatualizada.
Sob o corte, uma tentativa de falar de forma breve e simples sobre as capacidades dos microcontroladores modernos para pessoas distantes deles. Para quem tem a ideia de um novo dispositivo eletrônico, mas não tem ideia do que é um microcontrolador. Aqueles que desejam dar o primeiro passo, desde experimentos divertidos com a plataforma Arduino até o design de seus próprios dispositivos, também podem encontrar dicas simples, mas úteis. Tentei, sem me debruçar nos detalhes técnicos, para esse fim não basta que o livro exponha a essência e dê algumas dicas simples, porém úteis, sobre circuitos para impedir que os iniciantes cometam erros elementares.

Resumo do artigo:


Como os microcontroladores conquistaram o mundo
ARM Architecture - Líder de mercado atual de microcontroladores
Competição com irmãos mais novos
Sobre a colocação de asfalto, os benefícios do sono e suas variedades
Pouco sobre a tecnologia de fabricação e como as séries de microcontroladores aparecem
A periferia do mais simples microcontrolador ARM por meio dólar
A maneira mais barata de obter recursos extras
E o que adicionará a transição ao Cortex-M4, além do preço aumentado algumas vezes?
Cortex-M7 - quando você quiser mais ...


A proteção de código, a capacidade de atualização e a diversidade ajudaram os microcontroladores a conquistar o mundo


Qualquer dispositivo inteligente requer controle. Na maioria dos casos, os microcontroladores estão fazendo isso hoje - chips que combinam um núcleo de microprocessador, memória e módulos periféricos que são responsáveis ​​pela comunicação com outros componentes do dispositivo e com o mundo externo.

Microcontroladores são valiosos em todos os negócios. Um microcontrolador é capaz de substituir dezenas de microcircuitos especializados que seriam necessários para executar as funções necessárias se o microprocessador desempenhar o papel da calculadora.

Uma das vantagens indiscutíveis do microcontrolador é que o programa sob o qual ele é executado fica oculto dentro do seu gabinete (na seção chamada “memória do programa”) e fica muito bem protegido contra hackers, é claro, se o desenvolvedor do microcódigo cuidou disso ativando os mecanismos internos proteção. Assim, você obtém proteção da propriedade intelectual o máximo possível hoje.

O que não pode ser invadido pode ser copiado. Por que tentar ler o código embutido no microcontrolador do programa usando dispositivos caros e engenhosos, se é mais fácil e barato encontrar um profissional que possa escrevê-lo novamente? Talvez o resultado seja ainda melhor e a funcionalidade seja mais rica que a do protótipo. Sim, custa dinheiro, mas o conteúdo da memória FLASH dos microcontroladores atuais é tão bem protegido que as tentativas de "hacking" rude custarão ainda mais. Além disso, o problema da propriedade intelectual está sendo resolvido e você, juntamente com os códigos-fonte do programa, tem a oportunidade de desenvolver e melhorar seu dispositivo.

A memória do programa, nos modernos microcontroladores universais, é regravável e o processo de reescrita pode ser repetido mais de dez mil vezes. Ele implora o uso desse fato para atualizar o software, a fim de eliminar erros encontrados nele ou expandir as funções de um dispositivo já em funcionamento. Isso é bastante simples de implementar - ao adicionar uma seção especial de código chamada “carregador de inicialização” ao programa, você tem a oportunidade de atualizar o software do seu dispositivo de várias maneiras: no ponto de serviço (se o dispositivo tiver um conector especial oculto dentro do gabinete), conecte-o ao computador via USB, via rede ou até uma interface sem fio. O principal é fornecer ao dispositivo os periféricos necessários para isso. Ao oferecer a capacidade de atualizar software, você sempre deve pensar em segurança; se esse processo não estiver suficientemente protegido, os invasores não apenas poderão roubar seu código, mas também poderão modificá-lo e usá-lo para seus próprios propósitos , o que é insidioso . Por exemplo, assuma o controle das coisas da sua “casa inteligente” ou espie com a ajuda da câmera WEB instalada por você em casa.

ARM Architecture - Líder de mercado atual de microcontroladores


Desde o tempo de King Peas, os microcontroladores geralmente são divididos de acordo com a capacidade dos dados nos quais eles realizam operações. Atualmente, na grande maioria dos casos, em novos desenvolvimentos, vale a pena escolher microcontroladores de 32 bits com um núcleo ARM. Há um grande número de modificações e você sempre pode escolher a instância mais adequada para resolver seu problema. Dependendo do conjunto de funções e desempenho, o preço de um chip pode variar de dezenas de centavos a dezenas de dólares.
Os microcontroladores (MCUs), dependendo da arquitetura do núcleo da computação, geralmente são divididos em famílias grandes. Hoje, para o desenvolvimento de dispositivos de pequena e média complexidade, os microcontroladores mais populares com núcleos de Cortex-M0 a Cortex-M7. Quanto maior o número, maiores os recursos de computação (e não apenas), preço e consumo máximo de energia. A sucessão da arquitetura desempenhou um papel importante na popularidade do ARM. Um desenvolvedor pode modificar o código do programa de seus desenvolvimentos anteriores com custos mínimos, passando de microcontroladores de um fabricante para chips de outro e migrando entre núcleos com desempenho diferente.


Competição com irmãos mais novos


No entanto, os ARMs não dirigiram. Lembro-me bem dos momentos em que os microcontroladores de 8 bits eram os líderes absolutos do mercado e, de suas posições, colegas de 16 bits tentaram pressioná-los sem sucesso, mas, ironicamente, apenas irmãos mais velhos de 32 bits conseguiram fazer isso. Aconteceu que, quando apareceram, as tecnologias de fabricação de chips reduziram bastante o custo de integrar grandes volumes de memória FLASH a eles. Aproveitando esta oportunidade, os programadores começaram a mudar de assembler para uma linguagem de nível superior - C, cuja estrutura era perfeitamente estabelecida na arquitetura de 32 bits. Como resultado, os microcontroladores de 32 bits realizaram cálculos muito mais rapidamente que seus colegas de 8 e 16 bits, mas havia um problema: eles tinham maior consumo de corrente.

Portanto, a princípio, eles eram usados ​​nos casos em que era necessário maior desempenho computacional.

Sabe-se que o consumo médio atual de corrente do núcleo de computação do microcontrolador aumenta significativamente com o aumento de sua frequência de clock. A princípio, os modelos de microcontroladores de 8 bits tiveram um consumo notavelmente mais baixo em uma frequência semelhante e, além disso, conseguiram trabalhar com uma freqüência de clock baixa, de até 32 kHz.

O consumo de energia dos microcontroladores depende fortemente da frequência de clock do núcleo e da periferia. Para regulá-lo, eles começaram a usar a unidade geradora de freqüência de clock baseada em PLL, amplamente utilizada em dispositivos de transmissão de rádio. Isso tornou possível variar amplamente a frequência do relógio sem alterar o ressonador principal de quartzo. Os módulos periféricos não precisam ter a mesma frequência de clock que o núcleo da computação. Para reduzir o consumo de energia, a frequência começou a ser alimentada através de divisórias com uma taxa de divisão controlada por programa. Introduziu a capacidade de desativar módulos não utilizados. Essas medidas reduziram bastante o consumo de energia, mas ainda assim permaneceu significativamente mais do que as de 8 bits.

Por um curto período de tempo, a paridade se desenvolveu - os MCUs de 32 bits capturaram o nicho dos aplicativos de ponta e os de 8 bits mantiveram posições seguras em dispositivos para os quais o baixo consumo de energia era importante. Ele persistiu até que os MCUs de 32 bits dominassem perfeitamente o modo de operação "pulso".

Os 8 bits, então, também aprenderam como fazer isso, mas, devido ao baixo desempenho, eles tiveram que ficar acordados muito mais e, como resultado, começaram a perder no consumo de energia, especialmente em tarefas que exigem cálculos, como mostra a figura abaixo.



Sobre a colocação de asfalto, os benefícios do sono e suas variedades


Assim, os microcontroladores aprenderam a acreditar tão bem que começaram a trabalhar muito rapidamente e, na maioria das vezes, eram forçados a "ganhar dinheiro", devorando energia para realizar ciclos inativos. Em dispositivos com alimentação própria, isso reduz bastante a vida útil da bateria ou com uma única carga.

Assista os trabalhadores da construção civil colocando o asfalto. Eles intensificam intensamente seu trabalho quando um caminhão chega com uma nova porção de asfalto e depois de colocá-lo diminui a velocidade. Portanto, os microcontroladores podem aumentar e diminuir a freqüência do clock principal. No entanto, isso não é tão fácil para eles quanto para os trabalhadores - a frequência de operação de toda a periferia interna também mudará ao mesmo tempo; portanto, suas partes sensíveis deverão ser reconfiguradas.
Não é mais fácil, depois de ter feito todo o trabalho rapidamente, dormir um pouco. Frequentemente sim. Além disso, os tipos de sono dos microcontroladores diferem ainda mais drasticamente do que nos humanos.

Você pode tirar uma soneca. Nesse caso, nosso chip está sempre pronto e, assim que o alarme do timer toca ou é interrompido por uma interrupção externa, ele acorda quase instantaneamente. Como uma pessoa durante uma soneca pode aliviar o estresse, mas não consegue dormir o suficiente quando você é constantemente puxado, de modo que o microcontrolador pode reduzir seu consumo de energia nesse modo "apenas" a cada 10 vezes, esse modo é chamado de SONO.

A melhor maneira de dormir bem é tirar a roupa, ir para a cama, fechar as cortinas da janela e ativar o alarme. No entanto, após esse sonho, você não entrará imediatamente no trabalho. Você terá que pelo menos enxaguar com água fria e se vestir. O microcontrolador também possui esse modo, quando limita o número de estímulos externos e desliga o gerador de clock principal. Este é o modo STOP. Pode reduzir o consumo em 1000 vezes, mas levará uma quantidade significativa de tempo para sair dela.

Agora, imagine que antes de dormir você bebia uma boa dose de pílulas para dormir, desligou o alarme e o telefone e fechou todas as janelas e portas. Este será o modo STAND BY. O microcontrolador pode ser removido desse modo apenas com a ajuda de conclusões especiais, e a maior parte da memória do que ele fez antes desse sonho será perdida para sempre; você terá que começar a trabalhar novamente. Mas estando nesse modo, o MCU consome outra metade.

Este último, um modo muito exótico, já lembra alguém que não pode ficar sem equipamento especial. Nesse caso, apenas um gerador especial funciona , no entanto, que faz parte do microcontrolador em um quartzo de relógio separado, que pode operar a partir de sua própria fonte de energia e ter literalmente alguns bytes de RAM, cujo objetivo é lembrar o microcontrolador de que estado ele caiu. Se as partes restantes do microcontrolador, ao mesmo tempo, estiverem desconectadas da fonte de alimentação, o consumo de energia poderá já ser um décimo milésimo do modo ativo.

Ao escolher um modo de economia de energia, é necessário lembrar as consequências do aplicativo :

  • quanto mais profundo o sonho, mais longo o despertar
  • quanto mais profundo o sonho, menos maneiras de tirar o microcontrolador dele
  • quanto mais profundo o sono, menos informações permanecem sobre o estado anterior do microcontrolador
  • Para atingir os valores mínimos declarados, em muitos modos é necessário tomar medidas adicionais, por exemplo - desconectando periféricos
  • Para minimizar o consumo de energia do dispositivo como um todo, é necessário projetar corretamente os circuitos de todo o dispositivo
  • Para minimizar o consumo de energia do dispositivo como um todo, é necessário garantir que os outros componentes e circuitos também possuam micropoder no modo inativo. É tolice fazer grandes esforços para diminuir o consumo do microcontrolador abaixo de um microampere e, ao mesmo tempo, usar um estabilizador barato com uma corrente de autoconsumo de 100 microamperes no dispositivo, mas isso é muito comum
  • para o uso bem-sucedido dos modos de sono profundo, não apenas o programa, mas também o circuito, deve ser cuidadosamente pensado; caso contrário, em vez de salvar, você pode ter problemas muito sérios - raramente acontecendo, mas o dispositivo "morto" congela por um motivo inexplicável ou acorda com muita frequência e, como Como resultado, o consumo é de ordens de magnitude acima do esperado


Se o seu programador com um engenheiro de circuito se culpou pela primeira vez pela curvatura e, juntos, pelo fabricante por publicar números irrealistas em folhas de dados no microcontrolador, e seu dispositivo está colocando as baterias em uma ordem de magnitude mais rápida do que o esperado, esse é um motivo para pelo menos recorrer à independência especialistas altamente qualificados.

Pouco sobre a tecnologia de fabricação e como as séries de microcontroladores aparecem


A parte fisicamente ativa do microcontrolador, como a grande maioria dos outros microcircuitos, geralmente é formada em uma pastilha de monossilício (vamos chamá-lo, neste contexto, de chip). Os chips ocupam uma área muito pequena, mas é tecnologicamente rentável produzir chapas de grande diâmetro; portanto, geralmente um grande número de chips, como favos de mel, é colocado em um prato grande e formado durante um processo tecnológico. Posteriormente, as placas são cortadas em pedaços, recebendo lascas individuais, que são colocadas no estojo. O desenvolvimento da topologia e a depuração dos processos tecnológicos de um novo chip são muito caros, e o espaço ocupado por um único chip em uma placa geralmente não é grande. É lucrativo para os fabricantes produzirem chips em grandes lotes, mas os usuários precisam de microcontroladores em casos diferentes - é importante que alguém obtenha um gabinete menor e mais barato; por outro lado, são necessárias mais saídas para controlar um LCD ou memória externa com uma interface paralela. É rentável para os fabricantes cobrir todos os nichos, para que os clientes não atinjam os concorrentes sem encontrar o modelo ideal para si.

Muitas vezes, é mais lucrativo liberar um lote grande de um chip universal e colocá-lo em casos diferentes do que lançar uma dúzia de chips diferentes. Para chips colocados em caixas com um pequeno número de pinos, algumas portas (neste contexto, por portas, entendemos as almofadas de contato na superfície do chip que servem para se comunicar com o mundo externo) simplesmente permanecem desconectadas. Frequentemente, os fabricantes vão além - para aumentar a demanda e o preço dos microcontroladores com um grande número de pernas, eles cortam artificialmente a funcionalidade daqueles com menos unidades - desabilitam algumas funções, limitam a quantidade de memória disponível etc.

Portanto, com base em um chip, eles formam uma série de microcontroladores que diferem significativamente no tamanho da memória e em um conjunto de módulos periféricos, às vezes às vezes no preço. Ao mesmo tempo, os chips instalados neles podem ser cortados das mesmas placas. Como a área em que um chip está localizado é pequena, sua contribuição para o custo do produto final também é pequena e pode ser sacrificada. Torna-se benéfico desativar a memória adicional e outras funções, por exemplo, no estágio de teste - com a ajuda de bits de configuração uma vez programáveis ​​ou queimando os jumpers com um laser. Somente para a maioria dos produtos de massa, faz sentido criar um modelo de foto ligeiramente modificado para isso. Além disso, não é necessário que exista memória não utilizada fisicamente ausente; ela pode ser novamente desligada com a remoção de jumpers no modelo.


Assim, a partir de um design de chip padrão, é formada toda uma série de microcircuitos.

A periferia do mais simples microcontrolador ARM por meio dólar


O núcleo do processador é o cérebro, mas para que não seja como um “cavalo esférico no vácuo”, são necessários análogos dos sentidos e membros.

No microcontrolador, seu papel é desempenhado pelas conclusões do gabinete, às quais as portas (pads) do chip podem ser conectadas dentro do gabinete. Por sua vez, através de comutadores internos, vários módulos periféricos podem ser conectados à mesma porta.
Para começar, considere a periferia de uma das séries mais simples da ST, com base no núcleo Cortex-M0 - stm32F03.



Para esta série, temos o seguinte conjunto de funções básicas:
Relógio em tempo real (Real Time Clock ou RTC) , que pode ser alimentado por uma saída separada e operar a partir de um ressonador de baixa frequência separado. Este módulo consome extremamente pouca energia; no caso de uma falta de energia, pode funcionar por horas em um capacitor carregado ou por anos em uma pequena bateria embutida no dispositivo. Além disso, ele pode servir como um despertador, removendo o microcontrolador do estado de até o sono mais profundo em um tempo predeterminado.

O WatchDog é um cão de guarda que impede o microcontrolador de adormecer para sempre, por exemplo, entrando em um ciclo sem fim ou indo para um endereço inexistente. Seu princípio de funcionamento é simples. “” , , . , , , . , WatchDog , - . , WatchDog .

- (General Purpose Input-Output GPIO) — , . , .

. ( ), , 1. , , , , . , , , 20 — 50 (pull-up) (pull-down).

, , . , .

— , , . , , , , . , , — , , , .



, ( ), . X4 — . 5-7, . , , , , R24-R26, 1 . VD4-VD6 5 , , , 3,3 , 5 . R29-R31 100 .
. , . STM32Fxx 5 , , , .

, . , , , — (- ). , . .

. . «» , .

, . , — . , , .
, , ARM , 8- . , , . , , , .

, , , , .

, . , .

, :

  • USART — , COM RS232 ,
  • SPI — , ,
  • I2C — , . ,

GPIO, .

- AD .

, . , , . . 12 , 10 16.



3 12 3/4096=0.00073 — .

.

. , ,


  • MCU
  • MCU



  • — MCU XR7 100 , , — .



  • , . NP0 , ,
  • , , , ,
  • “”, —

, , , , , .

  • , , ,
  • ( ), . , , , . ,



. MEMS , . , , .

VBUT . : R5-10 , 10 0.1 , L1 L2 BLM18PG471SN1D .



. , ASIC, . — . , , . « ».

, . , , , , . 1, 16. ? , . 10 , — 10 . , . , , 1 . , 10 10 !

Um sistema de acesso direto à memória DAP ou DMA é outra coisa importante. Este módulo permite enviar dados da periferia para a memória ou vice-versa.

Por exemplo, com sua ajuda, você pode alocar um pedaço de memória para armazenar dados provenientes do ADC e fazer um buffer circular a partir dele. Em seguida, o ADC inicia no modo de leitura de dados em intervalos regulares. Usando mecanismos DMA, os dados lidos serão, sem a participação do kernel, independentemente, byte a byte, colocados em um buffer dedicado. Quando o buffer estiver completamente cheio, o kernel receberá um sinal e começará a processá-los programaticamente, e o sistema DMA iniciará o processo de inicialização desde o início. Como o DMA possui vários canais, ninguém se preocupa em implementar, no nosso caso, saída automática para USART dos dados do buffer. Como resultado, obtemos o processo de transferência da leitura do ADC para o USART que funciona sem o uso do kernel, e não o simples trabalho do programador na configuração do DMA será recompensador.

O módulo de modulação por largura de pulso PWM ou PWM , devido às limitações do artigo, não abordaremos em detalhes, apenas observo que essa é uma função extremamente útil e amplamente utilizada com a qual é possível controlar o brilho dos LEDs, velocidade do motor, máquinas de direção, projeto DC inteligente Conversores DC e até som sintetizam.

O que posso obter adicionando 30 centavos?

Mudando para o Cortex-M0 +. A maneira mais barata de obter recursos extras


E que pãezinhos adicionais o microcontrolador da série mais recente oferece com o núcleo um pouco mais moderno que o Cortex-M0 +, a um custo de 20 a 50 centavos mais caro do que os análogos da série acima em termos de corpo e número de saídas?

Tabela de diferenças entre séries



  • freqüência máxima do relógio dobrada
  • de 2 a 1,7 volts, a tensão de alimentação mínima cai
  • ADC é capaz de trabalhar duas vezes e meia mais rápido
  • dois canais de um conversor digital-analógico de 12 bits apareceram. Essa é uma função extremamente útil, com a ajuda da qual é possível formar um sinal de uma determinada tensão nos terminais com uma precisão melhor que 1 mV, por exemplo, formas de onda arbitrárias na faixa de frequência de áudio
  • comparadores apareceram - dispositivos para comparar os valores de dois sinais analógicos, pode ser útil dizer ao determinar o momento de sobrecorrente
  • Adicionado interface USB através da qual você pode conectar dispositivos a um computador. De particular interesse é a disponibilidade de opções de gerenciamento de energia para implementar uma interface compatível com USB tipo 3-C. Eu falei sobre ele em um dos meus artigos sobre Habré
  • O acelerador AES para procedimentos de criptografia / descriptografia de 256 bits apareceu
  • O UART teve a oportunidade de trabalhar nos modos de suspensão e suporte de hardware para protocolos LIN (uma rede simples, amplamente usada na indústria automotiva), IRDA (protocolo de transferência de dados via LEDs infravermelhos, lembre-se de controles remotos de televisão), SIMcard ...
  • Temporizadores estendidos e módulo PWM
  • o limite superior da faixa de temperatura de operação subiu para 125 graus
  • maior confiabilidade devido à expansão dos modos de reinicialização em caso de problemas de energia
  • Adicionado um gerador de valor aleatório de hardware “honesto” - um recurso útil em criptografia

Bem, para muitas aplicações, um acréscimo insignificante no preço se paga completamente, já que você pode se recusar a mudar para microcontroladores mais caros de séries de modelos mais altas.

E o que adicionará a transição ao Cortex-M4, além do preço aumentado algumas vezes?




  • A frequência máxima do clock sobe para 80 MHz
  • Apareceu um bloco para acelerar os cálculos de ponto flutuante
  • Obviamente, a memória interna máxima aumentou
  • Modelos com 100 pés ou mais de suporte para trabalhar com memória estática externa
  • USB aprendeu a trabalhar no modo HOST
  • O controlador da interface CAN apareceu. Essa é uma interface muito promissora, projetada para aplicativos altamente confiáveis. Ele iniciou sua marcha vitoriosa com a indústria automotiva e está travando uma guerra prolongada com o há muito obsoleto RS-485 na indústria extremamente conservadora de automação industrial há quase 20 anos.
  • Uma interface para conectar o cartão SD apareceu. Um recurso muito útil - adicione um suporte de 50 centavos ao seu dispositivo e obtenha um meio de armazenamento removível com dezenas de gigabytes de tamanho! A maioria das placas consegue trabalhar no SPI usual, mas muito mais lentamente
  • Eles adicionaram um amplificador operacional embutido com uma ampla variedade de modos operacionais. Graças a esta e outras funções anteriores, no meu último projeto de estetoscópio sem fio, tive que interromper a escolha no M4 em vez do M0 +. Como resultado, tornou-se possível controlar a amplificação do sinal do microfone MEMS e economizar dezenas de horas de gravações de áudio do trabalho do coração no cartão SD
  • O módulo de criptografia aprendeu a ler as funções HASH no hardware.
  • O controlador de aplicativos de toque foi aprimorado e agora suporta não apenas botões, mas também elementos de rolagem

Cortex-M7 - quando você quiser mais ...




No grande número de projetos, os recursos fornecidos pelos kernels acima são suficientes, mas também ocorrem exceções. Pessoalmente, isso aconteceu comigo apenas algumas vezes, e apenas uma vez por uma boa razão - exigiu alto desempenho para a preparação de dados para o ASIC, um controlador Ethernet e um barramento CAN-FD com uma taxa de câmbio aumentada.

Se no nível de microcontroladores universais com núcleos Cortex 4 e inferiores, na minha opinião subjetiva, o ST é agora o líder em termos de preço / funcionalidade, então na área de chips de alto desempenho é inferior ao ATMEL, ou melhor, ao MICROCHIP, que o absorveu recentemente. Portanto, optei pela série ATSAMV71, a partir de US $ 6.

Além do acima (controlador Ethernet e barramento CAN-FD), em geral, temos um kernel com um acelerador de operações que aumenta significativamente a produtividade, operando com uma frequência de clock de até 300 MHz, interfaces para conectar uma matriz de vídeo e suporte à memória dinâmica.

Concluindo, pedirei a quem tem experiência em se comunicar com microcontroladores. Pedirei que você escolha a resposta apropriada para a pergunta.

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


All Articles