Hallo alle zusammen.
Ich hoffe hier auf ein wenig Hilfe. Bin noch etwas neu in der µC
Programmierung.
Also folgendes:
Ich habe einen ATtiny25 den ich mithilfe eines USBasp von Fischl
programmieren möchte.
Den Tiny habe ich direkt mit den jeweiligen Anschlüssen des Progammers
verbunden. Pin 2 und 3 bleiben frei. Die Spannungsversorgung mach ich
über den Programmer. Ist die Schaltung so richtig, oder muss ich noch
irgendwelche Kondensatoren oder Widerstände mit einbringen? Habe jetzt
schon eine Menge gelesen, aber die einen sagen mit, die anderen ohne.
Der USBasp wird unter Win7 erkannt und ist auch installiert. Ich benutze
Atmel Studio 6 und habe die Programmer nach der Anleitung eingebunden.
Soweit funktioniert es auch alles und ich habe es auch geschafft
scheinbar den Chip zu flashen.
Als Befehl benutze ich
Es kam immer mal wieder ein Verifizierungsfehler, aber wenn man es öfter
versucht hat, hat es auch mal geklappt. Dann habe ich versucht Fuses zu
setzten. Also Low habe ich 0x7A, dass ging auch noch aber als High 0xFB
wollte er dann nicht mehr? Jetzt antwortet er nicht mehr. Liegt es am
internen Takt (ist jetzt glaub ich auf /8)? Wenn ich jetzt ein –B 1000
hinzufüge kommt folgende Meldung:
Die 1000 Hz sollten jetzt ja eigentlich langsam genug sein, oder?
Leider habe ich auch keinen zweiten Programmer um die Firmware auf den
neusten Stand zu bringen. Sollte aber auch so gehen, oder nicht?
Jetzt hat es vermutlich schon ein paar Tinys dahingerafft und ich
bräuchte jetzt wirklich mal dringend Hilfe. Ich hoffe ich habe keine
wichtigen Infos vergessen.
Kann mir jemand erklären, was ich falsch mache bzw. was ich ändern muss?
Vielen Dank
Freddy
Freddy schrieb:> Dann habe ich versucht Fuses zu> setzten. Also Low habe ich 0x7A, dass ging auch noch aber als High 0xFB> wollte er dann nicht mehr? Jetzt antwortet er nicht mehr.
Was sagt denn das Datenplatt zu deinen Fuse-Settings?
Ich würde einen anderen programmer nehmen. Der USBASP ist für sein
unzuverlässiges USB Interface bekannt.
Nimm lieber einen Programmer mit einem richtigen USB Interface. Die
meisten haben 2 Chips drauf: Ein USB-UART Interface, sowie einen AVR.
Du hast die Low Fuses für "externen Chrystal" eingestellt und vermutlich
keinen Quarz angeschlossen.
Kannst Du hier nachvollziehen: http://www.engbedded.com/fusecalc
Erstmal vielen Dank für die schnelle Antwort.
D. V. schrieb:> Was sagt denn das Datenplatt zu deinen Fuse-Settings?
Ich habe es mit dem Calculator (http://www.engbedded.com/fusecalc/)
gemacht.
Habe mal einen Screenshot angehängt.
stefanus schrieb:> Du hast die Low Fuses für "externen Chrystal" eingestellt und vermutlich> keinen Quarz angeschlossen.
Oh ja, hab ich nicht bemerkt. Habe die Schaltung fertig gekriegt und
darauf nicht weiter geachtet.
Brauch ich den Quarz nur zum Programmieren? Weil in der fertigen
Schaltung nachher ist auch keiner drin. Was für einen muss ich da
nehmen? 20 MHz?
Freddy schrieb:> Brauch ich den Quarz nur zum Programmieren? Weil in der fertigen> Schaltung nachher ist auch keiner drin. Was für einen muss ich da> nehmen? 20 MHz?
Schau dir mal das Datenblatt des Tiny mal genau an. Da steht alles drin,
was du wissen willst.
Solange die Fuses für Quarz eingestellt sind, braucht der Chip einen
Quarz um zu funktionieren. Wenn die Schaltung keinen Quarz hat, müssen
die Fuses anders eingestellt werden (z.B. internal R/C oscillator). Ich
frage mich ernsthaft, warum Du die fuses überhaupt geändert hast?
Jetzt brauchst du jedenfalls einen Quarz oder einen externen Oszillator
(mit TTL Ausgang) an Pim XTAL1, damit du die Fuses wieder zurück stellen
kannst.
D.V. schwatzte wirr:
>Schau dir mal das Datenblatt des Tiny mal genau an. Da steht alles drin,>was du wissen willst.
Kannst Du auf eine gestellte Frage eingehen, deren Sinn erfassen?
Nein? Dann halte die Pfoten still!
@Freddy
Mit der Fusebit-Kombination aus Deinem Bild hast Du einen Kristall-
OSZILLATOR eingestellt, keinen Quarz. Du mußt nun eine Frequenz zwischen
1 und 3MHz extern erzeugen und anlegen. Dann bekommst Du wieder Zugriff.
Erast Fandorin
Stefan us schrieb:> Solange die Fuses für Quarz eingestellt sind, braucht der Chip> einen> Quarz um zu funktionieren. Wenn die Schaltung keinen Quarz hat, müssen> die Fuses anders eingestellt werden (z.B. internal R/C oscillator). Ich> frage mich ernsthaft, warum Du die fuses überhaupt geändert hast?>> Jetzt brauchst du jedenfalls einen Quarz oder einen externen Oszillator> (mit TTL Ausgang) an Pim XTAL1, damit du die Fuses wieder zurück stellen> kannst.
Also so ganz schlau werde ich nicht aus dem Datenblatt, aber wenn ich es
richtig sehe, müsste ein 4 MHz mit 2 22 pF Kondensatoren an XTAL1/2 und
GND funktionieren, oder?
Ich habe die Fuses geändert, weil das von dem "Erfinder" der Schaltung
so vorgeschrieben war. Und ich noch am Lernen bin, was die ganze
Programmierung und Schalung angeht.
Sehe ich es denn richtig, dass die Schaltung mit dieses
Fuse-Einstallungen und ohne Quarz auch nicht funktionieren kann?
Ich muss jedoch sagen, dass ich auch einen habe, bei dem ich die Fuses
nicht geändert habe und er nict mehr antwortet. Muss ich sonst an der
Schalung noch was ändern? Oder woran kann das liegen?
Ja, so einen Oszillator oder irgendetwas Anderes, was diese Frequenz
erzeugen kann, z.B. ein Funktionsgenerator oder ein astabiler Multi-
vibrator aus 2 Transistoren oder aus einem Gatter eines 4093.
>Ich muss jedoch sagen, dass ich auch einen habe, bei dem ich die Fuses>nicht geändert habe und er nict mehr antwortet.
Mache jetzt nicht in Panik noch die restlichen Controller unbrauchbar.
Erast Fandorin
Ok, dann werd ich mir den nachher mal besorgen.
Эраст Петрович Фандорин schrieb:> Mache jetzt nicht in Panik noch die restlichen Controller unbrauchbar.
Habe ich nicht vor, im Moment kann ich ja eh nicht weiter machen.
Außerdem hab ich eigentlich nicht vor, es so lange zu testen bis es
geht, sonder versuche die ganze Materie irgendwie zum mindest halbwegs
zu verstehen.
Nochmal zu meiner Frage mit den Fuses: Ich habe mal einen Schaltplan der
zu bauenden angehängt. Sind die Fuses dafür jetzt richtig, oder nicht?
Sollte ich mir denn noch ein paar weitere Teile für die Programmierung
besorgen? Oder reicht es, wenn ich die einzelnen Pins einfach
miteinander verbinde?
Dachte nur, wenn ich nachher eh was holen muss, kann ich auh direkt alle
wichtigen Teile holen.
P.S.: Entschuldigt bitte nochmals meine vielen Fragen, aber wie gesagt,
ich bin recht neu in der ganzen Materie.
Wo hast Du in Deiner obigen Schaltung den Programmer angeschlossen?
An den Widerständen?
Die Widerstände bilden einen Spannungsteiler. Es werden dann die
erforder-
lichen Pegel an MOSI, MISO und SCK nicht erreicht.
Du mußt direkt an die Anschlüsse des Controllers gehen.
>Sind die Fuses dafür jetzt richtig, oder nicht?
Nein. Wie Du sie oben beschrieben hast, stehen sie auf "externer
Kristall-
oszillator" Es ist aber keiner dran.
>Ich habe die Fuses geändert, weil das von dem "Erfinder" der Schaltung>so vorgeschrieben war.
Dann läuft sie bei dem jetzt auch nicht mehr.
Erast Fandorin
Danke für die Antwort.
Эраст Петрович Фандорин schrieb:> Wo hast Du in Deiner obigen Schaltung den Programmer angeschlossen?> An den Widerständen?
Der µC wird nicht in der Schaltung porgrammiert, sondern extern und dann
eingesetzt. Bei der externen Schaltung haben ich den USBasp direkt an µC
angeschlossen. Ist das denn wenigstens richtig?
Da die Platine fertig ist und keinen Platz für einen Quarz oder
Oszilator hat, muss ich wohl was an den Fuses ändern. Dann werd ich
nochmal die genauen Einstellungen erfragen.
Es geht mir im Moment halt auch vorranging darum, den µC richtig zu
flshen. Dann kümmer ich mich um die weiteren Sachen. Wenn ich dabei
schon was falsch mache hilft mir auch das richtige setzten der Fuses
nix.
Besten Dank
Эраст Петрович Фандорин schrieb:
> Mit der Fusebit-Kombination aus Deinem Bild hast Du einen> Kristall-OSZILLATOR eingestellt, keinen Quarz.
Das ist nicht richtig.
"Externer Crystal Oscillator" bedeutet bei AVR, dass man einen Quarz
(und zwei Kondensatoren) an den Mikrocontroller anschließt.
Es wird auch mit einem fertigen Oszillator an Pin XTAL1 funktionieren.
Dazu ist allerdings die Einstellung "External Clock" vorgesehen.
Stefan us schrieb:> "Externer Crystal Oscillator" bedeutet bei AVR, dass man einen Quarz> (und zwei Kondensatoren) an den Mikrocontroller anschließt.
Also kann ich auch Quarz nehmen?
Sollte der bei der Programmierung immer dran sein?
Seh ich das richtig, dass der unter 3 MHz sein muss, oder geht bspw.
auch ein 4 MHz mit 2 22 pF KOndensatoren?
stefanus schrieb:> Ich würde einen anderen programmer nehmen. Der USBASP ist für sein> unzuverlässiges USB Interface bekannt.>
hi, gibt's da irgendwelche Details dazu? Setze das Teil jetzt Problemlos
mit meinen 2313 und ATMega (8-16) unter XP und Opensuse Problemlos ein.
Alles was mal passieren kann, ist dass Linux dass Teil nicht sauber
erkennt, scheint mir aber an meiner Installation zu liegen, gab es
früher unter 11.x und XP nicht.
//hufnala
Ich habe den Oszillator jetzt drin. Braucht der eine externe
Spannungsversorgung, oder reicht die über den USBasp?
Wenn ich den Programmierer jetzt anschließe wird er nämlich nicht mehr
erkannt.
Muss es jetzt ein Oszilator oder ein Quarz sein, oder ist das egal?
Das mit den Fuses hat sich glaub ich geklärt, die Einstellungen waren
noch für den alten Tiny13 der vorher verwendet wurde. Jetzt muss ich nur
gucken, wie ich sie für den Tiny25 setzen muss.
Kann mir noch jemand sagen, was alles auf meine Programmierschaltung
muss? Ich habe jetzt die einzelnen Pins entsprechend auf die des Sockels
für µC geleitet und hab zusätzlich VCC und GND auf den Oszillator
gesetzt. Der OUT davon geht auf XTAL1 am Sockel. Keine Widerstände,
keine Kondensatoren. Ist das richtig?
Warum wird der Programmierer jetzt nicht mehr erkannt?
Vielen Dank
Freddy schrieb:> Warum wird der Programmierer jetzt nicht mehr erkannt?
Ich möchte dir nicht zu nahe treten, aber kann es sein, dass du das
Datenplatt des Tiny25 meidest (in dem alle deine Fragen beantwortet
werden), weil du des Englischen nicht mächtig bist?
BTW: Das Datasheet ist kostenlos.
D. V. schrieb:> Ich möchte dir nicht zu nahe treten, aber kann es sein, dass du das> Datenplatt des Tiny25 meidest (in dem alle deine Fragen beantwortet> werden), weil du des Englischen nicht mächtig bist?> BTW: Das Datasheet ist kostenlos.
Ich habe das Datenblatt und (versuche) es auch zu lesen. Was jedoch
nicht an meinen Englischkenntnissen scheitert, sondern eher an dem
technischen Verständnis. Und das auf über 200 Seiten.
Wenn dort alle meine Frage beantwortet werden, dann find oder versteh
ich es wahrscheinlich einfach nicht.
Kann mir trotzdem jemand helfen?
Freddy schrieb:> Stefan us schrieb:>> "Externer Crystal Oscillator" bedeutet bei AVR, dass man einen Quarz>> (und zwei Kondensatoren) an den Mikrocontroller anschließt.>> Also kann ich auch Quarz nehmen?
Ja.
> Sollte der bei der Programmierung immer dran sein?
Nein. Der muß nur so lange dran sein, bis du die CKSEL Fuses wieder auf
den Wert 0010 zurückgesetzt hast.
> Seh ich das richtig, dass der unter 3 MHz sein muss, oder geht bspw.> auch ein 4 MHz mit 2 22 pF KOndensatoren?
Alles zwischen 1MHz und 4 bzw. 20MHz sollte funktionieren. Ob 4 oder
20MHz hängt davon ab, welchen ATtiny25 genau du hast.
Эраст Петрович Фандорин schrieb:> Stefanus schrieb:>>Das ist nicht richtig.> Das ist richtig. Datenblatt Attiny 25 Seite 26 ff.
Schwätzer. Blättere doch bitte mal weiter auf Seite 29. Da steht dann
nämlich, was mit "Crystal Oscillator" gemeint ist. Tip: es ist nicht
"externer Kristall-Oszillator".
Stefan us schrieb:> "Externer Crystal Oscillator" bedeutet bei AVR, dass man einen Quarz> (und zwei Kondensatoren) an den Mikrocontroller anschließt.
Es gibt keine solche Einstellung. Es gibt "External Clock" und "Crystal
Oscillator". Letzteres ohne "External".
XL
Axel Schwenke schrieb:> Nein. Der muß nur so lange dran sein, bis du die CKSEL Fuses wieder auf> den Wert 0010 zurückgesetzt hast.
Noch konkreter: bis du die lfuse wieder auf den Defaultwert 0x62 gesetzt
hast. Datenblatt Seite 153 zeigt dir, was die Bits in lfuse bedeuten.
XL
Axel Schwenke schrieb:>> Also kann ich auch Quarz nehmen?>> Ja.
Danke, das wars. Hab den Oszillator wieder rausgenommen und nen Quarz
mit Kondensatoren reingebaut und jetzt hab ich wieder Zugriff. Die Fuses
wieder auf default zu setzten hatte ich mir auch schon gedacht, ging nur
schlecht ohne Zugriff ;-)
Nochmals vielen Dank für die Hilfe.