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
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.
Rossi schrieb: > Hallo an alle! > Ich habe hier ein blödes Problem ...echt > deprimierend ist ^ kommt das von de-priming (entrosten)?
Abi2013 schrieb: > > kommt das von de-priming (entrosten)? Wieso? Ist doch richtig geschrieben. Oder was willst du damit sagen?
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.
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.
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),
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
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
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.
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
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?
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.
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.
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 ;)
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.
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...
Ich schrieb: > Nen M164M1 mit auf 0,5 mm Abständen geschrumpften Pins hätte was... QFN-Gehäuse nehmen?
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.
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. ;-)
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. :-)
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.
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. :-)
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.