AVR910 - USB
Vorgeschichte
Dieser ISP-Programmer entstand im Jahre 2004 gleich nach dem USB-LCD1. Damals kamen die ersten USB-Wandler ICs FT232BM auf den Deutschen Markt welche in dieser Zeit für Einzelpersonen noch sehr schwer erhältlich waren. Die Mindestbestellmenge waren 5 Stück und da ich für das USB-LCD nur ein FT232 benötigte und somit noch 4 Stück Überbestand hatte, beschloss ich meinen Seriellen AVR910, den ich mir von Klaus Leidingers HP http://www.mikrocontroller-projekte.de/ nachbaute, mit einer USB-Schnittstelle nachzurüsten. Die Idee gleich über Jumper (Dip-Schalter) einen USB-Seriell-Wandler zu Integrieren, habe ich dann auch gleich umgesetzt und alles für ein SP2000 Gehäuse angepasst. Nach 5 Jahren, was eine Ewigkeit in der MC-Welt ist, kann ich sagen, daß sich dieser ISP bei mir sehr Bewährt hat. Leider werden von AVR-Prog (im AVR-Studio) die neusten AVRs nicht mehr unterstützt, deshalb sollte man sich überlegen ob man den A910 noch nachbauen will. Jedoch gibt es AVRDUDE und AvrOspII die die AVR-Typen aus einem Config File auslesen und deshalb neuere AVRs leicht zu integrieren sind.
Der A910-USB basiert auf der AppNote 910 von Atmel und der erweiterten Hard- und Firmware (mittlerweile V3.8b) von Klaus Leidinger -> Mikrocontroller-Projekte. Die letzte Firmware unterstützt Blockoperationen. Es werden also statt einzelner Bytes, immer komplette Datenblöcke übertragen und im internen SRam des 2313, vor dem brennen zwischengespeichert. Das hat den Vorteil, dass die Schnittstelle nicht bei jedem einzelnen Byte zwischen lesen und schreiben umschalten muss (wg Verify) was die Geschwindigkeit (speziell bei USB) um ein vielfaches erhöht.
So wird es möglich, z.B die Firmware für das USB-LCD in ca. 6 Sekunden in den 2313 zu laden.
Der AVR910 wird von AVRDUDE und von AVRPROG (direkt aus dem AVR Studio) unterstützt.
Weitere Info (z.B. für Linux und Unix Systeme) bei Mikrocontroller-Projekte
Folgende Extras sind Integriert:
- +5V Spannungsversorgung für das Zielsystem
- FT232 Modul
- USB-Seriell Wandler
Der
AVR910-USB passt genau in ein SP2000SW Gehäuse das z.B bei Reichelt erhältlich ist (allerdings nur in
schwarz). Ein Elektronikhändler in meiner Nähe R&R hatte es auch in grau jedoch versendet dieser leider
nicht. Tips zum Einbau unter Basteln (anderer Programmer, gleiches Gehäuse). Wer
sich dafür entscheidet den Programmer in das Gehäuse einzubauen sollte (wie ich ) einen Dip- Schalter in das
Gehäuse einbauen an den über kurze Litzen die einzelnen Jumper angelötet werden (ich hatte nur einen 8fachen
da, 6fach würde auch reichen). Ohne Gehäuse genügen auch normale Jumper.
Schaltung
Da der Programmer an USB angeschlossen ist kann er direkt die Spannungsversorgung (5Volt, knapp 500 mA) des zu programmierenden AVRs übernehmen. Wer sich das EEprom 9346 sparen will (kostet aber wirklich nur ein paar Cent) kann immerhin noch 100 mA über USB ziehen. Die +5Volt lassen sich durch brücken von JP4 (oder Dip-Schalter bei mir Nr.5) einschalten. Hat die Zielschaltung eine eigene Spannungsversorgung, natürlich JP4 offen lassen. JP9 und JP10 sind für die Wahl Programmer, USB-Seriellwandler oder USB-Modul zuständig. Um zu programmieren müssen die Jumper wie im Schaltplan gezeichnet gesteckt sein. Somit ist der FT232BM mit dem AT90S2313 verbunden. Um den Programmer als USB-Seriell Wandler zu benutzen muss man den FT232BM mit dem MAX232 verbinden. JP9 in Stellung 1-2 und JP10 in Stellung 2-3. Es weden nur TxD und RxD verwendet. Handshake usw. also abschalten. Will man eigene Projekte an die USB-Schnittstelle anschliessen (FT232-USB-Modul) bleiben JP9 und JP10 offen, somit kann der FT232BM direkt mit dem Zielsystem über TTL-Pegel kommunizieren. Die Einstellungen hierzu (Baudrate usw.) können wie üblich über die Systemsteuerung vorgenommen werden. Um die Firmware auf den Programmer aufzuspielen (selfprogramming) ist JP3 zuständig. Im normalen Betrieb ist JP3 offen.
Layout
Die Platine ist einseitig, die roten Verbindungen auf der Oberseite müssen mit Litzen
oder Drahtbrücken hergestellt werden. Der FT232BM liegt wie auch schon bei dem USB-LCD1 auf der Unterseite
der Platine. Das programmieren des EEproms ist ja schon an anderer Stelle beschrieben (USBLCD1) und spar ich mir hier. Die neusten Treiber und Tools für den FT232BM gibt es bei
FTDI zum kostenlosen Download. Bein installieren ist zu beachten das
AVRPROG nur COM1: ... COM4: erkennt. Das ist aber kein Problem, da man in der Systemsteuerung die Nr. des
Comports des FT232BM verändern kann. Nun noch 115200 Baud (8N1) einstellen und es kann losgehen.
Die Frontfolie
ist in der Zip-Datei als JPG, PDF und im Frontdesignerformat (.fpl) enthalten.
Jumpereinstellungen
AVR-Programmer JP9 2-3, JP10 1-2
USB-Seriell-Wandler JP9 1-2, JP10 2-3
USB-Modul JP9 nicht-gesteckt, JP10 nicht-gesteckt
+5 Volt ein JP4 gebrückt
+5 Volt aus JP4 offen
Firmware über ISP Stecker flashen JP3 gesteckt
Stückliste
Halbleiter
IC1 FT232BM USB-Serialwandler z.B. FT 232 BM (Reichelt)
IC2 93C46 EEprom z.B.ST 93C46 BN (Reichelt) DIP8 *optional
IC3 AT90S2313P Mikrocontroller Atmel
IC4 MAX232 RS232 Treiber z.B. MAX 232 CPE (Reichelt) DIL-16
LED1-4 LED Leuchtdiode Farbe nach Geschmack
Kondensatoren
C1 10nF Kondensator Keramik
C3, C4, C7, C8 27pF Kondensator Keramik
C6 33nF Kondensator Keramik
C5, C14-C16 100nF Kondensator Keramik
C2, C9-C13 4,7...10uF/16V * Elko stehend
*C9-13 je nach verwendetem Max232 reichen auch 1µF (Datenblatt lesen)
Widerstände
R1, R2 27 Ohm Widerstand ¼ Watt
R3 1k5 Widerstand ¼ Watt
R4 470 Ohm Widerstand ¼ Watt
R5 2k2 Widerstand ¼ Watt
R6 10k Widerstand ¼ Watt
R7, R8, R9 220 Ohm Widerstand ¼ Watt
R10 4K7 Widerstand ¼ Watt
Sonstiges
L1 Drahtbrücke
6MHz Quarz
7.3728 MHz Quarz
USB-Einbaubuchse Serie B Gewinkelt USB BW (Reichelt)
DBuchse 9pol männlich D-SUB ST 09EU (Reichelt)
Stiftleisten RM2,54 (für Jumper) oder Dipschalter (siehe Text)
Steckverbinder (JP2) PSS 254/3W oder PS 25/3W BR (Reichelt)
Gehäuse SP 2000 SW
AVR910-USB

