Kann ich einen 3,3-V-Chip auf einer 5-V-Karte programmieren?


8

Ich habe vor einiger Zeit ein Gertboard gekauft, und eine der Funktionen, die es an Bord hat, ist ein ATMega328 (DIP). Da das Gertboard jedoch für die Verwendung mit dem Raspberry Pi ausgelegt ist, arbeitet es nur mit 3,3 V, sodass die Taktrate auf ~ 12 MHz begrenzt ist.

Das Programmieren über den Raspberry Pi ist allerdings ziemlich umständlich. Stattdessen möchte ich den Chip auf ein Arduino Uno-Board übertragen, damit ich Skizzen von meinem Desktop-PC hochladen kann. Ich würde es dann für den normalen Betrieb wieder auf das Gertboard übertragen.

Das Problem ist, dass mein Uno mit den typischeren 5 V / 16 MHz arbeitet.

Ist es sicher, dies zu versuchen? Muss ich Konfigurationsänderungen in der IDE vornehmen, um eine andere Taktrate zu berücksichtigen?


Avrdude über SSH funktioniert nicht für Sie?
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams Ich erkunde gerade wirklich Optionen. Es macht mir nichts aus, an der Kommandozeile zu arbeiten, wenn ich muss, aber ich bevorzuge eine GUI für die Codeeingabe.
Peter Bloomfield

2
Samba, um das Verzeichnis freizugeben und ino aufzurufen, um zu erstellen. Chaotisch, aber es sollte reichen.
Ignacio Vazquez-Abrams

Ich habe noch nie einen ATmega328 gesehen, der bei 16 MHz bei 3,3 V nicht funktioniert.
Cybergibbons

Sicher, aber das ist hier nicht die Frage.
Ignacio Vazquez-Abrams

Antworten:


10

Die Taktrate ausgewählt wird wirken sich sowohl auf delay*()und millis()/ micros()als auch die Funktionen in <util/delay.h>, also Sie müssen das Zielsystem die Geschwindigkeit richtig Uhr verwenden , wenn Sie eine dieser Funktionen verwenden. Dies kann einfach durch Bearbeiten boards.txtund Kopieren eines vorhandenen Eintrags für das Uno und Ändern des Werts des f_cpuParameters entsprechend dem Zielsystem (in diesem Fall 12000000) erfolgen.

Der Spannungsunterschied spielt keine Rolle, da der Chip mit beiden Spannungen betrieben werden kann und keine Verbindung zwischen dem 5-V-System und dem 3,3-V-System hergestellt wird.


Leider geht der Bootloader wahrscheinlich von 12 MHz aus. Theoretisch könnte die Firmware des 8u2 / 16u2 mit einer ähnlichen "Nichtübereinstimmung" modifiziert werden und wahrscheinlich dazu führen, dass der Bootloader mit einer beliebigen ungeraden Baudrate verwendet werden kann. Es könnte jedoch einfacher sein, den pi-basierten Programmierprozess zu verbessern, zumal dies die ständige Chiptransplantation vermeiden würde.
Chris Stratton
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.