Atmel-ICE-Adapter
Über die Zeit haben sich doch ein paar AVR-Programmer angesammelt: der AVR-Doper, ein AVR-Dragon (mit dem ich gar nicht grün wurde), ein Diamex ALL-AVR und schlussendlich ein Atmel ICE.
Bis zum ICE war die Verwendung aller Programmer gleich: Stiftwanne auf dem Programmer, Leitung dran und gut. Beim Doper und ALL-AVR konnte man zugleich auch noch das Target versorgen - super!
Inhaltsverzeichnis
Problem
Beim ICE ist der Anschluss eher fummelig - ein filigranes Flachbandkabel im 1,27 mm-Rastermaß, am Ende ist ein 6-poliger 2,54 mm-Stecker. Für 1,27 mm liegt ein kleines Adapter-Board bei, das in anderer Hinsicht (IMHO) verdammt gefährlich ist: es gibt eine 10-polige Buchsenleiste an der AVR steht, allerdings mit JTAG dahinter.
Zumindest ich war so blöd und habe damit versucht über SPI zu programmieren. Das Target blieb aus Gründen dunkel, kaputt gegangen ist glücklicherweise nichts. Die Buchse ist nämlich nur für JTAG, nicht für SPI.
Der JTAGICE in der Arbeit erlitt nach 4 Jahren einen Leitungsbruch, bei dem eindrähtigen Flachbandkabel eigentlich auch kein Wunder. Warum Atmel/Microchip sich für diese winzigen Konnektoren entschieden hat, bleibt mir ein Rätsel, der Footprint eines (bzw. zweier) ".1 inch Header" wäre kaum größer. Wenn man mal schaut, wie man an diese Konnektoren kommt und wieviel sie kosten, sollte man sich festhalten. Mit ziemlich viel Geduld und Popelei ließ sich die Buchsenleiste neu verpressen, nochmal möchte ich das allerdings nicht machen.
Idee
Deshalb sollte eine Lösung zumindest für meine Probleme her:
- Buchsenleisten für 6er und 10er SPI-Interface
- Möglichst wenig Stress auf das Mini-Flachbandkabel
- Versorgung des Targets möglich
Lösung
Eine kleine Leiterkarte, die auf den Programmer geklebt werden kann, eine (leider eher unpraktische) eigene Versorgung hat und die gewünschten Buchsenleisten.
Für die Spannung kann zwischen "Feedthrough" vom USB und dem kleinen einstellbaren Linearregler, der bis zu 150 mA kann. Eine LED mit zeigt an, ob das Target versorgt wird (ok, macht der ICE im Prinzip auch):
Um die Pinbelegung der Wannenstecker nicht nachschlagen zu müssen, ist sie in Kurzform aufgedruckt (auf Layer _tsilk und _bsilk).
die BOM ist überschaubar:
Menge | Referenz | Wert | Package | Reichelt Bestellcode |
---|---|---|---|---|
1 | SV5 | MA05-2_127_SMD | SL 2X10G SMD1,27 | |
1 | SV2 | ML10 | WSL 10G | |
1 | SV1 | ML6 | WSL 6G | |
2 | C4, C5 | 100n | C0603 | KEM X7R0603 100N |
1 | R17 | 10k | S64Y | 64Y-10K |
1 | C7 | 1u | C0805 | X7R-G0805 1,0/16 |
2 | R2, R9 | 3k3 | R0603 | RND 0603 1 3,3k |
1 | R1 | 470 | R0603 | RND 0603 1 470 |
1 | C6 | 4u7 10V | C0603 | KEM X5R0603 4,7U |
1 | T1 | BC848 | SOT23 | BC 848A SMD |
1 | Q1 | BSS138 | SOT23 | BSS 138 SMD |
1 | X1 | MIUSB-F5M-BB-UHS | MIUSB-F5M-BB-U_HANDSOLDER | MIC USB BBU |
1 | IC3 | TPS76301 | SOT23-DBV | TPS 76301 DBVR |
1 | LED1 | red | CHIP-LED0603 | OSO LSQ971 |
Da die Pinbelegung des AVR-Ports des Atmel-ICE der des JTAGICE3 m. W. entspricht, dürfte der Adapter kompatibel sein. Habe es aber noch nicht getestet, daher ohne Garantie.
Fehler/Verbesserungspotenzial
- Durch das falsche Symbol im Schaltplan (noch vorhanden) liegt der high-active Enable auf Masse. Ist im Schaltplan korrigiert, für die Leiterkarte braucht's ein Skalpell und Fädeldraht.
- Besserer Footprint für die USB-Buchse
- Statt des Jumpers wäre ein Ein-Aus-Ein-Schalter (z. B. "SS 25139 NH" von Reichelt) besser
- Wenn schon USB-Buchse, dann mit Funktion:
- Messung von Spannung und Strom des Targets (warum nicht auch mit Display?)
- Reset per Kommando
- UART-Interface
- Buchse für JTAG (ist wirklich nur aus Platzgründen rausgeflogen)
Leiterkarten
Es gibt noch unbestückte Leiterkarten. Wer eine will, kann sich gerne bei mir melden.
Download
Datei:Atmelice-adapter.zip enthält:
- Designdaten im EAGLE-Format