PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ISP funktioniert nicht



Malkem
20.12.2011, 12:42
Guten Tag zusammen!

Ich hab ein kleines Problem .....und zwar hab ich mal meine eigene Platine mit Eagle entwickelt und geätzt, aber hab mich dabei an die Schaltungsaufbau von der RN-Control gehalten.

Den ATMega32 wollte ich per ISP programmieren, dazu hab ich ein Atmel MKII und BASCOM halt.

Auf der RN-Control-Platine lässt sich der µC wunderbar flashen, aber auf meiner eigenen Platine irgentwie nicht. der bricht den flashvorgang recht schnell ab, das Fenster taucht kurzzeitig auf es werden ein paar Zeilen geschrieben dann schließt es sich wieder.

Ich hab meinen Schaltplan mit hochgeladen, vielleicht entdeckt einer von euch nen Fehler? Ich finde irgentwie nichts....

Spannungen hab ich gemessen: Aref, AVCC, VCC sind alle auf 5V potential


Gruß
Malkem

Taramtamtam
20.12.2011, 13:09
Hallo, das Bild ist ziemlich - naja nicht so gut... Kannst du das mal bitte etwas größer / schärfer machen ?

Wie groß ist R1 am Reset ?

Kampi
20.12.2011, 13:21
Der RESET-Widerstand ist 10k groß? Auf dem ersten Blick sieht mir das nach 1k aus....kann mich aber auch irren, weil man das nicht sonderlich gut erkennen kann :)

Malkem
20.12.2011, 13:30
hmm vielleicht so20884


Edit: natoll auch nicht besser bei mir auf dem rechner sieht das bild groß und scharf aus .... wie kriege ich die bilde aus Eagle denn größer gemacht? soll ich die im .bmp format abspeichern


Aber R1 ist 1,5K und R2 100k

Taramtamtam
20.12.2011, 14:01
Ne, finde da auch nix.

glaube 1 C mit 100nF reicht zwischen VCC und GND aber das sollte nicht das Problem sein. Hast du die Leiterbahnen mal auf Schlüsse überprüft ? Winzige CU-Reste reichen, um Fehler zu verursachen.

Malkem
20.12.2011, 14:16
das hätte ich besser vor dem auflöten der bauteile überprüfen sollen .....

kann es denn noch softwareseitig (BASCOM) schwierigkeiten geben?

Taramtamtam
20.12.2011, 14:28
das kannst du jetzt auch noch kontrollieren. Wenns beim Flashen schon hängt, kanns eigentlich nicht an der Software liegen - sie kommt ja garnicht zum Einsatz.

Hubert.G
20.12.2011, 14:55
Bilder aus dem Eagle, im Fenster "Export Image" die Auflösung auf 300dpi hochstellen. Dann ist das Bild wesentlich schärfer.
Ich würde R1 auf 100 Ohm verringern. Dann noch AREF nicht mit +5V verbinden, nur C4 dran lassen.
Edit: R2 auf 10k ändern.

Malkem
20.12.2011, 14:57
ich bin jetzt mit einem schraubendreher zwischen den ganzen leiterbahnen hergegangen, hab auch die kontakte durchgeklingelt und die scheinen auch richtig angeschlossen zu sein ...

oh mann

Taramtamtam
20.12.2011, 15:15
Wenn du an die Anschlüsse einen Motor hängst und ein Testprogramm, welches den Motor drehen läßt, übers RN-Control überträgst und dann den µC auf dein selbstgebautes Board steckst - läuft das Testprogramm ?

Malkem
20.12.2011, 15:38
hab jetzt die widerstände getauscht, trotzdem noch das gleiche problem. das mit dem testprogramm werd ich jetzt mal testen... :)

Malkem
20.12.2011, 18:54
das testprogramm funzt auch nicht ...

Taramtamtam
20.12.2011, 19:09
also hast du kein Problem mit dem isp sondern mit dem Board. Hmmm, Setzt mal die Fuses auf int. Osz. 1MHz, wenn du den Controler auf dem rn-Board hast und steck den µC dann wieder auf dein Testboard und probiers nochmal.

Malkem
20.12.2011, 19:44
super! hab jetzt einen Atmega644 drauf gesetzt und da funzt das, also das flashen, es läuft aber trotzdem kein motor .... :(
der Atmega32 und Atmega644 sind doch pinkompatibel oder vergess ich da was wichtiges?

Taramtamtam
20.12.2011, 19:49
Ja, sind sie bis auf die Timerausgänge glaub ich... ~
Evtl. die Fuses ! Was ist das für n Quarz auf dem Testboard ? 16MHz ? Du mußt sowohl im Programm als auch bei den Fuses die richtigen Werte einstellen.

Malkem
20.12.2011, 20:00
juhu! ein motor funktioniert schon mal :) aber wieso funktionierte der Atmega32 auf meiner Platine nicht trotz gleichen quarz (16MHz)?

Taramtamtam
20.12.2011, 20:06
was hast du geändert, dass es jetzt geht ? Du bist mit dem Motor an PORTC. Deaktiviere auch noch die JTAG - Funktion - dann sollte auch der andere Motor gehen.
Warum der 32er nicht geht, versteh ich jetzt auch nicht. Hast du mal nach den Clock Source - Fusebits geschaut ? Stehen die auch auf "Ext. Crystal/Resonator High Freq..."

kann eigentlich nur noch an dieser Einstellung beim ATMega32 liegen - die Clock Source, SPIEN, OCDEN, JTAGEN in den Fuses - prüf das nochmal beim 32er... mich stört etwas das nicht nur das Programm sondern auch das flashen nicht geht...

Malkem
20.12.2011, 20:14
Ich hab die frequenz im programm geändert und diesmal das programm auch kompiliert ... an den fusebits hab ich eigentlich nichts geändert. In die thematik wollte ich mich noch etwas einlesen. ich weiss das man die fusebits in AVR-studio ändern kann geht das auch bei BASCOM?

und danke für deine hilfe bis jetzt! :)

Taramtamtam
20.12.2011, 20:25
Puh, ja, das geht auch in BASCOM - aber frag mich bitte nicht wie, progge nur in c und asm mit eclipse.
Hatte mal bascom installiert - ist aber schon laaange her - ich glaube das war ein extramenueintrag Fuse...irgendwas???

Es geht auch nicht darum, ob du was geändert hast - es geht darum, wie sie beim 32er stehen. Du mußt sie ggf. ändern, dass es funktioniert. Es gibt da z.B. eine Einstellung die SPIEN heißt - wenn die nicht gesetzt ist, ist dein ISP-Interface am 32er deaktiviert. Über Clock Source kannst du die Taktquelle einstellen. Wenn die falsch ist, geht auch kein ISP und kein Programm.
Das JTAGEN - bit blockiert einige PINS am PORTC... usw, usw...

Guck mal, ob du da was findest - vorsicht mit den Fuse und Lockbits... Ändere nix, was du nicht kennst. Man kann da sachen einstellen, die die Hardware also den ATMega unbrauchbar machen...

besserer Link ! (http://www.rn-wissen.de/index.php/Bascom_-_Erstes_Programm_in_den_AVR_Controller_%C3%BCbertr agen)

Malkem
21.12.2011, 20:41
ich hab jetzt die fusebits geändert, also JTAGEN bit deaktiviert und ext. oszillator ausgewählt und seitdem kann ich auch den Atmega644 nicht mehr auf meiner testplatine programmieren..... woran liegt das nur?

auf der rn-control funktioniert es aber nach wie vor


EDIT: ich merke grad das ich statt 22pF kondensatoren 100nF kondensatoren beim oszillator verlötet hab, liegts daran?

Hubert.G
21.12.2011, 22:05
Daran liegt es ganz sicher.

Taramtamtam
22.12.2011, 11:56
Ja, dein Quarz schwingt nicht / nicht richtig... An jeden Quarzpin gehören 22pF gegen GND.

Malkem
22.12.2011, 12:55
ich hab mir heute die 22pF Kondensatoren besorgt, jetzt läuft alles wunderbar :) auch die beiden motoren.
Ich hab nur mein Atmega644 "geschrottet" weil ich wohl beim versuch den externen quarz einzustellen, das falsche ausgewählt habe und jetzt ließt er die fusebits nicht mehr aus ....

Danke nochmal an alle! :)

Taramtamtam
22.12.2011, 12:57
Läßt sich der 644 auf beiden Boards nicht mehr lesen/schreiben ?

Malkem
22.12.2011, 13:03
geht leider bei beiden nichts mehr :(

hab mal gehört das man solche µC mit nem speziellen programmer retten kann, dragon....irgentwas

Taramtamtam
22.12.2011, 13:06
Wenn du an den Lockbits warst, geht selbst das glaub ich nicht mehr...

Kampi
22.12.2011, 13:20
Wenn du an den Lockbits warst, geht selbst das glaub ich nicht mehr...

Kann man solche Controller nicht mittels HV Programmierung wieder auf "Werkszustand" zurücksetzen?

Taramtamtam
22.12.2011, 13:24
Die Einstellung "Memory Lock" läßt sich - glaube ich - nicht rückgängig machen. Der Speicher wird geschütz und das wars. Weitere Schreiboperationen sind nicht mehr möglich.
Evtl. gibt es doch ne Möglichkeit - ich kenne aber keine...

Hubert.G
22.12.2011, 13:43
Doch mit HV Programmierung geht es. Die Lock-Bit sind mit einem Erase ebenfalls zurückgesetzt.
Wahrscheinlich hast du nur auf ext. Clock gestellt.
Mach mal eine Verbindung von XTAL2 des RN-Board auf XTAL1 des anderen Board. GND ebenfalls verbinden. Vielleicht kannst du dann wieder auf die Fuses zugreifen.
STK500 oder AVR-Dragon sind natürlich die einfachere Lösung wenn greifbar.

Taramtamtam
22.12.2011, 13:49
Wahrscheinlich hast du nur auf ext. Clock gestellt.

- ja, hat er. So soll´s ja auch sein... Beim Fusebits umstellen hat er nur versehentlich andere Bits mit geändert...

Hubert.G
22.12.2011, 13:54
- ja, hat er. So soll´s ja auch sein... Beim Fusebits umstellen hat er nur versehentlich andere Bits mit geändert...
So soll es sicher nicht sein. Ext. Clock ist für eine Quarzoszillator oder sonstigen externen Takt.
Für einen Quarz ist es Ext.Crystal Osc:

Taramtamtam
22.12.2011, 13:57
ups- da war ich wohl zu schnelle ;) - ja da hast du natürlich recht.

Malkem
22.12.2011, 15:17
Doch mit HV Programmierung geht es. Die Lock-Bit sind mit einem Erase ebenfalls zurückgesetzt.
Wahrscheinlich hast du nur auf ext. Clock gestellt.
Mach mal eine Verbindung von XTAL2 des RN-Board auf XTAL1 des anderen Board. GND ebenfalls verbinden. Vielleicht kannst du dann wieder auf die Fuses zugreifen.
STK500 oder AVR-Dragon sind natürlich die einfachere Lösung wenn greifbar.

.....also eine Drahtbrücke von XTAL2 des RN-Boards mit XTAL1 meines eigenen Boards machen und die anderen beiden Kontakte auf Masse legen?

Hubert.G
22.12.2011, 15:20
Nein, nur XTAL2 mit XTAL1 verbinden. Die beiden anderen unverändert lassen.
Den GND der beiden Platinen verbinden habe ich gemeint.

Malkem
22.12.2011, 15:43
soll ich auch den internen oszillator des atmega32 aktivieren?

EDIT: Ich hatte EXTXOSC_8MHZ_XX_16KCK_65MS bei SUT_CKSEL ausgewählt und das JTAGEN-Bit deaktiviert mehr hatte ich nicht gemacht.

Hubert.G
22.12.2011, 16:53
Beim Mega32 muss der Quarz aktiv sein.
Wenn der 644 nicht mehr tut, dann hast du sicher was anderes gewählt.