Go Down

Topic: [Bericht/Tutorial] Das ISP Drama (Read 167 times) previous topic - next topic

combie

Jul 31, 2019, 04:22 pm Last Edit: Jul 31, 2019, 04:27 pm by combie
[Bericht/Tutorial] Das ISP Drama

(Oder: Bastelstunde mit Combie)

Hier möchte ich von meinen Erfahrungen berichten, welche ich beim Einsatz von nackten ATMega328P gemacht habe. So wie ich aus einigen Forenthreads heraus gelesen habe, schlagen sich recht viele Leute mit vergleichbaren Problemen rum.

Ein dauerhaftes Problemfeld, ja, fast schon ein Minenfeld.

Das im folgenden dargestelle bezieht sich auf den ATMega328P, das Prinzip ist allerdings auch auf andere ATMega und auch ATTiny übertragbar. Natürlich unter Beachtung der Baustein spezifischen Eigenschaften.
Dazu gibt das Datenblatt, zu dem betreffenden µC, gerne Auskunft.

Warum überhaupt "nackte" AVRs und nicht fertige Arduinos?
1. Platzbedarf
2. Eigene Platinen gefertigt / fertigen lassen
3. Batteriebetrieb

Bisher längster Betrieb an einer CR2032 Knopfzelle:
5 Monate, mit dauerhaft laufendem Uhrenquarz



Anleitungen für ATMega328P, auf dem Breadboard, gibt es zur Genüge.
Viele von denen sind eher schlecht als recht.
Gerne werden die Abblockkondensatoren vergessen.
Auch, dass der ATMega328P beidseitig versorgt werden möchte.
Und dass der "Arduino as ISP" einen 10µF braucht um seinen Reset zu unterdrücken.
In manchen Konfigurationen kann es besser sein die Bürdekondensatoren etwas zu verkleinern.

Tipp:
Ein Tutorial, welches ein Anfänger leicht versteht, ist vermutlich von einem Anfänger geschrieben.
Natürlich gerne mit den typischen fest eingebauten Anfänger Fehlern.


Sowieso sind Breadboards schon ein Problem in sich:
1. Kontakte leiern aus / Korrosion
2. Lange Stromwege
3. Dürre Steckdrähtchen
4. Es ist ein leichtes, sich zu verstecken.
5. Hohe Kapazitäten zwischen den Bahnen (ca. 10pF ?)

Ich finde, das sollte jeder schon mal gemacht haben:
Einen ATMega auf dem Breadboard montieren, mit Quarz, und Anschluss an einen UNO, welcher als "Arduino as ISP" seinen Dienst tut. Um ein Gefühl dafür zu bekommen, wie fummelig das ist. Und wie Fehlerträchtig.

Wenn man diesen Aufbau öfter durchführt, leidet der Spaß an der Sache. Zumindest ging es mir so.
Lieber einmal 4 Euronen ausgeben, etwas basteln, und nie wieder ärgern.


---

Die erste Linderung war, 2 UNOs einzusetzen.
Einer als "Arduino as ISP" und der andere, mit Sockel, um die ATMega328P tauschen zu können.
Dazwischen ein gefertigtes Kabel mit ordendlichen Steckern, von ISP Stecker zu ISP Stecker, mit einem Abgang für den Reset des Deliquenten.
Ein Kabel, wie es hier zu sehen ist:
http://www.gammon.com.au/images/Arduino/Atmega_Chip_Detector2.jpg
(Quelle)

Vorteile:
Aufbau in Sekunden
Betriebssicher

Damit kann man schon viel tun!
Fuses setzen und Bootloader aufspielen
Programme aufspielen
Probeläufe/Tests

Nachteil:
2 UNOs belegt
Auf Dauer fummelt man sich so den Stecksockel kaputt(so bei mir ...)
Die Beinchen der Deliquenten neigen zum Verbiegen und wenn oft genug geschehen, auch zum abbrechen.
Der Einsatz eines Uhrenquarz ist nicht möglich.
Spannung, 5V only

Wie auch immer, zwei UNO und das Kabel, decken vieles ab.

---

Eine ähnliche Lösung, etwas kompakter gibt es unter der Bezeichnung "Open Smart AVR ISP Shield" oder einfach nur "AVR ISP Shield" im Handel.
Verschiedene Hersteller, es gibt, Kosten ca 3 Euronen
Das Board hat einen 6 Pol und einen vorbereiteten 10 Pol ISP Anschluss um auch andere Deliquenten zu bedienen

Achtung:
Es besteht Gefahr, dass die hinteren beiden Pins des Textoolsockels die USB Buchse des UNO berühren.
Ich empfehle diese Pins runter zu feilen und mit einem Stückchen Isolierband abzudecken.

Tipp:
Der Piepser piept nur mit dem OpenSmart "Arduino as ISP" Sketch. Das originale "Arduino as ISP" funktioniert auch, piepst nur nicht.

So hat man schon mal einen UNO frei geschaufelt.
Und dank des Textool Sockel mehr Betriebssicherheit.

---

Dedizierte ICSP Programmer...

Atmel ICE
Das Original. Kann so ziemlich alle Atmel Prozessoren beschreiben und auch debuggen.
Auch AVR mit exotischer ISP Schnittstelle und alle Atmel ARM Varianten
Recht teuer, mit Kabelsatz und Gehäuse um die 100 Euronen
Alternativ los, wenn man diese Exoten nutzt, und im Atmel Studio Debuggen möchte.

Auch unter der Arduino IDE nützlich. Ins besondere, wenn man mit außergewöhnlichen Spannungen arbeitet. Der Atmel ICE passt sich der Zielschaltung an. Von 1,8V bis 5V alles kein Problem.
Mit dem Feature ist er dann schon recht alleine im Feld der Programmer.
Gerade für AVR im Batteriebetrieb, eine feine Sache.


USBasp
Die wohl preiswerteste Variante, meist unter 2 Euronen, mit 10 Pol Kabel
Oft auch mit Adapter von 10 auf 6 Pol.

Empfehlung:
Ja, wenn denn, dann mit Adapter erwerben.

Die China Variante wird oft mit einer veralteten Software ausgeliefert.
Das ist nicht schlimm. Es empfiehlt sich dann den Slow-Clock Jumper zu bestücken, um auch auf 1MHz intern gefuste AVR beschreiben zu können.
Die Meldung "avrdude : warning : Can not Set sck period . usbasp please check for firmware update " kann man dann getrost ignorieren. Das funktioniert auch so.

Oder auch das Update durchziehen.
Dann kann der Programmiertakt dem Avrdude per -B Parameter mitgeteilt werden.

Der USBasp ist umschaltbar, zwischen 3,3V und 5V.

--

Andere Programmieradapter?
Gibt es!
Da mögen gerne andere ihre Erfahrungen hier darlegen.
 

----


Zum Schluss noch ein Vorschlag für ein ATMega Development Board.

Beim freundlichen Chinesen gibt es kleine  Development Boards zu erwerben.
In den Anzeigen gerne als "ATmega8 ATmega48 ATMEGA88 Development Board AVR" benannt.
Kosten für den Bausatz: ca 1,7 Euronen
Natürlich auch mit dem  ATMega328P nutzbar.

Das Board ist nicht Arduino Kompatibel:
1. Aref ist an Vcc geklemmt
2. Die eingebaute LED geht nicht an PB5 sondern an PD0
3. Die Beschriftung hält sich an die Atmel Pinbezeichner und nicht an die Arduino Pinbezeichner.

Mit Punkt 3 muss man wohl leben. Das UNO Pinout Bildchen hilft bei der Orientierung

Punkt 2 ist durch öffnen einer Leiterbahn und durch legen einer Kabelbrücke zu beheben.

Punkt 1 ist etwas fummeliger zu beheben.
Wenn man die interne Referenz nutzen möchte allerdings unumgänglich.
Ausbohren des Via, auf dem ARef Pin, und anlöten eines Kondensators an den selben.
Alles machbar.


Der Vorteil, man bekommt alle Teile in der Tüte, und ist frei darin, wie man was montiert.
z.B. die Steckerleisten nach unten, um den Brocken auf einem Breadboard betreiben zu können.

Der 10 Pin ISP Wannenstecker ist direkt verbindbar mit dem USBasp oder dem "AVR ISP Shield".
Für den Atmel ICE müsste erst noch ein Adapter gebastelt werden, dann kann man auch das Board an z.B. 2,4V betreiben und Programmieren.

Variationen:
Die USB Buchse kann man weg lassen. (zu nix nütze)
Und damit auch den Schalter.
Die Power LED, kann man weg lassen, um Strom im Batteriebetrieb zu sparen.
Den 8MHz Quarz und seine Bürdekondensatoren kann man weg lassen, oder durch einen beliebigen, z.B. 16MHz ersetzen.

Ich setze an der Stelle gerne einen Uhrenquarz ein.
Im Anhang mal ein paar Fotos von dem Umbau, mit Uhrenquarz.

Das umgebaute Board eignet sich gut für die Erstellung von Batterie getriebenen Testschaltungen

----

Die letzte Rettung: (wenn man denn richtig Mist gebaut hat)
Ein HV Programmer.

z.B.
Das original Atmel STK500
FuseBitDoktor   
HV Rescue Shield 2   
ScratchMonkey



Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

zwieblum

Nette Zusammenfassung :)

Ich würd' aber jedem, der "mehr" als Arduino braucht, den Atmel ICE ans Herz legen. Ein gutes Werkzeug ist nun mal nicht billig, wobei "billig" und "teuer" eher im Auge des Betrachters liegen: nach ein paar Tagen Ärger wird aus "teuer" schon ganz schnell "preiswert".

Aber was meinst du mit "Auch, dass der ATMega328P beidseitig versorgt werden möchte. " ?


combie

#2
Jul 31, 2019, 06:23 pm Last Edit: Jul 31, 2019, 06:39 pm by combie
Quote
Aber was meinst du mit "Auch, dass der ATMega328P beidseitig versorgt werden möchte. " ?
DIP:
Pro Pinreihe hat er einen GND und einen (A)Vcc Anschluss.
Die müssen alle angeschlossen werden, sonst lustige Effekte.

Siehe https://www.theengineeringprojects.com/wp-content/uploads/2017/07/ATmega328-Pinout-768x571.png

Quelle



--

Quote
Nette Zusammenfassung :)
Danke, für die Blumen.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert


noiasca

Schön zusammengefasst.
Also ich hab zwei dieser USBasp (den zweiten eigentlich nur wegen dem 6zu10 PIN adapter ^^) und bei jedem ISP Post das hier aufschlägt frage ich mich, warum die Leute nicht einfach diese wenigen Euros ausgeben wollen. Dann hab ich noch aus meinen Anfängen ein altes Atmel Evaluations-Board, umgelötet mit ZIF Sockel auch super praktisch.

Ich weis, alles weit weg von echten Programmierern, aber selbst diese paar Euro sparen das eine oder andere graue Haar.

how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

Scherheinz

Auch von mir ein großes Dankeschön, wie immer sehr lehr- und hilfreich!! :)
Hier könnte ihre Werbung stehen

Go Up