AVR910 - USB
Achtung!
Nicht mehr nachbauen, da neuere AVRs nicht mehr unterstützt werden.
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 damaligen 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 ( 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
Alle benötigten Dateien als Zip