Besucher seit 10/07/2004
kostenlose counter
   

Im WWW Suchen

Benutzerdefinierte Suche
   

USB-LCD 2


Da sich in der Firmware (siehe USBLCD1) nichts geändert hat, hier noch einmal kurz die...

...Technische Daten:


  • Läuft mit jaLCDs und LCD-Smartie ohne irgendwelche Plugins.
  • Kontrast und Backlight über Software einstellbar.
  • Bootscreen in EEprom speicherbar (mit Terminalprg. Hyperterm o.Ä.)
  • 19200 Baud (8N1) Handshake off
  • Unterstützt werden alle gängigen Text-LCDs mit einem HD44780Controller
  • Das wären 1x16,1x20,2x16,2x20,4x16 und 4x20
  • Stromversorgung bis fast 500mA direkt an USB

 Für Programmierer:


  • Einfache Ansteuerung über Virtuellen Comport z.B. COM3: (Im Terminalproggi sieht man die Zeichen die man eintippt)
  • Alle möglichen Funktionen zur Cusorsteuerung, Benutzerdefinierte Zeichen.
  • Der Bargraph (im Design von jaLCD) ist in der Firmware und auch außerhalb von jaLCDs nutzbar.
  • Arbeitet mit JALCDS .... jalcd klein  ....und Smartie smartie klein

Das USBLCD 2 fast ausschließlich  in SMD Technik aufgebaut. Die ca. 3,3 x 5,5 cm Platine ist nun beidseitig ausgeführt. Da im Hobbybereich wohl kaum jemand die Möglichkeit hat die Durchkontaktierungen chemisch herzustellen, habe ich versucht das Layout so Bastlerfreundlich wie möglich zu gestalten. So sind z.B. keine Vias unter den ICs vorhanden die die Bestückung erschweren. Außerdem sind Bauteile die ihre Lötpads verdecken, nur von der Unterseite zu verlöten. Trotzdem sollte man beim Aufbau der Schaltung sehr sorgfältig arbeiten da man hier so langsam an seine Grenzen stößt (ich zumindest). Besondes kritisch ist das einlöten der (SMD) Mini-USB Buchse (die ich im Bauteileditor von Eagle eingeben musste)  da bei dieser die Lötanschlüsse fast unter dem Gehäuse verdeckt werden. Auch der FT232RL ist nicht ohne. Das SSOP28 Package ist mit 0,65 mm Pinabstand das kleinste was ich (bis jetzt ) verarbeitet habe.Da wir ja ohne Lötstopmaske  arbeiten, hier besonders darauf achten das die Pins GENAU auf den Pads platziert werden.

Bei mir hat sich folgendeVorgehensweise bewährt:

usblcd2 pcbZunächst den Chip mit einer Kreutzpinzette, Krokodilklemme, Wäscheklammer o.Ä. auf der Platine, so genau wie möglich fixieren. Dann zunächst ein Pin (am besten in der Ecke) anlöten und das Spannwerkzeug entfernen. Jetzt kann man die Position noch minimal korrigieren. Ist man zufrieden den nächsten Lötpunkt Diagonal zum ersten anbringen. Darauf achten, das der Chip satt auf der Platine aufliegt und keine Pins in die höhe ragen. Nun die restlichen Eckpunkte anlöten. Jetzt kann man alle Pins mit wenig Lötzinn anlöten. Wenn das jemand ohne Lötbrücken schafft, Hut ab. Bei mir sind nach dem löten immer 2er und 3er Gruppen  der Pins verbunden. Zum entfernen der Lötbrücken benutze ich Entlötlitze (0,8mm EEL08 Reichelt) die ich entlang der Pins Platziere und mit dem Lötkolben von oben erhitze. Dabei nicht zu fest mit dem Lötkolben auf die Litze drücken, da sich sonst die Pins nach hinten wegbiegen können (ich spreche aus Erfahrung). Vorsicht, die Entlötlitze dabei nicht mit den Fingern anfassen (Pinzette oder Spitzzange benutzen) da diese sehr heiß wird. Nachlöten ist nicht erforderlich, das verbleibende Lötzinn zwischen Pin und Lötpad genügt durchaus.

Seitenanfang

Hier der Schaltplan des USB-LCD

usblcd2 Schaltplan

(zum vergrößern auf Schaltplan klicken)

Links im Schaltbild ist der USB-Schnittstellenbaustein FT232RL zu sehen der gegenüber seinen Vorgängern kaum noch externe Bauteile benötigt. Das interne Eprom des FT232RL wird direkt über die USB-Buchse mit MProg programmiert, welches wie auch die Treiber, Datenblätter und weitere Tools von der Herstellerseite (FTDI) heruntergeladen werden können. Rechts ist der AT Tiny2313 welchen ich mit einem billig ISP-Dongle und Ponyprog2000 programmiert habe. Da der AVR910-USB von meiner HP mit Ponyprog2000 nicht läuft und ich mit AVRprog (aus dem AVR-Studio) den Tiny2313 zwar programmieren, aber die Fusebits nicht setzen kann, kann man diesen leider nur bedingt benutzen. Mit AVRDUDE sollte das laut Mikrocontroller-Projekte.de zwar gehen, da ich (wie wahrscheinlich alle anderen AVR910 Besitzer) auch einen Low-Cost ISP habe (eben zum programmieren der AVR910 Firmware), habe ich das gar nicht erst ausprobiert. Die Schaltung rund um die 3 Transistoren T1-T3 steuern die Hintergrundbeleuchtung wobei T3 (der BCW66H) die Plackerei übernimmt. Über T3 fließt der volle Strom der Hintergrundbeleuchtung, der mit R6 begrenzt wird. Das kann er allerdings nur, wenn T1 und T2 sperren (also 0 Volt an den Basen liegt). Ist dies der Fall liegt die Basis von T3 über dem 1k Widerstand an +5Volt und schaltet durch.T3 ist im Datenblatt mit 800mA angegeben und sollte somit für alle Hintergrundbeleuchtungen ausreichen. Da der FT232RL erst einmal mehr Strom (bis max. 500ma) von der USB Schnittstelle anfordern muss bleibt die Hintergrundbeleuchtung so lange ausgeschaltet, bis der PC damit einverstanden ist. Dafür sorgt T2. Dieser ist mit der Basis an CBUS2 angeschlossen und muss mit PWRON# programmiert werden. PWRON# signalisiert mit einem Low Pegel, das der FT232RL initialisiert ist und sperrt somit T2.T1 wird an der Basis vom Tiny2313 mit einem PWM Signal versorgt dessen Rechteckspannung mit einen Puls- Pausenverhältiniss von 0 ? 100% in 1er Schritten eingestellt werden kann. Somit kann die Hintergrundbeleuchtung  nach Wunsch gedimmt werden. An Pin3 von JP1 liegt ein weiteres PWM-Signal für den Kontrast des LCDs. Ein Jumper von Pin 2<->3  führt dem LCD das in der Firmware eingestellte Signal zu. Der 10k Trimmer wird zum einstellen des max. Kontrast benutzt.  Wird diese Funktion nicht gewünscht, wird der Jumper auf Pin 1<-> 2 gesteckt und der Trimmer kann wie gewohnt zur Kontrasteinstellung benutzt werden.

Seitenanfang

 Layout

Eagle Layout

Der Lötjumper SJ1 führt dem AT Tiny2313 den Takt zu. Da die Firmware ursprünglich für einen AT90S2313 mit 4 MHz programmiert wurde, muss im Moment noch ein SMD Resonator (4MHz) eingebaut werden und bei SJ1 Punkt 1<->2 gebrückt werden. Wenn ich irgendwann mal die Zeit finde die Firmware zu ändern, kann man sich den Resonator sparen und der FT232RL liefert den Takt (6 oder 12 MHz).

Bestückungsplan in 3D

Eagle Layout 3d

Erstellt mit Eagle3D näheres dazu gibt es hier

Seitenanfang

Stückliste (Preise 12/06 Reichelt)

R1 270R SMD0805 0,10
R2,R4,R5 10k SMD0805 0,30
R3 1k SMD0805 0,10
P1 10k  Trimmpoti PT 6-L 10K 0,21
C1 10nF SMD0805 X7R-G0805 10N 0,05
C2,C4,C6,C7 100nF SMD0805 X7R-G0805 100N 0,20
C3 4,7µF SMD ELKO 4,7/35 0,09
C5 10µF SMD ELKO 10/16 0,09
L1 0,1µH LQH3N 0,1µ 0,20
T1,T2 BC847B SMD NPN Transistor 0,10
T3 BCW 66H SMD NPN Transistor 0,04
IC1 FT 232 RL IC 5,65
IC2 ATTINY 2313 SO MC 1,25
LED1 LED 3mm
0,05
X1 4,00 MHz SMD-Resonator 0,32
JP1 36pol Stiftleiste, gerade, RM 2,54 (nur 3 Pins benötigt) 0,17
USB
USB-Einbaubuchse, B-Mini, gew., SMD-Montage 0,49
SV1
Wannenstecker WSL 10G 0,07
SV2
SPL 20 (es werden nur 5 o. 6 für ISP benötigt)     0,26


Jumper 2,54  0,04



-------



9,78

Seitenanfang

So wird das LCD mit der USB-LCD 2 Platine verbunden.

USBLCD KabelAchtung, das Kabel ist jetzt der Standart - Pinbelegung vom LCD angepasst und somit nicht mehr kompatibel mit dem von USB-LCD 1.
R1 ist hier der Vorwiderstand für die Hintergrundbeleuchtung des LCDs und kann auch wahlweise auf der Platine eingebaut werden (R6).
Wird R1 wie abgebildet am LCD angebracht, muss anstatt R6 eine Brücke eingebaut werden.
Wenn R6 eingebaut wird, muss Pin2 mit Pin15 am LCD verbunden werden. Wenn man mehrere LCDs mit der Platine betreibt (wie ich) empfiehlt es sich natürlich den entsprechenden Vorwiderstand direkt am LCD anzubringen bzw. den schon an manchen LCDs eingebauten Vorwiderstand zu benutzen.

Seitenanfang

Installation

Ist die Platine fertig aufgebaut und nochmals peinlich genau auf Lötbrücken usw. überprüft, muss man, um das interne Eeprom des FT232RL zu programmieren, die Treiber auf seinen PC aufspielen. Auch die neuste Version von Mprog kann man sich bei dieser Gelegenheit gleich herunterladen.
Die folgende Anleitung bezieht sich auf winXP mit dem 2.00 Treiber, den ich selbst benutze und der beide (VCP und Direkt) enthält. Der Treiber sollte entpackt in einem Ordner bereitstehen bevor man fortfährt.
Nach einstecken der USB-LCD Platine sollte nach der Meldung. Neue Hardware gefunden ...

...Dieses Fenster erscheinen.

Installation FT232RL

Diesmal nicht (und auch sonst nie )

Installation2 FT232RL

Den Pfad zum Treiber Herstellen...

Installation3 FT232RL

...und Fertig stellen

Installation4 FT232RL

Das war der USB Teil, danach folgt die gleiche Prozedur nocheinmal für die Installation der seriellen Schnittstelle.

Nun noch 19200Baud einstellen.

Gerätemanager FT232RLPort-Settings FT232RL

und fertig.

Seitenanfang

FT232RL mit MPROG konfigurieren

Mprog Konfiguration FT232Ist der Treiber installiert wird der FT232RL geproggt, dazu starten wir Mprog und konfigurieren wie im Bild angezeigt.
Der Wert bei Max. Bus Power hab ich hier mal auf 500mA gestellt, wer nur ein Display mit normaler LED Beleuchtung betreibt kann auch die vorgegebenen 100 mA stehen lassen. Der Haken bei Only Program Blank Devices muss man entfernen da sich das Eeprom des FT232RL (bei mir jedenfalls) nur überschreiben aber nicht löschen lässt. Vor dem Programmieren darauf achten das kein anderer FTDI Chip am Rechner angeschlossen ist. Ist soweit alles klar, lässt sich  der FT232RL (nach speichern der Daten) programmieren.

Seitenanfang

 Nun kommt der AT Tiny2313 an die Reihe.

Da ich aus Platzgründen keine zweite 10polige Stiftleiste einbauen wollte, habe ich den (nicht genormten) ISP-Anschluss des USB-LCD, passend für den Basic-ISP-Programmer von S.Hühn gemacht.Ponyprog FusebitsAllerdings nur Pin1..5. An Pin 6 liegen +5Volt, um auch Parallel-Programmer mit Treiber-IC, die eine +5V Spannungsversorgung benötigen, anschließen zu können. Also Vorsicht beim anschließen des ISP! Werden die +5 Volt nicht gebraucht, kann man auch einfach nur eine 5pol Buchsenleiste (Pin1..5) einbauen. Nach dem anschließen des Programmers und des USB-LCD, PonyProg starten und nach der Einstellung (rechts oben) von AVR Micro und AT Tiny2313 im Command Menu Security and Configuration Bits wählen. Im entsprechenden Fenster zunächst Read klicken und dann die Fuse Bits wie im Fenster setzen. Ein Klick auf Write schreibt die Fusebits in den Tiny2313.

Jetzt die .hex Datei als Flash File und die .eep Datei als Eeprom File öffnen.

Ponyprog mit geladener Firmware

Im Hex-Fenster nach unten scrollen und nachschauen ob die Dateinen ordnungsgemäß geladen wurden. Der blaue Bereich zeigt den Inhalt des Eeproms, wo man rechts unten den Inhalt des Begrüssungstext erkennen kann. Der Eeprominhalt muss unbedingt mitgrbrannt werden, da er wichtige Anfangsvariablen enthält ohne die das USB-LCD nicht startet. Ist soweit alles klar startet write all im Command Menu den Brennvorgang. Nun müsste der Begrüssungstext (oder Teile davon wenn ein kleineres LCD als 20x4 angeschlossen ist) auf dem Display sichtbar sein.  Wenn nicht muss der Kontrast am 10k Trimmer justiert werden. Jetzt noch das Setup ausführen und fertig.

Seitenanfang

Dowloads & nützliche Links zum USB-LCD


Alle Benötigten USB-LCD 2 Dateien gezippt.
Lancos, hier die letzte Beta von Ponyprog2000 downloaden(war bei mir v2.06f BETA)
FTDI die letztenTreiber und Mprog für FT232RL runterladen
Mikrocontroller.de  Infos zu den Fusebits, wenn ein anderer Programmer benutzt werden soll.
s-huehn.de Basic-ISP (seriell und parallel) für Tiny2313 und Ponyprog2000
jaLCDs und LCD-Smartie Programme mit denen das USB-LCD läuft.