www.mikrocontroller.net

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


Autor: uC (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: bitte löschen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: uC (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: bitte löschen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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/1040...
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?

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: uC (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: uC (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rubelus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?!

Autor: bitte löschen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/1040...

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.

Autor: uC (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: bitte löschen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/med...

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.

Autor: Rubelus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: uC (Gast)
Datum:

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

Autor: Rubelus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: uC (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Rubelus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: uC (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.