Ich stelle gerade für meine Kids einen Einsteiger-Baukasten zusammen.
Ich denke, für sie ist es schöner, einen eigenen Programmieradapter zu
haben, als den vom Papa ausleihen zu müssen. Ich fühle mich dabei auch
wohler, zumindest bis ich sehe, dass die Kids wissen, was sie da tun.
Ich brauche einen ISP Programmer für Targets, die mit 3,3 bis 3,6V
betrieben werden. Der Programmer soll optional auch eine
Spannungsversorgung von vorzugsweise 3,3V bereit stellen können. Zur Not
tun's auch 5V. Das Betriebssystem des Laptops ist Linux.
Gefunden habe ich den:
https://www.amazon.de/gp/product/B016BL6EZG/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1
Offensichtlich ist das der Schaltplan dazu:
http://d1gsvnjtkwr6dd.cloudfront.net/large/AC-PG-USBASP_03_LRG.jpg
Aber 100% sicher bin ich mir da nicht, denn der Schaltplan erscheint mir
unstimmig.
Ich sehe, dass das Target wahlweise nicht, mit 3,3V oder 5V versorgt
werden kann. Aber der AVR auf dem Programmer wird offensichtlich fest
mit 5V versorgt.
Meine beiden Fragen dazu sind:
Ich vermisse Pegelwandler in den Leitungen MOSI und SCK, oder wenigstens
simple Widerstände. Bin ich doof, oder werden da gerade bei Amazon
massenhaft Fehlkonstruktionen vertrieben?
Außerdem verstehe ich nicht, warum die beiden USB Leitungen mittels
Zenerdioden angepasst werden, obwohl doch eine saubere 3,3V Versorgung
vorhanden ist. Kann das jemand erklären?
Anmerkung: Ich weiß, daß der USBASP mit manchen Computern zickig
funktioniert. Ich probiere ihn erst aus, und wenn er Probleme macht,
schmeiß ich ihn weg. Hab ja noch einen guten von ATmel.
Stefan U. schrieb:> Ich vermisse Pegelwandler in den Leitungen MOSI und SCK, oder wenigstens> simple Widerstände. Bin ich doof, oder werden da gerade bei Amazon> massenhaft Fehlkonstruktionen vertrieben?
Beides ;-) Die meisten AVRs vertragen halbwegs die 5V an den Eingängen
bei 3V3 Versorgung.
Der Schaltplan enthält nur einen 100nF Kondensator, was auche eher mutig
ist.
Stefan U. schrieb:> Außerdem verstehe ich nicht, warum die beiden USB Leitungen mittels> Zenerdioden angepasst werden, obwohl doch eine saubere 3,3V Versorgung> vorhanden ist. Kann das jemand erklären?
IIRC sind 12 MHz Takt bei 3V3 nicht mehr erlaubt.
Da ich sowieso ein anderes ISP Kabel anfertigen muss (mit 6pin Stecker),
werde ich da auch noch ein paar 180 Ohm Widerstände einfügen. Ist dann
zwar immer noch out-of-spec, aber besser als ganz ohne Schutz.
Ich muss dann nur aufpassen, dass ich die betroffenen Leitungen durch
andere Beschaltung nicht zu hoch belaste.
> IIRC sind 12 MHz Takt bei 3V3 nicht mehr erlaubt.
Aha, das wird es sein. Habe ich nicht bedacht.
Stefan U. schrieb:> Ich stelle gerade für meine Kids einen Einsteiger-Baukasten zusammen.> Ich brauche einen ISP Programmer für Targets, die mit 3,3 bis 3,6V> betrieben werden. Der Programmer soll optional auch eine> Spannungsversorgung von vorzugsweise 3,3V bereit stellen können.> Zur Not tun's auch 5V.
Du mußt dich schon entscheiden. Nur 3.3V fest ist dabei einfacher als
wahlweise 3.3V oder 5V.
> Gefunden habe ich den:> https://www.amazon.de/gp/product/B016BL6EZG/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1>> Offensichtlich ist das der Schaltplan dazu:> http://d1gsvnjtkwr6dd.cloudfront.net/large/AC-PG-USBASP_03_LRG.jpg
Ich weiß nicht, ob das "offensichtlich" ist. Aber der Schaltplan ist
furchtbar. Rein schon daher, wie er gezeichnet ist. Möglicherweise ist
er auch nicht korrekt, denn wenn ein USBASP schon die Umschaltung der
Targetspannung von 5V auf 3.3V per Jumper anbietet, dann wird für
gewöhnlich die Betriebsspannung des µC auf dem Programmer mit
umgesteckt. Und man nimmt einen µC, der die 12MHz auch bei 3.3V noch
schafft. Also z.B. einen ATmega88, statt eines ATmega8L.
> Meine beiden Fragen dazu sind:>> Ich vermisse Pegelwandler in den Leitungen MOSI und SCK, oder> wenigstens simple Widerstände.
Widerstände sind kontraproduktiv. Wenn, dann müssen sie eher niederohmig
sein (vielleicht bis 220R) und haben dann entsprechend wenig
Schutzwirkung. Andererseits können Widerstände gerade bei längeren
Anschlußkabeln das Klingeln auf den Leitungen verringern.
> Bin ich doof, oder werden da gerade bei Amazon massenhaft> Fehlkonstruktionen vertrieben?
Amazon stellt nur den Marktplatz bereit. Ansonsten ist das der gleiche
China-Ramsch wie bei ebay oder Aliexpress.
> Außerdem verstehe ich nicht, warum die beiden USB Leitungen mittels> Zenerdioden angepasst werden, obwohl doch eine saubere 3,3V Versorgung> vorhanden ist. Kann das jemand erklären?
Wenn man den AVR mit 5V betreiben will, dann liefert er zu hohe H-Pegel
für USB. Die beiden 68R Widerstände und die beiden Z-Dioden bringen das
dann wieder ins Lot. Wenn man den AVR fest mit 3.3V betreibt, dann sind
zumindest die Z-Dioden überflüssig.
> Anmerkung: Ich weiß, daß der USBASP mit manchen Computern zickig> funktioniert.
Zum Wording: USBASP ist der Name der Firmware. Die unterliegende
Hardware kann sehr unterschiedlich sein. Unverträglichkeiten liegen fast
immer an der Hardware, nicht an der Software.
Im Prinzip könnte man einen USBASP auch mit Universal-Treibern a'la
AVRISP an der ISP-Schnittstelle ausstatten. Daß man es nicht tut, hat
zwei Gründe:
1. verkompliziert das das "selfprogramming" Feature, denn da wird die
ISP-Schnittstelle umgekehrt verwendet, um den USBASP zu flashen
2. ist der USBASP explizit als low-cost Alternative gedacht. Wenn man
sich Aufwand machen will, kann man dann auch gleich einen µC mit
Hardware-USB verwenden.
Ich verwende in 90% der Fälle immer noch meinen Eigenbau USBASP (rein
5V) und das funktioniert prima. Die Z-Dioden habe ich auch nicht drin.
Das funktioniert trotzdem mit allen meinen PC, außer mit dem alten
Notebook.
Stefan U. schrieb:> Offensichtlich ist das der Schaltplan dazu:> http://d1gsvnjtkwr6dd.cloudfront.net/large/AC-PG-USBASP_03_LRG.jpg
Dein ausgegrabenes Schaltbild ist nicht auf dem aktuellsten Stand, dort
gibt es keinen Slow clock jumper mehr, die Taktrate wird per Software
(AVRDude bzw. Aufsatz) eingestellt.
Stefan U. schrieb:> Ich sehe, dass das Target wahlweise nicht, mit 3,3V oder 5V versorgt> werden kann. Aber der AVR auf dem Programmer wird offensichtlich fest> mit 5V versorgt.
3V3 Betrieb und 12MHz kann zu Problemen führen, lt Datenblatt ist diese
Betriebsart nicht zulässig.
Da bekanntlich die InSystemProgramming Schnittstelle bedient wird kann
es sein, dass auf der Versorgungsspannungsschiene des Targets Bauteile
dran hängen, die bei 5V ihren Betrieb einstellen, z.B diverse 2.4 GHz
Käfer für Wifi e.t.c.
Die Zenerdioden dienen vornehmlich dem Schutz des USB-Ports vor
eventuellen Spannungsspitzen beim An-/Abstecken im laufenden Betrieb.
Ich habe mir mehrere USB-ASP Programmer gebaut, ohne Z-Diode, 33 Ohm an
den USB-Leitungen, mit 3.3V @ 12MHz.
An dem ISP-Anschluss habe ich auch Widerstände, jeweils 100 Ohm.
Im Datenblatt des ATmega8L steht auf Seite 250 die Abbildung 119, diese
suggeriert dass er bei 3.3V und 14MHz noch läuft.
Bei 3.3V und 12MHz verbraucht er im aktiven Modus ca. 8mA.
Das 5V-Problem:
Wenn die 5V über die Freilaufdioden in die Versorgung des Targets fließt
und das Target weniger Strom zieht als rein fließt (Sleep-Modus), dann
steigt die Spannung eben bis auf ca. 4V oder bis zu 4.5V an.
Die Z-Dioden dienen nur dazu dass die 5V vom AVR nicht einfach in die
USB-Daten-Pins (3.3V) des Computers laufen. Die 68 Ohm begrenzen den
Strom dann auf (5V-3,3V)/68 Ohm = 25mA.
bianchifan schrieb:> Stefan U. schrieb:>> Offensichtlich ist das der Schaltplan dazu:>> http://d1gsvnjtkwr6dd.cloudfront.net/large/AC-PG-USBASP_03_LRG.jpg>> Dein ausgegrabenes Schaltbild ist nicht auf dem aktuellsten Stand, dort> gibt es keinen Slow clock jumper mehr
Doch.
> die Taktrate wird per Software (AVRDude bzw. Aufsatz) eingestellt.
Das ist kein Widerspruch. Die USBASP Firmware kann beides: sie liest den
Slow-Clock Jumper aus, um den default-ISP-Takt einzustellen. Darüber
hinaus versteht sie zusätzlich Steuerpakete, um die ISP-Taktfrequenz
auszuwählen/einzustellen.
Mike J. schrieb:> Im Datenblatt des ATmega8L steht auf Seite 250 die Abbildung 119, diese> suggeriert dass er bei 3.3V und 14MHz noch läuft.
Vom ATMmega8L habe ich nur ein verkürztes Datenblatt (16 Seiten), danach
kann der 8L max. 8MHz.
Ich habe diverse USBASP-Sticks, auf keinem befindet sich ein 8L.
Bis auf eine Ausnahme (ATMega8 16PU) befindet sich auf allen anderen ein
ATMega8A.
Lt. meinem Datenblatt benötigt der 8A für 12MHz (safe area) 4V
Betriebsspannung.
Es ist mir bekannt, dass einzelne Exemplare auch bei 3.3V einen 16MHz
vertragen sollen...
Mike J. schrieb:> Die Z-Dioden dienen nur dazu dass die 5V vom AVR nicht einfach in die> USB-Daten-Pins (3.3V) des Computers laufen. Die 68 Ohm begrenzen den> Strom dann auf (5V-3,3V)/68 Ohm = 25mA.
Auf meinem ältesten Stick befinden sich neben einer fetten
selbstrückstellenden 500mA-Sicherung zwei 5V1 Zenerdioden.
Ich habe die aktuellste USB-Spezifikation nicht im Kopf, ich erinnere
aber so Werte zwischen 4 und 5,5 Volt, bei meinen Rechnern, Monitoren
lagen die Logikpegel bislang immer zwischen 4,4 und 4,8 Volt.
Axel S. schrieb:>> Dein ausgegrabenes Schaltbild ist nicht auf dem aktuellsten Stand, dort>> gibt es keinen Slow clock jumper mehr>> Doch.
Streng genommen hast Du recht, das Thema bezieht sich explizit auf
USBASP V2.0, Mein neuester 2.0 Stick hat aber nur noch den VCC-Jumper
drauf, die anderen darf man nachträglich drauf löten.
Ich bezog mich bei meiner Aussage auf die neuesten Kompaktsticks, z.B.
evUSBasp von BAITE.
Manchmal findet sich dort ein Mikroschalter für VCC, oftmals muss man
erst einen Lötklecks setzen.
Das "offizielle" Schaltbild findet sich nach wie vor beim Entwickler
Thomas Fischl ;)
http://www.fischl.de/usbasp/MaLinux schrieb:> Die aktuellste braucht weder den Jumper noch explizite> Auswahl der Frequenz. Sie kann die optimale Frequenz selbst ermitteln.
Das ist wohl wahr, allerdings kommen diese Chinasticks wohl sehr oft mit
einer eigenen Variante (S51), um neben AVRs noch irgendwelche
Uralt-Controller zu unterstützen.
Alle meine Sticks prodizierten beim erstmaligen Gebrauch ausnahmslos die
bekannte SCKL-Fehlermeldung.
bianchifan schrieb:> Alle meine Sticks prodizierten beim erstmaligen Gebrauch ausnahmslos die> bekannte SCKL-Fehlermeldung.
Das kommt davon dass der AVR in seiner Standardeinstellung mit 1MHz
läuft und die ISP-Clock dementsprechend niedrig sein muss.
Bei meinem muss ich nur den Slow-Jumper setzen und schon funktioniert
es.
bianchifan schrieb:> fetten> selbstrückstellenden 500mA-Sicherung zwei 5V1 Zenerdioden.
Das bezieht sich nur auf die Stromversorgung.
Die Sicherung um den USB-Anschluss zu schützen und die Z-Diode dient nur
dazu um Spannungsspitzen abzufangen.
Wenn aus dem USB-Anschluss des PC 5.5V kommen würden, dann würde ein
Strom über die Z-Diode fließen und die Sicherung würde auslösen.
Was ich mit den 3.3V meinte ist die Spannung auf Data+ und Data- , denn
die liegt eben nur bei 3.3V und nicht bei 5V.
bianchifan schrieb:> Vom ATMmega8L habe ich nur ein verkürztes Datenblatt (16 Seiten)
Ich lade mir immer das komplette Datenblatt runter, denn mit den
verkürzten kann man ja nichts anfangen ... ist eher solch eine Art
Werbeflyer.
Mike J. schrieb:> bianchifan schrieb:>> Alle meine Sticks prodizierten beim erstmaligen Gebrauch ausnahmslos die>> bekannte SCKL-Fehlermeldung.>> Das kommt davon dass der AVR in seiner Standardeinstellung mit 1MHz> läuft und die ISP-Clock dementsprechend niedrig sein muss.
Das ist nicht die Fehlermeldung, die bianchifan meinte. Diese Meldung
kommt von avrdude und besagt, daß die USBASP Firmware nicht auf Pakete
zur Einstellung des ISP-Taktes reagiert. Was i.d.R. bedeutet, daß sie
schlicht veraltet ist.