Os microcontroladores PIC e 8051 possuem arquiteturas que dividem a memória em regiões distintas e que precisam ser acessadas por instruções especializadas. O resultado é uma dificuldade tanto para a programação assembler como para a construção de compiladores.
O MSP possui uma estrutura de 16 bits, tanto na capacidade de processamento da unidade lógica aritmética como nos registradores de trabalho e no endereçamento de memória. RAM, Flash e controle dos periféricos compartilham este mesmo espaço de endereçamento e são manipulados pelas mesmas instruções de acesso á memória.
Uma diferença em relação ao PIC é que o MSP430 não possui memória EEPROM interna. Por outro lado ele dispõe de quatro áreas de 64 bytes de memória Flash que podem ser usadas para salvar parâmetros de forma não volátil.
O MSP dispõe de 16 registradores de 16 bits (R0 a R15), dos quais 12 são de uso geral (R4 à R15). R0 é o contador de programa, R1 é o ponteiro da pilha e R2 é o status do processador. R2 e R3 são geradores de constantes (usados como operando geram os valores 0, 1, 2, 4, 8 e 0xFFFF).
Modelos mais recentes expandem a arquitetura para endereços de 20 bits, para suportar uma quantidade maior de memória.
O MSP430 possui diversas opções de clock, que podem inclusive ser mudadas durante a execução para reduzir o consumo em momentos de espera e aumentar o desempenho na hora de processar.
Dependendo do modelo, existem até 4 fontes possíveis para o sinal de clock:
· VLOCLK: clock interno de 12KHz de baixíssimo consumo.
· LFXT1CLK: clock lento gerado por um cristal ou ressonador externo, tipicamente um cristal padrão de relógio de 32.768KHz (que fornece uma base de tempo de 1 segundo bastante precisa).
· XT2CLK: clock rápido gerado por um cristal ou ressonador externo.
· DCOCLK: clock interno gerado por um digital controlled oscillator (DCO) de até 16MHz com alguns valores pré-calibrados na fábrica para baixo erro.
Os sinais destas fontes podem ser dirigidos para três usos:
· ACLK: clock auxiliar para os dispositivos (por exemplo, o temporizador), pode ser VLOCLK ou LFXT1CLK, dividido por 1, 2, 4 ou 8.
· MCLK: clock mestre, usado pela CPU. Pode vir de qualquer uma das fontes dividida por 1, 2, 4 ou 8.
· SMCLK: clock sub-principal (!), pode ser usado nos dispositivos. Também pode vir de qualquer uma das fontes dividida por 1, 2, 4 ou 8.
Com todos os clocks parados (LPM4 - Low Power Mode 4), o MSP430 consome apenas 0,1 uA para manter o conteúdo da RAM.
Numa situação mais comum (LPM3), é mantido ligado apenas o ACLK para permitir acordar o processador após um determinado período de tempo. Neste caso o consumo fica em 0,9 uA (para alimentação em 3V).
Em todos os modos de baixo consumo o processador está parado, mas é acordado rapidamente (menos de 1 uSeg para o DCO voltar a oscilar na família MSP430F2xx) quando recebe uma interrupção.
Os vários modelos de MSP430 possuem internamente os periféricos tradicionais de microcontroladores:
· Entradas e Saídas Digitais: todos os modelos possuem I/O digital com capacidade de interrupção (por borda de subida ou descida), pull-up e pull-down configuráveis.
· Watchdog Timer (WDT): também presente em todos os modelos, resseta o processador se não for periodicamente desarmado (usado para colocar o processador em uma situação conhecida no caso de alguma falha de programação).
· Timers: o MSP430 difere um pouco de outros microcontroladores pelo fato de cada timer ter um único registrador de contagem e múltiplos registradores de comparação/captura. No modo continuous o registrador de contagem é continuamente incrementado por um dos clock (dando a volta quando atinge 0xFFFF) e interrupções de tempo real são geradas quando o registrador de contagem atingem o valor de um dos registradores de comparação. No modo up a contagem vai de 0 até o valor de um dos registradores de comparação, este modo pode ser usado para gerar um sinal PWM em um pino. Na operação de captura uma interrupção é gerada quando ocorre a mudança de sinal em um pino, neste instante o valor no registrador de contagem é copiado para o registrador de captura.
· Comparador Analógico: compara o sinal presente em um pino com uma referência interna ou externa. Útil, por exemplo, para detectar bateria baixa.
· Conversor A/D: não disponível em todos os modelos, codifica o nível de um sinal analógico em um valor digital de 10 ou 12 bits (dependendo do modelo).
· USART: não disponível nos modelos mais simples, implementa comunicação serial síncrona ou assíncrona.
Os modelos mais sofisticados possuem capacidade de DMA (transferência automática entre um bloco de memória e um dispositivo), interface I2C, um multiplicador por hardware (útil para endereçar vetores de estruturas) e conversor digital analógico. Alguns modelos incluem um sensor de temperatura. A família MSP430x4xx inclui ainda um controlador de LCD.
Os modelos MSP430F20xx permitem programação e debug através de um dispositivo semelhante a um pen-drive (eZ430-F2013), através de uma conexão chamada pela Texas de Spy-By-Wire. O custo deste dispositivo nos EUA é de apenas U$20, no Brasil ele pode ser encontrado por R$100. A única restrição que encontrei foi o baixo número de breakpoints por hardware.
Uma vantagem adicional é que o programador vem com uma versão limitada do IAR Embedded Workbench Kickstart. Trata-se de uma IDE e compilador C bastante razoáveis. A limitação do compilador gratuito é de 4K de código, mais que suficiente para aplicações simples. Se a Flash de até 2K dos modelos MSP430F20xx forem insuficientes e você optar pelos modelos MSP430F21xx, você vai precisar de um programador JTAG.
Uma limitação para o hobista é que a maioria dos modelos está disponível apenas em encapsulamento do tipo surface-mounted. Apenas os modelos MSP430F20xx estão disponíveis no encapsulamento PDIP.
Além de microcontroladores de baixo custo a Texas Instruments lançou um kit de baixíssimo custo, a Launchpad. A placa inclui um gravador/depurador e possui um soquete para se conectar um MSP430 de 14 ou 20 pinos. A placa inclui ainda um botão de Reset, um botão conectado a uma entrada digital, e dois LEDs (um verde e um vermelho) conectado a saídas digitais (através de um jumper, o que permite desconectá-los se necessário). Todos os sinais do microcontrolador estão disponíveis em conectores na borda, permitindo espetar uma placa de expansão.
O kit inclui, além da placa, dois microcontroladores (um MSP430G2211 e um MSP430G2213), um cabo USB para ligar a placa no micro, conectores para a placa de expansão e um cristal de 32KHz.
Para sair rodando, basta baixar a IDE. Existem duas opções, o IAR Embedded Workbench Kickstart e o Code Composer Studio. As duas opções são gratuitas e tem limitações no tamanho do código que são irrelevantes para a capacidade dos modelos inclusos.
Nenhum comentário:
Postar um comentário