fonte: DQsoft
O MSP430 é uma entrada relativamente recente no mercado de microcontroladores. Com consumo muito baixo e uma arquitetura de 16 bits voltada para linguagens de alto nível, ele é uma alternativa muito interessante às consagradas famílias PIC e 8051.
As informações que se seguem vem da documentação do MSP430 (que pode ser obtida aqui http://focus.ti.com/mcu/docs/mcuprodoverview.tsp?sectionId=95&tabId=140&familyId=342), do material fornecido no MSP430 Day(http://focus.ti.com/mcu/docs/mcuorphan.tsp?contentId=35970&DCMP=430Day_Worldwide_2007&HQS=Workshop+PA+430day) e da minha experiência de desenvolvimento de software para os modelos MSP430F2011 e MSP430F2121.
Arquitetura do MSP430Os microcontroladores PIC e 8051 possuem arquiteturas esquisitas, dividindo a memória em regiões distintas 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 4 á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 a 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 um quantidade maior de memória.
Sistema Flexível de Clock
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:
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 4 á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 a 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 um quantidade maior de memória.
Sistema Flexível de Clock
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.
Baixo consumo
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.
Periféricos Internos
Os vários modelos de MSP430 possuem internamente os periféricos tradicionais de microcontroladores:
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.
Periféricos Internos
Os vários modelos de MSP430 possuem internamente os periféricos tradicionais de microcontroladores:
- Entradas e Saídas Digitais: todos os modelos possuem e/s 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 micontroladores 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 diponível nos modelos mais simples, implementa comunicação serial síncrona ou assíncrona.
Os modelos mais sofisticados possuem capacidade de DMA (tansferê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.
Programação e Debug a Baixo Custo
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 sufiente para aplicações simples.
Se os até 2K de Flash dos modelos MSP430F20xx forem insuficientes e você optar pelos modelos MSP430F21xx, você vai precisar de um programador JTAG. O MSP-FET430UIF suporta todos os modelos e custa US$100 nos EUA (R$720 no Brasil!). Ele vem com o mesmo pacote de software que o eZ430-F2013.
Uma limitação nos dois casos é a ausência de um software de gravação standalone (por exemplo para uso na produção). Nos dois casos a gravação é feita disparando o Debug na IDE.
Baixo Custo (Em Termos)
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).
No folheto que está no site da Texas estão os preços sugeridos para revenda nos EUA, para mil peças. O modelo mais barato (MSP430F2001) estava a $0,55 quando consultei. Entretanto, este modelo tem apenas 1K de Flash e 128 bytes de Ram, o que limita muito suas aplicações principalmente quando programado em C. O MSP430F2121, com 4K de Flash e 256 bytes de Ram, estava a $1,35.
No Brasil, para compras unitárias, o preço é mais alto. O modelo NSP430F2013 (2K de Flash, 128 bytes de Ram, USART) tem preço EUA $1,65, no Brasil é vendido por R$12,23 (preço verificado na Farnell).
A família MSP430x4xx inclui ainda um controlador de LCD.
Programação e Debug a Baixo Custo
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 sufiente para aplicações simples.
Se os até 2K de Flash dos modelos MSP430F20xx forem insuficientes e você optar pelos modelos MSP430F21xx, você vai precisar de um programador JTAG. O MSP-FET430UIF suporta todos os modelos e custa US$100 nos EUA (R$720 no Brasil!). Ele vem com o mesmo pacote de software que o eZ430-F2013.
Uma limitação nos dois casos é a ausência de um software de gravação standalone (por exemplo para uso na produção). Nos dois casos a gravação é feita disparando o Debug na IDE.
Baixo Custo (Em Termos)
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).
No folheto que está no site da Texas estão os preços sugeridos para revenda nos EUA, para mil peças. O modelo mais barato (MSP430F2001) estava a $0,55 quando consultei. Entretanto, este modelo tem apenas 1K de Flash e 128 bytes de Ram, o que limita muito suas aplicações principalmente quando programado em C. O MSP430F2121, com 4K de Flash e 256 bytes de Ram, estava a $1,35.
No Brasil, para compras unitárias, o preço é mais alto. O modelo NSP430F2013 (2K de Flash, 128 bytes de Ram, USART) tem preço EUA $1,65, no Brasil é vendido por R$12,23 (preço verificado na Farnell).
Comentários
Postar um comentário