Besucher seit 10/07/2004
kostenlose counter
   

Im WWW Suchen

Benutzerdefinierte Suche
   

AVR910 - USB

A910 USB offenVorgeschichte

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:

a910 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

AVR910 - USB Eagle Schaltplan


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

AVR910 - USB Eagle PCB

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.AVR910 - Frontplatte

 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 bei der arbeit

Alle benötigten Dateien als Zip