myrobo
24.09.2009, 13:19
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 (1:Divide 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.
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 (1:Divide 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.