• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

HD44870-LCD an ATTiny2313?

white_rabbit

Geocacher
Hi.
Ich möchte gerne ein (hier herumfliegendes) LCD-Display nach HD44780-Standard an einen
(hier herumfliegenden) ATtiny2313 (alternativ auch gerne ATtiny13) bringen. Leider bin ich mir in Sachen Anschluss nicht allzu sicher, wie das zu verdrahten ist.
Laut dieser "Anleitung" müsste es so sein: ---> Bild.

Was da nicht steht: Wie groß müsste R1 sein?
Was bedeutet nochmal der Kringel an Pin1?
Was ist unter ADJ_Contr zu verstehen? Ich nehme mal an, dass das ein Poti sein soll?
Aber wie ist der zu bemessen?
Wie müssen die Fuses des ATTiny gesetzt werden?

Ich weiß, dass hier vor einiger Zeit mal ein Projekt an einem ATTiny24 lief -- der Schaltplan scheint aber aus dem Forum wieder verschwunden zu sein??
Daher: Danke für Tipps.
 

radioscout

Geoking
R1: probiere 10k.
Der Kringel bedeutet "invertiert".
ADJ_Contr steht für "Adjust Contrast", also Kontrast einstellen.
Auch hier solltest Du 10k, evtl. auch 4k7 ausprobieren.
 

Chris601

Geomaster
radioscout schrieb:
ADJ_Contr steht für "Adjust Contrast", also Kontrast einstellen.
Auch hier solltest Du 10k, evtl. auch 4k7 ausprobieren.

Oder direkt auf Masse (oder VCC?) klemmen für maximalen Kontrast. Zum Testen sollte das genügen.
 
OP
W

white_rabbit

Geocacher
Danke -- mit anderen Worten: Dieser Anschluss sieht vielversprechend aus? Ich habe auch diverse andere Schaltpläne gefunden. Einige auch mit eigenem Quarz usw. Scheint ja alles nicht unbedingt notwendig zu sein?? (Sorry, für die ganzen Fragen. Habe schon länger nix mehr in Sachen µCs gemacht....)

Ist die Invertierung im µC selbst oder muss ich da selbst noch was machen?
 

chrysophylax

Geomaster
Ich hätte da ne fertige Platine in der Ecke liegen. Ist allerdings Tiny24A, dürfte dafür mit so ziemlich allen gängigen mechanischen Standards von HD44780-Displays tun. Bei Interesse einfach melden.

Einziger Haken: Ich hab noch keinerlei Software dafür. Die müsstest du dir selbst schreiben ;). Das Projekt fiel in der Prioritätenliste irgendwie.... etwas hinten runter.

chrysophylax.
 

chrysophylax

Geomaster
Für den Kontrastpin würde ich ein Poti vorsehen. Mittelanzapf an den Kontrastpin, die beiden Enden an VCC und GND. Die meisten Displays brauchen die Kontrastspannung in der Nähe von Masse, einige wenige brauchen eine leicht negative Kontrastspannung (bevorzugt Displays mit erweitertem Temperaturbereich). Bei letzteren bist du etwas in den Allerwertesten gekniffen, notfalls ist "auf Masse legen" meist nicht das perfekte Ergebnis, aber ein Ergebnis.

Du kannst deinen Prozessor mit internem Takt betreiben und auf den externen Quarz verzichten (es sei denn, du brauchst genaue Timer). Die Fuses sind tendentiell auch eher "egal", aber du musst deine Software darauf auslegen mit dem Takt zu laufen, den dir die gerade vorliegenden Fuses generieren. Wenn du Basis-Koma und die interne Library nutzt bedeutet das, irgendwo am Anfang des Programms mit einem "crystal-Wert" (?, man möge mich detaillieren) den entstandenen Takt aufzuführen.

Das mit dem Tiny24 war (vermutlich ?) ich, allerdings war mein Schaltplan hier noch nie, weil ich immer erst komplett dokumentiere, wenn die Software fertig ist. Du kannst ihn gerne auf "Bescheid" hin natürlich von mir per Mail bekommen.

Ansonsten gibt es gerade auch zum Thema HD44780 (guter Suchbegriff) hier im Club schon reichlich Text und Erfahrungen von anderen Leuten, die sich evtl. lohnen durchzuackern.

Wenn du eine Dose aus der Schaltung machen willst, sollten Sucher ihren Strom selbst mitbringen, da Basis-Koma (im Gegensatz zu meinem Hardware-Ansatz) nicht das Abschalten der Display-Versorgung unterstützt und dir daher der Ruhestrom des Displays jeden Batterietyp im Rahmen von Wochen bis Monaten leerlutschen wird. Das sind schonmal 2-3stellige µA, was einfach als Ruhestrom mit handlichen Batterien nicht lange hält.

Die meisten dieser Displays tun auch mit 3V, aber erheblich glücklicher wirst du mit 4,5V (3x Batterie) bis 5V (7805 aus wasauchimmer) werden. Wenn der Sucher eh seinen Strom mitbringt, würde ich gleich die 7805-Variante nehmen, die spart einen Haufen Optionen auf Ärger.

chrysophylax.
 
OP
W

white_rabbit

Geocacher
Hi.
Ich habe es heute endlich mal versucht --- und bin gescheitert :(
Die Schaltung habe ich so aufgebaut wie in dem zitierten Bild. Als Widerstände habe wie vorgeschlagen für R1=10k und für den Kontrast einen Poti mit max 10K benutzt. Die Verdrahtung
habe ich auf dem Breadboard vorgenommen und den Durchgang per Multimeter geprüft. Das passte schon mal alles. Die Invertierung am Pin1 (Reset) macht ja der µC selbst, oder? Da muss ich also nix zusätzliches einbauen, oder?

Dann kam der Teil der Programmierung. Da ich nur Vorlagen für Bascom gefunden habe, habe ich diese hier genommen:
http://forum.geoclub.de/viewtopic.php?f=57&t=30228&start=10#p471849
Ich bin mir aber nicht sicher, ob dieser Code zu der Schaltung passt. (Sorry, Anfänger) :(

Das Flashen hat geklappt aber da in dem Beispiel der interne Quarz auf 128kHz eingestellt ist, dachte ich, dass ich bei den Fuses ebenfalls auf 128kHz wechseln muss?!?!? Stimmt doch, oder? Und dann verließen sie ihn: Ich konnte dieses Fuse-Bit zwar noch setzen aber danach war Ende im Gelände: Ab diesem Zeitpunkt wurde nur noch "Unknown Chip" gemeldet. Habe ich den jetzt zerschossen oder was ist da geschehen?

Ach ja: Wenn ich den Kontrast geändert habe, hatte ich übrigens in der oberen Zeile alle LCD-Elemente an -- unten war aber gar nix! Hintergrundlicht habe ich über eine 2. Spannungsversorgung mit 4.5V versorgt.
Für weitere Anfängertipps wäre ich dankbar.
 

chrysophylax

Geomaster
Wenn du die Fuses auf 128kHz Proz-Frequenz setzt (es würde das diagnostizieren erheblich erleichtern, wenn du die programmierten Fuse-Werte hier schreibst), kannst du nur noch mit einer Frequenz von weniger als 32kHz mit dem Prozessor ISP-kommunizieren.

Du musst also dein Programmiergerät dazu bringen, langsamer als 32kHz zu takten.

Ob du langsam genug taktest siehst du, wenn du die Chip-ID richtig auslesen kannst.

Elektrisch defekt ist dein Prozessor vermutlich nicht, aber wenn du nicht ganz furchtbar stromsparen musst (was allein der Einsatz eines LCDs schon so gut wie unmöglich macht) wäre es evtl. komfortabler mit deutlich flotterem Proz-Takt zu arbeiten und dann die entsprechende Takt-Definition im Basis-Koma-Code anzupassen.

chrysophylax.
 

Starglider

Geoguru
white_rabbit schrieb:
Das Flashen hat geklappt aber da in dem Beispiel der interne Quarz auf 128kHz eingestellt ist, dachte ich, dass ich bei den Fuses ebenfalls auf 128kHz wechseln muss?!?!? Stimmt doch, oder?
Das stimmt.

Aber:
Damit das Flashen nach dem Verändern der CPU-Taktfrequenz funktioniert darf die ISP-Frequenz (das ist die Geschwindigkeit mit der der Mikrocontroller programmiert wird) maximal 1/4 des CPU Taktes sein.
Ich weiß nicht ob Bascom diese Einstellung automatisch anpasst.
 
OP
W

white_rabbit

Geocacher
Ok, die attinys sind immerhin schon mal gerettet. Hab den Takt mit diesem Befehl gerade wieder hochsetzen können:
avrdude -p t2313 -c avrispmkII -P /dev/ttyACM0 -u -B833 -i833 -U lfuse:w:0x62:m
Jetzt wird der µC schon mal wieder erkannt :)
 

Starglider

Geoguru
Wenn du jetzt die Taktfrequenz im Quelltest an die Einstellung anpasst die über die Fuses eingestellt ist bist du schon mal weiter.

Bascom hat eigene Einstellungen für die Ansteuerung des LC-Displays, z.B. ob es über 4 oder 8 Datenleitungen angesteuert wird. Das ist die nächste Stelle wo man sich in den Fuß schießen kann.
 
OP
W

white_rabbit

Geocacher
Ok, es hat endlich geklappt. Ich bin letztlich doch per Bascom ans Ziel gelangt
(auch wenn das chrysophylax natürlich ganz und gar nicht gut heißen kann :))

Meine Vorlage sowohl für die Verdrahtung als auch den .bas-Code war diese Seite:
http://www.rn-wissen.de/index.php/Bascom_und_LCD%27s bzw auch gleich nebenan
http://bascom-forum.de/showthread.php?5421-HD44870-LCD-an-ATTiny2313
Damit lief es bei mir letztlich!

Nun habe ich auf Anhieb mehrere Dinge ausprobiert, die auch alle geklappt haben:
Laufschrift: http://www.roboternetz.de/community/threads/16149-Laufschrift-mit-Bascom
"Hallo Welt" mit Zähler: http://halvar.at/elektronik/kleiner_bascom_avr_kurs/lcd_textanzeige/ (ganz unten)

Für einen Arduino habe ich dann auch noch ein kleines Spiel (!!) für ein 16x2-Display gefunden -- lustige Idee für einen Cache, finde ich:
http://www.instructables.com/id/Truck-Lane-a-16x2-LCD-Arduino-game/

Falls also jemand das gleiche Problem hat -- hartnäckig dran bleiben :) Ich dachte zuerst auch schon, dass ich mein Display geschrottet hatte, da hier die Pinbelegung am HD44780 anders als fast überall beschrieben ist. Bei mir ist +5V an Pin1 und GND an Pin2 und nicht umgekehrt. Das habe ich erst bemerkt, als ich es schon angeschlossen hatte und plötzlcih gut 2A durch das Teil flossen. Wie auch immer --- jetzt geht's.
 

chrysophylax

Geomaster
white_rabbit schrieb:
(auch wenn das chrysophylax natürlich ganz und gar nicht gut heißen kann :))
Oh, nur weil ich von der Software persönlich nichts halte heißt das nicht, dass diese Software nicht für andere Menschen das empfehlenswerte Mittel zur Erreichung von Zielen ist.

Nur für mich eben nicht ;)

Glückwunsch zum Erfolg, am Schönsten ist es doch immer noch, wenn man irgendein technisches Problem selbst gelöst bekommt und nicht durch Andere auf die Lösung geschubst werden muss, von daher gönn ich dir den Erfolg von Herzen.

chrysophylax.
 
Oben