- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: RN-Minicontrol - Anzeigeproblem RN-LCDAdapter mit LCD-EADIP2

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2007
    Beiträge
    11

    RN-Minicontrol - Anzeigeproblem RN-LCDAdapter mit LCD-EADIP2

    Anzeige

    Praxistest und DIY Projekte
    Betreff: RN-Minicontrol - Anzeigeproblem RN-LCDAdapter mit LCD-EADIP204

    Guten Tag,

    eins vorweg: ich bin relativ neu im Umgang mit AVRs und BASCOM. Über Bascom möchte ich mich Schritt für Schritt an C rantasten. Bitte helft mir eine Lösung und Erklärung für mein folgendes Problem zu finden:

    ich kann mit meinem RN-MiniControl Board keinen Text auf ein LCD EADIP204 (4x20) ausgeben. Das LCD EADIP204 steckt in dem dafür vorgesehenen RN-LCDAdapter, und die Verbindung zwischen RN-MiniControl und RN-LCDAdapter erfolgt über das 10-polige Ribbonkabel (Wannenstecker nach RN-Norm!). Mein einfaches Bascom Testprogramm ist weiter unten zu sehen. DAS LCD wird zwar eingeschaltet, es ist also hell, aber der Text "Hallo Welt" wird nicht ausgegeben. Es wird garnichts ausgegeben!

    Hinweis:
    --------
    ich habe die Elektronik mehrmals durchgemessen, auch die PIN-Belegungen und die entsprechenden Verbindungen zwischen RN-MiniControl Board und RN-LCDAdapter. Alle Verbindungen müssen OK sein, denn die Textausgabe funktioniert mit einem RN-Control 1.4 Mega32 Board mit dem dafür vorgesehenen Testprogramm einwandfrei. Der RN-LCDAdapter und das LCD EADIP204 4x20 müssen also OK sein!

    Testbedingungen
    ---------------
    - Betriebssystem: WINDOWS-XP Prof. SP3
    - Programmer: AVRISP-MKII (USB)

    - Programmiersprache: BASCOM-AVR
    - Bascom Compiler Version: 1.11.9.5
    - Bascom IDE Version: 1.11.9.5

    - Testboard: RN-MiniControl mit ATMEGA 168
    - RN-MiniControll Jumper-Einstellungen: alle Jumper laut Beschreibung (Standardbelegung!)
    - ATMEGA 168 Fuse-Bit Einstellungen: alle laut RN-MiniControl Beschreibung (auf 16 MHz)

    - LCD-Adapter: RN-LCDAdapter
    - RN-LCDAdapter Jumper-Einstellungen: J1 gesteckt (grüne LCD)
    - RN-LCDAdapter Jumper-Einstellungen: J2 alle 4 gesteckt (4 BIT-Modus)
    - LCD-Typ: DIP LCD-Display 4x20 mit Beleuchtung [EADIP204]
    - Verbindung RN-MiniControl mit RN-LCDAdapter: 10 poliger Universeller Datenportstecker "CTRL" (Wannerstecker) an 10 poligen Wannenstecker

    Die Port- und Pinbelegung kann man im Kommentar meines folgenden Testprogramms finden:

    <<< Anfang Testprogramm --->>>
    '################################################# ##############################
    '
    ' BASCOM-AVR Beispielprogramm "MINI_CONTROL_EADIP204.BAS"
    '
    '################################################# ##############################
    ' Test des LCD EADIP204 mit RN-LCDAdapter an RN-MiniControl. Die in den
    ' RN-LCDAdapter eingesteckte LCD-Anzeige LCD EADIP204 wird am RN-MiniControl in
    ' den Universellen Datenportstecker "CTRL" gesteckt. Das 10-polige RN-Standard
    ' Kabel verbindet das LCD-Modul mit dem ATMEGA 168 über die vordefinierte
    ' PIN-Belegung des "CTRL" Datenportsteckers mit den ATMEGA 168 Ports:
    ' - PORTD.6 = PIN 1 (Datenportstecker "CTRL") = DB7 (LCD)
    ' - PORTD.7 = PIN 2 (Datenportstecker "CTRL") = DB6 (LCD)
    ' - PORTB.0 = PIN 3 (Datenportstecker "CTRL") = DB5 (LCD)
    ' - PORTB.5 = PIN 4 (Datenportstecker "CTRL") = DB4 (LCD)
    ' - PORTC.3 = PIN 5 (Datenportstecker "CTRL") = EN2 (LCD) - nicht verwendet!)
    ' - PORTB.3 = PIN 6 (Datenportstecker "CTRL") = EN (LCD)
    ' - PORTD.3 = PIN 7 (Datenportstecker "CTRL") = R/W (LCD) - nicht verwendet!)
    ' - PORTC.2 = PIN 8 (Datenportstecker "CTRL") = RS (LCD)
    ' - GND = PIN 9 (Datenportstecker "CTRL") = VSS (LCD)
    ' - VDD = PIN 10 (Datenportstecker "CTRL") = VSS (LCD)
    '
    ' RN-LCDAdapter : Jumper J1 gesteckt (grüne LCD)
    ' RN-LCDAdapter : Jumper J2 alle 4 gesteckt (für 4 Bit Modus)
    ' RN-MiniControl: Fuse-Bit Einstellungen laut Beschreibung
    ' RN-MiniControl: Alle Jumper laut Beschreibung (Standardbelegung!)
    ' ATMEGA 168 : Fusebit KLA987 (111111), Fusebit C (1ivide Clock by 8 Disabled)
    '
    '################################################# ##############################

    $regfile = "m168def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 64

    $crystal = 16000000
    $baud = 9600

    Config Lcd = 20 * 4a , Chipset = Ks077
    Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 , E = Portb.3 , Rs = Portc.2
    ' Config Lcdbus = 4

    Initlcd

    Cls
    Locate 1 , 1
    Waitms 100
    Lcd "Hallo Welt"

    End

    <<< Ende Testprogramm --->>>

    Muß ich eigentlich im 4 BIT Modus auch Config Lcdbus = 4 eingeben? Wenn ja, warum? Ich habe Config Lcdbus = 4 auskommentiert, weil es weder mit noch ohne funktioniert!

    Muß ich eigentlich immer, also auch wenn ich keine serielle Ausgabe habe, mit $baud die Baudrate angeben?

    Was mache ich falsch? Ich bin für jede Hilfestellung dankbar. Nach Möglichkeit mit einem kleinen funktionierenden Beispielcode für mein Problem.

    Vielen Dank für eure Hilfe in voraus.

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Du wirst das LCD über ein 10pol Flachbandkabel angeschlossen haben, da geht dann nur LCDBUS=4.
    Am Kontrastregler wirst du ja mal gedreht haben.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2007
    Beiträge
    11
    Hallo Hubert.G,

    Danke für die Antwort.
    Du wirst das LCD über ein 10pol Flachbandkabel angeschlossen haben, da geht dann nur LCDBUS=4.
    Am Kontrastregler wirst du ja mal gedreht haben.
    Ja, ich verwende das 10pol Flachbandkabel, was ich aber auch u. a. unter "Testbedingungen" erwähnt habe. Und natürlich habe ich am Kontrastregler gedreht! Wie auch erwähnt, das ganze funktioniert ja auch auf dem RN-Control 1.4 Mega32 Board mit dem entsprechenden Beispielcode für dieses Mega32 Board!
    - Verbindung RN-MiniControl mit RN-LCDAdapter: 10 poliger Universeller Datenportstecker "CTRL" (Wannerstecker) an 10 poligen Wannenstecker
    Mein Problem ist, dass ich mich an die unveränderliche PIN- bzw. PORT-Belegungen des Universellen Datenportstecker "CTRL" des RN-MiniControl halten muß.

    Wie muß denn jetzt mit LCDBUS=4 mein einfacher BASCOM-Testcode für die "Hallo Welt" LCD-Ausgabe aussehen? Kannst Du, oder irgendjemand anders mir ein funktionierendes "Hallo Welt" BASCOM-Beispiel hier zeigen? Für ein Codebeispiel wäre ich sehr dankbar, denn ansonsten komme ich wohl nicht weiter. Danke.
    Gruß
    myrobo

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Hier gibt es das BASCOM-AVR-Manual, unter LCD findest du auch dein Beispiel.http://www.mcselec.com/index.php?opt...d=99&Itemid=54
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2007
    Beiträge
    11
    Hallo Hubert.G,

    sorry, aber jetzt passiert genau das, was ich befürchtet habe. Mein Problem klingt so trivial, dass ich Lösungsvorschläge bekomme, die ich natürlich schon längst selbst evaluiert habe.
    Hier gibt es das BASCOM-AVR-Manual, unter LCD findest du auch dein Beispiel.http://www.mcselec.com/index.php?opt...d=99&Itemid=54
    Natürlich kanne ich das BASCOM-Manual, und somit auch die entsprechenden LCD-Beispiele. Ich habe ja schließlich die neueste BASCOM-AVR Vollversion. Natürlich habe ich auch in allen mir bekannten AVR- und Bascom Foren nach einer Lösung gesucht. Ich habe auch gegoogled! Leider ist dieses LCD-Anzeigeproblem

    RN-MiniControl spezifisch.

    RN-MiniControl hat in dem u. a. explizit für die LCD-Ausgabe vorgesehenen 10pol Wannenstecker (Universeller Datenportstecker CTRL) eine wie folgt fest vorgegebene PIN- und somit auch PORT-Belegung:

    - PORTD.6 = PIN 1 (Datenportstecker "CTRL") = DB7 (LCD)
    - PORTD.7 = PIN 2 (Datenportstecker "CTRL") = DB6 (LCD)
    - PORTB.0 = PIN 3 (Datenportstecker "CTRL") = DB5 (LCD)
    - PORTB.5 = PIN 4 (Datenportstecker "CTRL") = DB4 (LCD)
    - PORTC.3 = PIN 5 (Datenportstecker "CTRL") = EN2 (LCD) - nicht verwendet!)
    - PORTB.3 = PIN 6 (Datenportstecker "CTRL") = EN (LCD)
    - PORTD.3 = PIN 7 (Datenportstecker "CTRL") = R/W (LCD) - nicht verwendet!)
    - PORTC.2 = PIN 8 (Datenportstecker "CTRL") = RS (LCD)
    - GND = PIN 9 (Datenportstecker "CTRL") = VSS (LCD)
    - VDD = PIN 10 (Datenportstecker "CTRL") = VSS (LCD)

    Nochmal: diese Belegung kann man NICHT ändern. Also passe ich meinen Bascom LCD Code entsprechend wie folgt an:
    $regfile = "m168def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 64

    $crystal = 16000000
    $baud = 9600

    Config Lcd = 20 * 4a , Chipset = Ks077
    Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 , E = Portb.3 , Rs = Portc.2
    ' Config Lcdbus = 4

    Initlcd

    Cls
    Locate 1 , 1
    Waitms 100
    Lcd "Hallo Welt"

    End
    Aber leider wird auf der LCD nichts angezeigt, sie leuchtet halt nur gelb. Auch die Kontrastregelung zaubert keinen Text hervor. Daher nochmal meine Frage: Was ist an meinem Beispielcode falsch? Da ich die PortPins mit
    Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 , E = Portb.3 , Rs = Portc.2
    dem RN-MiniControll Datenstecker angepasst habe sollte die Ausgabe von "Hallo Welt" doch eigentlich funktionieren. Warum funktioniert der Beispielcode aber nicht?

    Ich bitte um Hilfe, denn ich trete wirklich auf der Stelle. Danke.
    Gruß
    myrobo

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Das Problem könnte sein, das bei Bascom der R/W nicht verwendet wird und daher auf GND gelegt werden muss.
    Das sollte allerdings nur Richtung LCD passieren, da der M168 schaden nehmen könnte wenn du den Port auf high legst.

    Edit: Wenn du den Pin sonst nicht brauchst, kannst du ihn natürlich auch im Programm auf low legen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2007
    Beiträge
    11
    Hallo Hubert,

    ich habe mir Deinen letzten Tip
    Das Problem könnte sein, das bei Bascom der R/W nicht verwendet wird und daher auf GND gelegt werden muss.
    Das sollte allerdings nur Richtung LCD passieren, da der M168 schaden nehmen könnte wenn du den Port auf high legst.

    Edit: Wenn du den Pin sonst nicht brauchst, kannst du ihn natürlich auch im Programm auf low legen.
    genauer angesehen, und auch nachvollzogen. Ich habe jetzt mit
    Config Pind.3 = Output ' bestimme Ausgang für R/W
    Lcd_rw Alias Portd.3 ' Variable für R/W festlegen
    Lcd_rw = 0 ' 0 = Schreiben, 1 = Lesen
    am RN-MiniControl den Ausgang PORTD.3 mit LOW an PIN7 gelegt, und damit für das LCD den Wert für R/W auf Schreiben (W) gesetzt. Jetzt funktioniert die LCD-Ausgabe wie gewünscht. Eins sollte man aber noch beachten:
    In der Bascom IDE im Menü "Optionen"-"Compiler"-"LCD" den BUS mode auf 4 Bit, und den Data mode auf ein zu stellen!

    Um anderen Anfängern den Anschluß und Betrieb des LCD EADIP204 mit einem RN-LCDAdapter an ein RN-MiniControl Board ( alles Produkte von http://www.robotikhardware.de ) zu erleichtern, füge ich hier nochmal meinen kurzen, aber ausführlich kommentierten Testcode an.

    Nochmal Danke für die Hilfestellung.
    Angehängte Dateien Angehängte Dateien
    Gruß
    myrobo

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Mich würde noch interessieren was du bei deinem RNControl 1.4 für ein Testprogramm verwendet hast.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2007
    Beiträge
    11
    Hallo Hubert,

    für das RNControl 1.4 habe ich das Beispielprogramm aus der Beschreibung für den RN-LCD-Adapter von "robotikhardware.de" genommen. Du findest das Testprogram über den Link

    http://www.robotikhardware.de/downlo...CD_adapter.pdf

    unter der Überschrift "Beispielprogramm für RN-Control" ab Seite 6 bis Seite 8.

    Ich hoffe diesmal konnte ich Dir helfen.
    Gruß
    myrobo

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Danke, habe es gefunden. Mich hat nur interessiert wie dort das Problem mit R/W gelöst ist.
    Es ist genau so wie du es gemacht hast.
    Wäre natürlich nicht schlecht wenn das irgendwo erwähnt würde.
    Obwohl diese Art nicht sehr sinnvoll ist. Das weglassen von R/W sollte ja einen PortPin einsparen, was auf diese Weise ja nicht geschieht.

    Ich selbst programmiere in C, da habe ich eine Library die kann beide Arten. Mit R/W macht es aber nur Sinn wenn man Timing-Probleme hat.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests