Forum: Mikrocontroller und Digitale Elektronik AVR lab als programmer @ 3,3V @ win7


von uC (Gast)


Angehängte Dateien:

Lesenswert?

Hi,
ich möchte das AVR lab direkt auf meinem neuen Board @3,3V haben.
Da, soweit ich weiss, das AVR lab für 5V ausgelegt ist (zB Z-Dioden an 
dem USB Datenanschluss), müssten doch einige Bauteile wegfallen/ sich 
eventuell ändern.
Da Win7, werd ich STK500 v2 Firmware nehmen.

nun meine Frage:

Funktioniert meine Schaltung? kann ich noch mehr weg lassen?
Muss ich den ATmega8 zuerst zB seriell programmieren, damit ich meinen 
ATmega169 über USB programmieren kann?

Wie sieht der Ablauf denn ungefähr aus?

von Hubert G. (hubertg)


Lesenswert?

Das AVR Lab läuft mit 3,3V, die Z-Dioden sind optional.
Du musst den Bootloader über ISP laden, die STK500 Firmware geht dann 
über USB und dem USB-AVR-Lab Tool.

von bitte löschen (Gast)


Lesenswert?

Ich weiß nicht, ob Christian mittlerweile andere USB-Routinen etc.. in 
seiner Firmware hat, aber nach meinem (1 Jahr alten) Wissenstand fehlt 
beim Quarz eine 1 vor der 2. (12 MHz)

von uC (Gast)


Lesenswert?

könnte sein hab da jetzt einfach irgedeine Frequenz gewählt.
Bist du dir sicher, dass 12MHz nötig sind? Laut Datenblatt (Deckblatt) 
kann der ATmega8L (2.7V-5.5V) nur 0-8MHz

von bitte löschen (Gast)


Angehängte Dateien:

Lesenswert?

Tja, das ist auch etwas, was mich von Anfang an verwirrt hat, aber wo 
ich ganz zielorientiert - entgegen meiner Natur - drüber hinweg gesehen 
habe, weil ich das Teil ganz am Anfang mal als Taktgeber, dann nur als 
Programmer brauchte und es funktionierte.

Im Original-Schaltplan, den ich als Vorlage zum Eigenbau genommen hatte, 
steht 12 MHz:
http://shop.ullihome.de/catalog/userdownloads/10403_0de_0Schaltung.pdf
In der Stückliste steht ATMEGA8-16AI, und für den ist als 
Reichelt-Bestellnummer "ATMEGA 8-16 TQ" angegeben, was wiederum der AU 
ist, den ich kenne:
http://wiki.ullihome.de/index.php/USBAVR-ISP/Building/de
Das aktuelle Datenblatt vom ATmega8 selbst kennt jedoch für TQFP-32 nur 
die Endung "AU" (S. 292). Auf der Atmel-Homepage habe ich auch keinen 
ATmega16-AI gefunden. Weiß jemand, was das AI soll?

Ich habe mal meinen damaligen Nachbau mit einem ATmega8-16AU als Bilder 
angehängt. Funktioniert hat das Teil immer, ich habe es nur im Herbst 
als Bilder dokumentiert, auseinander genommen, und die Teile auf ein 
neues Layout und in ein Gehäuse gepackt, weil die lose Platine so nicht 
auf Dauer labortauglich war. Wie man sieht, habe ich die beiden 
Zenerdioden weg gelassen und die 3,3 V-Spannungsregelung mit einem 
Schalter überbrückt.
Bei meinem neuen AVR Lab habe ich beides nicht mal im Layout vorgesehen, 
weil ich das Teil nur mit 5 V betreibe. Mir fehlen daher tiefer gehende 
Erfahrungen im 3,3 V-Betrieb, ich meine aber das das Teil damit z.B. als 
Taktgenerator gelaufen ist. Ich bin mir nicht sicher, aber ich denke, 
die Zenerdioden kann man auch weglassen, da Vorwiderstände vorhanden 
sind und die Eingänge intern mit Dioden nach Vcc geschützt sind. Andere 
Meinungen würden mich interessieren.

Edit:
Ich sehe gerade, dass Du die Vorwiderstände und Zenerdioden weg gelassen 
hast. Was hat es damit auf sich?

von Hubert G. (hubertg)


Lesenswert?

Meines Wissen nach sind die Datenleitungen vom USB für 3,3V 
spezifiziert, daher würde ich die Z-Dioden und Widerstände bei 5V 
Betrieb nicht weglassen.
In meinem beiden Programmern sind 12MHz Quarze drinnen.

Das mit dem Mega8L ist ein allgemeiner Irrtum, es wird nur selektiert ob 
der Chip bei 2,7V noch sicher 8MHz kann, wenn ja ist er ein 8L wenn nein 
dann ein 8-16. Vorausgesetzt das die anderen Bedingungen erfüllt sind.

von uC (Gast)


Lesenswert?

Dachte, ich kann die Zenerdioden weglassen, da ich das AVR Lab mit 3,3V 
betreibe. Die Vorwiderstände gehören, wenn ichs nochmal betrachte, 
wahrscheinlich doch rein.

von uC (Gast)


Lesenswert?

uC schrieb:
> Die Vorwiderstände gehören, wenn ichs nochmal betrachte,
> wahrscheinlich doch rein.

Aber eigentlich doch nicht^^, ich mein, die Vorwiderstände sind doch nur 
mit den Z-Dioden sinnvoll, wenn sie Durchbrechen sind sie ja niederohmig 
nach Masse, daher der Vorwiderstand.

Oder sehe ich das falsch?

von Rubelus (Gast)


Lesenswert?

uC schrieb:
> könnte sein hab da jetzt einfach irgedeine Frequenz gewählt.
> Bist du dir sicher, dass 12MHz nötig sind? Laut Datenblatt (Deckblatt)
> kann der ATmega8L (2.7V-5.5V) nur 0-8MHz

12Mhz sind nötig, wenn man den Source anpasst sind auch 20Mhz mit einem 
Atmega88 / 168 - 20 möglich.

Ich betreibe das AVRLab allerdings mit einem Atmega8L-8PU ABER auf 
12Mhz. geht eigentlich einigermaßen - bis auf UART, da verschluckt er 
sich hin und wieder nach dem 3Byte. Proggen etc. geht aber problemlos.

Nur zwei Sachen stören mich ein wenig:

1.) Ich bekomme das Ding beim besten willen, nach aufspielen einer 
"firmeware", nicht mehr in den Bootmodus. Sei es mit der Software von 
USB AVR-Lab oder via Pin C2 auf Masse ziehen. Woran das liegt, keine 
Ahnung, er springt immer in den Startsektor der Firmeware.

2.) Wenn ich mir die Routine für einen Mega168 compiliere (STK500), 
funktioniert diese zwar und wird erkannt, allerdings meldet mir AVR 
Studio eine "falsche" Hardware Version, gleicher Code nur für einen 
Mega8 - funktioniert tadellos.

Hat die Erfahrung schon mal jemand machen können?!

von bitte löschen (Gast)


Lesenswert?

uC schrieb:
> ich mein, die Vorwiderstände sind doch nur
> mit den Z-Dioden sinnvoll, wenn sie Durchbrechen sind sie ja niederohmig
> nach Masse, daher der Vorwiderstand.

Hier findet sich der Schaltplan vom AVR Lab:
http://shop.ullihome.de/catalog/userdownloads/10403_0de_0Schaltung.pdf

Die Zenerdioden schützen die USB-Leitung vor den 5 V vom AVR und 
brauchen die Vorwiderstände, das ist richtig. Die Vorwiderstände könnten 
aber auch umgekehrt die Schutzdioden der Eingänge des AVR vor zu hohen 
Strömen schützen, wenn vom USB-Bus zu hohe oder negative Spannungen 
kämen. (Und so hatte ich das zwischenzeitlich mal verstanden, daher 
mein Irrtum.)

@Rubelus:
Interessante Probleme hast Du da. Zu 1 fällt mir natürlich zuerst die 
obligatorische Frage nach den Fuses ein. Bei mir ist das Problem noch 
nicht aufgetreten. Zu 2 kann ich nichts sagen, da ich keinen ATmega168 
da habe.
Ich würde bei Problemen erst mal den "richtigen" ATmega8-16 einsetzen 
und schauen, ob es daran liegt.

von uC (Gast)


Lesenswert?

Philipp Klostermann schrieb:

> Die Zenerdioden schützen die USB-Leitung vor den 5 V vom AVR und
> brauchen die Vorwiderstände, das ist richtig. Die Vorwiderstände könnten
> aber auch umgekehrt die Schutzdioden der Eingänge des AVR vor zu hohen
> Strömen schützen, wenn vom USB-Bus zu hohe oder negative Spannungen
> kämen. (Und so hatte ich das zwischenzeitlich mal verstanden, daher
> mein Irrtum.)

Also ich muss zugeben, dass ich nicht der USB experte bin, würde die 
Datenleitungen aber hochohmig schätzen, daher keine Vorwiderstände.

=> ich Layoute jetzt meinen Schaltplan :)

von bitte löschen (Gast)


Lesenswert?

Ich würde an Deiner Stelle vorher nochmal folgenden Thread lesen:
Beitrag "USB Impedanz 90Ohm"

Folgendes PDF ist zwar Werbung, aber scheint auch recht informativ:
http://www.we-online.com/web/de/index.php/show/media/import/emc/application_notes_berichte/Robustes_Design_von_USB_20_Anwendungen.pdf

Ich würde die USB-Datenleitungen eigentlich eher für niederohmig halten. 
Immerhin müssen möglichst schnell Leitungskapazitäten gefüllt werden. 
(Ich bin hier auch kein Experte, also lasse ich mich gerne von jemandem, 
der es aus zuverlässiger Quelle weiß, eines Besseren belehren.

Unabhängig davon brauchst Du bei Deinem Design tatsächlich keine 
Vorwiderstände, da Du auf 3,3V bleibst.

von Rubelus (Gast)


Angehängte Dateien:

Lesenswert?

Philipp Klostermann schrieb:
> Interessante Probleme hast Du da. Zu 1 fällt mir natürlich zuerst die
> obligatorische Frage nach den Fuses ein. Bei mir ist das Problem noch
> nicht aufgetreten. Zu 2 kann ich nichts sagen, da ich keinen ATmega168
> da habe.
> Ich würde bei Problemen erst mal den "richtigen" ATmega8-16 einsetzen
> und schauen, ob es daran liegt.

Sooo delle...

Nachdem ich nun heute einen Atmega8-16PU probierte und ich immer noch 
mit den selben Problemen kämpfen musste, habe ich mich mal über die 
Fuses gemacht... und siehe da... BOOTRST war nicht gesetz :x Nuja, habe 
nun für den 168 kompiliert und es funktioniert tadellos.

Bootloader und STK500 Firmeware sind im Anhang.

Als Fuses nutze ich: HighFuse: 0xDF / LowFuse: 0xFF / ExtFuse: 0x00

von uC (Gast)


Lesenswert?

So, nur noch kurz eine kleine Frage, wofür benötige ich SV2?

von Rubelus (Gast)


Lesenswert?

Der ganze Zweig wäre bei dir Hinfällig, über SV2 hättest du den Reset 
auf dein "USB Atmega" legen können, um ihn via ISP zu programmieren.

Da du aber keine Möglichkeit vorgesehen hast "extern" in den kompetten 
ISP Zweig einzugreifen entfällt dieser. Sollte jedoch mal ein Problem 
auftreten kann dann natürlich weder der Mega169 noch der Mega8 mit einem 
externen Progger programmiert werden.

von uC (Gast)


Angehängte Dateien:

Lesenswert?

Rubelus schrieb:
> Der ganze Zweig wäre bei dir Hinfällig, über SV2 hättest du den Reset
> auf dein "USB Atmega" legen können, um ihn via ISP zu programmieren.

Also etwa so?

von Rubelus (Gast)


Lesenswert?

uC schrieb:
> Also etwa so?

Jep so finde ich es, für den Notfall, eindeutig die bessere Variante. 
Solange der Platz auf der Platine verfügbar ist und das Routing nicht 
all zu sehr darunter leidet - sollte man auf jeden Fall ein externes ISP 
vorsehen.

von uC (Gast)


Lesenswert?

Rubelus schrieb:
> uC schrieb:
>> Also etwa so?
>
> Jep so finde ich es, für den Notfall, eindeutig die bessere Variante.
> Solange der Platz auf der Platine verfügbar ist und das Routing nicht
> all zu sehr darunter leidet - sollte man auf jeden Fall ein externes ISP
> vorsehen.

mhm macht auch sinn, wollte nur nicht gleich den Schaltplan überfüllen, 
damits übersichtlich bleibt :)

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.