Mudanças entre as edições de "AVR Detonator"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
(6 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 3: Linha 3:
   
 
==Status==
 
==Status==
  +
06/07/20: Hardware protótipo (parte do gravador) e rotinas de apagamento, leitura e escrita da Flash funcionando. Tampa da caixa feita na laser cutter:
Primeiros rascunhos concluídos, detalhamento começará em breve aqui nesta página
 
  +
  +
[[Arquivo:Tampa_ATmega_Detonator.jpg|400px]]
  +
  +
14/06/2020: Agora vai!
   
 
==Interessados==
 
==Interessados==
 
**[[Usuário:DQ|DQ]]
 
**[[Usuário:DQ|DQ]]
**[[Usuário:Leandrolsilva|Leandro Luciano]]
 
   
 
==Alguns projetos para ponto de partida==
==Ruminações==
 
===Alguns projetos para ponto de partida===
 
 
*[http://mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/ High Voltage Programmer]
 
*[http://mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/ High Voltage Programmer]
 
*[http://mightyohm.com/blog/products/hv-rescue-shield-2-x/ HV Rescue Shield] - evolução do projeto acima
 
*[http://mightyohm.com/blog/products/hv-rescue-shield-2-x/ HV Rescue Shield] - evolução do projeto acima
  +
  +
==Ideia Revisada==
  +
  +
* Usar um display I2C ao invés de LEDs
  +
* Oferecer o bootloader da Metaboard ao invés do Arduino 2000/2009
  +
* Usar um ATmega328 + PCF8574
  +
  +
===Circuito===
  +
  +
* Alimentação
  +
** Precisa de 5 e 12V
  +
** Mais simples é gerar primeiro os 12V (transformador + ponte de diodos + 7812) e depois abaixar para 5V com 7805
  +
** Alternativa é gerar os 12V a partir dos 5V usando um "charge pump" controlado pelo ATmega
  +
* Microcontrolador
  +
** ATmega328
  +
** Cristal 16MHz, bootloader Arduino
  +
** Expansão dos IOs usando PCF8574 (conexão I2C)
  +
** Conector para cabo serial USB/TTL (carga do programa e dos bootloaders a serem gravados)
  +
* Periféricos
  +
** Display OLED 0,96" monocromatico, conectado por I2C
  +
** Um botão "Detona!"
  +
** Um rotary encoder com botão
  +
** EEProm I2C 24C32
  +
*São necessárias 19 conexões entre o circuito de gravação e o ATmega a gravar:
  +
** Vcc/AVcc - alimentação (colocar somente quando executando, deve dar para ligar direto em um I/O do microcontrolador)
  +
** RDY, OE, WR, BS1, BS2, XA0, XA1 e PAGE1 - sinais de controle (ligados diretos ao microcontrolador)
  +
** RESET - sinal de reset
  +
*** Opção A: ligar aos 12V através de um resistor de 1K e a um transistor NPN para forçar ground
  +
*** Opção B: usar um acoplador ótico para conectar os 12V
  +
*** Opção C: usar um par de transistores (NPN + PNP) para conectar os 12V
  +
** DATA0 a DATA7 - dados (conectado ao PCF8574)
  +
  +
==Ideia Inicial==
   
 
===Rascunho da vista superior===
 
===Rascunho da vista superior===
Linha 36: Linha 71:
 
** 3 I/Os para os três botões
 
** 3 I/Os para os três botões
 
** 3 I/Os para os 7 LEDs (usando um decodificador 3 p/ 8 como o 74238)
 
** 3 I/Os para os 7 LEDs (usando um decodificador 3 p/ 8 como o 74238)
  +
** 2 I/Os para ligação a EEPROM 24C32 onde serão gravados os bootloaders
  +
** Rx/Tx serial para carga/atualização dos bootloaders na 24C32
   
 
Ideias de implementação:
 
Ideias de implementação:

Edição das 11h16min de 6 de julho de 2020

Proposta

Construir um gravador/programador de AVR do tipo paralelo ("alta tensão") stand-alone (não necessitando conectar um micro ou Arduino) e capaz de gravar o bootloader do Arduino com o apertar de um botão.

Status

06/07/20: Hardware protótipo (parte do gravador) e rotinas de apagamento, leitura e escrita da Flash funcionando. Tampa da caixa feita na laser cutter:

Tampa ATmega Detonator.jpg

14/06/2020: Agora vai!

Interessados

Alguns projetos para ponto de partida

Ideia Revisada

  • Usar um display I2C ao invés de LEDs
  • Oferecer o bootloader da Metaboard ao invés do Arduino 2000/2009
  • Usar um ATmega328 + PCF8574

Circuito

  • Alimentação
    • Precisa de 5 e 12V
    • Mais simples é gerar primeiro os 12V (transformador + ponte de diodos + 7812) e depois abaixar para 5V com 7805
    • Alternativa é gerar os 12V a partir dos 5V usando um "charge pump" controlado pelo ATmega
  • Microcontrolador
    • ATmega328
    • Cristal 16MHz, bootloader Arduino
    • Expansão dos IOs usando PCF8574 (conexão I2C)
    • Conector para cabo serial USB/TTL (carga do programa e dos bootloaders a serem gravados)
  • Periféricos
    • Display OLED 0,96" monocromatico, conectado por I2C
    • Um botão "Detona!"
    • Um rotary encoder com botão
    • EEProm I2C 24C32
  • São necessárias 19 conexões entre o circuito de gravação e o ATmega a gravar:
    • Vcc/AVcc - alimentação (colocar somente quando executando, deve dar para ligar direto em um I/O do microcontrolador)
    • RDY, OE, WR, BS1, BS2, XA0, XA1 e PAGE1 - sinais de controle (ligados diretos ao microcontrolador)
    • RESET - sinal de reset
      • Opção A: ligar aos 12V através de um resistor de 1K e a um transistor NPN para forçar ground
      • Opção B: usar um acoplador ótico para conectar os 12V
      • Opção C: usar um par de transistores (NPN + PNP) para conectar os 12V
    • DATA0 a DATA7 - dados (conectado ao PCF8574)

Ideia Inicial

Rascunho da vista superior

AVR Detonator.png

Operação

  • Colocar o ATmega no soquete
  • Apertar o botão Executa
  • Indica nos LEDs da direita o tipo de ATmega
  • Use botão Seleciona para selecionar o boot a gravar
  • Segura o botão Burn (botão de alavanca de contato momentâneo com tampa protetora)
  • Aperta o botão Executa
  • LED no alto à esquerda indicam o resultado das operações

Circuito

  • São necessárias 19 conexões entre o circuito de gravação e o ATmega sendo gravado:
    • Vcc/AVcc - alimentação (colocar somente quando executando)
    • RDY, OE, WR, BS1, BS2, XA0, XA1 e PAGE1 - sinais de controle
    • RESET - sinal de reset, aqui são colocados 12V durante a execução
    • DATA0 a DATA7 - dados
  • Precisa de mais
    • 3 I/Os para os três botões
    • 3 I/Os para os 7 LEDs (usando um decodificador 3 p/ 8 como o 74238)
    • 2 I/Os para ligação a EEPROM 24C32 onde serão gravados os bootloaders
    • Rx/Tx serial para carga/atualização dos bootloaders na 24C32

Ideias de implementação:

  • Usar um PIC 16F887 que tem I/O suficiente para conectar direto, mas é mais chato de programar
  • Usar um ATmega328 com uma expansão de I/O (74HC595 ou PCF8574) para os dados