NXP LPC800

NXP LPC800

Os microcontroladores da família NXP800 forma criados com o intuito de serem micros de alta performance e capazes de gerar menos código, se comparados com os microcontroladores de 8 ou 16 bits. Também almejam ser tão simples e baratos quanto seus competidores.

 

Possuem arquitetura ARM CORTEX M0+ e são ideais para equipamentos que exigem economia de energia e tamanho reduzido, em projetos que não demandem conversores analógicos digitais.

 

Assista a introdução da família de microcontroladores LPC800, feita por Amit Bhojraj em inglês:

 

 

Dentre as principais características dessa família, devemos destacar:

 

Esse microcontrolador pode operar a até 30 MHz, com cristal externo (que pode ser de 1 a 25 MHz). É possível também prover clock externo ao microcontrolador através de um pino específico. Possui também uma opção de utilizar um cristal interno RC de 12 MHz (com erro de 1,5% no máximo em todo range de temperatura). Essa característica contribui com a redução da lista de materiais de projetos eletrônicos.

 

A tensão de operação deste micro pode variar de 3,6 V a 1,8 V e ele pode operar de -40 a 85 graus Celsius caso for DIP ou -40 a 105 se for SMD. Caso for operar com cristal externo, a tensão mínima a ser utilizada deve ser maior que 1,9 V, conforme a errata do componente. Todos os pinos são tolerantes a 5V, porém, se habilitada a função analógica em alguns pino, essa entrada queima, pois essa característica só está implementada para as funções digitais.

 

Possui Memória Flash de até 16 KB divididas em várias páginas de 64 bytes cada uma. Isso facilita muito a vida do desenvolvedor que queira utilizar a Flash como memória de armazenamento não volátil. De Memória SRAM, dispõe de até 4 kB e drivers prontos gravados em ROM, para uso da USART, I2C, gerenciamento de alimentação e gravação/bootloader.

 lpc800 1

 

Para comunicação com dispositivos externos ao micro, possui uma I2C, que pode operar a 100 kHz (standard mode) ou 400 kHz (fast-mode) ou até a 1 MHz(fast-mode plus). Além disso, dispõe de três USARTS, que podem operar a 1,875 Mbit/s em modo assíncrono e 10 Mbits/s em modo síncrono. Possui até duas SPIs, podendo funcionar em 25 Mbits/s em modo slave ou 30 Mbits/s em modo master. Como canal analógico, possui uma entrada para comparação com uma referência externa. Não possui entradas para ADs, mas está previsto para o final deste ano itens dessa mesma família que possuam ADs internos.

 

O oscilador interno de Watchdog de 750 kHz pode operar de 9,3 kHz. a 2,3 MHz., o que permite flexibilidade a implementação do projeto.

 

Possui uma forma de reconfigurar os pinos que é muito interessante. Esse periférico é chamado de Switch Matrix. Essa matriz permite que reconfiguremos todos os pinos do microcontrolador, colocando USARTS, SPIs, I2C, saída de comparador, CLKOUTe saídas da máquina de reconhecimento de padrões, em qualquer pino. Essa reconfiguração pode ser feita a qualquer momento. Todos os pinos, exceto os pinos de cristal externo, o reset, os dois pinos de SWD/debug e o pino de entrada analógica para comparador, podem ser mudados de lugar. No entanto, esses pinos podem ser habilitados como GPIOs. Os dois pinos de alimentação do chip ficam estáticos também e não é possível mudá-los de lugar. O mais interessante é que a modificação de padrão de comportamento de cada pino pode ser feito a qualquer instante pelo firmware embarcado.

 

Assista o vídeo sobre como configurar a Switch Matrix para gerar o código fonte para sua aplicação, apresentado por Henrik Flodell em inglês: 

 

 

É possível comandar a transição de todos os GPIOs com um só comando, o que possibilita que se possa atingir velocidade de mudança de GPIOS de 15 MHz. Oito desses GPIOS são interrompíveis e todos possuem pull up ou pull down, filtro de proteção a glitch, inversor e , open drain (mas com restrição que a entrada não pode ultrapassar a tensão de alimentação), tudo configuráveis por software. Existem dois pinos apenas que são open-drain reais e não há possibilidade de habilitar resistor interno nesses pinos. Neles, é aconselhável ligar os pinos de I2C e não deve-se utilizá-los para operar no barramento SPI. Nesses dois pinos e em mais quatro pinos, é possível o fornecimento de até 20 mA. de corrente de saída, operando acima de 2,5V. e 12 mA. para operações abaixo desses valores de tensão.

 

Apresenta uma novidade, um periférico chamado de SCT - state configuration timer. Ele possibilita o uso normal dos timer, mas também é possível controlar múltiplos PWMs, um PWM com controle "dead-time" ou com necessidade de reset. Possui, pra essa finalidade, 2 timers de 16 bits e um de 32 bits, contador controlado pelo clock ou por algum pino externo, máquina de estado que permite a programação de determinada sequência de entradas, sendo possível a programação de sequência de diferentes eventos. Isso possibilita que o micro possa realizar outras funções, sem ficar se preocupando em processar diferentes eventos - quando a sequência for completada, uma interrupção estará ativa.

 

Os modos de operação são: RUN, sleep mode, Deep-sleep mode, Power-down mode e Deep power-down mode. Em sleep mode, o core é desligado - memórias, registradores internos e periféricos continuam ativos. Nesse modo é possível retornar desse estado pelo recebimento de informações via periféricos, alarmes ou verificação de padrões de pinos. Em deep-sleep mode, a economia de energia é maior - a memória flash é colocada em stand-by e o clock dos periféricos é desligado. Em power-down  mode, a flash é desligada e todos os pinos ainda mantem seu estado. Em deep power-down mode, tudo é desligado, menos alguns registradores. Nesse modo é possível retornar do sono profundo através de um alarme de um timer de baixo consumo apenas. Ele deveria poder retornar do sono profundo por uma interrupção de um pino específico WAKE-UP (PIO0_4), mas o errata do componente nos informa que isso não é possível. É interessante notar que todos os pinos ficam em tristate nesse modo, menos o WAKE_UP, caso estiver aguardando interrupção externa. No datasheet do componente podemos conferir que ele pode operar com consumo de  220 nA, com wake-up timer desligado em deep power-down mode, mas a errata deste componente diz que a corrente pode ser 130 vezes maior: 30 uA neste modo. 

 

Esse item possui um timer de baixo consumo que permite que o microcontrolador acorde de um sono profundo. Ele possui um cristal interno de 10 kHz exclusivo para esse fim e pode atingir timeouts de até 119 horas. É bem impreciso (varia até 90%, 45 % a mais ou a menos), de acordo com a variação de temperatura.

 

As curvas de consumo de energia mostram que o fato do PLL estar ligado aumenta muito o consumo do microcontrolador e que ele operando com o PLL desligado, a 12 MHz. O datasheet do componente possui diversas informações sobre baixo consumo, que detalha o quanto cada periférico ligado demanda de energia do componente.

 

 

Curiosidade

 

Uma estratégia interessante da NXP foi disponibilizar os manuais de usuário do LPC800 também em chinês. Isso, com certeza, provocou uma corrida a esse componente lá do outro lado do mundo. Basta ver o quanto o twitter da NXP está cheia de caracteres orientais. Se começar a vender bem, esperem por preços bem baixos.

 

 

Referências

 

LPCZone

Página da NXP com todas informações do LPC800

NXP 800 - modos de baixo consumo detalhados

Errata sheet

State Configuration Timer

Toda documentação do LPC800

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Thiago Lima
Apaixonado por sistemas digitais e circuitos eletrônicos, ja contabilizo 16 anos trabalhando com desenvolvimento de produtos eletrônicos. Formado na USP Sao Carlos, com mestrado em Engenharia Elétrica no Rochester Institute of Technology pelo CsF, atualmente lidero boa parte das operações do Embarcados, buscando levar conhecimento de sistemas eletrônicos para o Brasil. Experimentar o mundo das startups nos EUA foi transformador. La fui cofundador de uma startup de tecnologia chamada Una, sendo acelerado e incubado por um programa especial de Startups no RIT. Ao final, recebemos um prêmio de melhor startup do programa. No Laboratório Hacker de Campinas sou um dos entusiastas de novas tecnologias e apoio iniciativas da comunidade. Tambem participo de atividades comunitarias e sou um dos responsáveis pela Plataforma Ituiutaba Lixo Zero, onde escrevo regularmente artigos sobre redução de resíduos. Sou sonhador mesmo e quero acender a luz ?

1
Deixe um comentário

avatar
 
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Matheus Quick Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Matheus Quick
Visitante
Matheus Quick

Muito interessante este microcontrolador