Forum: Mikrocontroller und Digitale Elektronik JTAGICE3 Signatur auslesen,


von Rossi (Gast)


Angehängte Dateien:

Lesenswert?

Hallo an alle!
Ich habe hier ein blödes Problem ich hoffe ich finde hier Hilfe.

Ich habe hier eine Platine mit einem ATMEGA32M1 drauf. Versuche mit 
Atmel Studio 6.0 und JTAGICE3 via SPI die Signatur des Atmega auszulesen 
scheitern immer mit der selben Fehlermeldung:

Failed to enter programming mode. ispEnterProgMode: Error status 
received: Got 0xc0, expected 0x00, ModuleName: TCF (TCF command: 
Device:startSession failed.)

Die Verbindungen habe ich mehrmals überprüft (MISO,MOSI,SS,SCK,VCC,GND), 
scheint zu passen soweit. Im Anhang habe ich ein Bild mit dem Signal auf 
der MISO Leitung wenn ich versuche die Signatur auszulesen. Wie ich das 
Signal deuten soll weiss ich nicht wirklich. :-/
Die anderen Signale schalten schön zwischen 0V-5V.

Einen Quarz habe ich noch nicht dran da der noch nicht geliefert werden 
konnte. Aber das sollte nicht das Problem sein da SCK den Takt gibt wenn 
ich das richtig verstanden habe? Ich hoffe ich kriege einen Tipp wo ich 
den Fehler suchen kann, da ich neu in der Programmierung von 
Mikrocontroller bin und so gern mal starten würde und es echt 
deprimierend ist wenn es bereits bei der Signatur auslesen scheitert.

Grüße

von Bernd S. (bernds1)


Lesenswert?

Rossi schrieb:
>
> Einen Quarz habe ich noch nicht dran da der noch nicht geliefert werden
> konnte. Aber das sollte nicht das Problem sein da SCK den Takt gibt wenn
> ich das richtig verstanden habe?

Wenn das ein neuer Prozessor ist, sollten die Fuses eigentlich auf dem 
internen Oszillator stehen, sodaß der Prozessor auch einen Takt bekommt. 
Wenn er schon einmal programmiert war auf externen Quarz, und jetzt hast 
du keinen Quarz dran, geht's nicht. Dann kannst du höchstens an XTAL2 
ein externes Taktsignal anlegen zum Flashen.
Man muß immer unterscheiden zwischen dem Takt für den Prozessor, damit 
er überhaupt arbeitet und dem Takt für die Datenübertragung beim 
Flashen. Der eine kann den anderen nicht ersetzen.

Was auch noch sein kann, probiere mal im Programmierdialog den ISP-Takt 
runterzunehmen, vielleicht ist der zu hoch eingestellt. Er muß auf jeden 
Fall niedriger als 1/4 der Prozessorfrequenz sein. Und wenn du einen 
neuen Prozessor hast, ist der (interne) Takt meist auf 8 MHz eingestellt 
und dazu noch eine Fuse gesetzt, die den Takt nochmal durch 8 teilt. 
Also hast du einen Takt von 1 MHz. Den ISP-Takt mußt du also auf max 
250kHz stellen.

von Kurt (Gast)


Lesenswert?

Welche Einstellungen benutzt du mit welcher IDE?

von Abi2013 (Gast)


Lesenswert?

Rossi schrieb:
> Hallo an alle!
> Ich habe hier ein blödes Problem ...echt
> deprimierend ist
      ^

kommt das von de-priming (entrosten)?

von Bernd S. (bernds1)


Lesenswert?

Abi2013 schrieb:

>
> kommt das von de-priming (entrosten)?

Wieso? Ist doch richtig geschrieben. Oder was willst du damit sagen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rossi schrieb:
> Wie ich das
> Signal deuten soll weiss ich nicht wirklich. :-/

Als parasitäres Gewurschtel, welches du durch eine schlechte
GND-Leitungsführung (ggf. des Tastkopfes) hast.  Ansonsten als:
"da ist nüscht, was man sehen kann".  Mit anderen Worten: das
Oszillogramm bestätigt die Aussage der Fehlermeldung, dass der
Chip nicht antwortet.

> Die anderen Signale schalten schön zwischen 0V-5V.

Zeig doch mal, bitte.

Bernd S. schrieb:
> Dann kannst du höchstens an XTAL2
> ein externes Taktsignal anlegen zum Flashen.

XTAL1, bitte.

von Bernd S. (bernds1)


Lesenswert?

Jörg Wunsch schrieb:
> XTAL1, bitte.

Stimmt, sorry.

von Rossi (Gast)


Lesenswert?

Bernd S. schrieb:
>
>
>
> Was auch noch sein kann, probiere mal im Programmierdialog den ISP-Takt
>
> runterzunehmen, vielleicht ist der zu hoch eingestellt. Er muß auf jeden
>
> Fall niedriger als 1/4 der Prozessorfrequenz sein. Und wenn du einen
>
> neuen Prozessor hast, ist der (interne) Takt meist auf 8 MHz eingestellt
>
> und dazu noch eine Fuse gesetzt, die den Takt nochmal durch 8 teilt.
>
> Also hast du einen Takt von 1 MHz. Den ISP-Takt mußt du also auf max
>
> 250kHz stellen.


Hi Bernd,
danke für deine Hilfe. Nein der MCU war noch nicht programmiert...ist 
ganz frisch. Um auszuschließen dass er nix abbekommen hat hab ich ihn 
extra mal zwischendurch ausgetauscht.
Den Tipp mit der Frequenz hab ich schon ausprobiert. Mehrere Werte von 8 
kHz bis 250 kHz ausprobiert, immer die gleiche Fehlermeldung.

von Rossi (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Zeig doch mal, bitte.

Hole ich gleich mal nach sobald ich dazu komm,danke!

von Hans H. (hanshi)


Lesenswert?

Bei ATMEGA32M1 zum Programmieren : MISO_A,MOSI_A und SCK_A verwenden.

Datenblatt 15.2.3 Seite 163 unten

Gruesse
  Hans

Rossi schrieb:
> Die Verbindungen habe ich mehrmals überprüft (MISO,MOSI,SS,SCK,VCC,GND),

von Bernd S. (bernds1)


Lesenswert?

Hans H. schrieb:
> Bei ATMEGA32M1 zum Programmieren : MISO_A,MOSI_A und SCK_A verwenden.
>

Ja, im Datenblatt wird darauf hingewiesen, daß zum Programmieren immer 
der alternative SPI verwendet werden muß.

"Note that programming port are always located on alternate SPI port."

Darauf muß man erstmal kommen. Wäre mir vielleicht auch passiert, weil 
ich von anderen AVR's gewohnt bin, daß der normale SPI zum Programmieren 
verwendet wird.

Gruß Bernd

von Rossi (Gast)


Lesenswert?

Danke Hans für den Hinweis werd das mal versuchen.
ja Bern das habe ich überhaupt nicht gesehen. Hoffe das ist die 
Ursache..

grüße

von Ich (Gast)


Lesenswert?

Hast Du es mal deutlich langsamer versucht?

Ich habe gerade eine Platine mit einem 16M1 in Betrieb genommen und 
musste die Geschwindigkeit vom ISP deutlich unter 1/4 Takt senken bevor 
der sich ansprechen lassen wollte.

5V, interner RC-Oszi, CKDIV8 drin -> sollte 1 MHz ergeben
-> sollte sich mit bis zu 250kHz ISP ansprechen lassen

Ging aber nicht.

Gerade nochmal mit dem Controller ausprobiert, hab die CKDIV8 wieder 
reingesetzt, ein Quarz ist da noch nicht drauf.
Jetzt kann ich den Controller bis 266 kHz ISP ansprechen.

Wie weit runter ich gehen musste damit der sich das erste Mal ansprechen 
liess kann ich leider nicht mehr sagen.

Ach ja:

µC  ISP
1   1   MISO
2   4   MOSI
12  3   SCK
31  5   Reset
    2   VCC
    6   GND

Was auch immer sich Atmel bei den Dingern gedacht hat als die Pins 
zugewiesen wurden, die finde ich grauenhaft verkorkst.

von Rossi (Gast)


Lesenswert?

Es funktioniert!!!!!!!!

MISO_A,MOSI_A,SS_A,SCK_A am ISP angeschlossen.DANKE!!! Während dem lesen 
muss der RESET auf LOW was ich mittels einem Taster machen 
kann.Ansonsten funktioniert es nicht. Bzw. es funktioniert auch wenn 
SS_A nicht angeschlossen ist, warum?
Die Signatur ist richtig habe ich eben überprüft.
Wirkt sich beim einfachen lesen einer Signatur das nicht weiter aus, 
wenn SS_A nicht angeschlossen ist? Das Slave Select ist doch vor allem 
zum starten und beenden einer Übertragung nötig wenn ich das richtig 
verstanden habe?

Und kann ich jetzt es so einrichten, dass ich in Zukunft die 
MISO,MOSI,SS,SCK verwende für die Kommunikation? (Würde mir die Arbeit 
etwas erleichtern)

Grüße

von Rossi (Gast)


Lesenswert?

Ich schrieb:

> µC  ISP
>
> 1   1   MISO
>
> 2   4   MOSI
>
> 12  3   SCK
>
> 31  5   Reset
>
>     2   VCC
>
>     6   GND
>
>
>
> Was auch immer sich Atmel bei den Dingern gedacht hat als die Pins
>
> zugewiesen wurden, die finde ich grauenhaft verkorkst.
>
>
>

Ja das frage ich mich....naja....

Sehe ich das Richtig du verwendest MISO, MOSI, aber SCK_A ? Müsste nicht 
ISP PIN 5 an µC PIN 28?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rossi schrieb:
> Das Slave Select ist doch vor allem
> zum starten und beenden einer Übertragung nötig wenn ich das richtig
> verstanden habe?

Für die ISP-Programmierung dient /RESET als slave select.

von Bernd S. (bernds1)


Lesenswert?

Rossi schrieb:
> Es funktioniert!!!!!!!!

Glückwunsch!
Für die Kommunikation kannst du auf jeden Fall die "normalen" MISO, 
MOSI, SS, SCK verwenden. Aber die Programmierung geht bei DIESEM 
Prozessor eben nur über die *_A. Das läßt sich nicht ändern, das hat der 
Hersteller so festgelegt. Bei anderen AVR's geht auch die Programmierung 
über die normalen Pin's. Wie viele AVR's eine abweichende Belegung 
haben, kann ich dir nicht sagen, da kann man nur im Datenblatt suchen, 
ehe man eine Schaltung aufbaut.
Was den Reset anbelangt, wird der doch über den ISP auf GND gezogen, 
warum brauchst du hier einen Taster? Der Reset vom Prozessor wird 
normalerweise mit einem Widerstand von 10kOhm gegen +5V beschaltet und 
direkt an das Reset-Pin kommt der ISP-Steckverbinder mit dem Reset. Hast 
du es anders gemacht?
Zum SS kann ich dir im Moment nichts sagen, da kann sich vielleicht 
jemand anderes noch äußern.

von Rossi (Gast)


Lesenswert?

Rossi schrieb:
> Und kann ich jetzt es so einrichten, dass ich in Zukunft die
>
> MISO,MOSI,SS,SCK verwende für die Kommunikation? (Würde mir die Arbeit
>
> etwas erleichtern)

ups, natürlich kann ich das .... Seite 163 ;)

von Bernd S. (bernds1)


Lesenswert?

Bernd S. schrieb:

> Zum SS kann ich dir im Moment nichts sagen, da kann sich vielleicht
> jemand anderes noch äußern.

Gerade sehe ich, der SS ist nur für SPI da, der ist nicht mit auf dem 
ISP-Anschluß. Da hast du nur MISO, MOSI, SCK, /RESET, GND und +5V.

von Ich (Gast)


Lesenswert?

Rossi schrieb:
> Sehe ich das Richtig du verwendest MISO, MOSI, aber SCK_A ? Müsste nicht
> ISP PIN 5 an µC PIN 28?

Äh, ISP Pin 5 ist schonmal Reset. :-)
Und nein, es sind MISO_A, MOSI_A und SCK_A am µC, da war ich nur etwas 
Tipp-faul und habe die Pins so aufgeschrieben wie sie eben immer an der 
ISP benannt sind.

Da habe ich übrigens auch nen LIN dran, der Transceiver an Pins 12/2 vom 
µC ist durch je einen 4k7 vom ISP entkoppelt.
In Betrieb genommen habe ich das immer noch nicht weiter und bestückt 
ist auf der Platine bisher auch nur der CAN-Transceiver.

Nett finde ich an den Dinger ja auch, dass die zwei Input-Capture Pins 
haben, wenn auch gemultiplexed.
Nur ist der eine auf dem CAN, der andere auf dem LIN...

Und dann mal sehen, wie es sich so mit dem DAC spielen lässt.

Das neue AD-Wandler Modul mit so Sachen wie VCC/4 ist auch drollig.

Nen M164M1 mit auf 0,5 mm Abständen geschrumpften Pins hätte was...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ich schrieb:
> Nen M164M1 mit auf 0,5 mm Abständen geschrumpften Pins hätte was...

QFN-Gehäuse nehmen?

von Ich (Gast)


Lesenswert?

Jörg Wunsch schrieb:
>> Nen M164M1 mit auf 0,5 mm Abständen geschrumpften Pins hätte was...
>
> QFN-Gehäuse nehmen?

Naja, davon ab, dass es einen M164M1 nicht gibt. :-)

TFQP32 mit 0,8 Pitch hat 9x9 mm Aussen
Atmels QFN32 hat 7x7 mm Aussen
TQFP32 mit 0,5 mm Pitch hat 7x7 mm Aussen

Aber, QFN lässt sich durch die Fläche drunter deutlich schlechter 
layouten, man muss ja erstmal nach aussen mit den Signalen statt einfach 
unten drunter durch.
Und von Hand kann man das auch nicht mal eben auflöten, so für 
Prototypen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ich schrieb:
> Aber, QFN lässt sich durch die Fläche drunter deutlich schlechter
> layouten, man muss ja erstmal nach aussen mit den Signalen statt einfach
> unten drunter durch.

Das ist natürlich richtig.

> Und von Hand kann man das auch nicht mal eben auflöten, so für
> Prototypen.

Man gewöhnt sich an alles. ;-)

von Ich (Gast)


Lesenswert?

Jörg Wunsch schrieb:
>> Und von Hand kann man das auch nicht mal eben auflöten, so für
>> Prototypen.
>
> Man gewöhnt sich an alles. ;-)

Naja, die Fläche drunter ist für mich der Haken.
War das bei Atmel so? Die muss zu 30% angelötet sein?
Da habe ich auf einer Platine mal unter den M32 in QFN eine dicke 
Durchkontaktierung gesetzt um das Anlöten zu können.

Mit 0,5 mm TQFPs könnte ich das kleiner Layouten und immer noch gut 
löten.

Und ist dann ja auch nicht so, als ob die Chips die Gehäuse füllen 
würden. :-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ich schrieb:

> War das bei Atmel so? Die muss zu 30% angelötet sein?

Allerdings nur der Mechanik wegen: man traut den Pads nicht die
mechanische Festigkeit zu, dass das ganze Bauteil nur daran hält.

Elektrisch ist das Pad bedeutungslos (das Si-Substrat hat eine
viel schlechtere Leitfähigkeit als die Masseanschlüsse), thermisch
wäre es höchstens dann von Belang, wenn man viel Leistung im Chip
umsetzt.

Allerdings ist es natürlich verwegen, under dem Pad etwas anderes
als Masse zu haben.  Lötstopplack ist ja keine echte Isolation.

> Und ist dann ja auch nicht so, als ob die Chips die Gehäuse füllen
> würden. :-)

Bei QFN schon, so einigermaßen jedenfalls.  Wird ja daher auch als
chip-scale package bezeichnet.

von Ich (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Bei QFN schon, so einigermaßen jedenfalls.  Wird ja daher auch als
> chip-scale package bezeichnet.

Nein, QFN ist noch lange kein CSP.

Schau mal hier zum Beispiel:

http://flylogic.net/chippics/atmega169p/package_large.jpg
http://www.flylogic.net/blog/?tag=atmel

Bei dem µC belegt das DIE also nur etwa 1/9 der Fläche des Gehäuses.
Damit müsste das als CSP bei 4x4 mm ankommen.
Das QFN64 hat aber 9x9 mm.

Das Pad hintendrauf ist vermutlich direkt die Rückseite vom Chip.
Und das hat beim 16M1 4,5x4,5 mm während das ganze Ding 7x7 mm hat.

Nach Wikipedia ist CSP wohl so definiert das die Fläche des Gehäuse 
maximal 1,2x der Chipfläche sein darf.
Also ein QFN32 vom 16M1 mit 5x5 mm wäre dann CSP. :-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ich schrieb:

> Damit müsste das als CSP bei 4x4 mm ankommen.

Könnte passen.  Ist zwar ein QFP dort, aber man kann die Größe des
Chips abschätzen.

> Das QFN64 hat aber 9x9 mm.

Kleiner wird bei der Pinanzahl linear kaum drin sein.  Es gibt zwar
wohl auch QFN mit 0,45 oder gar 0,4 mm, aber nennenswert viel spart
man damit trotzdem noch nicht.  Dafür muss man dann flächig
verteilte Kontakte (BGA) haben.

> Das Pad hintendrauf ist vermutlich direkt die Rückseite vom Chip.

Nein, die Rückseite des Chips ist ja nicht aus Metall.  Der Chip
wird auf die Metallfläche gelötet oder geklebt.

von Ich (Gast)


Lesenswert?

Na, Deine Theorie war doch das DFN quasi CSP ist. :-)
Und das haut nicht hin weil DFN zu gross ist.

Was aber nichts damit zu tun hat, dass ich mir nen ATMega164M1 im 0,5 mm 
TQFP wünsche. :-)
Oder nen 90CAN32 mit 0,5 mm Pitch.
Endlich mal die AT32UC3C264C an den Start bringen die hier zu lange 
rumliegen...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ich schrieb:
> Na, Deine Theorie war doch das DFN quasi CSP ist. :-)

Als das wird es zum Teil vermarktet.  Ist natürlich immer die Frage,
wer die Definition für CSP aufstellt … (außerdem: QFN, DFN hätte ja
nur an zwei Seiten die Pads).

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.