Puis-je programmer une puce 3,3 V sur une carte 5 V?


8

J'ai acheté un Gertboard il y a quelque temps, et l'une des fonctionnalités qu'il possède à bord est un ATMega328 (DIP). Cependant, puisque le Gertboard est conçu pour être utilisé avec le Raspberry Pi, il ne fonctionne qu'à 3,3 V, donc la vitesse d'horloge est limitée à ~ 12 MHz.

La programmation via le Raspberry Pi est cependant assez lourde. Au lieu de cela, j'aimerais transférer la puce sur une carte Arduino Uno afin de pouvoir télécharger des croquis depuis mon ordinateur de bureau. Je le transfère ensuite sur le Gertboard pour un fonctionnement normal.

Le problème est que mon Uno fonctionne à 5v / 16MHz plus typique.

Est-il sécuritaire d'essayer cela? Dois-je apporter des modifications de configuration dans l'EDI pour lui dire de tenir compte d'une vitesse d'horloge différente?


avrdude sur SSH ne fonctionne pas pour vous?
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams J'explore vraiment les options. Cela ne me dérange pas de travailler sur la ligne de commande si je le dois, mais je préfère de loin une interface graphique pour l'entrée de code.
Peter Bloomfield

2
Samba pour partager le répertoire et faire invoquer ino pour construire. Désordonné, mais ça devrait faire.
Ignacio Vazquez-Abrams

Je n'ai jamais vu un seul ATmega328 ne fonctionner à 16 MHz à 3,3 V.
Cybergibbons

Bien sûr, mais ce n'est pas la question ici.
Ignacio Vazquez-Abrams

Réponses:


10

La vitesse d'horloge sélectionnée affectera à la fois delay*()et millis()/ micros()ainsi que les fonctions dans <util/delay.h>, vous devez donc utiliser la vitesse d'horloge correcte du système cible si vous utilisez l'une de ces fonctions. Cela peut être facilement effectué en modifiant boards.txtet en copiant une entrée existante pour l'Uno et en modifiant la valeur du f_cpuparamètre pour qu'elle corresponde au système cible (dans ce cas, 12000000).

La différence de tension n'a pas d'importance, car la puce peut fonctionner à l'une ou l'autre tension et aucune connexion n'est établie entre le système 5V et le système 3,3V.


Malheureusement, le chargeur de démarrage suppose probablement 12 MHz. En théorie, le micrologiciel du 8u2 / 16u2 pourrait être modifié avec une "disparité" similaire et entraîner probablement la possibilité d'utiliser le chargeur de démarrage avec n'importe quel résultat de débit en bauds impair. Mais il pourrait être plus facile d'améliorer le processus de programmation basé sur pi, d'autant plus que cela éviterait la transplantation constante de puces.
Chris Stratton
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.