segunda-feira, dezembro 29, 2008

Controlando um LED com um MSP430 - Parte I

A exemplo do que fiz com o microcontrolador PIC, nesta série vamos ver como controlar um LED desta vez usando um microcontrolador MSP430 da Texas.

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)
O primeiro passo para o projeto de hardware é examinar o datasheet do microcontrolador, que pode ser baixado do site da Texas.

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
O circuito completo fica (clique para ampliar):



No próximo post da série vamos ver o software.

Nenhum comentário: