Posso programar um chip de 3,3v em uma placa de 5v?

8

Comprei um Gertboard há um tempo e um dos recursos que ele possui a bordo é o ATMega328 (DIP). No entanto, como o Gertboard foi projetado para uso com o Raspberry Pi, ele opera apenas em 3.3v, portanto a velocidade do relógio é limitada a ~ 12MHz.

A programação através do Raspberry Pi é bastante complicada. Em vez disso, gostaria de transferir o chip para uma placa Arduino Uno para que eu possa enviar esboços do meu PC de mesa. Eu então o transferia de volta ao Gertboard para operação normal.

O problema é que o meu Uno opera nos 5v / 16MHz mais típicos.

É seguro tentar isso? Preciso fazer alguma alteração na configuração do IDE para informar uma velocidade de clock diferente?

Peter Bloomfield
fonte
avrdude sobre SSH não está funcionando para você?
Ignacio Vazquez-Abrams
@ IgnacioVazquez-Abrams Estou apenas explorando opções realmente. Não me importo de trabalhar na linha de comando, se for necessário, mas prefiro uma GUI para entrada de código.
Peter Bloomfield
2
Samba para compartilhar o diretório e invoque ino para construir. Bagunçado, mas deve servir.
Ignacio Vazquez-Abrams
Eu não vi um único ATmega328 não funcionar em 16MHz a 3.3V antes.
Cybergibbons
Claro, mas essa não é a questão aqui.
Ignacio Vazquez-Abrams

Respostas:

10

A velocidade do relógio selecionada afetará tanto delay*()e millis()/ micros()como as funções <util/delay.h>, portanto, você deve usar a velocidade correta do sistema de destino se estiver usando alguma dessas funções. Isso pode ser feito facilmente editando boards.txte copiando uma entrada existente para o Uno e alterando o valor do f_cpuparâmetro para corresponder ao sistema de destino (nesse caso, 12000000).

A diferença de voltagem não importa, pois o chip pode funcionar com qualquer voltagem e nenhuma conexão está sendo feita entre o sistema de 5V e o sistema de 3,3V.

Ignacio Vazquez-Abrams
fonte
Infelizmente, o carregador de inicialização provavelmente assume 12 MHz. Em teoria, o firmware do 8u2 / 16u2 poderia ser modificado com uma "incompatibilidade" semelhante e provavelmente resultaria na capacidade de utilizar o gerenciador de inicialização com quaisquer resultados ímpares da taxa de transmissão. Mas pode ser mais fácil melhorar o processo de programação baseado em pi, especialmente porque isso evitaria o transplante de chip constante.
Chris Stratton