Comparando o novo ATmega328PB com o atual ATmega328P do Arduino Uno

A Atmel acaba de anunciar um novo modelo do popular chip, com mais seriais, mais timers, PWM, pinos de E/S, e outras novidades.

O ATmega328P, microcontrolador mais popular na família Arduino, ganhou uma versão renovada, chamada ATmega328PB, trazendo portas seriais adicionais, mais canais PWM, e várias outras adições interessantes.

A medida chega na esteira da confirmação de que a Atmel (que faz os ATmegas e outros chips baseados nas CPUs AVR) está em processo de ser adquirida pela Microchip, que faz a família de microcontroladores PIC – tradicionalmente vista como grandes rivais dos modelos da Atmel.

A escolha do momento do anúncio indica que a aquisição pela Microchip não significa a morte das bem-sucedidas famílias Atmel existentes.

Imagino que não seja coincidência, e sim uma mensagem – para a aparentemente pequena parcela de usuários em dúvida – de que a aquisição não significa a morte das bem-sucedidas famílias existentes, e sim uma oportunidade de evolução que a Atmel sozinha já não tinha como oferecer. Certamente o novo modelo já estava em desenvolvimento há meses na Atmel, o significativo é apenas a escolha do momento para sua divulgação.

Acrescentar uma letra a uma versão mais avançada de um microcontrolador não é novidade para a Atmel, a exemplo do que aconteceu com o ATmega8, que era o microcontrolador dos modelos iniciais do Arduino, e cuja versão atualizada (com grande redução no consumo de corrente e algumas outras mudanças) foi o ATmega8A, como vimos no artigo “Conhecendo melhor o ATtiny85, ATtiny2313, ATtiny84 e o histórico ATmega8”.

As novidades

A maior novidade destacada pela ATmel quanto ao novo ATmega328PB é a inclusão do suporte a um recurso que já estava presente em outros microcontroladores da empresa: o QTouch, que é uma forma de suporte a detectar toque em sensores capacitivos, que reduz a complexidade e aumenta o desempenho de aplicações em interfaces do tipo touch. O controlador QTouch do ATmega328PB se chama PTC e suporta até 24 ou 144 botões capacitivos (dependendo do modo de operação), com conexão direta entre o eletrodo e o pino, sem exigir outros componentes externos.

Quanto às demais especificações, preparei uma tabela comparativa a partir dos dados publicados pela ATmel sobre os 2 modelos, destacando as diferenças:

Gostaria de destacar:

  • Duas UARTs, e não apenas uma: quem já precisou recorrer a portas seriais virtuais com apoio de uma interface externa (como vimos em “Usando outro Arduino como intermediário para debug no Monitor com a softwareSerial”) vai valorizar ter uma segunda UART física nos pinos 11 e 12 (a atual, nos pinos 0 e 1, permanece existindo) – assim uma pode ficar ligada a algum dispositivo controlado, e a outra pode se comunicar com um terminal para debug, por exemplo.
  • Dois barramentos I2C e SPI, e não apenas um de cada: Periféricos I2C e SPI podem ser ligados paralelamente a um mesmo barramento, mas muitos (em especial os da classe hobby) não funcionam bem assim, ou não são fáceis de configurar neste modo. Com uma segunda porta física para cada barramento, é possível controlá-los de forma independente.
  • Mais pinos com PWM: o número de pinos com suporte a PWM passou de 6 para 10.
  • Mais timers: passamos de 3 para 5 timers, o que vai facilitar a vida de quem precisa de várias operações independentes e com temporização precisa.
  • Detecção de frames USART em todos os modos de economia de energia: facilita sair dos modos de economia de energia quando há a chegada de comunicação serial.
  • ID único: cada ATmega328PB terá um número de identificação único.

A lista de sobreposições de funções entre pinos, explicitando em qual pino ficarão as novas portas USART, SPI e I2C, entre outras informações, pode ser encontrada no capítulo 6 do resumo da configuração do ATmega328PB.

O número de pinos físicos é o mesmo, mas mais deles estarão disponíveis para uso como entradas e saídas.

Outra diferença evidenciada na tabela é a pinagem: 27 pinos acessíveis para entrada em saída, ao invés dos 23 do modelo anterior (e o número de interrupções subiu na mesma linha). Podemos melhor identificá-la em um diagrama dos pinos:

Compare os pinos do novo modelo (colorido no diagrama) com os do anterior, e note que tanto no lado esquerdo quanto no lado direito do mapa colorido há pinos identificados como disponíveis para E/S que, no mapa em preto e branco (correspondente ao modelo antigo) estão exclusivamente dedicados a outras funções, como VCC, GND ou os comparadores (ADC).

Esses 4 novos pinos de E/S correspondem aos 4 bits da nova Porta E do microcontrolador, que chegou para se unir às previamente existentes portas B, C e D, de 7 a 8 bits cada.

A ausência de um modelo DIP prenuncia que não haverá Arduinos com pinos soquetados baseados nesse novo modelo de microcontrolador.

Finalizando minha lista de destaques, a datasheet deixa clara uma ausência importante para uma parcela dos usuários hobbystas: não há mais modelo DIP, o que significa (para este modelo de microcontrolador) adeus aos modelos de Arduino com um grande microcontrolador soquetado (como o da esquerda na imagem acima) ou com pinos facilmente soldáveis até por principiantes: o futuro (com esse modelo) é SMD (como o da direita).

Concluindo

Integrar novos recursos a uma linha bem-sucedida é uma estratégia clássica para prolongar o ciclo de vida de produtos e, neste caso, acredito que a Atmel fez o anúncio em um momento bastante oportuno, ainda que o carro-chefe da nova versão (o suporte a interfaces touch) talvez não seja entusiasmente para parte considerável do público interessado no já clássico ATmega328.

Mas as mudanças que vieram como contrapeso, em especial a multiplicação de interfaces seriais (UART, I2C e SPI), novos timers, mais PWM e mais pinos disponíveis para E/S, certamente podem fazer diferença positiva em muitos projetos para os quais os 8 bits RISC e o clock relativamente baixo dessa família permanecem viáveis.

Tenho a expectativa de que logo as bibliotecas, IDE e modelos de placas "oficiais" das 2 turmas do Arduino sejam atualizados para o novo microcontrolador. Se não acontecer, talvez tenhamos oportunidade de identificar quem quer ser um novo líder no desenvolvimento comunitário para essa faixa de hardware!

Finalizando, um convite à reflexão: será que estamos vendo o pico dos ATmega328 nas mãos da Atmel, ou a Microchip irá querer extrair ainda mais do hardware dessa linha, incluindo outros recursos disponíveis em outras famílias tecnológicas Atmel, como o suporte interno a USB, DAC ou CAN? O futuro dirá!

Atualização em 27.01.2016: incluída a menção à detecção de frames USART em modos de economia de energia e ao ID único por chip, conforme “AT15007: Differences between ATmega328/P and ATmega328PB”.

Comentar

Dos leds ao Arduino, ESP8266 e mais

Aprenda eletrônica com as experiências de um geek veterano dos bits e bytes que nunca tinha soldado um led na vida, e resolveu narrar para você o que descobre enquanto explora esse universo – a partir da eletrônica básica, até chegar aos circuitos modernos.

Por Augusto Campos, autor do BR-Linux e Efetividade.net.

Recomendados

Livro recomendado


Artigos já disponíveis

Comunidade Arduino

O BR-Arduino é integrante da comunidade internacional de entusiastas do Arduino, mas não tem relação com os criadores e distribuidores do produto, nem com os detentores das marcas registradas.

Livros recomendados