Hallo Leute, ich bin neu in der Welt der µC-Programmierung und stehe gleich vor dem ersten Problem: Mein Microcontroller (ein ATMega8-16PU) lässt sich nicht programmieren. Ich bin nach dieser Anleitung vorgegangen: http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht Aufgebaut wurde alles auf einem Steckbrett, zusammen mit einem Spannungsregler (9V -> 5V) und einem Adapter, der den 6- bzw. 10-pol ISP Anschluss auf das Steckbrett bringt (selbstgelötet, auf einer Experimentierplatine). Nun habe ich sowohl in AVR Studio 5.1 als auch mit avrdude versucht den ATMega zu programmieren, es tut sich allerdings nichts. Als Programmer verwende ich einen AVRISP mkII. Ich bin relativ ratlos, da eigentlich alles passen müsste. Ich habe die Pins VCC, AREF und AVCC an die 5V angeschlossen (ist das bei AREF überhaupt nötig?) und beide GND Pins an GND. Ich hab mit meinem Multimeter auch bereits getestet, ob der 6pol Stecker Kontakt mit den jeweiligen Pins des µC hat (habe leider keinen Durchgangsprüfer, daher Test mit Widerstandsmessung -> ca. 0,5 Ohm, ist das in Ordnung?). Einzig bei der Pinbelegung des ISP Anschlusses bin ich mir nicht im Klaren. Vgl. Abbildung: 1 - MISO 2 - VCC 3 - SCK 4 - MOSI 5 - RESET 6 - GND Stimmt das? Anbei noch ein paar Bilder. Grüße Andreas
was benutzt du denn für einen Programmer? häng mal "-B 6" oder so an die Kommandozeile des avrdude. Das sorgt dafür, dass er mit geringerer Datenrate flasht, da bei frischen µCs normalerweise das DVI8 fuse gesetzt ist und die Programmiergeschwindigkeit zu hoch für sie . Edit: ok, den Programmername hatte ich übersehen. Hab mit dem noch nix zu tun gehabt, aber dversuchen kann man es ja trotzdem mal mit dem Parameter
noch eine Idee: stimmt denn die Spannungsversorgung? Die Versorgungsleisten mancher Steckbretter sind in der Mitte unterbrochen und müssen mit Brücken verbunden werden.
Vlad Tepesch schrieb: > was benutzt du denn für einen Programmer? > > häng mal "-B 6" oder so an die Kommandozeile des avrdude. > Das sorgt dafür, dass er mit geringerer Datenrate flasht, da bei > frischen µCs normalerweise das DVI8 fuse gesetzt ist und die > Programmiergeschwindigkeit zu hoch für sie . > > Edit: > ok, den Programmername hatte ich übersehen. > Hab mit dem noch nix zu tun gehabt, aber dversuchen kann man es ja > trotzdem mal mit dem Parameter Okay, werde ich versuchen. Spannungsversorgung stimmt, habs mit einem Multimeter an VCC und GND gemessen. Ergebnis: 4,95V
Was bekommst du als Meldung? kannst du überhaupt was machen? z.B. Fuse lesen?
AREF würde ich nicht direkt mit VCC verbinden. (warum legst du die Verbindung eigentlich um den AVR rum, anstatt auf die Spannungsleiste zu gehen, was die ÜBersicht erhöhen würde?) willst du die Versorgungsspannung als Referenz, kannst du die auch so auswählen und mit einem zusätzlichen Kondensator von Aref gegen Masse stabilisieren. Das lässt dir zusätzlich die Freiheit die interne 2.56 Volt-Referenz zu wählen.
Martin schrieb: > Was sagt dein AVRISPmkII? Led grun, rot? Beide LEDs leuchten grün. Also ich gebe ein: sudo avrdude -c avrispmkII -P usb -p m8 -B 6 -v und als Antwort erhalte ich:
1 | avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:37:28 |
2 | Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ |
3 | Copyright (c) 2007-2009 Joerg Wunsch |
4 | |
5 | System wide configuration file is "/etc/avrdude.conf" |
6 | User configuration file is "/home/andreas/.avrduderc" |
7 | User configuration file does not exist or is not a regular file, skipping |
8 | |
9 | Using Port : usb |
10 | Using Programmer : avrispmkII |
11 | Setting bit clk period : 6.0 |
12 | avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200102232 |
13 | AVR Part : ATMEGA8 |
14 | Chip Erase delay : 10000 us |
15 | PAGEL : PD7 |
16 | BS2 : PC2 |
17 | RESET disposition : dedicated |
18 | RETRY pulse : SCK |
19 | serial program mode : yes |
20 | parallel program mode : yes |
21 | Timeout : 200 |
22 | StabDelay : 100 |
23 | CmdexeDelay : 25 |
24 | SyncLoops : 32 |
25 | ByteDelay : 0 |
26 | PollIndex : 3 |
27 | PollValue : 0x53 |
28 | Memory Detail : |
29 | |
30 | Block Poll Page Polled |
31 | Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack |
32 | ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- |
33 | eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff |
34 | flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00 |
35 | lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00 |
36 | hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00 |
37 | lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00 |
38 | calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00 |
39 | signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 |
40 | |
41 | Programmer Type : STK500V2 |
42 | Description : Atmel AVR ISP mkII |
43 | Programmer Model: AVRISP mkII |
44 | Hardware Version: 1 |
45 | Firmware Version Master : 1.17 |
46 | Vtarget : 0.0 V |
47 | SCK period : 8.00 us |
48 | |
49 | avrdude: stk500v2_command(): command failed |
50 | avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Target not detected |
51 | avrdude: initialization failed, rc=-1 |
52 | Double check connections and try again, or use -F to override |
53 | this check. |
54 | |
55 | |
56 | avrdude done. Thank you. |
Was meinst du mit Fuses lesen? (wie gesagt, bin Anfänger) Vlad Tepesch schrieb: > AREF würde ich nicht direkt mit VCC verbinden. (warum legst du die > Verbindung eigentlich um den AVR rum, anstatt auf die Spannungsleiste zu > gehen, was die ÜBersicht erhöhen würde?) > willst du die Versorgungsspannung als Referenz, kannst du die auch so > auswählen und mit einem zusätzlichen Kondensator von Aref gegen Masse > stabilisieren. > Das lässt dir zusätzlich die Freiheit die interne 2.56 Volt-Referenz zu > wählen. Hab beides geändert, danke für die Tipps ;)
> avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Target not detected > avrdude: initialization failed, rc=-1 > Double check connections and try again, or use -F to override > this check. Prüfe noch mal alle Verbindungen, besonders von ISP zu µC, da ist irgendwo ein Wackelkontakt, sind MISO, SCK, MOSI, RESET von AVRISPmkII mit dem richtige Pins von µC verbunden? Hast 5V zwischen Pin 7 und 8 von µC?
mit welcher frequenz soll der mega8 denn laufen? auf internem takt? wenn ja, muss das auch über die fuses eingestellt werden. ansonsten noch einen Quarz mit entsprechenden Kondensatoren an die XTAL pins anschließen.
Hallo, du musst an den VCC Pin des AVR ISP die Versorgungsspannung des Controllers anlegen (das ist ein Eingang). Sonst stimmt der Signalpegel am Ausgang des Programmers nicht. Die Ausgabe von AVRDude zeigt: Vtarget : 0.0 V Probiers mal.
Wastl F. schrieb: > mit welcher frequenz soll der mega8 denn laufen? auf internem takt? wenn > ja, muss das auch über die fuses eingestellt werden. Ne, er hat ihn ja noch nicht programmiert. D.h. die Fuses sind automatisch noch auf internen Takt eingestellt (1Mhz).
Bjojon schrieb: > du musst an den VCC Pin des AVR ISP die Versorgungsspannung des > Controllers anlegen (das ist ein Eingang). Sonst stimmt der Signalpegel > am Ausgang des Programmers nicht. Hast Recht, der AVRISP wird im Brett direkt von 7805 mit Spannung versorgt so funktioniert bestimmt nicht.
Wie Groß ist der Kondensator, den du am Reset hast? Nehm den mal raus und probier's dann.
Achso und dass der ISP direkt vom 7805 versorgt wird ist eigentlich ok. Bei mir klappt das imemr ohne Probleme.
>Ne, er hat ihn ja noch nicht programmiert. D.h. die Fuses sind >automatisch noch auf internen Takt eingestellt (1Mhz). Na denn. Taktrate des ISP wurde ja schon angesprochen, muss dann ja unter 250k liegen. Vielleicht mal einen anderen mega nehmen? Könnte ja auch defekt sein. Zumindest die Spannungen sind richtig, sonst würden nicht beide LEDs am MKII grün leuchten. Reset ist auch OK... Die Fehlermeldung deutet (mit zwei t geschrieben sieht das irgendwie bescheuert aus...) aber eher auf einen Fehler mit dem Atmega hin.
Die Anzeige der Target Spannung ist unabhängig von der ISP Kommunikation (zumindest, wenn man das AVR Studio niummt, nicht avrdude). Da er hier aber 0 Volt anzeigt, würde ich den Fehler nicht in der Verbindung zwischen Adapterplatine und AVR suchern, sondern in der Strecke: Spannungsregler->Adapterplatine->Flachkabel->Programmer.
Bjojon schrieb: > Hallo, > > du musst an den VCC Pin des AVR ISP die Versorgungsspannung des > Controllers anlegen (das ist ein Eingang). Sonst stimmt der Signalpegel > am Ausgang des Programmers nicht. > > Die Ausgabe von AVRDude zeigt: > > Vtarget : 0.0 V > > Probiers mal. Ich hab den VCC jetzt direkt am Controller angeschlossen. XJ600 schrieb: > Wie Groß ist der Kondensator, den du am Reset hast? Nehm den mal raus > und probier's dann. 100nF. Hab ihn entfernt, aber keine Besserung Stefan schrieb: > Die Anzeige der Target Spannung ist unabhängig von der ISP Kommunikation > (zumindest, wenn man das AVR Studio niummt, nicht avrdude). > > Da er hier aber 0 Volt anzeigt, würde ich den Fehler nicht in der > Verbindung zwischen Adapterplatine und AVR suchern, sondern in der > Strecke: Spannungsregler->Adapterplatine->Flachkabel->Programmer. Ich hab gerade nochmal die Spannung an den GND und VCC Pins der Stiftleiste an der Adapterplatine gemessen...4,95V. An der 6-pol-Buchse liegen zwischen Pin 2 und Pin 6 ebenfalls 4,95 V an. Dass der Programmer funktioniert weiß ich sicher, ich habe ihn bereits mit einem anderen µC testen können. Langsam verzweifel ich ein wenig ;D
Wenn ich den Programmer ausgesteckt lasse und mit dem PC verbinde ist die LED zunächst Rot. Dann steck ich ihn auf die Adapterplatine und sie bleibt ein paar Sekunden rot ehe sie dann doch auf grün wechselt. Edit: Sie wird nur grün wenn ich in AVRStudio die Device ID und Target Voltage auslesen will...seltsam
Haben die ATMegas eigentlich auch die Clock div/8 Fuse? Oder nur die Tiny-Serie?
Dr.Who schrieb: > Haben die ATMegas eigentlich auch die Clock div/8 Fuse? Oder nur die > Tiny-Serie? Haben sie zum Teil. Aber das ist irrelevant. Alle Megas werden so ausgeliefert, dass sie im Auslieferungszustand mit 1Mhz laufen. Im Grunde braucht es nicht viel um einen Mega in Betrieb zu nehmen: Spannung an Vcc/AVcc und Rückleitung GND-Pins an Netzteil-Masse und das Teil läuft bereits. Die restliche Rundumbeschaltung dient dazu, den Betrieb zuverlässiger zu machen (Kondensatoren, R an Reset).
Okay, ich habs gerade mit einem ATMega16 getestet. Mit dem gleichesn Ergebnis. Es liegt wohl doch an irgendeinem Wackelkontakt an der Adapterplatine (obwohl ich eigentlich alle Pins auf Durchgang geprüft hab, siehe 1. Post von mir)?
Andreas F. schrieb: > 1 - MISO > 2 - VCC > 3 - SCK > 4 - MOSI > 5 - RESET > 6 - GND > > Stimmt das? Sollte eigentlich stimmen vgl. AVR In System Programmer: ISP Wobei das die Ansicht von oben ist! (Probier mal eine LED an den Reset Anschluss zu geben. Wenn der Programmer auf den µC zugreift, musste man da was sehen) Ansonsten würde ich mal den Adapter beiseite lassen und die Drähte direkt in die Buchse vom Brennerkabel stecken. Ich hab schon Mega8 programmiert, indem ich an einen alten Sockel direkt Drähte angelötet habe und die dann in die entsprechenden Löcher vom Sockel eines Mega32 (der natürlich nicht im Sockel war) gesteckt habe an dem dann der Programmer hing. Geht zur Not alles. Spannung muss da sein, MISO/MOSI/SCK und RESET und dann sollte der Programmer den µC auch schon ansprechen können.
Karl Heinz Buchegger schrieb: > Ansonsten würde ich mal den Adapter beiseite lassen und die Drähte > direkt in die Buchse vom Brennerkabel stecken. Ich habs gerade ausprobiert...alles funktioniert! Es lag also tatsächlich an der Adapterplatine :) Vielen Dank für eure Tipps!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.