terça-feira, abril 30, 2019

Franzininho Tiny

Já falei aqui no Franzininho, uma placa baseada no ATtiny85 compatível com o Arduino e no ATtiny841, um ATtiny bastante turbinado em termos de E/S. O Fábio Souza projetou uma versão do Franzinho com o ATtiny841 e a batizou de Franzininho Tiny (a versão com ATtiny85 passa a ser chamada de Franzininho DIY).

A desvantagem de usar o ATtiny841 é que ele está disponível somente em versão SMD, portanto fica mais complicado montar em casa. Portanto este modelo será tipicamente fornecido já montado. O Fábio produziu um lote experimental da versão Tiny e eu fui um dos agraciados com uma placa.



Uma descrição do hardware pode ser vista no site Embarcados. Como o Franzininho DIY, o Franzininho Tiny usa o clock interno de 8MHz do microcontrolador.


O uso de componentes SMD, um botão minúsculo de reset, um conetor mini USB soldado, e uma disposição dos pinos de conexão nas bordas superiores e inferiores gera um formato compacto e apropriado para espetar diretamente em protoboards (como o Arduino Nano).

A figura abaixo (extraída de http://drazzy.com/e/tiny841.shtml) resume os pinos disponíveis no conector e os seus nomes na IDE do Arduino. Um detalhe que me confundiu um pouco é que o ATtiny841 permite remapear alguns pinos, notadamente os usados pelo SPI. A figura mostra a configuração padrão.



Um ponto importante é lembrar que alguns pinos já possuem conexões na placa, o que pode interferir com dispositivos que venham a ser ligados neles:
  • O ATtiny841 está configurado para usar pino de Reset e tem um botão ligado ao pino 4. Recomendo deixar este pino quieto.
  • Os pinos 2 e 3 são usados para a comunicação USB. Evite usá-los, a não ser que você seja capaz de analisar a interferência entre o circuito da interface USB e o que você vai ligar.
  • Há um LED ligado ao pino 5. Ao contrário do usual, este pino está ligado ao catodo do LED e o anodo do LED está ligado na alimentação. Portanto o LED acende quando o pino está em nível baixo e apaga quando o pino está em nível alto.
Mesmo evitando estes pinos, ainda sobram outros oito. Todos eles podem ser usados para E/S digital (três deles com PWM por hardware) ou para entrada analógica. Nestes pinos temos também duas UARTs e uma interface SPI ou I2C (slave apenas - I2C master é implementado por software).


Embora seja possível programar usando diretamente o avr-tools, o mais simples é usar a IDE do Arduino. Existe uma definição da placa para uso com as IDEs mais atuais, basta acrescentar a URL (por enquanto provisória) e usar o Gerenciador de Placas da IDE (detalhes no artigo do Embarcados).

Como no Franzininho DIY, é preciso pressionar o botão de Reset para ativar o bootloader e fazer a carga do sketch. A interface USB é feita por software e está disponível somente dentro do bootloader. É possível carregar um bootloader serial e ligar um adaptador TTL/USB a uma das UARTs (e até mesmo implementar o auto-reset) para ter uma experiência semelhante ao Arduino UNO, porém isto exige um hardware adicional e vai consumir mais dois pinos.


Nenhum comentário: