quarta-feira, 24 de maio de 2017

Microcontrolador MSP430FRxxxx com memória ferro-elétrica (FRAM).

        Estava muito curioso com a tecnologia de memória ferro-elétrica (FRAM) usada nos novos microcontroladores MSP430FRxxxx. Não entrarei em detalhes sobre esta tecnologia pois está bem explanado no site da Texas Instruments.
        Esta memória tem muitas vantagens sobre a memória Flash:
• Escrita na FRAM não necessita de preparação ou procedimentos como o apagamento das células de memória antes da escrita;
• FRAM não é segmentada, pode ter cada bit individualmente alterado;
• Escrita na FRAM requer pouca energia pois não necessita de um charge pump.
• Escrita na FRAM pode ser feita em toda a faixa de tensão de operação do microcontrolador (1,8V~3,6V);
• Velocidade de escrita da FRAM típica de 2MBps enquanto a FLASH fica em 14 kBps;
• FRAM tem uma quantidade de escritas muito maior que a FLASH, praticamente ilimitada (10^15 ciclos de escrita!).
        A única desvantagem, por enquanto, já que é uma tecnologia muito recente, é o tempo de acesso de leitura: um microcontrolador operando a 16MHz deve-se adicionar um wait-state ao acesso da FRAM que opera até 8MHz.
  O LaunchPad MSP-EXP430G não é compatível com esta família, assim tive que comprar o LaunchPad MSP-EXP430FR2311, que vem com um MSP430FR2311 soldado à placa. Também obtive mais dois MSP430FR2311, dois MSP430FR2111 (o mais simples da família) e dois MSP430FR2632 (com 2k de memória RAM para acionar o Sharp Memory LCD, tema de um próximo post).
LaunchPad MSP-EXP430FR2311.
Vista inferior. Adicionei os quatro postes com parafusos M3.
        Comparados com os membros de baixo custo MSP430G2xxx, os MSP430FR2xxx possuem mais opções de periféricos (que são mais complexos e elaborados), mais modos de economia de energia, mais opções de controle interno e mais RAM.

Adaptadores
        Os MSP430FRxxxx só estão disponíveis em encapsulamento SMD, assim para aproveitar as placas de desenvolvimento que havia montado, tive que criar adaptadores DIP, mantendo ou adaptando a pinagem para a do MSP430G2553 e G2231. Nestes adaptadores, foram adicionados dois capacitores de 12pF para o cristal de quartzo, pois a família FR não os têm internamente. Também foi adicionado um capacitor na alimentação de 1uF.
MSP430FR2311 montado no adaptador DIP, com a pinagem modificada/adaptado para ser compatível com o MSP430G2553 na placa de desenvolvimento com interface I²C.
MSP430FR2111 montado no adaptador DIP, com a pinagem modificada/adaptada para ser compatível com o MSP430G2231 na placa de desenvolvimento com interface SPI (a eUSCI do FR2111 não tem interface I²C). Note que os terminais P2.0 e P2.1 não foram usados para caber num DIP-14.


Usando o LaunchPad MSP-EXP430FR2311 para debug/programação externa
        Assim como no MSP-EXP430G, fiz um cabo Spy-by-Wire para debug/programação externa das placas de desenvolvimento.
Cabo Spy-by-Wire para programação das placas de desenvolvimento.
LaunchPad MSP-EXP430FR2311 com o cabo Spy-by-Wire ligada à placa de desenvolvimento.


Oscilador interno (Clock System - CS)
        O módulo de clock (Clock System) da família FR é bem mais complexo que o da G. Há muitas opções mas só uso duas:
  • A primeira opção, é baseada no oscilador calibrado interno REFO (32768Hz +/-3,5%)  cuja frequência é entregue a um PLL multiplicando-a  para fornecer aproximadamente 16MHz.
P1.1 como saída do ACLK. Este clock vem diretamente do oscilador interno REFO. Note que a frequência está dentro da tolerância. 
P2.6 como saída do MCLK (REFO multiplicado pelo PLL).
P1.0 como saída do SMCLK (MCLK/8).

  • A segunda opção, é parecida com a primeira, mudando apenas o tipo de oscilador, onde é usado um cristal de quartzo de 32,768kHz, cuja frequência também é multiplicada pelo PLL, muito mais precisa e estável. Achei fantástica esta opção, pois consome muito menos energia que um oscilador com cristal de 16MHz e ainda se tem uma base de tempo de 32,768kHz.

P1.1 como saída do ACLK. Este clock vem diretamente do oscilador com cristal de 32768Hz. Note que o valor é muito próximo e muito estável.
P1.0 como saída do SMCLK (MCLK/8). O MCLK não pode ser disponibilizado pois a saída já é utilizada pelo oscilador com o cristal de quartzo.

        No próximo post falarei sobre a eUSCI acionando os displays OLEDs.

Nenhum comentário:

Postar um comentário