Wie plane ich die Schaltprogrammierung eines AVR?

12

Meine übliche Methode zur Neuprogrammierung von AVRs (bisher auf ATtiny13 und ATtiny2313 beschränkt) besteht darin, den Chip vom Host-Schaltkreis zu trennen, ihn mit allen vorhandenen ICSP-Anschlüssen an ein anderes Steckbrett anzuschließen, zu programmieren und dann zu ersetzen. Ich höre jedoch immer wieder, dass man den Chip an Ort und Stelle programmieren kann (was, wie ich verstehe, der springende Punkt von ICSP ist).

Gibt es spezielle Hardware-Überlegungen, die Sie berücksichtigen müssen, bevor Sie den Chip vor Ort programmieren? Ich mache mir zum Beispiel Sorgen, dass der ICSP-Prozess Schaltungskomponenten beschädigen könnte, die mit denselben AVR-Pins verbunden sind, die für ICSP verwendet werden. Muss man gelegentlich Dioden oder eine andere Art von Puffer hinzufügen, um diese Komponenten zu schützen?

Ich weiß, dass diese Frage irgendwie vage klingt, und ich denke, dass es so ist - aber ich habe keine Details zu meiner speziellen Schaltung angegeben, weil ich an allgemeineren Faustregeln interessiert bin. Das heißt, muss man sich nie darum kümmern, oder hängt die Antwort wirklich von der jeweiligen Schaltung ab, zu der die MCU gehört?

Tim
quelle

Antworten:

15

Ich habe ISP für fast jede AVR-Karte verwendet, die ich gemacht habe. Es ist nichts, wovor man Angst haben muss. Das AVR ISP mkII-Handbuch bietet eine ziemlich gute Zusammenfassung der Einschränkungen, auf die Sie im Abschnitt "Zielschnittstelle" achten müssen. Wenn Sie die MISO / MOSI / SCK-Pins direkt an den Programmierer anschließen und zwischen ihnen und dem Rest der Schaltung ca. 820 Ohm liegen (und mit dem Reset-Pin nichts Ungewöhnliches tun), sind Sie in Ordnung. Ich würde mir keine Sorgen machen, dass der ISP andere Komponenten beschädigt. Es ist kein Hochspannungsprogrammierer. Die Signale werden alle mit 5 V betrieben. Wenn also eine externe Komponente beschädigt werden kann, kann dies auch Ihr Mikrocontroller tun.

Wenn Sie wirklich mit einer Karte feststecken, die keine ISP-Programmierung zulässt, würde ich zumindest versuchen, einen ZIF-Sockel für Ihre Programmierkarte zu verwenden. Sie sind teuer, aber es wird Ihre Lebensqualität erheblich verbessern.

phooky
quelle
Danke für den Link - genau danach bin ich. Ich verwende eigentlich keinen echten AVR-ISP - nur ein entsprechend programmiertes Arduino. (!) Ich ersetze dies in ein paar Tagen durch einen Buspiraten, daher plane ich definitiv, ein Board mit ZIF-Sockeln zusammenzubauen. Mein derzeitiges Verfahren ist extrem hässlich!
Tim,
1

Verwenden Sie eine Steckbrücke oder einen Schalter, damit Sie den ICSP-Header physisch trennen können. Auf diese Weise können Sie die Pins mit anderen Funktionen teilen, ohne sich Sorgen machen zu müssen und ohne mit Ihren anderen Komponenten herumspielen zu müssen.

Dies scheint die naheliegendste und sicherste Lösung zu sein, und ich verwende sie.

(Meine erste Antwort wurde gelöscht, daher habe ich versucht, mehr Details hinzuzufügen.)

Ali Afshar
quelle
Wie würde das gehen? Wenn dann der Schalter / Jumper angeschlossen ist, werden die Stifte weiterhin mit dem Rest des Stromkreises verbunden.
Eeze
0

Leider können Sie bei der Schaltungsprogrammierung für Ihre AVRs nichts tun, wenn die Pins von anderen Funktionen gemeinsam genutzt werden, z. B. zum Beleuchten von LEDs. Dies kann zwar funktionieren, ist jedoch nicht garantiert, da die Ausgänge des Programmiergeräts oder des µC zu niedrig sein können, um zu funktionieren.

Eine andere Alternative besteht darin, Ihre Chips vorprogrammiert zu bestellen. Ich weiß, dass Microchip dies für einige ihrer Chips anbietet, aber ich bin mir bei Atmel nicht sicher.

Thomas O.
quelle
Na ja, das habe ich vermutet. Ich muss einfach weiter so langsam und klobig vorgehen, denke ich. (Oh, und keine Chance, Atmel dazu zu bringen, Vorprogrammierungen für mich durchzuführen, ich bin nur ein bescheidener Bastler. :-))
Tim,
Microchip berechnet eine Einrichtungsgebühr von ca. 40 US-Dollar. Wieder unsicher über Atmel. Wenn Sie im Bereich 10-100 bestellen, lohnt es sich wahrscheinlich.
Thomas O
3
Ich habe viele Boards mit anderen Lasten auf den SPI-Pins, insbesondere LEDs, ohne Probleme programmiert. Achten Sie nur darauf, dass nichts anderes die Signale steuert. Wenn Sie beispielsweise ein SPI-Gerät angeschlossen haben, geben Sie ihm einen Pull-Up-Widerstand oder Ähnliches, um dies auch beim Zurücksetzen oder Nichtauswählen zu belassen.
Yann Vernier