O Objetivo
O objetivo desta série é mostrar o projeto do hardware e software de um pequeno dispositivo que ilustra como controlar um LED usando um MSP430. O dispositivo possui um LED e um botão que será usado para controlar o estado do LED (apagado, piscando ou aceso).
O Projeto de hardware
Neste projeto vou usar o MSP430F2011; é simples alterar tanto o hardware como o software para outros modelos.
O MSP430F2011 tem as seguintes vantagens para este projeto:
- pode operar com alimentação de 1.8 a 3.6V, o que simplifica a operação com baterias e pilhas
- disponível em encapsulamento DIP de 14 pinos, o que simplifica a montagem
- possui dois osciladores internos, um que opera até 16 MHz e outro de aproximadamente 12KHz, dispensando a conexão de um cristal ou ressonador
- memória Flash para o programa, o que simplifica a gravação e regravação
- gravador e depurador de baixo custo (EZ430-F2013)
No datasheet verificamos que o clock máximo varia de 6 a 16MHz dependendo da alimentação. Minha opção foi operar com o oscilador interno (DCO) a 12MHz usando uma bateria de 3V (Duracell DL2032 ou equivalente). O positivo da bateria deve ser conectado ao pino 1 (VCC) do MSP430 e o negativo ao pino 14 (VSS).
O pino 10 (RST) deve ser ligado a VCC através de um resistor de 47K. Este pino é responsável pelo reset do microcontrolador e será usado também na programação da Flash.
O LED e o botão são conectados a pinos de entrada/saída de uso geral, que no MASP430F2011 são qualquer um dos pinos de 2 a 9 ou um dos pinos 12 e 13. Escolhi o pino 13 (P2.6) para o LED e o pino 2 (P1.0) para o botão, para facilitar a minha montagem.
O LED, como diz a sigla, é um diodo emissor de luz. Quando submetido a uma tensão direta acima de sua tensão de queda ele emite uma luz com intensidade proporcional à corrente. Existem vários modelos de LEDs, que emitem as mais diversas cores. A tensão de queda é tipicamente de 2V e uma intensidade boa para um LED montado em painel pode ser obtida com uma corrente de 10 mA.
Voltando ao datasheet do MSP430, verificamos que um pino de entrada/saída é capaz de gerar ou absorver uma corrente de até 40mA e tem uma tensão de 0,6V (nível zero) ou VCC-0.6V (nível um). A capacidade de corrente do MSP430 permite ligar um LED diretamente das duas maneiras abaixo:
Na primeira maneira, com o LED ligado entre o pino do MSP430 e VSS, o valor do resistor em série (conforme a lei de Ohm) deve ser
(VCC - 0.6 - 2,0)/0,01 = 40 ohms
Analogamente, com o LED ligando entre o pino do MSP430 e VCC, o valor do resistor deve ser
(VCC - 0.6 - 2,0)/0,01 = 40 ohms
No primeiro caso, o LED acende quando o pino do MSP430 está no nível um, no segundo quando está no nível zero. No meu circuito adotei a primeira maneira com um resistor de 39 ohms (o que gera uma corrente de ligeiramente acima de 10mA).
Para a ligação do botão vamos usar o resistor de pullup interno do MSP430. Desta forma, o botão pode ser ligado diretamente ao VSS e erá lido como nível zero quando fechado e como nível um quando aberto.
Para facilitar a gravação, vamos colocar um conector de programação no circuito. Para a programação com o eZ430-F2013, usando a alimentação do circuito, basta conectar dois pinos (e mais o VSS):
pino 11 TEST
pino 10 RST
O ideal seria usar um conector igual ao do programador, porém ele é difícil de ser encontrado e tem um espaçamento muito pequeno para montagens convencionais. A solução é soldar um cabo no conector e colocar um conector mais comum na outra ponta:
O pino 1 do conector poderia ser usado para alimentar o circuito, neste caso seria preciso desconectar a bateria durante a programação. Para simplificar deixei este pino aberto nas duas pontas.
A lista de componentes para o circuito fica sendo:
- 1 MSP430F2011 (encapsulamento N)
- 1 LED
- 1 Botão de contato momentâneo
- 1 Resistor de 39 Ohms 1/8 W
- 1 Resistor de 47 KOhms 1/8 W
- 1 Bateria de 3V
- 1 Suporte para a bateria
No próximo post da série vamos ver o software.
Nenhum comentário:
Postar um comentário