¿Puedo programar un chip de 3.3v en una placa de 5v?

8

Compré un Gertboard hace un tiempo, y una de las características que tiene a bordo es un ATMega328 (DIP). Sin embargo, dado que el Gertboard está diseñado para usarse con la Raspberry Pi, solo funciona a 3.3v, por lo que la velocidad del reloj está limitada a ~ 12MHz.

Sin embargo, programarlo a través de Raspberry Pi es bastante engorroso. En cambio, me gustaría transferir el chip a una placa Arduino Uno para poder cargar bocetos desde mi PC de escritorio. Luego lo transferiría de vuelta al Gertboard para el funcionamiento normal.

El problema es que mi Uno funciona a los 5v / 16MHz más típicos.

¿Es seguro intentar esto? ¿Debo hacer algún cambio de configuración en el IDE para indicarle que tenga en cuenta una velocidad de reloj diferente?

Peter Bloomfield
fuente
¿Avrdude sobre SSH no funciona para usted?
Ignacio Vazquez-Abrams
@ IgnacioVazquez-Abrams Solo estoy explorando opciones realmente. No me importa trabajar en la línea de comando si es necesario, pero prefiero una GUI para la entrada de código.
Peter Bloomfield
2
Samba para compartir el directorio, y hacer que invoque ino para construir. Desordenado, pero debería hacerlo.
Ignacio Vazquez-Abrams
No he visto un solo ATmega328 que no funcione a 16MHz a 3.3V antes.
Cybergibbons
Claro, pero esa no es la pregunta aquí.
Ignacio Vazquez-Abrams

Respuestas:

10

La velocidad de reloj seleccionada afectará tanto delay*()y millis()/ micros(), así como las funciones en <util/delay.h>, por lo tanto, se debe utilizar la velocidad de reloj correcta del sistema de destino si usted está usando alguna de estas funciones. Esto se puede hacer fácilmente editando boards.txty copiando una entrada existente para el Uno y cambiando el valor del f_cpuparámetro para que coincida con el sistema de destino (en este caso 12000000).

La diferencia en el voltaje no importa, ya que el chip puede funcionar en cualquier voltaje y no se realiza ninguna conexión entre el sistema de 5V y el sistema de 3.3V.

Ignacio Vazquez-Abrams
fuente
Desafortunadamente, el gestor de arranque probablemente asume 12 MHz. En teoría, el firmware del 8u2 / 16u2 podría modificarse con un "desajuste" similar y probablemente resultaría en la capacidad de utilizar el gestor de arranque con cualquier resultado de velocidad de transmisión impar. Pero podría ser más fácil mejorar el proceso de programación basado en pi, especialmente porque esto evitaría el constante transplante de chips.
Chris Stratton