PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keine Anzeige bei 20*4 LCD-Display



Funkpeter
15.10.2014, 14:03
Hallo,

nach mehreren Versuchen und ein wenig Rat(d)losigkeit wende ich mich an die Experten in diesem Forum.

Problem:
Ich habe an das RN-Control-Modul ein 20*4 LCD (C2041A) angeschlossen (PORT B) , ohne Motor-Treiber Chip - und bekomme einfach keine Anzeige. Über Taster 5 kann ich lediglich sehen, dass die Hintergrund- (Beleuchtung) ein- auszuschalten geht.
Hat jemand eine Idee, warum dieses Display nicht läuft - besser natürlich, den entscheidenen Hinweis, wie ich es zum Laufen bekomme? Ein getestetes Skript wäre sicherlich hilfreich.
Das Display betreibe ich mit dem LCDADAPTER von Robotertechnik.de.
(Übrigens versuche ich das LCD-Modul mit dem mitgelieferten TESTPROGRAMM zum Laufen zu bringen - ohne Erfolg.)

Für Hinweise und Tipps schon jetzt VIELEN DANK!

Gruß
Peter

BMS
15.10.2014, 14:39
Hallo,
auf der Platine müsste es ein Poti geben, mit dem man den Displaykontrast einstellen kann.
Grüße, Bernhard

Funkpeter
15.10.2014, 19:28
Hallo Bernhard,

das mit dem Poti hab ich auch schon getestet.... Muss ich vielleicht einen LCD.LIB einbinden??? Ich hab die Befürchtung, die Ansteuerung des LCD soft- wie hardwaremäßig ist nicht korrekt.

Gruß
Peter

oberallgeier
15.10.2014, 22:15
... RN-Control-Modul ein 20*4 LCD (C2041A) angeschlossen (PORT B) ... bekomme einfach keine Anzeige ...
... Das Display betreibe ich mit dem LCDADAPTER von Robotertechnik.de ...Hmmm, den Adapter kenne ich nicht, Du meinst nicht den von robotikhardware (von da, woher Du deine RN-C ontrol hast...) ?

Kennst Du diese Beschreibung (klick) (http://rn-wissen.de/wiki/index.php/LCD-Modul_am_AVR)? Kennst Du den Satz unter dieser Skizze ? (http://rn-wissen.de/wiki/index.php/Bascom_und_LCD%27s#Anschluss) Hast Du den schon mal durchgespielt? Kannst Du auf dem LCD dunkle, viereckige Felder aus lauter kleinen PUnkten zum Vorschein bringen? Wenn nicht, dann solltst Du mal genau Deine Verdrahtung prüfen (oder uns mehr zeigen).

Viel Erfolg.

Funkpeter
16.10.2014, 20:24
Hallo,

erst einmal vielen Dank für die Tipps.
Also, ich habe nun , nachdem ich am Poti gedreht habe, tatsächlich die viereckigen Felder, allerdings nur zweizeilig, zu sehen bekommen. Das Testprogramm läßt sich compilieren und bringt mir die Fehlermeldungen: Error: 103 Line 60= expected "Chipset C2041A" in File D:.... Und die Fehlermeldung : Error 10: Line 60 Unknown LCD type (20*4) in File D:....
Das heißt es wird ein Chip mit der Bezeichnung C2041A erwartet? Das habe ich bereits im Programm angegeben. Muss ich etwa eine .LIB zu diesem LCD ins Programm einbinden? Ich ging davon aus, dass zumindest für den Test von LCD und Adapter mit dem Testprogramm der CD nichts weiter geändert werden muss... Ich will ja das Display nur testen - mit dem Board, nur feststellen ob das LCD ok ist. Ich habe als Info die Bilder mit den viereckigen Feldern nur 2-zeilig ...!!!?? und die Rückseite des LCD angefügt. Lautet die Chipbezeichnung denn wirklich C2041A ? und richtig: Chipset = C2041A als Proammeintrag? Und warum erkennt er diese nicht? Wo liegt denn da der Fehler? Das ganze läuft über Port B am RN-Control 1.4.
Für Ideen zu diesem Problem schon mal vielen Dank.
***Die Bauteile und Board sind von robotikhardware, das LCD 4*20 ebenfalls - mit LCDADAPTERSTD, so die Bezeichnung.***

2922629227

Abendgrüße aus dem Norden
Peter

oberallgeier
17.10.2014, 08:25
... ich habe nun ... tatsächlich die viereckigen Felder ... zweizeilig ... Testprogramm ... Error 10: Line 60 Unknown LCD type ...Die beiden dunklen Pixelfeldzeilen zeigen, dass Dein LCD korrekt an die Versorgung angeschlossen ist. Es KÖNNTE Zeichen anzeigen WENN die Ansteuerung stimmt - elektrisch/Anschlußleitungen und logisch/controllerspezifischeSteuersignale.

Die zwei Zeilen sind ok (Anm.: ich habe keine Erfahrung mit vierzeiligen Displays) , soweit ich es bisher mitbekommen habe müssen bei Displays mit mehr als zwei Zeilen (bzw. mit zwei Controllern) diese Controller erst initialisiert werden um alle Zeilen zu zeigen. Das geht ja nicht wegen des genannten Fehlers.

"Chipset C2041A" ist wohl nicht richtig, das ist die Typbezeichnung des Displays, der Mikrocontroller steuert aber nur den Displaycontroller und der heißt laut Datenblatt des C2041A "KS0066U OR EQUV." - Du mußt also schauen, wo in Deinem Testprogramm Du diesen DISPLAYController (klick mal) (http://www.datsi.fi.upm.es/docencia/Micro_C/lcd/ks0066u.pdf) definieren kannst.

Versuche doch jetzt, mit der korrekten Einstellung des Kontrast(potentiometer)s das mitgelieferte Testprogramm noch mal!? Testweise.

Viel Erfolg!

Hubert.G
17.10.2014, 08:33
Laut Datenblatt ist ein KS0066 Kontroller in dem LCD, das sollte mit den Standard LCD-Libs funktionieren ohne irgend welche Chip-Libs einbinden zu müssen.
Schreib noch mal genau welches RN-Control und LCD Adapter du verwendest und zeig auch das Testprogramm, dann kann man sicher leichter helfen.

HeXPloreR
17.10.2014, 14:19
Hallo,

da du selbst nicht den Code postest poste ich mal einen:


'################################################# ##
'Ein Standard-LCD 4x20 Zeichen mit dem
'RN-LCDStandardAdapter an Port B
'von RN-Control angeschlossen
'rnlcdadapterstdtest.bas
'
'Autor: Frank
'Verwendet wurden: RN-Control & RN-LCDAdapter (robotikhardware.de)
'Weitere Beispiele sind im Roboternetz gerne willkommen!
'################################################# #############
'$programmer = 12 'MCS USB (Zeile weglassen wenn anderer Programmer)
' -------------- RN-Control übliche _____________________
Declare Function Tastenabfrage() As Byte

$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000 'Quarzfrequenz
$baud = 19200
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Dim Taste As Byte
Dim Ton As Integer

I2cinit
Start Adc
Sound Portd.7 , 400 , 450 'BEEP

Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print
Print "**** RN-CONTROL V1.4 *****"
Print "Demoprogramm um Zusatzboard RN-LCDAdapter zu demonstrieren"
Print
' -------------- Ende RN-Control übliche _____________________
Config Portb.4 = Output 'Spannung an LCD aktivieren
Lcdpower Alias Portb.4
Lcdpower = 1

Config Portb.6 = Output
Lcd_rw Alias Portb.6
Lcd_rw = 0

'Wait 1
Config Lcd = 20 * 4 ', Chipset = Ks077
Wait 1
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.5 , Rs = Portb.7
'Config Lcdbus = 4
Initlcd
Cls

Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "RN-LCDADAPTER"
Locate 2 , 1
Lcd "an RN-Control"
Locate 3 , 1
Lcd "beides Bausaetze von"
Locate 4 , 1
Lcd "robotikhardware.de"

Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1:
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 1"
Case 2
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 2"
Case 3
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 3"
Case 4
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 4"
Case 5
Cls
Locate 1 , 1
Lcd "Licht wird umgeschaltet"
Toggle Lcdpower
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop

End


' Diese Unterfunktion fragt die Tastatur am analogen Port ab
' Sollte beim betätigen einer Taste kein Quittungston kommen, dann
' muss die Tastenabfrage (Select Case Anweisung in Funktion )
' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in
' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen
' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Ws = Getadc(7)
'Print "ws= " ; Ws
If Ws < 1010 Then
Select Case Ws
Case 400 To 455
Tastenabfrage = 1
Ton = 550
Case 335 To 380
Tastenabfrage = 2
Ton = 500
Case 250 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 100 To 130
Tastenabfrage = 5
Ton = 350
End Select

Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function


Und nun schauen wir mal ....

wkrug
17.10.2014, 17:39
Hast Du auch die JTAGEN Fuse deaktiviert ?
Die benutzt einige Ports von Port C - Welche genau weiss ich jetzt gerade nicht.

EDIT:
Du schreibst ja, das Du Port B benutzt, dann ist das ja nicht relavant.

Ich hab auch schon mal ein 4x20 Zeichen LCD von Reichelt verbaut, das lies sich mit meiner Standard LCD .lib problemlos initialisieren.
Rück doch mal den Code raus, den Du benutzt, dann wird das hier kein Ratespiel.

Funkpeter
17.10.2014, 20:52
Hallo und Guten Abend!
erst einmal euch allen vielen Dank für die Hinweise, die letztlich auch zum Ziel führten. Das Testprogramm hefte ich gern an. HEXPLORER hatte mir auch noch ein komplettes Skript geschickt, das ich (auch aus Zeitgründen!)einfach 1:1 in BASCOM eingelesen habe und siehe da, es funktioniert. Geändert habe ich daran nix. Warum mein Testproamm von der CD für den RN-Control 1.4 nicht geht, weiß ich nicht. Zwei kleine Probleme hab ich in diesem Zusammenhang trotzdem nicht lösen können. Die Tastenabfrage im Testprogramm funktioniert für die Tasten 1 und 2 nicht. Das werde ich am Wochenende mal genauer nachsehen. Dann geht das Programm nur, wenn ich den USBISP-Dongle, mit dem ich das Programm compiliere und auf den RN-Control 1.4 µC schicke, angeschlossen habe. Ich ging immer davon aus, dass das Programm auf dem µC völlig autark mit dem LCD betrieben werden kann, sobald es sich darauf befindet. Alles andere macht ja wohl auch keinen Sinn??... Wozu brauche ich die Verbindung zum PC / BASCOM-Script ?? Denkfehler? Ich arbeite dran...

Nun bin ich, Dank Eurer Hilfe, ein deutliches Stück weiter und meinem Projekt näher gekommen!
Bis demnächst mit neuen Fragezeichen in diesem Forum ;) (Leider konnte ich erst jetzt antworten, weil ich in meinem Job etwas länger unterwegs war)


29231


29230

Nacht-Grüße aus dem Norden
Peter

HeXPloreR
17.10.2014, 22:16
Das ist doch schon mal was, schön das es jetzt besser geht.

Kommentiere das erste " $prog &HFF , &HFF , &HDA , &H00 " aus.

Und dann entferne alle übrigen Zeilen " $prog &HFF , &HFF , &HDA , &H00 " innerhalb des Codes, denn wenn überhaupt benötigst du die Fuse-Einstellung ein einziges Mal - beim Programmstart.


Das Tasterproblem würde ich versuchen einzukriesen indem du dir den Wert der zwei betreffenden Taster (WS) per Print auf dem LCD anzeigen lässt. Kommt da nichts an, funbktionieren die Taster vielleicht nicht. Oder die Widerstände sind nicht korrekt.

Wie kommt die Spannung aufs Board?
Wenn du über den USB-Programmer das Board mit Spannung versorgen kannst, dann würde ich diese Spannung abschalten. Und nur den Anschluss am Board direkt mit min 7-14V benutzen.
Ob das mit dem USBISP-Dongle überhaupt möglich ist weiß ich jetzt so nicht - aber ich vermute schon, denn auch hier würde was anderes nicht viel Sinn machen ;)

Viele Grüße
Jörg

RoboHolIC
17.10.2014, 22:38
Das einzige am USBISP-Dongle, das dem Controller mehr helfen könnte als zu stören, ist m.E. die Resetleitung.
Miss mal, ob am Resetpin des Controllers ohne Dongle gegen Vcc und GND ein mitlerer Widerstand gemäß Schaltplan zu messen ist.

HeXPloreR
17.10.2014, 23:03
Also soweit ich weiß zieht der Pro_grammer den µC nur beim Programmiervorgang auf GND und somit in den Reset. Sonst würde das ganze Programm nicht neu geflasht verwerden können oder auch überhaupt nicht anlaufen. Und der Pro_grammer kann auch danach normalerweise angeschlossen bleiben.

EDIT:Allerdings sollte er auch ohne weitere Probleme entfernbar sein.

Ist das Board selbst zusammen gelötet?
Ist UREF Jumper gesteckt?

Funkpeter
18.10.2014, 15:50
Hallo Jörg,
das Auskommentieren brachte das gewünschte Ergebnis, der RN-Control, als Fertiggerät beschafft, läuft nun auch ohne Programm-Dongle. Die Brücke UREF ist gesteckt, die Spannung für den RN-Control kommt von einem kleinen Netzeil, 12 Volt. Die Tasten 5, 4 und 3 funktionieren und haben folgende WS-Werte auf dem LCD gezeigt: Taste 5: 1017-100 , Taste 4 : 1017 -181 , Taste 3: 1017 - 257. Die Taste 1: 1017 - 3977 (defekt!?) und die Taste 2: 1017-3297 (defekt!?) konnte ich nicht weiter ermitteln, da muss ich noch recherchieren.
Da nun die Anzeige funktioniert, werde ich nach und nach mein eigentliches Projekt angehen (Schalten von 3 Geräten sekundengenau nach DCF77) .
Ich könnte mir vorstellen, dass ich mich hier sehr bald wieder einfinden werde ;) .

Bis dahin mit Dank an Dich für die Tipps und Hinweise!

Wochenend-Grüße aus dem Norden
Peter

HeXPloreR
18.10.2014, 16:48
Hallo Peter,

Du könntest mal schauen ob die beiden Widerstände R4 und R5 optisch (Farbcode) die gleichen sind wie Die dahinter ( R6 - R8 ).
Ansonsten wenn vorhanden mit dem Multimeter bei Spannungslosem Zustand einmal R4 und R5 ausmessen. Die Widerstände in der Reihe sollten ab R4 bis R8 etwas 1kOhm entsprechen. Der Fehler kann eigentlich nur noch im Bereich vom Aufabu des Spannungsteilers zu suchen sein.

Wenn der Fehler dann immer noch nicht gefunden ist: Den Taster selbst auf Durchgang prüfen. Oder den Taster an den Lötfüßen mit einem dünnem Stück Kupferdraht einmal testweise überbrücken und sehen was das Programm jetzt dazu sagt. Ich wüßte allerdings ehrlich gesagt nicht warum der Taster selbst an dem Fehlverhalten beteiligt sein sollte.
Lötfehler schliesse ich da aber dann nicht mehr aus.

Viele Grüße
Jörg

Funkpeter
19.10.2014, 13:19
Hallo Jörg,

die Widerstände R4 bis R8 haben nahezu gleiche Werte, gemessen ca. 940 Ohm, angegeben 1 kOhm. R3 hat 4,43 kOhm laut Schaltung sollte dieser 10 kOhm haben. Ob diese fehlenden 6 kOhm dieses Verhalten verursachen, kann ich nicht beurteilen. Die Taster habe ich getestet, sie schalten durch. Was nun genau die Fehlerursache ist, kann ich nicht feststellen. Da ich von einer einwandfreien Funktion einer Fertigplatine RN-Control 1.4 ausgehen kann , werde ich diese ggf wieder zurückschicken, mit einer Fehlerbeschreibung und der Bitte um "Reparatur".

Schöne Sonntagsgrüße aus dem Norden
Peter