AtMega8L mit USBASP

OP #2513673
Lesenswert?

Hallo @ all

Ich habe eine Platiene entwickelt, welche ich nun mit dem USBASP 
programmieren will. Ich habe dafür extra 4 PINs auf meine Platiene 
gelötet da ja nur 4 zum schreiben benötigt werden und die anderen 6 auf 
Masse liegen. Jetzt habe ich aber doch noch ein paar Fragen dazu:

1. Ich will den AtMeage8L programmieren, welcher ja schon ab 2,7V 
funktioniert. Mein Board ist nur für 3V ausgelegt. Ich habe bis jetzt 
immer nur den normalen AtMega8 beschrieben und das mit 5V. Kann ich den 
AtMega8L auch schon mit 3V beschreiben?

2. Reicht es nur die 4 PINs an die Platine anzuschließen oder muss ich 
wirklich die anderen 6 auf Masse legen?

3. Der USBASP liefert mir 5V. Wenn ich jetzt den AVR programmiere, 
liegen diese 5V an auch an meinem Board an? Also werden an diese 4 PINs 
die 5V gelegt? Habe zwei sehr empfindliche Bauteile drauf die nur mit 3V 
betrieben werden dürfen. Ich möchte auf keinen Fall das diese kaputt 
gehen.

Ich hoffe ihr könnt mir helfen. Viele Grüße
Jack P.
OP #2513777
Lesenswert?

Okay schonmal danke für deine Antowort. Leider steht mir der AVR USB-Lab 
gerade nicht zur verfügung und bauen kann ich ihn mir auf die schnelle 
auch nicht. SOnst noch Ideen oder so? Also mit dem USBASP besser nicht 
probieren? Die Bauteile sind SD Karte und VS1011 (Mp3 Decoder). Beide 
laufen halt nur mit 3V...
#2513803
Lesenswert?

Jack P. schrieb:
> 2. Reicht es nur die 4 PINs an die Platine anzuschließen oder muss ich
> wirklich die anderen 6 auf Masse legen?

Mosi, Miso, SCK, Reset sind wohl deine 4. Natürlich sollte wenigstens 
GND mit GND verbunden werden. Die "anderen" Leitungen des ISP-Verbinders 
würde ich nicht an Masse legen. VCC sollte mit VCC verbunden werden, 
wenn nachher mal einer einen Porgrammer mit VCC-Sensing benutzt.

Wenn du mit wenig ISP-Frequenz programmierst, kannst du in Serie zu 
MOSI(der Target-AVR ist ein Slave) und SCK je einen Widerstand einfügen, 
der zusammen mit den Internen Schutzdioden des Targets nach VCC die 
Spannung begrenzt.
Ein Spannungsteiler ist auch nicht besser. Ein Levelshifter oder ein 
5V-toleranter 3.3V-Bustreiber ist wohl der Königsweg, sowas gehört aber 
nicht auf die Target-Schaltung, sondern in den Programmer.

Ich bin den Weg andersrum gegangen: In meinem USBASP steckt ein 
3,3V-Spannungsregler. Das erspart einem das Z-Diodengefummel an D+ und 
D- oder diese Konstrukte mit LED oder Z-Diode in der VCC-Leitung des 
Controllers. Ein LM317 oder ein LP2950 sind nicht teuer.
Ich musste lediglich die MISO-Leitung(von Target zu Programmer) mit 
einem Widerstand schützen, falls das Target mit 5V läuft. Nebenher kann 
ich einstellen, ob ich das Target mit 3.3V/5V/garnicht aus dem 
Programmer speise.

mfg mf
OP #2515818
Lesenswert?

Habe heute nochmal meinen Lehrer gefragt und mit diesem habe ich 
folgendes überlegt.

Wir schalten einfach 3 Dioden in Reihe ( 3 * 0.6V = 1.8V ) und dann 
komme ich auf meine 3.2V am Ausgang des Programmers. Das ganze soll dann 
so aufgebaut werden:

VCC  => in Durlassrichtung
GND  => durchverbunden
MOSI => in Durlassrichtung
MISO => in Sperrrichtung
SCK  => in Durlassrichtung

Was haltet ihr davon? Wird das funktionieren? Und sind die Richtungen 
der Dioden dann so richtig? Im USBASP wird dann auch ein AtMega8L 
eingesetzt. Laut dem Datenblatt laufen die SD Karte und der VS1011 auch 
noch mit 3.6V - da sollte also nicht das Problem liegen.
Gast #2515839
Lesenswert?

>Was haltet ihr davon?

Nichts. Kauf dir einen Original AVR ISP MKII
und du bist alle Probleme los. Alleine das rumgehühner
hier hat doch schon mehr als 39Euro gekostet.

Dioden taugen als Spannungsregler nicht die Bohne.
Wenn du deine Schaltung unbedingt umbringen willst
dann versuchs halt.
OP #2515912
Lesenswert?

Aber warum sollte es nicht funktionieren? Es fällt genau die Spannung ab 
die ich brauche und der Strom sollte sich doch auch nicht viel dadurch 
verändern (Reihenschaltung => Strom überall gleich). Der USB Port 
liefert auch nur 500mA das sollte die Dioden auch nicht zerstören oder?

Nur mal so aus reiner Interesse - wäre die Schaltung (Durchlass- und 
Sperrrichtung) der Dioden denn so richtig??
OP #2516865
Lesenswert?

Du meinst also ich soll die Spannung reduzieren bevor sie in den USBASP 
geht? Welche Spannungen liege denn beim programmieren an den 
Datenleitungen an?

Wenn ich mir eine Adapter Platine machen würde, welche den VCC vom USB 
Port auf 3V beschränkt und dann erst zum USBASP geht, müssen dann auch 
die anderen 3 Leitungen des USB Ports abgeschwächt werden oder liegen 
die Datensignale dann automatisch zwischen 0-3V? Die Datensignale werden 
ja wohl abhängig vom VCC generiert also müssten sie ja zwischen 0-3V 
liegen - sehe ich das richtig so?
OP #2516905
Lesenswert?

Habe gerade mal meinen USB Port durchgemessen. An VCC liegen 5V an Wie 
es sein sollte. Allerdings liegen an D- 3.9V an und an D+ 0V. Habe das 
ganze gemessen als der AtMega8 abgeschlossen war. Aber irgendwie kommt 
mir das komisch vor. Ändert sich das beim Programmieren noch?
OP #2516947
Lesenswert?

Ah okay wunderbar vielen dank :)

Habe gerade auch mal einen Brennvorgang am MISO, MOSI und SCK mit 
durchgemessen. Da waren eigentlich nie mehr als 1.9 - 2V im Spiel und 
der Reset wird ja eh auf GND gezogen. Ist das auch richtig so?

Und ganz zur sicherheit nochmal - die anderen 3 Leitung bleiben 
unberührt nur VCC wird auf 3V runtergezogen!?

Vielen Dank nochmal für deine Hilfe. Du hast mir wirklich sehr viel 
weitergeholfen :)
OP #2520130
Lesenswert?

Habs gestern versucht zu bauen aber das geht leider so nicht. Wenn der 
USBASP nur mit 3V versorgt wird, muss ja ein AtMega8L da rein. Dieser 
läuft aber nur mit 8MHz und die USBASP Software benötigt 12 MHz. Geht 
also ohne weiteres nicht so einfach :(

Habe heute jetzt die Ausgänge des USBASP mit den Dioden beschaltet und 
diese liefern jetzt an meine Platine nur 3V. Allerdings mus ja über MISO 
5V zurückkommen. Hatte mir überlegt da einen Pull Up Widerstand 
reinzubauen aber weiß nicht welchen? Was würdet ihr da für einen 
vorschlagen?
OP #2520185
Lesenswert?

Ja genau deswegen brauche ich ja jetzt den Pull Up Widerstand. Habe im 
USBASP nun wieder den AtMega8 und dieser versorgt mein Board über die 
Dioden nur mit 3V. Allerdings muss über MISO ja wieder 5V ankommen - 
deswegen der Widerstand aber ich weiß nicht welchen ich nehmen soll...
OP #2521509
Lesenswert?

Hab die Lösung gefunden - steht in einem anderen Thread hier:

>bei den neuen Atmega8-16PU oder Atmega48-20PU liegt der LO-Pegel der
>Pins um 0.3V höher als bei den alten.
>Der USB Port kann somit das LO Signal nicht mehr eindeutig
>identifizieren.
>
>Ich hab mit einer Universal Diode die Programmer Masse gegenüber der USB
>Masse um 0.5V nach unten gezogen und der Programmer wird wieder
>wunderbar erkannt.

Aber woher soll ich jetzt die 0.3V bzw die 0.5V nehmen? Jemand ne Idee??

Bei dem zitierten Beitrag von oben war auch noch der Schaltplan bei der 
auch diesem Beitrag angefügt wurde. Aber irgendwie verstehe ich nicht so 
ganz wo ich jetzt die Diode einbauen müsste.
Angehängte Dateien:
OP #2524087
Lesenswert?

Ich verstehe leider nicht so ganz was das bringen soll. PIN4 am USB 
Anschluss ist GND. Warum dann eine Diode in Sperrichtung zu GND?? Was 
bringt mir das?

Außerdem kann ich die Diode an jedes GND in dem SChaltplan anschließen? 
GND sollte ja eigentlich überall gleich sein also sollte das jawohl 
gehen oder?
#2524177
Lesenswert?

Hubert G. schrieb:
> Hast du es mit einem Spannungsregler auf 3,3V schon probiert?

Das ist sowieso eine mehr brauchbare Methode.
Probiers einfach mal mit LM317(musst du erst mit zwei Widerständen auf 
3,3V einstellen) oder dem LP2950 für 
3,3V(http://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=lp2950-n&reg=en&fileType=pdf).

In die MISO-Leitung muss dann ein Widerstand rein, der den Programmer 
dann auch 5V-Kompatibel macht. Mit dem Jumper/Schalter für "Target aus 
USBASP versorgen" kann ich bei meinem USBASP nun zwischen 5V oder 3,3V 
oder "aus" umschalten.

Mein 3,3V-USBASP passt ohne Not in diese 
Schachtel:http://www.pollin.de/shop/dt/NzU5OTQ2OTk-/Stromversorgung/Ladegeraete/Spezielle_Lader/Ladeadapter_SEC_0500.html 
:)

mfg mf
Gast #2524210
Lesenswert?

> Da sagt mir Burn'o'Mat aber immer "Target does not answer"

@ Jack P.
Bei einem Fabrik neuen AVR musst du deinen USBasp auf "SlowSCK" stellen, 
erst dann kann der USBasp mit dem AVR kommunizieren.

An der Spannung liegt es nicht, der ATmega8L läuft bei der gleichen 
Frequenz mit einer niedrigeren Spannung.(ist halt besser als die 
nicht-L-Version, hab das bei einigen ATmega8 und 8L ausprobiert, die 
L-Version ist immer hochwertiger)
OP #2524762
Lesenswert?

Ich glaube zwar nicht das euch dsa groß was helfen wird aber es sieht so 
wie im Bild aus. Farben:

Rot => VCC
Blau => GND
GRÜN => SCK
GELB => MOSI
Schwarz => MISO
Weiß => Reset

Es sind 10k Widerstände, welche den Spannungseinbruch verhindern sollen. 
NIcht irritieren lassen von den anderen Bauteilen auf der Lochplatine - 
die sind unwichtig hierfür bzw auch gar nicht angeschlossen.
Angehängte Dateien:
(Firma: eHaJo.de) Persönliche Seite #2524936
Lesenswert?

Jack P. schrieb:
> Ich verstehe leider nicht so ganz was das bringen soll. PIN4 am USB
> Anschluss ist GND. Warum dann eine Diode in Sperrichtung zu GND?? Was
> bringt mir das?
>
> Außerdem kann ich die Diode an jedes GND in dem SChaltplan anschließen?
> GND sollte ja eigentlich überall gleich sein also sollte das jawohl
> gehen oder?

Dadurch, dass du eine Diode zwischen die USB-Masse und deine 
Platinen-Masse hängst wird das Masse-Potential der Platine um die 
Durchlassspannung der Diode angehoben. Das bedeutet, dass zB die 5V vom 
USB nur noch 4,4 Volt sind. Und damit dein Low-Pegel auch sinkt und 
wieder richtig erkannt wird...

Stichwort: Virtuelle Masse.
Auf diese Art kannst du zB auch die Spannung von nem 78xx ändern.
1
      ____
2
In --|78xx|-- Out
3
     |____|
4
       |
5
     -----
6
      \|/
7
      ---
8
       |
9
      GND
OP #2525451
Lesenswert?

Ich könnte doch eigentlich auch einen Transistor nehmen, die MISO 
Leitung an die Basis legen, an den Kollektor 5V legen und den Emitter an 
den MISO PIN des programmers oder?

Habe hier einen BC547. Welche Widerstände würdet ihr da an Basis und 
Kollektor vorschlagen? Reichen da jeweils 10k Ohm aus??
Gast #2525752
Lesenswert?

Wenn du deinen AVR auf dem mp3-Board (welches mit 3V läuft) beschreiben 
möchtest musst du nur die Betriebsspannung deines Programmers auf 3V 
setzen.

Durch die langen Leitungen setzt du dein USBasp noch auf Slow und dann 
geht das.
OP #2529539
Lesenswert?

Also ich habe es jetzt so einigermaßen hinbekommen. Die Fuses können 
manchmal ausgelesen werden allerdings nicht immer. Der USBASP legt jetzt 
3.3V an mein Board.

Wenn ich jetzt die Fuses auslesen und es erfolgreich war kommen über die 
MISO Leitung 3.3V zurück wenn es fehlgeschlagen ist kommen nur 2.8V 
zurück. Hat jemand eine Idee woran das liegen könnte? Die 3.3V am 
Eingang vom Board sind konstant. Wo könnte der Fehler liegen??

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren