Willkommen Gast. Bitte einloggen oder registrieren.
April 29, 2024, 00:57:46
Übersicht Ungelesene Beiträge auflisten Hilfe Suche Spiele Mitgliederkarte Kalender Login Registrieren

Schnellsuche
+  MODDING-FAQ FORUM
|-+  Alles rund ums Modden
| |-+  Elektronik, Elektrik (Moderator: TzA)
| | |-+  AVR Programmieren
  « vorheriges nächstes »
0 Mitglieder und 1 Gast betrachten dieses Thema.
Seiten: [1] nach unten Drucken
Autor Thema: AVR Programmieren  (Gelesen 6665 mal)
miki11
Modding-Noob

*

Karma: +0/-0
Offline Offline
Beiträge: 5


Ich liebe dieses Forum!


Profil anzeigen
AVR Programmieren
« am: September 13, 2008, 08:17:52 »

Hallo,

ich habe mir das USB Lowcost Projekt angeschaut und wollte mich etwas mit AVR µC beschäftigen. Jedoch komme ich kein Schritt weiter.
Tut habe ich gelsen, und den Thread habe auch schon durch (erlich, was alle Seiten ganz gelesen ;-) ).
Ich habe auch hier reingeschaut http://www.modding-faq.de/Foru...p?topic=18024.0
und http://rumil.de/hardware/avrisp.html
http://www.mikrocontroller.net...stem_Programmer
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm
http://www.lancos.com/prog.html
http://www.rowalt.de/mc/avr/progd.htm

Bis auf den rowalt ISP, habe ich die ISPs für LPT durchprobiert, ob nur mit zwei Widerstände oder mit den 74hc244 puffer IC. Mit 12Mhz oder mit 4Mhz Quarz. Im Lowcost USB Schaltung oder in eine Schaltung von diese Seiten, wo nur das nötigste drauf ist. Mit USB Spannung, oder 5V von einem PC Netzteil.

Ich nutze eine altes Notebook mit 700Mhz unter WinXP, wo ich LPT Normal, Bi-dir, EPP1.7/1.9 und ECP Einstellung probiert habe. Auch die Einstellung im Gerätemanager für IRQ nutzung brachte keine Änderung. Auch an meinem DesktopPC, wo Linux läuft, klappt avrdude nicht.

ponyprog2000 sagt, Device nicht gefunden, fehler -24
habe avrdude aktualisiert und als Option -i 10 oder 80,100,150 probiert, wenn ich Option -F mitgebe, sieht das so aus:
Code:
C:\...\Desktop\USB-LCD-AUTO>avrdude -c pony-stk200 -p t2313 -u -U flash:w:usb-lcd.hex:i -U lfuse:w:0xFF:m -i 150 -F

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0xffffff
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATtiny2313 is 1E 91 0A
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed

         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: AVR device not responding
avrdude: reading input file "usb-lcd.hex"
avrdude: writing flash (2018 bytes):

Writing | ################################################## | 100% 33.49s

avrdude: 2018 bytes of flash written
avrdude: verifying flash memory against usb-lcd.hex:
avrdude: load data flash data from input file usb-lcd.hex:
avrdude: input file usb-lcd.hex contains 2018 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 32.27s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x42 != 0xff
avrdude: verification error; content mismatch

avrdude done.  Thank you.


C:\...\\Desktop\USB-LCD-AUTO>pause
Drücken Sie eine beliebige Taste . . .
Wenn ich am RESET mit Oszilloskop messe, sehe ich einen Sprung zwischen ~0V und ~4V, d.h. Signale kommen bis zum AVR.

Bin ich echt nicht dazu geeignet an sowas zu arbeiten  Huh
Für jeglichen Tipp währe ich dankbar.

PS: neuen ATtiny2313 habe ich auch schon probiert.
Gespeichert
Ast
Case-Konstrukteur

*

Karma: +8/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 589


Astpirin, die Medizin deines Lebens


Profil anzeigen WWW
Re: AVR Programmieren
« Antwort #1 am: September 13, 2008, 12:51:09 »

Hast du auch die Treiber installiert, damit avrdude auf den LPT-Port zugreifen kann?
Unter WindowsXP geht das ja ansonsten nicht so ohne weiteres.
Auch unter Linux kann es sein, dass du deinem User erst die nötigen Rechte geben musst, um auf die parallele Schnittstelle zugreifen zu können.
Gespeichert

There are only 10 types of people in the world:
Those who understand binary, and those who don't.
--------
How many people can read hex if only you and dead people can read hex?
miki11
Modding-Noob

*

Karma: +0/-0
Offline Offline
Beiträge: 5


Ich liebe dieses Forum!


Profil anzeigen
Re: AVR Programmieren
« Antwort #2 am: September 13, 2008, 13:11:52 »

giveio habe ich installiert und unter Linux habe ich es auch als root versucht. Wie gesagt, ich kann am Oszilloskop auch sehen, daß am RESET des ATtiny2313 High/Low Wechsel statt findet.
Gespeichert
miki11
Modding-Noob

*

Karma: +0/-0
Offline Offline
Beiträge: 5


Ich liebe dieses Forum!


Profil anzeigen
Re: AVR Programmieren
« Antwort #3 am: September 15, 2008, 06:04:05 »

so, jetzt habe ich es geschafft.
1. habe ich den Quarz und die Kondensatoren weggelassen und alle andere Bauteile.
d.h. ich habe den Tiny2313 nur mit einem Widerstand und Kondensator am RESET Pin betrieben und Stromzufuhr vom USB.
Programmierer habe ich die Pins vom AVR direkt mit den LPT Port verbunden und avrdude mit den Parameter
Code:
avrdude -c bsd -p t2313 -i 10
aufgerufen. Daraufhin sagt  er mir, daß ein AVR erkannt wurde.
Dann habe die die Datei zum flashen und Fusen mitangegeben, wie es in der BAT Datei steht und er hat es gemacht.
Seitdem kann ich mit den AVR nicht mehr kommunitieren.
Das gleiche passierte mit einen zweiten AVR.

In der USB Schaltung klappt auch nichts :-(

Ich habe jetzt einen Programmierer bestellt....
Gespeichert
OlafSt
Global Moderator

*

Karma: +13/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 2138


Master of STLCD and LISA III


Profil anzeigen
Re: AVR Programmieren
« Antwort #4 am: September 15, 2008, 06:23:38 »

Klingt danach, als hättest du die Fuses verstellt. Bitte das Manual zum AVR und AVRDude sehr aufmerksam lesen, ein gesetzter Haken im Programm bedeutet mal "Fuse gesetzt" oder auch "Fuse nicht gesetzt". Atmel hat sich da nicht mit Ruhm bekleckert.

Wenn man hier nicht aufpaßt, macht man seinen AVR für die Einfachprogrammer taub und muß IIRC die sog. Hochvolt-Lösung verwenden (siehe AVR-Manual).
Gespeichert

Erstens: Lies was da steht. Zweitens: Denk drüber nach. Drittens: Dann erst fragen
miki11
Modding-Noob

*

Karma: +0/-0
Offline Offline
Beiträge: 5


Ich liebe dieses Forum!


Profil anzeigen
Re: AVR Programmieren
« Antwort #5 am: September 15, 2008, 07:51:12 »

 Huh Hacken??
avrdude habe ich eigentlich in der DOSBox genutzt. Den aufruf habe ich aus der BAT Datei von der Lowcost USB seite.
Code:
avrdude -c pony-stk200 -p t2313 -u -U flash:w:usb-lcd.hex:i -U lfuse:w:0xFF:m
geändert habe ich nur Option -c auf bsd, wegen der PIN-Belegung und -i 10 mit angegeben, wofür ich aber die neuste avrdude von winavr nehmen musste, weil die Version in der usb-lcd-auto.zip keine Option -i kennt.

Ich denke aber auch, daß ich dennoch irgendwie geschafft haben muss die FUSE Bits zu verändern...

Aber eigenartig ist auch, daß ich den AVR erst programmieren konnte, nachdem ich den Quarz und die Kondensatoren entfernt habe.

Quarz habe ich mehrere probiert, 12Mhz und 4Mhz, änderte nix. Kondensatoren hatte ich nur zweimal 22pF leider, deher konnte ich keine andere Testen.

Gibt es eigentlich eine Möglichkeit Kondensatoren zu testen? RC-Glied bei so kleine Kondensatoren wird wohl etwas schwierig...
Und wie testet man 12Mhz Quarz? Mein Oszilloskop kann min 0.5ns/cm, damit hätte ich 0.2Mhz/cm. Das wird etwas eng  Shocked
Gespeichert
TzA
Modder der Apokalypse

*

Karma: +10/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 1166



Profil anzeigen
Re: AVR Programmieren
« Antwort #6 am: September 15, 2008, 11:16:14 »

Code:
[...]-U lfuse:w:0xFF:m
Da würde ich mich nicht wundern wenn das den lfuse neu setzt Wink

Mit Haken meint Olaf wohl das Interface von PonyProg, AVRdude ist da eigentlich deutlich besser zu bedienen da man einfach nur exakt das eingibt was man im AVR-Datenblatt liest und sich nicht über die Bedeutung eines Häkchens als 0 oder 1 Gedanken machen muss.

Aber nun man konkret schauen was lfuse=0xFF beim attiny2313 tut (Datenblatt Seite 160):
Damit setzt du CKDIV auf 1, also wird der clock nicht mehr durch 8 geteilt (macht nix).
Außerdem werden SUT[0..1] und CKSEL[0..3] auf 1 gesetzt. Was das bedeutet findet man auf Seite 23-24, nämlich dass der AVR einen Quarz mit mehr als 8 MHz erwartet, und beim Anliegen der Versorgungsspannung erstmal recht lange (14000 Takte+65ms) wartet bis er mit seinem Programm loslegt.
Insofern alles nicht weiter schlimm, nur musst du halt zwingend einen externen Quarz verwenden, sonst geht nix. Irgendwie hab ich den Eindruck dass du den Quarz falsch anschließt oder sowas, denn einerseits sollte der AVR jetzt mit dem 12 MHz-Quarz ansprechbar sein, und andererseits sollte er sich vorher auch mit dazugestecktem Quarz programmieren lassen (wenn die Fuses nicht auf Quarz gesetzt sind, sind das ganz normale IO-Pins, da dürfte sich der µC durch nix stören lassen).
Der Quarz kommt einfach zwischen XTAL1 und XTAL2, weitere Verbindungen sind eigentlich nicht nötig. Die Kondensatoren kannst du nämlich zum Testen einfach mal weglassen, dann ist die Quarzfrequenz zwar ein bisschen daneben, aber schwingen tut er normal auch ohne.
Testen kann man ihn eigentlich nur mit einem hinreichend schnellen und hochohmigen (10:1-Tastkopf ist Pflicht) Oszilloskop. Aber eigentlich solltest du bei 0,5ns/cm doch noch erkennen können ob da was schwingt, man sollte ja zumindest ne "dicke" Linie statt einer Geraden sehen können.
Gespeichert

You need only two tools. WD-40 and duct tape. If it doesn't move and it should, use WD-40. If it moves and shouldn't, use the tape
miki11
Modding-Noob

*

Karma: +0/-0
Offline Offline
Beiträge: 5


Ich liebe dieses Forum!


Profil anzeigen
Re: AVR Programmieren
« Antwort #7 am: September 20, 2008, 19:15:42 »

Da würde ich mich nicht wundern wenn das den lfuse neu setzt Wink
Ich habe auch nicht gesagt, daß ich mich wundere wegen FUSE!?!

Ich sagte, ich habe die Kommandozeile genutzt, wie sie in der USB-LCD-AUTO.zip Datei vorgegeben wurde in den USB-LCD Project. Nur den ISB habe ich geändert, da ich ja ein bsd kompatiblen hatte.

Egal... ich habe jetzt den USBprog ISP bestellt. http://www.ixbat.de/index.php?page_id=135

Damit kann ich den ATtiny2313 Programmieren, jedoch wird danach die Schaltung immer noch nicht erkannt. Was kann ich falsch machen??

Also µC sei programmiert:
Code:
sudo avrdude -c avrisp2 -P usb -p t2313 -u -U flash:w:USB-LCD.hex:i -U lfuse:w:0xFF:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e910a
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "USB-LCD.hex"
avrdude: writing flash (2018 bytes):

Writing | ################################################## | 100% 2.05s

avrdude: 2018 bytes of flash written
avrdude: verifying flash memory against USB-LCD.hex:
avrdude: load data flash data from input file USB-LCD.hex:
avrdude: input file USB-LCD.hex contains 2018 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.79s

avrdude: verifying ...
avrdude: 2018 bytes of flash verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude done.  Thank you.


Nochmal gecheckt:

Code:
sudo avrdude -c avrisp2 -P usb -p t2313

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e910a

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Also sollte es klappen.

Ich habe diese Schaltung dann zusammengesteckt:


Ich habe den LCD-Teil jedoch weggelassen. Also 10K Poti habe ich nicht, und die Schaltumg am PD3. Rest ist genauso, wie auf dem Bild.
Ich habe auch schon versucht am RESET-Pin ein 100nF Kondensator zu GND und 12K Widerstand zum LM317 Output. Hilft auch nix.

Quarz und Kondensatoren am Quarz habe ich auch schon getauscht.

Ich verstehe nicht, warum ich mich so schwer tue. Es sind nicht meine erste Schaltungen. Nur mit USB habe ich noch nie was getan.
Ich freue mich für die Antworten, die ich bereits bekommen habe, aber leider muss ich wohl immer noch weiter beholfen werden  Cry
Gespeichert
Seiten: [1] nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Einloggen mit Benutzername, Passwort und Sitzungslänge      

Powered by MySQL Powered by PHP
eXTReMe Tracker
Seite erstellt in 0.035 Sekunden mit 20 Zugriffen.
© 2001-2022 MODDING-FAQ FORUM | SMF
Alle Rechte vorbehalten.
Prüfe XHTML 1.0! Prüfe CSS!