USBPROG-51 Flip/FlashMagic Universal Programmieradapter
USBPROG-51 ist ein universeller USB-Programmieradapter zur In-System-Programmierung (ISP) von NXP- und Atmel-Mikrocontrollern der 8051-Familie mit internen Flash-Speichern und integriertem, seriellen Bootloader.
Als Programmiersoftware wird FlashMagic für die NXP-Mikrocontroller und Flip für die Atmel-Mikrocontroller verwendet. In beiden Fällen werden die Auto-ISP Funktionen unterstützt. Alternativ kann der Bootloader bei vielen Typen auch manuell durch 2 Tasten aktiviert werden.
Besonders interessant sind die P89LPC9xx Mikrocontroller von NXP. Diese sind 6x schneller als klassische 8051er und haben viele nützliche Zusatzfunktionen. Die Mikrocontroller sind außerdem billig und in Kleinmengen z. B. bei Reichelt zu bekommen.
Unterstützte Mikrocontroller
NXP (FlashMagic)
- P89C51RAx, P89C51RBx, P89C51RCx, P89C51RDx, P89CV51
- P89C660, P89C662, P89C664, P89C668, P89C669, P89CV660, P89CV662, P89CV664,P89C60,P89C61
- P89LPC920, P89LPC921, P89LPC922, P89LPC924, P89LPC925
- P89LPC930, P89LPC931, P89LPC932, P89LPC932A1, P89LPC933, P89LPC934, P89LPC935, P89LPC936, P89LPC938
- P89LPC952, P89LPC954, (P89LPC964, P89LPC966)
- weiterhin ARM-Typen mit seriellen Bootloader, wie LPC21xx, LPC22xx,LPC23xx, LPC24xx
Atmel (Flip)
- AT89C51AC3, AT89C51CC03, AT89C51ED2, AT89C51IC2, AT89C51ID2
- AT89C51RB2, AT89C51RC2, AT89C51RD2, AT89C51SND1, AT89C51SND2
- AT89C5114, AT89C5122, AT89C5130, AT89C5132
- T89C51AC2, T89C51CC01, T89C51CC02, T89C51IC2
- T89C51RB2, T89C51RC2, T89C51RD2
Schaltung
Da viele PC’s über keine serielle Schnittstelle (COM) mehr verfügen, wurde eine USB-UART eingesetzt. Der FTDI Schaltkreis FT232RL ist vielfach bewährt und funktioniert meist problemlos. Die erforderliche Außenbeschaltung ist minimal. Der Quarz ist intern enthalten.
Die Schaltung arbeitet mit Spannungen von 3 ... 5V, je nach Zielsystem und Jumper-Einstellung. 2 Jumper erlauben verschiedene Versorgungsvarianten.
JP1 legt fest, wie die Zusatzschaltung mit U2, U3, Q1 und bei den P89LPC9xx Typen auch das Zielsystem, versorgt wird.
- 1-2 : Versorgung extern von X1
- 2-3 : FT232RL übernimmt Versorgung (3.3V max. 50mA)
JP2 legt fest, wie der FT232RL versorgt wird.
- 1-2 : Self Powered (Versorgung extern von X1)
- 2-3 : Bus Powered (Versorgung über die USB-Buchse direkt vom PC)
Um die Mikrocontroller in den ISP-Mode zu versetzen, sind bestimmte Pin-Zustände zeitlich zu erzeugen. Für die meisten Mikrocontroller wird dazu der PSEN- und RST-Pin verwendet. Dazu ist IC U3 zuständig. Alternativ kann manuell durch Tasten T1 und T2 der Bootloader aktiviert werden.
Etwas anspruchsvoller ist es, die P89LPC9xx Baureihe in den ISP-Mode zu versetzen. Diese werden über eine definierte Impulsfolge am RST-Pin unmittelbar nach dem Zuschalten der Betriebsspannung aktiviert, was durch U2 und Q1 realisiert wird.
Zielsystem
Die Verbindung zum Zielsystem erfolgt über X1.
Die sonst üblichen MAX232 Pegelwandler sind nicht erforderlich. Der FT232RL liefert die TxD und RxD Signale bereits im richtigen Pegel.
USB Treiber
Die Treiber für den FT232RL Schaltkreis können kostenlos für das jeweilige Betriebssystem unter FTDI geladen werden. Es wird der VCP-Treiber benötigt. Nach der Installation steht ein virtueller COM-Port zur Verfügung.
Der FT232RL selber braucht nicht programmiert werden. Er wird mit den Standard-Einstellungen betrieben. Das Konfigurationsprogramm MPROG ist nicht erforderlich.
Programmier-Software
Für die Programmierung der Atmel-Typen wird Flip und für die NXP-Typen FlashMagic verwendet. Beide Tools sind kostenlos.
Download unter:
Flip Bedarf nur bei Verwendung der Auto-ISP Funktion einer speziellen Einstellung zur Hardware-Konfiguration. DTR und RTS übernehmen die Funktion. Soll der Bootloader nur manuell durch Taste T1 und T2 gestartet werden, ist die Auto-ISP Funktion zu deaktivieren.
Bei FlashMagic ist zur Programmierung der P89LPC9xxx Serie folgende Einstellung zu kontrollieren (Menü Optionen/Advanced/Hardware-Config): siehe Bild
Hinweis: Der Bootloader der P89LPC9xx Mikrocontroller kann nicht manuell durch die Tasten T1 und T2 gestartet werden. Auf Grund des speziellen Timings geht dies nur über die Auto-ISP Funktion.
Leiterplatte
Die Leiterplatte ist 65mm x 40mm groß und doppelseitig ausgeführt.
Download Leiterplattenansichten als PDF
Es wird davon ausgegangen, dass Grundkenntnisse zur Bestückung von Leiterplatten und zum Löten vorhanden sind. SMD-Bauelemente lassen sich oft einfacher löten als bedrahtete Bauteile. Auch ein ESD-gerechter Umgang mit den Bauelementen wird vorausgesetzt.
Alle Bauteile sind bei Reichelt oder bei anderen Händlern in Kleinstmengen zu bekommen. Stückliste als txt-Datei
Eine Schwierigkeit stellt möglicherweise das Löten des FT232RL Schaltkreises dar, da dieser in einem recht kleinen Gehäuse (SSOP) mit einen Raster von 0.65mm geliefert wird. Dadurch ist die Gefahr von Lötbrücken relativ groß. Bei mir hat sich zum Löten folgendes Verfahren bewährt:
Zunächst wird der IC mit 1-2 Pins vorgelötet und somit in seiner Lage fixiert. Danach wird mit dem Lötkolben eine Löt-Welle simuliert, indem eine große Menge von aufgeschmolzenen Lötzinn über eine komplette Pin-Seite 2-3 mal hin- und her bewegt wird. Abschließend wird durch ankippen der LP versucht, die Lötperle über eine Außenseite ab zu ziehen. Meist bleiben dann keine Lötbrücken zurück und das Ergebnis sieht erstaunlich professionell aus. Bleiben dennoch Brücken, kann man diese durch ein Stück Entlötlitze entfernen. Wer eine Vakuum-Entlötstation hat, braucht dann nur einmal kurz über die ganze Seite zu gehen.
Die IC’s können so etwas problemlos ab, beim kommerziellen Schwallen oder Reflow-Löten treten noch wesentlich höhere thermische Belastungen auf.
Links
Kontakt: Matthias Kahnt - matthiask (az51@gmx.net)