Forum: Mikrocontroller und Digitale Elektronik USBASP v2.0 Fehlerhafte Schaltung?


von Stefan F. (Gast)


Lesenswert?

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.

von Jim M. (turboj)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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.

von bianchifan (Gast)


Lesenswert?

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.

von Mike J. (linuxmint_user)


Lesenswert?

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.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

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.

von MaLinux (Gast)


Lesenswert?

Axel S. schrieb:
> Doch.

Doch nicht. Die aktuellste braucht weder den Jumper noch explizite 
Auswahl der Frequenz. Sie kann die optimale Frequenz selbst ermitteln.

Siehe z.B.:

http://www.avrfreaks.net/forum/automatic-software-controlled-clock-jumper-free-usbasp

http://www.avrfreaks.net/forum/usbasp-auto-speed-firmware-testing

von bianchifan (Gast)


Lesenswert?

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.

von Mike J. (linuxmint_user)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.