Pular para o conteúdo principal

Microcontrolador Texas MSP430

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 MSP430

Os 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:
  • 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:

  • 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).

Comentários

Postagens mais visitadas deste blog

Blog apoiado pela Siemens discute os principais desafios das grandes cidades

Fonte: Assessoria de imprensa da Siemens - 28.09.2009 Brasil - As mudanças globais apontadas pelo estudo "Desafios das Megacidades", desenvolvido pelas consultorias GlobeScan e MRC McLean Hazel, abriram espaço para a discussão de soluções para problemas como consumo de energia, transporte, moradia e emprego. O blog www.odesafiodasmegacidades.com.br , apoiado pela Siemens, discute temas como energias renováveis, eficiência energética, urbanização, crescimento sustentável e outras problemáticas presentes no crescimento das metrópoles e mostra como o desenvolvimento de novas tecnologias podem ajudar a solucionar os obstáculos do dia a dia de quem vive nas grandes cidades.

Veja como a Seleção Natural e Genética influenciam a Inteligência Artificial.

Rodrigo Regis Dentre várias técnicas de Inteligência Artificial existentes, hoje, vamos falar do Algoritmo Genético. O  Algoritmo Genético  ( AG ) é uma  t écnica  de busca utilizada na ciência da computação para achar soluções aproximadas para problemas de otimização e busca, inspirados nos mecanismos de seleção natural (Teoria da Evolução) e genética.  Eles combinam um mecanismo de valorização dos “melhores” indivíduos, ou dos mais adaptados ao objetivo em questão, com uma estrutura para combinar e “reproduzir” aleatoriamente estes indivíduos, criando uma nova população. Assim, a cada geração, um conjunto de novos indivíduos é criado utilizando-se informações contidas na geração passada. Os Algoritmos genéticos são implementados  em computadores em que uma população são representações abstratas de uma problema e os melhores indivíduos, dessa população, são selecionados para cruzamento. A evolução geralmente se inicia a partir de um conjunto de soluções criado aleatoriamente

Somos a média das pessoas que mais convivemos. O Homem é produto do meio?

Muitos filósofos e sociólogos já falaram estudaram de certa forma esse tema, mas [dentro de minha memória, que diga-se de passagem anda falhando ultimamente] me recordo de dois. O primeiro, Jean-Jacques Rousseau um grande influenciador do Iluminismo, bem como da Revolução Francesa. Este suíço influenciou Kant, Adam Smith [Pai do liberalismo], Nietzsche, entre outros. Para ele, “ o ser humano é melhor quando está mais próximo da natureza ” e continua “ quanto mais distante o ser humano se encontra da natureza, mais corrompido ele fica ”, isto é, o meio corrompe o homem, logo ela é produto do meio. O segundo, Karl Marx [ este, pelo menos, de nome muito conhecido],  dizia    " A existência precede a essência "; nenhum ser humano nasce pronto, mas o homem é, em sua essência, produto do meio em que vive, que é construído a partir de suas relações sociais em que cada pessoa se encontra.  Lembro-me de debates homéricos na escola, mas isso não vem ao caso. Já fui perguntado muitas v