Forum: Mikrocontroller und Digitale Elektronik ISP funktioniert nicht, Totzeit ~~~Bitte schaut mal drauf~~~


von S. G. (goeck)


Lesenswert?

Hallo Leute,

ich denke nicht, dass es sich um einen Anfängerfehler bei mir handelt. 
Deswegen bitte ich euch mein Problem einmal anzuschauen.

Ich habe einen Atmega8 in SMD und eine ISP 2x3Pin SMD-Stiftleiste mit 
entsprechender Verdrahtung. Die stimmt laut Belegung des ISP STeckersvon 
Atmel. Schau ich mir aber auf dem Oszi den Takt oder MOSI an, sehe ich 
dass, nachdem Reset auf GND gezogen wird eine Totzeit von ca 25ms 
verstreicht und derweilen alle genannten Signale auf GND liegen bis sich 
eben der Takt oder die Daten auf SCK bzw. MOSI zeigen. Auf MISO bleibt 
alles die ganze Zeit auf VCC (3,3V). Wie bekomme ich diese Totzeit weg? 
Ich meine zumindest, dass die der Grund für die nicht funktionierende 
Kommunikation mit AVRStudio ist. ZUm Programmieren nutze ich ein STK500. 
Funktionierte bisher tadellos. Signale sind alle am Stecker anliegend. 
Habe auch schon andere Kabel probiert, keine Änderung.

Ich kann mir nicht mehr helfen. Hatte bisher schon diverse
Projekte auch in SMD so durchgezogen und nie solche Probleme mit dem 
ISP, und wenn ich welche hatte lags immer an falscher oder 
unzureichender Verdrahtung. Auf Leitfähigkeit gegen alle möglichen 
Signale hab ich auch schon geprüft. Keine Kurzen vorhanden ...

Der ATMega8 ist nagelneu und von Reichelt. Denke doch, dass man da noch 
in Ruhe an die Fuses kommt.

Danke euch.
Grüße Stefan

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Prüf mal die Belegung vieleicht um einen Pin verzählt? Ansonsten ggf 
Reset nicht beschaltet?
Oder zu langes Kabel?

von holger (Gast)


Lesenswert?

>Wie bekomme ich diese Totzeit weg?

Gar nicht.

>Ich meine zumindest, dass die der Grund für die nicht funktionierende
>Kommunikation mit AVRStudio ist.

Ist sie nicht. Das AVRStudio selbst fügt diese Pause ein.

>Auf MISO bleibt
>alles die ganze Zeit auf VCC (3,3V).

Kurzschluss gegen VCC? Dann isser vieleicht schon kaputt.

von S. G. (goeck)


Lesenswert?

Hm...Kurzschlüsse kann ich ausschließen. Habe sogar schon den IC 
getauscht und einen neuen drauf gebacken. Selbes Verhalten.
Die Kabel haben bisher normal funktioniert, sind etwa 10cm lang.
Was ich weiss ist:
Alle Pins haben vom Beinchen des ICs bis zum Stift der Stiftleiste 
Kontakt und es gibt dort keine Kurzen. Und alle Signale kommen vom 
STK500 auf die Stifte des ISP Steckers auf der Platine, aber es geht 
nicht. Ich bekomme im AVRStudio die übliche ISP Fehlermeldung "check 
connection and fuse settings..."

von spess53 (Gast)


Lesenswert?

Hi

>Ich habe einen Atmega8 in SMD

Atmega8 oder Atmega8L?

MfG Spess

von S. G. (goeck)


Lesenswert?

Also der IC besagt: Atmega8-16Au und meine bestellung besagt ATmega8-16 
TQ
Sollte sich also nicht um einen "L" handeln. Was wäre denn der 
Unterschied außer der Taktfrequenz?

Grüße

Edit: ich habe nochmal im datenblatt geschaut. Der Ic muss mit mind. 
4,5V bettrieben werden. Habe ich eingestelLt und bringt keine Besserung.

von Alex W. (a20q90)


Lesenswert?

S. G. schrieb:

> Edit: ich habe nochmal im datenblatt geschaut. Der Ic muss mit mind.
> 4,5V bettrieben werden. Habe ich eingestelLt und bringt keine Besserung.

4,5V bei 16 MHz

von Miraculix (Gast)


Lesenswert?

Versuche mal, wenn vorhanden, einen (andern) Atmega in einem der Sockel
auf dem STK500 zu Programmieren/Auslesen, dann weißt Du wenigstens daß 
die Programmierschnittstelle des STK500 OK ist.

Versorgung "Zielprozessor" vom STK500?? oder aus eigenem Netzteil?
Ggf. die VCC-Verbindung STK500 Ziel-Prozessor auftrennen.......

Flachbandkabel mit Schneidklemmsteckern können manchmal seltsames
"Verhalten" zeigen, wackele mal an den Steckern, sehr oft gesteckt
kann es schon mal zu "Kontaktproblemen" kommen.

Gruß

Miraculix

von S. G. (goeck)


Lesenswert?

Hi Miraculix

habe eben ein anderes Kabel probiert. Ich kann im Wechsel auf einem 
anderen Board per ISP die Fuses auslesen und dann wieder auf mein 
"Problemboard" wechseln, da geht dann wieder gar nix. Aber danke für den 
Tipp mit dem Flachbandkabel, werde ich in Zukunft mehr dran denken.
Versorgt wird der ATMega8 über die ISP Schnittstelle. Das kommt auch an.
Habe eben nochmal die Pracht auf dem Oszi betrachtet, alles 
funktioniert, wie auf anderen Boards auch, nur MISO bleibt auf VCC ohne 
eine Regung. MISO hat aber - wie ich eben nochmal durchgemessen habe - 
keine Kurzen irgnedwohin (VCC,...).

Also scheint es nicht an der Totzeit zu liegen, wie holger schon 
beschrieben hat. Habe das an anderen System verifizieren können. das 
sieht teilweise sogar hemdsärmelig auf dem Oszi aus aber funktioniert. 
Nur jetzt hier nicht.
Es liegt wohl eher an der fehlenden Kommunikation auf MISO also vom IC 
zum STK500. Warum?

Grüße
Stefan

von Michael U. (amiga)


Lesenswert?

Hallo,

Was hängt sonst noch an den ISP-Pins des AVR?
Ein Flash o.ä. mit floatendem CS kann sowas auch gut erzeugen.

Wenn nicht, klingt es für mich nach "AVR hat keinen Takt".
Warum auch immer...

Gruß aus Berlin
Michael

von S. G. (goeck)


Lesenswert?

Hi Michael,

Ich hatte zu Anfang noch einen PSoC dranhängen auf MISO und MOSI, den 
habe ich aber auf beiden Kanälen getrennt. Kann ich später wieder 
schnell dranlöten. Der PSoC wird zwar noch mit versorgt, hat aber kein 
programm drauf, belässt also alle Pins auf GND und ist mit dem ATMega8 
außer per GND und VCC nicht verbunden in keiner Art.

Ich überprüfe nochmal, ob es mit dem Takt Probleme gibt.

Danke euch.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hast du mal geprüft ob der Programmer den AVR Reset sicher auf GND 
ziehen kann? Sonst kommst du nicht in den Programmiermodus, ggf Reset 
mal per hand auf GND legen.

von S. G. (goeck)


Lesenswert?

SCK kommt sicher an am Beinchen des ATMega an.

Ich hatte mal selbst RST auf GND gelegt, änderte sich aber nix. Werds 
nochmal probieren. So wie es auf dem Oszi aussieht, wird RST allerdings 
sauber auf GND gezogen und zum Schluss wieder hoch. Das sieht sehr 
knackig aus...

von Michael U. (amiga)


Lesenswert?

Hallo,

ich meinte weniger SCK, mehr den Takt des AVR.
Wenn er im Originalzustand ist, sollte er ja mit dem internen Oszillator 
laufen.
Falls er aus Industrierestposten stammt, kann er ja auf externem Clock 
o.ä. gefused sein.

Ansonsten: wirklich nicht verzählt? Der SMD-Mega8 hat ja 32 Pin.
Ich habe auch schon nach einem Eagle-Plan eine Schaltung auf Lochraster 
gebaut und sehr spät gemerkt, daß ich DIL hatte und dort SMD war...

Gruß aus Berlin
Michael

von S. G. (goeck)


Lesenswert?

Hey,

achso. Hm, ich habe einen 12MHz Quarz extern drangehängt (sowieso, laut 
Schaltung). Weder schwingt der an (Oszi), noch hab ich einen anderen 
Hinweis auf den nicht 1MHz-internen-RC-Takt. Der sollte ja default-mäßig 
vorhanden sein. Hm...aber ob dem nun wirklich so ist...
Ich hab jetzt schon ein paar mal geschaut und gezählt...mein Eagle brd 
stimmt an sich mit dem Datenblatt überein.

Ich werde es mal setzen lassen und am Montag wieder drauf 
kucken...Vielleicht sollte ich mal Reichelt anschreiben, um Probleme mit 
verkorksten Default Fuses etc. auszuschließen.

Grüße

von Miraculix (Gast)


Lesenswert?

Falls Michael aus Berlin mit seiner Vermutung recht hat, "Fuses" wg. 
Industrierestposten könnte es sogar sein daß der Reset "abgehängt" 
wurde. Ich würde mal versuchen, sofern in Deiner Hardware meßbar, ob die 
Ports des Atmega "hochohmig/Tristate" werden, wenn Du den Reset 
betätigst.
Dann weißt Du, ob der Reset erkannt wird, eine Voraussetzung um in den 
Programmiermodus zu kommen.

Zu einen Austausch des µP gegen einen anderen kann ich nur dann raten 
wenn der "Austausch-µP" nicht aus der gleichen Lieferung stammt. Am 
Besten gegen einen von dem man weiß daß er funktioniert....

Trotz allem ein schönes Wochenende!

(Gute Idee ert am Mo weiter zu machen)

Miraculix

von S. G. (goeck)


Lesenswert?

So, schönen guten Morgen,

grade bei reichelt nachgefragt: Die Atmegas kommen alle direkt vom 
Hersteller, irgendwelche Macken bis jetzt nicht bekannt und auch keine 
Rückläufer bis dato. Also heisst es - wie erwartet - weiter reinknien.
Ich teste mal die Tristate-Geschichte.

Grüße

EDIT: OK, alles was ich machen konnte, war den Widerstand zischen GND 
und Pin zu messen. Der befindet sich irgendwo bei 60kR. Lege ich RST auf 
GND ist die Änderung 500R nach unten.

von S. G. (goeck)


Lesenswert?

So,

jetzt habe ich mal einen ATmega48 eingelötet, der ja pinkompatibel ist. 
Ich weiss, dass die 48er, die ich habe OK sind und funktionieren.
Allerdings komm ich auch hier nicht per ISP auf den IC und es liegt 
genau das gleich Verhalten vor. Alle Signale sehen gut aus, nur MISO 
liegt ständig auf VCC.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Mal Schaltplan und Layout posten?

von S. G. (goeck)


Lesenswert?

Die Schlußfolgerung ist also, die Schaltung ist fehlerhaft.
Hier mal ein Auschnitt aus der EAGLE brd und sch Datei.
Ich finde keine Fehler dabei?!!? Ihr?

http://image-upload.de/file/zncw9L/2535c5c3b7.gif
http://image-upload.de/file/mK9lLg/eea6d4bdb6.gif

von Sven K. (Gast)


Lesenswert?

Tja, ich hätte jetzt gesagt der ISP ist mit der Pinbelegung
bei Dir komplett verdreht.

Wieso hast Du die Pinbelegung dahingehend verändert ?

Gruß Sven

von (prx) A. K. (prx)


Lesenswert?

Wenn der Stecker auf der gleichen Seite sitzt wie der Controller, dann 
stimmt aber seltsamerweise die Pinbelegung im Layout,

von S. G. (goeck)


Lesenswert?

Ist ja SMD, also musste ich den ja "drehen" --> mirrow
Also der stimmt denk ich, ich hab die Belegung hier hängen, und wenn ich 
sie drüber lege, dann sollte sie stimmen.

von Sven K. (Gast)


Angehängte Dateien:

Lesenswert?

Und PIN 6 ist mit GND verbunden ?

Gruß Sven

von S. G. (goeck)


Angehängte Dateien:

Lesenswert?

Ja, hätte mal den RATSNEST vorher ausführen sollen, bevor ich die 
Schaltung hier reinstelle. Hier also nochmal, genauso, wie mein Board 
aussieht. Der Punkt weist auf PIN1 (MISO) hin.

Grüße

von (prx) A. K. (prx)


Lesenswert?

AVCC/GND offen ist nicht so gut.

von Sven K. (Gast)


Lesenswert?

Sag mal hat Reset einen Pullup ?
Wo ist die Resetbeschaltung ?

Gruß Sven

von S. G. (goeck)


Lesenswert?

> AVCC/GND offen ist nicht so gut.
Da hatte ich dann schon mal noch ne Drahtbrücke draufgesetzt, keine 
Änderung. Werd ich aber nochmal machen.

> Sag mal hat Reset einen Pullup ? Wo ist die Resetbeschaltung ?
Ich hab noch nie einen resetpullup verwendet und damit noch nie Probleme 
gehabt. Kann auf dem Oszi sehen, dass das Herunterziehen auf GND und 
wieder Hochziehen einwandfrei funktioniert. Beide Potentiale werden mit 
einer schönen Flanke erreicht. Was meinst du genau mit Resetbeschaltung?

Grüße

von (prx) A. K. (prx)


Lesenswert?

Reset hat einen internen Pullup, die übliche externe Beschaltung ist 
optional (weniger störempfindlich).

von (prx) A. K. (prx)


Lesenswert?

Ach ja, das Übliche: ISP-Frequenz runtergedreht?

von S. G. (goeck)


Lesenswert?

A. K. schrieb:
> Ach ja, das Übliche: ISP-Frequenz runtergedreht?

Frequenz steht auf 57,6kHz. Sollte doch passen...

von Sven K. (Gast)


Lesenswert?

> Reset hat einen internen Pullup, die übliche externe Beschaltung ist
> optional (weniger störempfindlich).

Nagut, ok.

Du siehst also VCC auf MISO, d.h. PIN1 führt Potential von PIN2;
bist Du sicher das nicht eine Brücke zwischen PIN1 und 2 des ISP besteht 
?

Unter dem Pinheader etwas Lötzinn ?
Wir kennen ja Deine Lötkünste nicht ;-)

Gruß Sven

von Sven K. (Gast)


Lesenswert?

Ok, im ersten Posting hast Du das schon überprüft sorry.

von S. G. (goeck)


Angehängte Dateien:

Lesenswert?

Habe hier nochmal die gleiche Platine in einer früheren Revision. Dort 
war der ISP Stecker noch nach links gedreht. Der wurde in der aktuellen 
Revision einfach nach rechts gedreht. Die frühere Platine habe ich hier 
mit einem ATMega48 und kann die Fuses ohne Probleme auslesen. MISO sieht 
so aus, wei erwartet. normale Funktion...
ich versteh die Welt nicht mehr...

von S. G. (goeck)


Lesenswert?

Also ich wär ja sehr froh, wenn es sowas ist, wie eine tote Lötstelle 
oder so. Aber ich finde bis jetzt auf der gesamten Platine keine Kurzen 
und habe Durchgang vom Beinchen des ICs bis zum Stift der Stiftleiste 
auf jedem Kanal.

von Sven K. (Gast)


Lesenswert?

Tja, aber demnach kann es nur noch eine dieser Lötstellen sein.
Was ich mir noch vorstellen könnte,

1. gehen wir mal davon aus Du hast ein PIN nicht sauber verlötet
2. Du piepst jetzt mit einem Prüfer mechanisch das Bein durch
   und drückst es damit auf das PAD -> Kontakt da
3. Du nimmst den Prüfer wieder weg, Beinchen hebt etwas an,
   Kontakt weg.

Das ist jetzt das letzte was mir noch einfällt.

Gruß Sven

von S. G. (goeck)


Lesenswert?

Ich hab keine Ahnung, da tut sich nichts....grrrrrrrrrrr

von Miraculix (Gast)


Lesenswert?

Also auch keine schlechte Lötstelle.......

Wenn es immer noch nicht geht, würde ich im spannungslosen Zustand mit 
dem Multimeter nochmals testen, ob das richtige "µP-Beinchen" auch am 
richtigen "Steckerbeinchen" des STK500 ankommt.

Dann würde ich, so verrückt es auch klingen mag, die ISP-Pins vom µP
"hochlegen", also vorsichtig von der Platine lösen, und direkt mit dem 
STK500 verbinden, dann ist der wie auch immer mögliche Einfluß der 
Platine und deren HW auf die ISP-Schnittstelle sicher ausgeschaltet.
Die Beinchen liegen glücklicherweise "am Eck" so daß man recht gut 
herankommt.
Vielleicht hilft das weiter.

Ein Tipp am Rande: Die vorher gepostete Meinung AVCC und GND anschließen 
halte ich für absolut nötig, solange keine Analogsignale verarbeitet 
werden kann Avcc direkt an Vcc gehängt werden. Sonst Spule verwenden.

Es empfiehlt sich durchaus den Reset-Input mit z.B. 10k hochzuziehen, 
bringt viel in Richtung Störsicherheit.

MfG

Miraculix

von S. G. (goeck)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe heute nochmal einen Anlauf genommen und die Platine neu geätzt 
und bestückt. Allerdings hatte ich eine kleine Änderung eingebaut. Die 
Reset Leitung des ISP hatte ich nciht komplett "außen" rum geroutet, 
sondern etwas kürzer gehalten. (siehe Anhang, allerdings ist hier der 
Ratsnest Befehl nch nciht ausgeführt, bei der geätzten Platine ist das 
nämlich so) Siehe da, ich kann ohne Probleme auf den AVR zugreifen. 
Allerdings will ich nicht behaupten, dass es an der etwas kürzeren reset 
leitung liegt. ich weiss bis heute nicht, woran es lag, dass ich nicht 
fusen konnte.
Wenn noch jemand einen Hinweis hätte, wär ich dankbar.
Für dieses projekt ist erst mal alles wieder im lot und funktioniert.

Danke euch für eure umfangreiche Hilfe!

Grüße vom Rhein
Stefan

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
Noch kein Account? Hier anmelden.