Aus dem Programmer kommen 2 a 10 Pin Verbinder raus.
Einmal für SAM und einmal für AVR. Das hab ich soweit verstanden.
Wenn ich den AVR Port mit dem Kabel Nummer 1 (siehe Bild) nutze.
Und diesen auf die Adapter Platine stecke.
Stimmt die Pin Belegung von dem 10Pin Stecker mit Nase auf der Adapter Platine nicht mit den Bildern überein.
Port 2 VCC ist falsch. Dies ist GND.
Port 4 GND ist falsch. Dies ist VCC.
Dabei ist mir aufgefallen, dass die Pinbelegung so ist, wie auf dem ersten 10pin Steckerbild ohne Nase ist.
Ich komme auch nicht mit dem 6pin Stecker klar.
Woher weiß ich, welcher Pin 1 ist beim Verbinden?
Das Kabel von 10pin auf 6pin verstehe ich auch nicht.
Die 10pin seite soll ich doch in die Adapterplatine stecken?
Aber da sind VCC und GND auch falsch.
Der AVR-10-Pin-Stecker hat die Pinbelegung, die für AVR-JTAG benutzt wird. Für ISP hat Atmel eh immer nur die 6-Pin-Variante propagiert, auch wenn sich die 10-Pin-Variante irgendwie in den Weiten der Welt hartnäckig gehalten hat. Die stammte wohl mal vom STK200 (einem Parallelport-Dongle), auf dem STK500 gab es zwar noch den Stecker, aber die komplette Doku benutzt dann nur noch die 6-Pin-Variante für ISP.
Dafür sollte das beigelegte 6-Pin-Kabel Kabel (das zweite von links) sehr wohl funktionieren, wenn du es bei "AVR" reinsteckst, ansonsten hättest du beim Lieferanten einen Reklamationsgrund.
Das Adapterboard kann man dann dazu benutzen, den 10poligen Stecker mit 1,27 mm Raster auf die bei AVR üblichen 2,54 mm Raster für JTAG anzupassen (zusammen mit dem 10-Pin-Kabel ganz links).
Die JTAG- bzw. SWD-Belegung bei Cortex-M ist anders, daher gibt es am Gerät dafür einen zweiten Stecker. Dann kann man entweder den 10poligen Stecker mit 1,27 mm Raster benutzen (so wurde es von ARM genormt), oder das Adapterboard mit dem 20poligen Stecker 2,54 mm Raster.
Die Variante Cortex-M JTAG/SWD benutzt das Kabel mit den 1,27 mm Steckern 1:1.
Die Fotos sind mit dem Adapterboard von Atmel gemacht, da ist der große 10-Pin-Verbinder weiblich und kann direkt auf die Zielplatine gesteckt werden. Bei dir haben sie eine Stiftleiste, da musst du noch das 10-Pin-Kabel zusätzlich benutzen, wenn du AVR JTAG machen willst.
Achso: der 6-Pin-Verbinder mit 1,27 mm Raster ist mir noch nie ernsthaft begegnet. Hat ansonsten das gleiche Pinout wie sein großer Bruder (der direkt am Kabel dran ist).
Ich war damals nach Erstehung des ICEs überrascht, daß ATMEL/MC. den AVR Port anscheinend "verdreht" designierte. Relativ zu üblichen Nasen Referenz sind die aktuellen Pins um 180 Grad verdreht. Ich kann nicht beurteilen, ob das ein Übersehen war oder eine "Feature".
Wenn die Wanne um 180 Grad verdreht aufgeschoben werden könnte, würde es wieder stimmen. Die Nase der Wanne muß nach unten zeigen, um in Referenz zur Tabelle wieder richtig zu sein.
So, wie Georg es gezeigt hat, ist Pin-10 im Bild gleich der SCK Pin- Zuordnung in der Tabelle. Wenn die Wannenausparung verdreht wäre, stimmte es wieder.
Es betrifft nur jenen Designer, der sich ohne dieser Tatsache bewußt zu sein, an die Tabelle hält und seine LP dementsprechend zuordnet und ein 1:1 Kabel verwenden will. Wer sich im Layout an die übliche Wannenstecker Pin-Zuordnung hält, wird merken, daß es nicht funktioniert und daß man das Flachkabel beim Montieren der IDC-Stecker erst um 180 Grad umdrehen muß damit es mit dem ICE wieder korrekt verbunden ist.
Hat jemand eine Ahnung warum ATMEL das so in den Umlauf gebracht hat?
Auf den ersten Blick scheint es ein Versehen zu sein. Könnte da trotzdem eine Absicht dahinter stecken? Wenn ja, erschließt es sich mir momentan nicht.
Ich finde übrigens, daß es angenehmer gewesen wäre, anstatt der 1.27mm Verbinder herkömmliche 2.54mm Verbinder gewählt zu haben. Es ist ja nicht so, daß jeder nur noch ultraminiaturisierte LP konstruiert. Naja, wenn man alle Kabel Adapter einmal hat, dann macht es nichts mehr aus.
Das Problem der Adaptierung betrifft hauptsächlich jene (mich), die aus Ersparnisgründen nur die nackte Bord kauften, weil da alles Zubehör fehlt und sich man erst die Infrastruktur schaffen muß. Ein freundliches Forenmitglied schenkte mir sogar eine Universal Adapter LP mit Vorsehung aller AVR/JTAG "Standard" Headers dran. Damit geht es natürlich wieder ganz gut.
Hat jemand eine Ahnung warum ATMEL das so in den Umlauf gebracht hat?
Das mitgelieferte Kabel dreht dann wieder (die Stecker sind auf verschiedene Seiten gecrimpt). Warum sie das genau so getan haben, keine Ahnung.
Das größte Problem mit den 1,27er Steckern und Kabeln ist, dass da nur noch wenige Litzendrähte pro Signal drin sind, sodass sie ziemlich schnell wackelig werden, wenn man sie häufig zieht und steckt (weil man bspw. zwischen ARM und AVR hin und her stecken muss).
Hat jemand eine Ahnung warum ATMEL das so in den Umlauf gebracht hat?
Das mitgelieferte Kabel dreht dann wieder (die Stecker sind auf
verschiedene Seiten gecrimpt). Warum sie das genau so getan haben, keine
Ahnung.
Interessant. Mir kommt es persönlich so vor, daß man den Fehler bei ATMEL erst zu spät bemerkt hat und die erste Produktion nicht in den Müll bringen wollte. Aber dann hätte man ja einen Errata in die Dokus geben können, oder einen Warnzettel beilegen könnte, daß die Pinbelegung verdreht ist. Naja, wie dem auch sei, dieser Fehler wird wahrscheinlich aus Konsistenzgründen nun kaum jemals behoben werden. Aber mit einen bekannten Feind läßt sich bakanntlich meist leben:-)
Das größte Problem mit den 1,27er Steckern und Kabeln ist, dass da nur
noch wenige Litzendrähte pro Signal drin sind, sodass sie ziemlich
schnell wackelig werden, wenn man sie häufig zieht und steckt (weil man
bspw. zwischen ARM und AVR hin und her stecken muss).
Das ist mir noch nicht passiert. Ich bin immer sehr vorsichtig und verwende auf der Target LP nach Möglichkeit eine Wannenbuchse mit Rauswurfhebeln (Ejector). Da hält sich die Beanspruchung in Grenzen. Aber so eine Wannenbuchse ist fast so lang wie eine 5x2 2.54mm Version.
Der 3x2 Verbinder braucht am wenigsten Bordfläche.
Aber funktionieren tut das Teil und das ist die Hauptsache.
Ich finde es ist etwas bedauerlich, daß der Hersteller in der Doku diesen Umstand nicht näher beleuchtet, daß die Tabellen Pin-Belegung relativ zur Wannenorientierung technisch inkorrekt ist. Dann hätte der "unschuldige" Designer, der den ICE erst bestellen muß, einen Anhaltspunkt wie die Steckerbelegung sein müsste. So findet er erst beim Erproben seiner HW heraus, daß da ein Hund begraben liegt.
Prinzipiell wäre ein USB-C Steckverbindung "cool". Da bräuchte man sich nicht um Verdrehen kümmern und kompakt ist es auch.
Mir kommt es persönlich so vor, daß man den Fehler bei ATMEL erst zu
spät bemerkt hat und die erste Produktion nicht in den Müll bringen
wollte.
Denke ich nicht. Wenn es ein Fehler gewesen wäre, hätte man sowas im Rahmen der nur intern verwendeten Prototypen bemerkt und dann korrigieren können.
Der Vorgänger (ATJTAGICE3) war bereits genauso aufgebaut. Ist ansonsten sehr ähnlich, nur dass er noch keine separate Buchse für ARM hatte, obwohl meiner Erinnerung nach in einer späteren Firmware ARM-Support hinzu gekommen ist.
Prinzipiell wäre ein USB-C Steckverbindung "cool".
Dafür ist das Teil vom Design her zu alt. Da war USB-C gerade erst in den Anfängen. Das JTAGICE3 kam noch mit Mini-USB, beim AtmelICE haben sie dann MikroUSB genommen.
Mir kommt es persönlich so vor, daß man den Fehler bei ATMEL erst zu
spät bemerkt hat und die erste Produktion nicht in den Müll bringen
wollte.
Denke ich nicht. Wenn es ein Fehler gewesen wäre, hätte man sowas im
Rahmen der nur intern verwendeten Prototypen bemerkt und dann
korrigieren können.
Irgendwie finde ich die Pin-Belegungs Philosophie verworren. Mal abgesehen von der Vorgeschichte, finde ich, dass sich Dokumentationstechnisch ein Fehler eingeschlichen hat, wenn man sich an die Hersteller Steckverbinder Pin Nummerierung hält. In diesen Kontext ist die Doku Pin Belegungsinformation schlicht falsch.
Nimm mal an, ich, ganz unschuldiger Designer, erstelle eine PCB mit ICSP Schnittstelle und nehme nun die Manualangaben wo PIN-1 als SCK designiert ist. Den ICE muss ich erst bestellen... Mir ist seit jeher bekannt, dass PIN-1 immer auf der Seite der Nase ist. Ich lege die Bord aus, kriege sie hergestellt. Der Tag kommt, wo nun der uC geflasht werden soll und - es geht nicht. Fehlersuche ergibt, dass PIN-1 eigentlich PIN-10 ist - Sch*****;-) OK, ich mach ein verdrehtes Kabel. Uff, noch einmal gut gegangen, denkt er...
Die Moral von der Geschicht ist, dass es "nett" vom Hersteller gewesen wäre, diese Unregelmäßigkeit mit einem sinnvollen Hinweis herauszustellen.
Der Vorgänger (ATJTAGICE3) war bereits genauso aufgebaut. Ist ansonsten
sehr ähnlich, nur dass er noch keine separate Buchse für ARM hatte,
obwohl meiner Erinnerung nach in einer späteren Firmware ARM-Support
hinzu gekommen ist.
Das wusste ich nicht. Habe bis jetzt nur Segger/J-Link verwendet. Mit SAM habe ich noch nichts gemacht.
Prinzipiell wäre ein USB-C Steckverbindung "cool".
Dafür ist das Teil vom Design her zu alt. Da war USB-C gerade erst in
den Anfängen. Das JTAGICE3 kam noch mit Mini-USB, beim Atme-lICE haben
sie dann Mikro-USB genommen.
Anbetracht der Nummer der Pins und Verdrehbarkeit, finde ich USB-C als "coolsten" Steckverbinder der jüngsten Geschichte;-)
Nimm mal an, ich, ganz unschuldiger Designer, erstelle eine PCB mit ICSP
Schnittstelle und nehme nun die Manualangaben wo PIN-1 als SCK
designiert ist. Den ICE muss ich erst bestellen...
Den bekommst du aber normalerweise mit dem passenden Kabel.
Ursprünglich waren da einfach nur Kabel mit zwei 10-Pin-Steckern dabei und 1,27 mm Rastermaß. Wenn du das "falsch herum" eingesteckt hast, stimmte zwar trotzdem noch die Nummerierung am Target mit dem Stecker und dessen Markierungsnase überein, aber es hätte sein können, dass der rote Strich nicht passt. Später haben sie dann diese Doppelkabel mit dem am Ende angebrachten 6-Pin-Stecker genommen, da ist die Positionierung eindeutig: die beiden eng nebeneinander liegenden 6- und 10-Pin-Stecker zum Target, der andere zum ICE. Dann stimmte auch auf jeden Fall der rote Strich am Kabel, denn der verdreht gecrimpte Stecker war immer auf der Seite des ICE.
Als ursprünglich ziemlich lowcost-Variante (war anfangs billiger als der fast legendäre AVR Dragon) hatten sie eben zusätzlich noch die nackten PCBs vermarktet. Dort musstest du das als Anwender schon wissen, dass du ein gedrehtes Kabel brauchst, in der Tat. Der Lieferant aus dem initialen Posting hatte nun offenbar eine größere Menge solcher PCBs gekauft und baut selbst daraus komplette Kits.
Seit Microchip das alles übernommen hat, ist der Kram inzwischen mehr als doppelt so teuer geworden. Die wollen wohl lieber ihre eigenen Debugger promoten als die alten Atmel-Teile.
Nimm mal an, ich, ganz unschuldiger Designer, erstelle eine PCB mit ICSP
Schnittstelle und nehme nun die Manualangaben wo PIN-1 als SCK
designiert ist. Den ICE muss ich erst bestellen...
Den bekommst du aber normalerweise mit dem passenden Kabel.
Wer "nackte" Bords kauft wie ich, leider nicht.
Ursprünglich waren da einfach nur Kabel mit zwei 10-Pin-Steckern dabei
und 1,27 mm Rastermaß. Wenn du das "falsch herum" eingesteckt hast,
stimmte zwar trotzdem noch die Nummerierung am Target mit dem Stecker
und dessen Markierungsnase überein, aber es hätte sein können, dass der
rote Strich nicht passt. Später haben sie dann diese Doppelkabel mit dem
am Ende angebrachten 6-Pin-Stecker genommen, da ist die Positionierung
eindeutig: die beiden eng nebeneinander liegenden 6- und 10-Pin-Stecker
zum Target, der andere zum ICE. Dann stimmte auch auf jeden Fall der
rote Strich am Kabel, denn der verdreht gecrimpte Stecker war immer auf
der Seite des ICE.
Das erklärt Vieles. Danke.
Als ursprünglich ziemlich lowcost-Variante (war anfangs billiger als der
fast legendäre AVR Dragon) hatten sie eben zusätzlich noch die nackten
PCBs vermarktet. Dort musstest du das als Anwender schon wissen, dass du
ein gedrehtes Kabel brauchst, in der Tat. Der Lieferant aus dem
initialen Posting hatte nun offenbar eine größere Menge solcher PCBs
gekauft und baut selbst daraus komplette Kits.
Wie ich schon bemerkte, hätte ATMEL das in der Doku dokumentieren können. Jemand der das erste Mal damit arbeitet, würde nicht erwarten, dass die Wannenbuchse verdreht angeschlossen ist. Pin-1 bei Wannenstecker ist nun mal auf der Nasenseite und meist auch durch eine viereckige Lötpad markiert. Irgendwie sträubt sich alles in mir, es nicht als Fehler zu beanstanden. Man hätte ja die Tabelle Verbinder Industrie-konform nummerieren können; also "SCK" ist PIN-10 u.s.w. In der Doku Tabelle liegt schlicht der Fehler und man hätte es besser begründet. Das hätte bestimmt viel Frustration vermieden und Zeit gespart.
(ATMEL dachte wahrscheinlich: "Gotcha", jetzt werden wir Euch knausrigen Kunden ein Bein damit stellen und das kommt davon, wenn man so geizig sein will nicht das komplette Kit zu kaufen... Wer das Teure kauft, merkt ja nichts davon;-) )
Naja, wir haben jetzt diesen Aspekt bis zum Umfallen erörtert und möchte wirklich nicht weiter darüber harken. Wer diese Beitragsserie nicht liest, ist eben selber schuld;-)))
Seit Microchip das alles übernommen hat, ist der Kram inzwischen mehr
als doppelt so teuer geworden. Die wollen wohl lieber ihre eigenen
Debugger promoten als die alten Atmel-Teile.
Dazu müsstest du uns zuerst mal erklären, womit du das verbinden möchtest. Also was für einen Anschluss (6-pin 2,54 mm, 10-pin 2,54 mm, 10-pin 1,27 mm) und was für ein Protokoll (ISP, JTAG, PDI) hat deine Zielplattform?
Mal in der Annahme, dass es ISP ist, kannst du dich daran orientieren:
Hier ist ein Screen Capture der Steckerbelegungen von der besagten
Web
Link
Dies habe ich mir angeschaut. Daraus habe ich abgeleitet, das das Pinout vom "10-pin ISP header is also available through our extra free 6-pin to 10-pin ISP cable" von der Steckerbuchse auf der Adapterplatine ist.
Dies stimmt aber nicht.
Ich versuche diese Steckerbelegungen, den Steckern die mit geliefert wurden sind, zuzuordnen.
Was ich auch nicht verstehe ist dieser 6-pin AVR ISP Stecker Belegungen.
Dort sind 4 verschiedene Varianten aufgeführt. Aber ich habe doch nur 2 6pin Stecker die mitgeliefert werden.
Ändert sich die Pin Belegung von dem Atmel-ICE automatisch?
Wenn eine andere Schnittstelle gebraucht wird?
Dazu müsstest du uns zuerst mal erklären, womit du das verbinden
möchtest. Also was für einen Anschluss (6-pin 2,54 mm, 10-pin 2,54 mm,
10-pin 1,27 mm) und was für ein Protokoll (ISP, JTAG, PDI) hat deine
Zielplattform?
Mal in der Annahme, dass es ISP ist, kannst du dich daran orientieren:
Ich wollte mich via ISP (SPI) auf einen Atmega328P verbinden.
Dies hat nun auch geklappt.
Indem ich das zweite Kabel von links genommen habe und dies auf die Adapterplatine gesteckt habe.
Anschließend habe ich die 10-pin Steckerbuchse auf der Platine benutzt und habe mit Breadboard Kabel die Pins vom Atmega verbunden.
Als Pinout habe ich die oberste Beschreibung "10-pin AVR JTAG header" genommen.
Was ich auch nicht verstehe ist dieser 6-pin AVR ISP Stecker Belegungen.
Dort sind 4 verschiedene Varianten aufgeführt.
Das sind letztlich alles die gleichen. Nur die Bedeutung der Pins ändert sich je nach Protokoll. Das ist genauso, wie sie bei ARM die Bedeutung der JTAG-Pins zu deren SWD-Pendants ändert, wenn man SWD statt JTAG benutzt.
Ansonsten: wie ich oben schon schrieb, diesen Hang, unbedingt große 10-Pin-Stecker für die paar ISP-Drähte zu benutzen, habe ich nie verstanden. Mit einem 6-Pin-Stecker wärst du "plug & play" gewesen.