PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega8 wird nicht erkannt



Krampfda
10.08.2007, 14:42
Hallo!
Seit einiger zeit interessiere ich mich für Robotik und Microcontroller. Deshalb habe ich mich vor kurzen dazu entschlossen, mich nun einmal selbst damit zu befassen.
Nachdem ich mir also alle nötigen Teile beschafft habe, wollte ich mir zunächst mal eine Grundschaltung aufbauen, um mithilfe eines ISP Anschlusses meinen Atmega8 zu programmieren. (ich habe bewusst auf ein board wie RN-Control oder STK500 ) verzichtet, um das ganze von Grund auf selber zu machen (abgesehen von Programmierlkabel).

Und genau da liegt mein Problem. Der Controller wird nicht von meinem PC erkannt und ich habe absolut keine Idee, wo mein fehler liegen könnte.

Ich habe die Schaltung euf einem Steckbrett so aufgebaut, wie es im Schaltplan ( Angang ) zu sehen ist.
Was im Schaltplan nicht zu sehen ist: ich verwende noch einen 78S05, damit ich konstante Spannung habe.
Die Kerkos habe ich schon mehrmals ausgetauscht durch welche mit größerer und kleinerer Kapazität. Die Verbindungen habe ich alle mehrmals untersucht. Alle sind soweit okay.

Das Programmierkabel habe ich bei eBay erstanden:
Artikelansicht Programmierkabel (http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&rd=1&item=160113417266&ssPageName=STRK:MEWN:IT&ih=006)
Der Verkäufer gibt an, dass es mit einem Atmega8 kompatibel ist.
Leider war das Kabel nur 15cm lang, sodass ich nochmal eine 1m lange Verlängerung basteln musste (Auch hier sind alle PINs richtig herum).
Ohne Verlängerung geht der Controller ebenfalls nicht.

Es ist ausgeschlossen, dass der Controller durchgebrannt ist, da ich es schon mehrmals mit nagelneuen versucht habe.

Als Programm zum flashen des Controllers habe ich PonyProg unter Windows und uisp unter Linux verwendet.
Ponyprog meldet den Fehler -24 (unknown device) und uisp meldet folgendes:



An error has occurred during the AVR initialization.
* Target status:
Vendor Code = 0xff, Part Family = 0xff, Part Number = 0xff

Check if the programmer is properly connected.
The wiring may be incorrect or target might be 'damaged'.


Ich habe schon mehrmals die Boardsuche verwendet und schon alles Mögliche ausprobiert. Aber ich bin mit meinem Latein am Ende. Ich hoffe, das ihr mir helfen könnt, meinen Controller endlich zum laufen zu bringen.

Grüße
Krampfda

-edit-
entschuldigt, dass ich zum skizzieren des schaltplans kein dafür vorgesehenes Programm verwendet habe. ging auf die schnelle besser selbst zu zeichnen ;)

franzl
10.08.2007, 15:14
Hi
Also Schaltplan scheint soweit in Ordnung zu sein.
Dann müssts eigentlich an den Einstellungen von PonyProg liegen.
Hast du bei Menü Setup/ Interface Setup / auf Parallel , AVR ISP I/0 und den richtigen COM Port eingestellt?
Und hast du den Atmega8 als Device ausgewählt?
Normalerweiße müsst das erste der Fehler sein, sonst meldst dich hald nochmal ok.
mfg franz

Jon
10.08.2007, 15:15
Mich wundert es, wie du dazu kommst C1 ein zu bauen. den kann ich in keiner anderen Schaltung finden.

Der Rest scheint mir OK zu sein.

jon

Krampfda
10.08.2007, 15:32
@jon
C1 habe ich hierher (http://www.mikrocontroller.net/wikifiles/e/eb/Mega8_Schaltung.gif). (da wird zwar nur nen 6pol ISP verwendet, aber das spielt ja keine rolle?!)

@franzl
bei ponyprog habe ich LPT1 Parallel I/O eingestellt und als device den mega8.
calibiert habe ich das auch.

uisp verwende ich immer wiefolgt (habe das irgendo gelesen, dass damit einer einen atmega8 programmiert hat):

/home/krampfda# uisp -dplt=/dev/parport0 -dprog=dapa
Es gibt bei dem programm allerdings noch weitere Optionen:
(Vielleicht kann damit jemand was anfangen)



Programming Methods:
-dprog=avr910 Standard Atmel Serial Programmer/Atmel Low Cost Programmer
pavr http://www.avr1.org/pavr/pavr.html
stk500 Atmel STK500
avrisp Atmel AVRISP (uses stk500 protocol, but can only perform
serial programming using SPI)
-dprog=dapa|stk200|abb|atdh|avrisp|bsd|fbprg|dt006| maxi|xil|dasa|dasa2|dasa3
Programmer type:
dapa Direct AVR Parallel Access
stk200 Parallel Starter Kit STK200, STK300
abb Altera ByteBlasterMV Parallel Port Download Cable
atdh Atmel-ISP Download Cable
paravrisp [Unknown origin] Parallel port programmer
bsd http://www.bsdhome.com/avrdude/ (parallel)
fbprg http://ln.com.ua/~real/avreal/adapters.html (parallel)
dt006 http://www.dontronics.com/dt006.html (parallel)
maxi Investment Technologies Maxi (parallel)
xil Xilinx HW-JTAG-PC Cable (parallel)
ett ETT AVR Programmer V2.0 [from Futurlec] (parallel)
dm04 Datamekatronik 2004 (parallel)
dasa serial (RESET=RTS SCK=DTR MOSI=TXD MISO=CTS)
dasa2 serial (RESET=!TXD SCK=RTS MOSI=DTR MISO=CTS)
dasa3 serial (RESET=!DTR SCK=RTS MOSI=TXD MISO=CTS)

Target Device Selection:
-dpart Set target abbreviated name or number. For some programmers, if
-dpart is not given programmer's supported devices are listed.
Set -dpart=auto for auto-select. Auto-select does not work with
all programmers, so it is recommended to always specify a target
device explicitly.

Parallel Device Settings:
-dlpt= specify device name (Linux ppdev, FreeBSD ppi, serial)
or direct I/O parallel port address (0x378, 0x278, 0x3BC)
-dno-poll Program without data polling (a little slower)
-dno-retry Disable retries of program enable command
-dvoltage Set timing specs according to the power supply voltage in [V]
(default 3.0)
-dt_sck Set minimum SCK high/low time in micro-seconds (default 5)
-dt_wd_flash Set FLASH maximum write delay time in micro-seconds
-dt_wd_eeprom Set EEPROM maximum write delay time in micro-seconds
-dt_reset Set reset inactive (high) time in micro-seconds
-dinvert=... Invert specified lines
Use -v=3 option to see current settings.
-d89 Allow parallel programming of AT89S51 and AT89S52 devices.


Gruß :)

Hanni
10.08.2007, 16:17
(ich habe bewusst auf ein board wie RN-Control oder STK500 ) verzichtet, um das ganze von Grund auf selber zu machen

Naja, in meinen Augen ist das der erste Fehler. gerade am Anfang erspart ein richtiger Programmer (z.B. AVR ISP MK2) jede Menge Frust, weil ein Selbstbau nich oder scheinbar nicht funktioniert. Übrigens werden richtige Programmer auch vom AVR Studio unterstützt und man spart sich damit jede Menge weiteren Frust mit den Fuses ..

Grüße,
Hanni

Krampfda
10.08.2007, 17:52
(ich habe bewusst auf ein board wie RN-Control oder STK500 ) verzichtet, um das ganze von Grund auf selber zu machen

Naja, in meinen Augen ist das der erste Fehler. gerade am Anfang erspart ein richtiger Programmer (z.B. AVR ISP MK2) jede Menge Frust, weil ein Selbstbau nich oder scheinbar nicht funktioniert. Übrigens werden richtige Programmer auch vom AVR Studio unterstützt und man spart sich damit jede Menge weiteren Frust mit den Fuses ..

Grüße,
HanniWillst du damit sagen, dass mein Programmierkabel mist ist ?
Weil, wenn hier schon bestätigt wird, dass meine Schaltung ok ist und ich keinen Fehler bei Ponyprog bzw uisp erkennen kann, ist das ja durchaus möglich.
Man muss dazu sagen, dass ich beim Kauf des Kabels versucht habe, möglichst günstig wegzukommen.

Ich wäre da sehr dankbar über ein wenig beratung beim Kabel.

Gruß

Hanni
11.08.2007, 00:43
Willst du damit sagen, dass mein Programmierkabel mist ist ?

Nein, ich hab nur gesagt, das etwas richtiges am Anfang durchaus einigen Frust ersparen kann.

Übrigens gibt es bei den so billigen Bitbanging Parallelport Adaptern unzählige Fehlerquellen, die zumindest ich für meinen Teil nicht haben muss.

hier mal ein paar der beliebteren ...

- dein Betriebssystem hat evtl. keinen direkten Zugriff auf den Parallelport, damit wird der Programmer nie im Leben funktionieren.
- falsch konfigurierte / untaugliche Software zum flashen ...
- Kontaktprobleme / kalte Lötstellen
- Programmierkabel zu lang (1m ist schon bald viel zu lang)
etc.

Aber ich werd da wohl kaum mitreden können als Nutzer eines STK500 / USBISP und dem AVR Studio ....

Grüße,
Hanni

pctoaster
28.08.2007, 16:54
Nur mal so geraten:
Zählrichtung der Pins beachtet (von unten im Uhrzeigersinn) ?

Ein Rechteproblem ist das nicht (das gibt eine entsprechende Meldung).
Parallelportprogrammierung ist nicht trivial. Da gibt es im BIOS noch einige Einstellungen dazu (IRQ, EPP).
Beschaffe Dir lieber ein seriellen Programmierer mit einen AT90S2313 drauf wie von Atmel empfohlen (AVR910). Diese Adapter kosten nicht die Welt. Dann noch avrdude und Du bist glücklich. Mit dieser Konfguration hat es bei mir auf Anhieb geklappt.

Gruß
pctoaster

Lunarman
28.08.2007, 18:29
hanni? ein RN-Control und ein STK 500 sind KEINE Programmierkabel ^^
das sind Boards ^^
programmierkabel, okay, das STK 500 müsste auch eins sein, also es gibt auch ein Kabel, dass so heißt, aber da das RN-Control ein Board ist... mitdenken ^^

so, und mal derg naz triviale Fehler: sicher, dass Strom am µC ankommt? da du ja kein programm übertragen kannst, gehe ich davon aus, dass du keine LED leuchten siehst... kalte Lötstellen? batterie alle? ist mir auch schon passiert, also halt mich bitte nicht für einen, der meint, du wärst jetzt ein vollanfänger (bist du ja anscheinend nicht, wenigstens ein wenig Ahnung hast du). Also, wie gesagt, miss mal die Stromversorgung durch und guck, ob du nen Kurzen hast etc..

Viel Glück noch!

izaseba
28.08.2007, 18:58
Mal so mitgelesen, uisp ist Schnee von Gestern, seit einer Ewigkeit nicht mehr weiterentwickelt, nimm avrdude, da kannst Du Dir zur Not Deinen Adapter selber definieren, welcher Pin an welchem Signal liegt, brauchst nur im /etc/avrdude.conf nachzuschauen...

Gruß Sebastian

P.S.
Sicher, daß keine Druckermodule geladen sind ?
parport0 ist auf jedem Fall richtig und muß geladen sein(ich gehe aber von aus, daß es geladen ist)

P.P.S


hanni? ein RN-Control und ein STK 500 sind KEINE Programmierkabel ^^
das sind Boards ^^
programmierkabel, okay, das STK 500 müsste auch eins sein, also es gibt auch ein Kabel, dass so heißt, aber da das RN-Control ein Board ist... mitdenken ^^
Junge, Du bist ein Held!

Lunarman
28.08.2007, 19:11
äh? hab ich Mist gelabert? Bin grad nich so bei mir, deswegen... sorry wenns falsch war...
oder wolltest du mir mitteilen, dass ich dir sozusagen die Wörter aus dem Mund genommen habe?
aber junge triffts ganz gut :P

izaseba
28.08.2007, 19:24
Ne Du,
ich meinte eigentlich, daß Hanni ganz genau weiß, was STK 500 ist und keine Belehrung braucht ;-)
Aber kommen wir zurück zum Thema,
als ich meinen alten Bitbang Parallelprogger gegen STK 500 getauscht habe, dachte ich mir ich steige von Trabi auf Porsche um, sollte man es also ernst meinen mit AVR kann ich STK500 nur empfehlen.
Oder aber auf STK600 warten, es weiß aber keiner wann der wohl rauskommen mag.

Gruß Sebastian

Lunarman
28.08.2007, 19:27
ich nutz den stk200 kompatiblen von robotikhardware... bin zufrieden.

und hanni hat auf

(ich habe bewusst auf ein board wie RN-Control oder STK500 ) verzichtet, um das ganze von Grund auf selber zu machen

geantwortet, man sollte lieber einen fertigen programmer nehmen... fand ich etwas komisch, da ich das so verstanden habe, dass hanni meinte, Krampfda würde von programmern sprechen... ich fand halt, dass Zitat und die ANtwort passten nicht zusammen. außerdem kenn ich hanni nich so gut ^^

Hanni
29.08.2007, 00:40
da ich das so verstanden habe, dass hanni meinte, Krampfda würde von programmern sprechen... ich fand halt, dass Zitat und die ANtwort passten nicht zusammen

Naja, prinzipiell existiert da schon ein gewisser Unterschied zwischen nem Programmierkabel (STK200 Parallelport Adapter) und nem vollwertigem Programmer. Bei dem einem hat man defakto nur zwei Stecker und beim anderem ist eben noch was dazwischen ;).

Allerdings kann man ein STK500 durchaus als Programmer gebrauchen, wenn man die richtigen Stiftleisten mit der zu programmierenden Platine verbindet.
Übrigens nutze ich das STK 500 primär zur Entwicklung diverser Softwareprojekte. Um eine ggf. größere Anzahl von µC`s zu programmieren benutze ich den wesentlich handlicheren USB ISP MK2 von matwei.de

Grüße,
Hanni

cmdrkeen
29.08.2007, 08:00
da meine eigenproduktion eines programmieradapters nicht ganz funktionierte hab ich einfach folgenden ausprobiert:
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm
(das parallelport-ding wo einfach nur 2 widerstände reingelötet sind)
es funktioniert ohne probleme

ich hab meine testschaltung auch auf einm steckboard aufgebaut genau wie du nur ohne den C2 und C3 (bzw C2 war ja bestandteil der 5V spannungsquelle)

in ponyprog wählt man dann: parallel -> avr isp i/o im interface-setup und stellt den auf LPT1 (es sei denn du hast noch mehr lpt ports)
danach führt man noch die calibration aus, stellt seinen typ von microcontroller ein : avr-micro -> atmega8

dann sollte die verbindung bei richtiger verkabelung eigentlich klappen

Krampfda
29.08.2007, 12:59
Huhu. so nach einger Zeit frustration mit dem Bitbanger habe ich mir nun ein AVRISP mkII zugeleget, um wenigstens mit sicherheit sagen zu können, dass es nicht an einem schlechten kabel liegt.

da habe ich nun folgendes problem:
die kontroll-LED, die den statsu des boards anzeigt, blinkt orange.
das heisst, soweit ich ermitteln konnte, dass die ISP-Verbindungen auf dem Board nicht korrekt sind.
Zwischendurch leutet die LED aber immer kurz grün, was eine korrekte verbindung anzeigt.

winwn wackelkontakt kann ich ausschliessen, da ich die schaltung mehrfach kontrolliert bzw neu aufgebaut habe.
ich ahbe es ausserdem mitschutzviederständen zwischen mkII und controller versucht. keine änderung

was mich etwas stutzig macht, ist die tatsache, dass das kurze gründe blinken zwischendurch auch dann kommt, wenn ich mutwillig eine Verbindung entferne.

Im datenblatt steht weiter, dass es ein problem mit der reset leitung geben kann.

allerdings ist die bei ca 0.5V - 0.6V (Datenblatt Atmega zufolge muss das zwischen 0.2 und 0.9V sein)

kann jemand damit was anfangen ?

gruß
krampfda

cmdrkeen
29.08.2007, 15:30
wie gesagt: ins prallelport-kabel sind die 2 widerstände schnell eingelötet. (ich hab dazu den 25poligen seriellen port aus nem uraltrechner rausgeschraubt, der hatte sogar gleich das passende kabel mit dem 10 poligen isp-stecker dran. den stecker hab ich neu verdrahtet ... und erst wenn ich ganz dolle lust mal habe werd ich mir nen programmier-adapter mit einem tristate-buffer bauen.
und ich steck erst immer alles zusammen bevor ich strom am atmega anschalte.

pctoaster
30.08.2007, 07:48
Also mit dem AVRISP kann man eigentlich nicht mehr viel falsch machen, außer den ATMega falsch anzuschließen.
Gib mal durch, wo bei Dir Pin 1, 20,21 und 40 bei einem IC von unten gesehen sind.
Wie zählst Du die Pin Nr am Programmierstecker (von welcher Seite aus gesehen) ?
Schutzwiderstände sind im übrigen unsinnig. Damit ziehst Du keinen logischen Pegel mehr (weder 0 noch 1)

Gruß
pctoaster

Krampfda
30.08.2007, 19:17
Also, von oben gesehen (ich habe das auf einem steckbrett gemacht, deshalb kann man das ruhig von oben betrachten) ist pin 1 ganz links oben (auf der seite mit der kerbe).
bin 20 und 21 befinden sich auf der rechten seiite, wobei pin 20 mit 5V+ angeschlossen ist und pin 21 mit nrm kondensator 100n nach GND geschaltet ist.
pin 7 und 8 haben die spannungsversorung, wie vorgesehen
gruß

edit: pin 40 gibt es bei einem Mega8 nicht (28 pins)

Krampfda
30.08.2007, 22:35
](*,) huhu nochmal.
ich könnte mir die haare raus reissen -.-
die schaltung war die ganze zeit in ordnung,. nur komischer weise hatte es den controller zerhauen, wieso auch immer. jedenfalls habe ich nun mal einen anderen controller in die schaltung eingesetzt und nun leuchtet das avrisp mkII grün :)
(bin also einen schritt weiter ^^)

jetzt muss ich nur noch die verbindung herstellen ^^

Problem hierbei

/home/krampfda# avrdude -c avrispv2 -p m8
avrdude: stk500_2_ReceiveMessage(): timeout

ich nutze kubuntu und eigentlich müsste das ja nun klappen 8-[

sry für den doppelpost und sry, dass das nun nicht mehr hier ins hardwaretopic passt.

gruß

fluchtpunkt
30.08.2007, 23:13
mit "-P usb" noch den Port angeben?

Krampfda
31.08.2007, 14:16
"-P usb" kennt er nicht.
allerdings ist der programmer vorhanden unter
Bus 001 Device 005: ID 03eb:2104 Atmel Corp.
da habe ich was anderes :x

/home/krampfda# avrdude -c avrisp -p m8 -P /dev/bus/usb/001/005
avrdude: ser_open(): can't set attributes for device "/dev/bus/usb/001/005"

(ja, wird via root ausgeführt bzw mit ausreichenden rechten)
scheinbar irgendein problem mit meinem linux, mal gucken, wie ich das beheben kann. es bleibt spannend und ich berichte hier mal, sobald ich das hinbekommen habe ^^
(wenn einer da ahnung hat, bin ich natürlich auch sehr dankbar)

pctoaster
31.08.2007, 14:58
gib mal unter linux man avrdude ein. Da gibts alles was Du brauchst. ;-)
-P usb solllte funktionieren. Du mußt als Device allerdings avrispv2 angeben!
Wenn das nicht funktioniert dann schau mal, ob Dein avrdue bzw. die /etc/avrdude.conf aktuell ist

Gruß
pctoaster

pctoaster
31.08.2007, 15:01
avrdude -c avrisp2 -p m8 -P usb
oder
avrdude -c avrispv2 -p m8 -P usb

Gruß
pctoaster

fluchtpunkt
31.08.2007, 17:14
haeng mal noch ein -v mit ran (ans avrdude .... -P usb) und poste das Ergebnis

Krampfda
31.08.2007, 17:26
/home/krampfda# avrdude -c avrispv2 -p m8 -P usb -v

avrdude: Version 5.0
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/root/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : usb
Using Programmer : avrispv2
avrdude: ser_open(): can't open device "usb": No such file or directory


ich habe gerade bemerkt, dass es mittlerweile Version 5.4 gibt, ich werde die mal installieren.
ist "-P usb" als solches wohl erst ab >5.0.0 verfügbar?!

Krampfda
01.09.2007, 14:17
/home/krampfda/avrdude-5.3.1# avrdude -c avrispv2 -p m8 -P usb

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.11s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK

avrdude done. Thank you.

musste zwar mühsam noch einige pakete libusb-dev (bei Kubuntu) installieren, aber dann ging es.
Version 5.4 hat wohl in irgendeiner .h datei nen fehler, deshalb 5.3.1

Danke an alle, die mir geholfen haben, nun kann ich loslegen :)