Se no sistema embarcado do Exercício 24 os tempos de acionamento do LED3 devessem ser personalizados com diferentes valores para diferentes unidades do produto, qual microcontrolador deveria ser adotado? Justifique sua resposta.
Passo 1
No Exercício
tínhamos um sistema embarcado que aciona o LED
com tempos fixos pré-programados no firmware do microcontrolador. Agora a exigência é permitir que, para cada unidade do produto, esses tempos de acionamento sejam diferentes e gravados de forma personalizada, sem recompilar o código para cada nova configuração.
Passo 2
Para suportar tempos de acionamento personalizáveis em campo precisamos de dois recursos principais no microcontrolador:
. Periférico de temporização (timer ou PWM) capaz de gerar pulsos nos tempos desejados.
. Memória não-volátil (por exemplo EEPROM interna) para armazenar, em cada unidade, os valores de tempo configurados pelo usuário, de modo que persistam após desligar e religar o equipamento.
Passo 3
Um dispositivo que atende bem a esses requisitos é o PIC
F
A da Microchip. Ele dispõe de:
– Timers de e
bits programáveis, que permitem gerar atrasos ou pulsos PWM conforme os valores lidos.
– Memória EEPROM interna de bytes, acessível em tempo de execução pelo firmware, para gravar os parâmetros de tempo personalizados.
– Flash de programa de kB, I/O digital suficiente e baixo custo, amplamente usado em sistemas embarcados didáticos e industriais.
– Timers de
– Memória EEPROM interna de
– Flash de programa de
Passo 4
O uso do PIC
F
A permite ao firmware, logo após a configuração de fábrica ou em um step de setup pelo usuário, gravar na EEPROM os tempos de “ligar” e “desligar” do LED
. Na inicialização seguinte, o programa lê esses valores da EEPROM e carrega os registradores dos timers, sem necessidade de regravar o código-fonte.
Resposta
Deve-se adotar um microcontrolador com EEPROM interna e timers programáveis, por exemplo o PIC
F
A, pois ele possibilita gravar em campo diferentes valores de tempo na EEPROM e usar seus periféricos de temporização para gerar o acionamento customizado do LED
em cada unidade do produto.