Probleme mit LCD's am Mega8

Darkstar

Mitglied
15. Okt. 2009
91
0
6
Sprachen
Hallo Leute, wer weiss rat?
Ich hab nun schon 2 Wochen rumexperimentiert - wie viele andre auch mit nem
Steckbrettl. Hab auch das RN-Mega8-Board gekauft (bekommen hab ich v1.5?!).
Aber nüscht will, weder 16*2, 20*2 oder 27*4 gibt auch nur ein Symbol wieder.
Ich nutze Bascom(Demo) und hatte schon all die Disp's am Mega32-16MHz am
laufen - ohne Probleme! nur der Atmega8 ( ich hab davon 3 Stück durchprobiert)
mit 16MHz ext. wie auch 1MHz int. will nich :(
Die 8er sind nicht tot, wie ein einfaches LED-Blinki.bas beweist.
Als AusgabePorts hab ich (glaub ich) so ziemlich alle Kombis durch, die am m8
möglich sind; hab auch mal hier im Forum Beiträge gewälzt, ob ein andrer n
ähnliches Problem beschreibt. Ohne Erfolg für mein m8-Problem.
Nun meine Frage: liegt es an FuseBits bzw beeinflussen die die Timings falsch,
obwohl ich $crystal = 16000000 im .bas habe?
Oder gibts noch was anderes zu beachten beim m8, was beim m32 kein Ding ist? :confused:
Mein Testprog ist aus Beispielen hier aus dem Forum immer wieder neu entstanden und höchstens 100 Zeilen.
Als Progger nutz ich die Lpt-Variante mit dem SN74S244 und der funzt ja auch. Die Chips sind neu, die Quarze mit 22pF-C's auch und 5V kommt mit 2A
stabil aus einem neuen SNT plus mehreren 100nF's an den Mega-VCC-Anschlüssen.
Ich werd sonst bald die Idee begraben, LCD und Mega8 :mad:
Immerhin geht der Atmega32 wie erwartet....:vroam:

Aber ich hoffe, bei so vielen Auskennern in Sachen Mega und Bascom
kann mir jemand den entscheidenden Tip geben.
Danke im voraus und
Grüssle aus DS
 
Hallo,

Aber nüscht will, weder 16*2, 20*2 oder 27*4 gibt auch nur ein Symbol wieder.
Ich nutze Bascom(Demo) und hatte schon all die Disp's am Mega32-16MHz am
laufen - ohne Probleme! nur der Atmega8 ( ich hab davon 3 Stück durchprobiert)
mit 16MHz ext. wie auch 1MHz int. will nich :(
Die 8er sind nicht tot, wie ein einfaches LED-Blinki.bas beweist.
Als AusgabePorts hab ich (glaub ich) so ziemlich alle Kombis durch, die am m8
möglich sind; hab auch mal hier im Forum Beiträge gewälzt, ob ein andrer n
ähnliches Problem beschreibt. Ohne Erfolg für mein m8-Problem.
Mega8 und Mega32 sind eigentlich mit den Registern ziemlich identisch. Also nix von den Timern, UART, ... ist Memory-Mapped. Sollte also kein Problem sein den Code zu portieren. Müßte selbst in Assembler ohne Änderungen (bis auf evtl andere Ports) einz-zu eins zu übernehmen sein.

Nun meine Frage: liegt es an FuseBits bzw beeinflussen die die Timings falsch,
obwohl ich $crystal = 16000000 im .bas habe?
Oder gibts noch was anderes zu beachten beim m8, was beim m32 kein Ding ist? :confused:
Wie gesagt ... identischer Inhalt nur mit weniger Ports. Wenn das $crystal die richtige Quarzfrequenz bekommt sollte auch das Timing passen.

Mein Testprog ist aus Beispielen hier aus dem Forum immer wieder neu entstanden und höchstens 100 Zeilen.
Stell das Ding doch einfach mal hier rein ...

Als Progger nutz ich die Lpt-Variante mit dem SN74S244 und der funzt ja auch.
Zieh das Ding mal nach dem Programmieren ab. Evtl hält er deinen Prozessor im Reset-Zustand. Dann läuft natürlich nix. Das ist bei mir manchmal so. Der LPT-Progger trennt sich nicht so sauber vom System wie ein AVRISPmk2.

Die Chips sind neu, die Quarze mit 22pF-C's auch und 5V kommt mit 2A
stabil aus einem neuen SNT plus mehreren 100nF's an den Mega-VCC-Anschlüssen.
Wenn da keine Fehler sind, dann sollte das so passen.

Ich werd sonst bald die Idee begraben, LCD und Mega8 :mad:
Immerhin geht der Atmega32 wie erwartet....:vroam:

Aber ich hoffe, bei so vielen Auskennern in Sachen Mega und Bascom
kann mir jemand den entscheidenden Tip geben.
na dann mach ich mal ne Kennung :D Also erster Tip ...
Den LPT-Progger nach der Programmierung abziehen und nicht wie sonst evtl gewohnt der Faulheit wegen dran lassen ;)

Gruß
Dino
 
Danke dino03
für die superschnelle Reaktion. Man könnte glauben, Du liegst hier auf der Lauer
um Dummis wie mich auf die Spur zu bringen...:D
Leider hat das Abziehen (und ein Reset) noch keinen Fortschritt gebracht :confused:
Ich hab hier mal das TestCodeschnipsel, wenn das nicht geht brauch ich gar
nicht weiterstricken:rolleyes:



CodeBox BASCOM

'#######################################################
'Ein LCD an Port D
'von ATMega8 angeschlossen
'
'Autor: Wolfgang
'z.Z. nicht(Verwendet wurden: RN-MEGA8 27*4 LCD )
'#######################################################

$regfile = "m8def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000 'Quarzfrequenz
$baud = 9600 'Baudrate seriell

Config Portb = Output

Config Lcd = 16 * 2 'Chipset = HD44780
Config Lcdpin = Pin , E = Portd.3 , Rs = Portd.2 , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
Config Lcdbus = 4
Initlcd
Waitms 400
Cursor Off
Cls

' Arbeitsschleife

Do
Cls
Locate 1 , 1
Lcd "*RN-MEGA8 V1.5*" 'Begrüssung
Locate 2 , 1
Lcd "Wolfgang "
Wait 3
Portb.0 = 1 'LED blinken, lebt der µC noch?
Wait 1
Portb.0 = 0
Wait 1
Loop

End 'end program


und im Anhang eine Minischaltung, die ich auf Benutzung von Port D umgesteckt hab. RS232 brauch ich hier (noch?) nicht.
Der Quarz is natürlich ein 16MHz !
 

Anhänge

  • atmega8-2.gif
    atmega8-2.gif
    14,3 KB · Aufrufe: 34
Hi,

Config Lcd = 16 * 2 'Chipset = HD44780
Config Lcdpin = Pin , E = Portd.3 , Rs = Portd.2 , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
Config Lcdbus = 4
Initlcd
und im Schaltplan ist Port C in Verwendung ... :D

Irgendwas paßt da nicht :rolleyes:

Gruß
Dino
 
Hallo dino03

Hab ich doch unterm Code geschrieben - ich habs auf D umgesteckert
weil die PortC-Variante auch nich funzt.
Ich hab aber auch noch ne andere Frage: beim Simulator im Bascom geht zwar
der Zeiger den Code runter, aber wenn ich die LCD-Simulation dazu schalte,
zeigts dort nix an. Geht diese Bascom-Funktion nur in der Vollversion?
Denn auch bei meinen Tests mit dem ATMega32 + LCD hat das in der Simulation
nichts angezeigt - in echt aber schon.
Ich meine, vielleicht ist zu Weihnachten mal die Vollversion fällig, aber bis dahin...

Grüssle
 
Hi,

Hab ich doch unterm Code geschrieben - ich habs auf D umgesteckert
weil die PortC-Variante auch nich funzt.
stimmt :D man sollte mal zu ende lesen :rolleyes:
Und ich war so stolz das ich den Fehler gefunden hab :eek: :D

Ich hab aber auch noch ne andere Frage: beim Simulator im Bascom geht zwar
der Zeiger den Code runter, aber wenn ich die LCD-Simulation dazu schalte,
zeigts dort nix an. Geht diese Bascom-Funktion nur in der Vollversion?
Denn auch bei meinen Tests mit dem ATMega32 + LCD hat das in der Simulation
nichts angezeigt - in echt aber schon.
:confused: Mit Simulatoren steh ich sowieso immer auf Kriegsfuß.Da kann ich wohl nicht weiterhelfen ...

Evtl fällt mir ja doch noch was auf ...

Gruß
Dino

EDIT: Ich hab mal deinen Quellcode mit Tags etwas vom restlichen Text getrennt. Wird dadurch übersichtlicher.

nochmal EDIT: rn-wissen.de - LCD-Modul am AVR
=>> 4-Bit Ansteuerung ohne Busy(I/O Mode) :hmpf:
Sieht ziemlich identisch aus ... Komisch :confused:
Entweder ist der Fehler zu einfach oder wir sind zu blöd :p
Blöde Frage ... Kontrastspannung ... Kein Wackelkontakt und Einstellung paßt ?
 
Jep. Spannung, Kontrast usw. X-mal gechecked.
Hat ja am Mega32 auch gepasst :rolleyes:
Klar finden sich in meinen Anfängen nahezu immer "Codespuren" anderer Teil-
nehmer. Ich will als Newbie gar nicht leugnen, dass ich gern das probiere,
was bei anderen auch geht...bloss wenn's ausgerechnet mit so simplen
Sachen wie LCD-Initialisierung so gar nich will, obwohl es bei allen anderen
geht, wundert mich das schon ein bissel.
 
Hallo Darkstar!

Wenn ich mir deinen Code oben so ansehe und mir deinen Schaltplan ein wenig "umdenke", dann sieht alles ganz schlüssig aus.

Das Einzige, was ich mal probeweise entfernen würde, ist das "Initlcd"!

Normal musst du dies nicht "noch einmal" separat aufrufen, denn das wird automatisch ausgeführt!
Wenn du den Befehl noch einmal aufrufst, wird das LCD noch einmal initialisiert.... allerdings musst du dabei den WR-Anschluss des Displays beachten.

Meine Idee klingt jetzt vielleicht ein wenig merkwürdig...... aber es ist schnell gemacht und käme doch mal auf einen Versuch an. ;)

Ansonsten würde ich softwareseitig auch keine Probleme feststellen.


Gruß,
Cassio
 
Hi,

Klar finden sich in meinen Anfängen nahezu immer "Codespuren" anderer Teil-
nehmer. Ich will als Newbie gar nicht leugnen, dass ich gern das probiere,
was bei anderen auch geht...
Warum soll man das Rad auch immer neu erfinden ... Ich klaue auch gern und passe das dann nachträglich an wenn ich es selber verstehe :D

Tja ... und was Cassio schon sagt ... es sieht schlüssig aus ... und trotzdem
läuft der Mist nicht :confused: :( Komische Sache ...

Wie ich mal nen Code-Teil für 1Wire von nem Mega32 auf nen Mega48 umgesetzt hab lief es auch nicht mehr. Irgendwie war ich da wohl zu hart an den Timing-Grenzen. Setz den Wert von $crystal doch spaßeshalber mal auf 16,5MHz hoch. Damit rechnet Bascom das Timing dann langsamer und das Display hat etwas mehr Zeit. Evtl hilft das ja was ...

Gruß
Dino
 
Hallo Cassio
Sorry aber nö - das hat auch nicht geholfen :confused:

Könnte der 8-Bit-Modus (D0...D7) helfen? Muß dazu ja nur die Drähte, mit
denen die unteren Bits (D0...D3) auf GND liegen nun auf freie Ports umstecken.
Ist es da ratsam, DB0 - DB7 auf zB. PortD0 - PortD7 zu legen und die Steuer-
leitungen zB. auf PortC0 - PortC3 ?:stupid:
Oder andersrum (C -> Daten und D -> Steuern)? Oder ist es Wurst?

Da ich schon drei Displays und unterschiedliche Port-Kombis ähnlich o.g. Muster
probiert hab, dachte ich eigentlich eher an ein Mega8 spezifisches Problem.
Am Mega32 hab ich's am PortA und die (RS;E;R/W) am PortB und dort gibts
kein Problem:stupido2:
Aber trotzdem danke für den Tip.
Ich hab auch mal E mit 10k gegen GND gezogen - ohne Wirkung.
 
Hallo !

Alles sehr merkwürdig! :hmmmm:


Allerdings...
Am Mega32 hab ich's am PortA und die (RS;E;R/W) am PortB und dort gibts
kein Problem

Wieso R/W auf einem Port? :hmmmm:

Bei einem Standarddisplay habe ich R/W immer fest auf GND liegen!

Schau mal hier----> LCD-Anschluss

Gruß,
Cassio
 
Hi, noch mal!

Wenn ich deine Stiftleiste für das Display richtig durchgezählt habe, dann hast du aber auch die R/W-Leitung auf GND liegen.
Das kann es also auch nicht sein.


Am Mega8 wird es nicht liegen, weil ich selbst och vor einigen Monaten nur mit dem Mega8 die Standard-LCDs ausprobiert habe..... hat immer funktioniert, egal welche Ports!

Was macht eigentlich deine LED? "Blinkt" die denn?

Nach dem Kontrast will ich mal nicht fragen, weil du am Mega32 ja etwas sehen kannst.... bzw. irgendwann mal alle Segmente dunkel werden müssten, wenn der Kontrast zu weit aufgedreht ist.

Gruß,
Cassio
 
Ähm ich meinte am Mega32 hab ich R/W am PB1, weil ich den mit einem Ex-
perimentierboard von Pollin betrieben hab und da ist das auf Jumper gelegt.
Siehe Bild1 im Anhang.
Man kann da entweder frei verdrahten (obere Buchsen) oder einfach Jumper
setzen, hab ich gemacht:D
Das Board ist recht universell, aber den Mega8 hab ich auf ein RN-Mega8 und
auf ein Steckbrett eingesetzt (siehe Bild2 und 3)
Eigentlich ganz normale typische Beschaltung und wie Du schon gesehen hast,
kein exotischer Code. Darum bin ich ja so ver-zweifelt
-ärgert
-duzt
-wundert....
Such Dir eins aus:close_tema:
Jedenfalls schließ ich für heut(?) das Thema weil bald wieder der Wecker klingelt.
:goodnight:
Grüssle
Wolfgang
 

Anhänge

  • Bild1.jpg
    Bild1.jpg
    98 KB · Aufrufe: 24
  • Bild2.jpg
    Bild2.jpg
    75,7 KB · Aufrufe: 28
  • Bild3.jpg
    Bild3.jpg
    141,7 KB · Aufrufe: 17
Tschuldigung, den ATMega32-16 auf seinem Evalu-dingsbumsboard
hatte ich noch vergessen, sieht so aus und geht prima zusammen
mit dem Addonboard.

Grüssle und gut's Nächtle
Wolfgang
 

Anhänge

  • Bild4.jpg
    Bild4.jpg
    171,3 KB · Aufrufe: 18
Moin Darkstar!

Ich habe ich deine Bilder richtig verstanden?
Du schreibst her nicht nur von zwei verschiedenen Boards und Atmels.....
sondern auch von zwei verschiedenen Displays? :hmmmm:

Nee jetzt, oder?


EDIT:
Nachtrag.....
Wenn ich mir das Bild mit den Steckbrettern so ansehe, dann steige ich durch deine Verdrahtung nicht so richtig durch. :hmmmm:
So ein paar Leiterbahnen kann ich ja verfolgen und auch einige Drähte.... aber ich bekomme da keinen Reim drauf.
Bist du sicher, dass du das Display richtig angeschlosen hast?


Gruß,
Cassio
 
Hallo,

Was ist denn das jetzt ganz genau für ein Display an deinem Mega8 ...
Ist das jetzt mit nem HD44780 oder steht da mal wieder das typische
"Industriestandard" oder "HD44780 kompatibel" oder sowas ?
Wenn es von Pollin ist -> Bezeichnung ... sonst mal nen Foto von der
Chipseite damit man sehen kann was da drauf steht (Displaytyp, Chips, ...)
Es gibt nämlich Controller die zwar "kompatibel" sind (KS0066, KS0070B,
ST7066U, ...) aber im Endeffekt vom Timing und der initialisierung doch
etwas anders.

------ Beispiel ---------------------------------------
Pollin LCD-Modul SC1604A
Hochwertiges, vierzeiliges Textdisplay mit industriestandard-kompatiblem Controller und LED-Hintergrundbeleuchtung. Download verfügbar.

Technische Daten:
- grün/gelbe Hintergrundbeleuchtung
- 4 Zeilen x 16 Zeichen Text
- Betriebsspannung 5 V-
- Anzeigefläche: 62x25,6 mm
Maße (LxBxH): 87x60x12,7 mm.

7,95 EUR
Best.Nr. 120 572
G120572.JPG
Anhang anzeigen SC1604A_-_4x16Chr_Pollin_.pdf

in der PDF steht ...
" BUILT-IN CONTROLLER (KS0066 OR EQUIVALENT) "

KS0066_vs_HD44780_4-Bit-Mode.png
Die 4-Bit-Initialisierungen des KS0066 und des HD44780 gegeneinander gestellt. Es fällt bereits bei den ersten 2 Nibbles (4Bit) auf, das beim KS0066 (links) 2x 0010 und dann bereits das erste Kommando übertragen wird und beim HD44780 (rechts) 3x 0011 und dann das erste Kommando. Also wird bei dir evtl bereits die Initialisierung bei einem anderen Controller voll in die Hose gehen. :D zusätzlich sind die Wartezeiten zwischen den Befehlen anders (das Timing)

Gruß
Dino
 
Moin-Moin, Leute
Nu ma langsam mit die jungen Pferde.:adore:
@cassio:
Ich hab mehrere Displays, u.a. ein Data Vision DV-20208, ein LM118KFWL2, ein
WDC2704M (27x4) allesamt zuerst erfolgreich an dem ATMega32 auf dem
Evaulationsboard getestet (natürlich jedesmal die Testroutine angepasst wegen
Zeilen/Spalten/Pinbelegung) :p
@dino03:
klaro hab ich mir die Datenblätter zu den Displays vor dem Kauf geholt und ge-
lesen. Nachdem aber alle ohne grosse Kopfstand-übungen am o.g. Board
funktionierten, hab ich mir das RN-Mega8 gekauft, aufgebaut und da jedes der
Displays angeschlossen (wiederum unter Beachtung von Port-, Pin- und
Steckerbelegung und Änderungen im BasCode).

Nur, weil die Dinger am Mega32 ohne Probleme gingen (und auch jetzt noch
gehen!) dachte ich mir, am Mega8 sollte es doch auch funzen.
Gleicher Takt, gleiche Pinauswahl (ja, R/W hab ich jetzt auch fest an GND)...
hier noch ein Bild der Testkandidaten (Anhang).
Und auf'm Steckbrettl: ich hab den o.g. Plan dahingehend umgeändert, dass
jetzt RS - PD2, E - PD3, DB4 - PD4.....DB7 - PD7 ist. Auch im geänderten
Bascom-Testcodeschnipsel. Quarz ist 16M, mit zwei 22pF zu Masse.
Die LED am PB0 blinkt ja auch artig, bloß das Display zeigt nur 16 graue Karos
in der oberen Zeile. Reset und Power off/on bringen nix.:cray:
Aber Danke für Euren beispielhaften Eifer beim Versuch, mir zu helfen:wink:
Grüssle
Wolfgang
 

Anhänge

  • Bild5.jpg
    Bild5.jpg
    132,3 KB · Aufrufe: 18
Also ist es in deinem Fall das Solomon LM118KFWL2 (oder neue Bezeichnung GC1602P8).
Hersteller Solomon-Goldentek

Zweizeiliges Textdisplay mit bernsteinfarbener LED-Hintergrundbeleuchtung. Der integrierte Controller erlaubt den Betrieb an der parallelen Schnittstelle des PCs. Download verfügbar.
Technische Daten:
- Betriebsspannung 5 V-
- 16 Zeichen x 2 Zeilen Text
- integrierter Controller (Industriestandard-kompatibel)
- einfacher Anschluss über 16-polige Stiftleiste
- sichtbarer Bereich 63,5x15,8 mm
Maße (LxBxH): 84x44x12 mm.
Nach Angaben aus dem Internet soll der Controller HD44780-Kompatibel sein.
Leider ist auf der Herstellerseite auch nur das Datenblatt von Pollin zu finden.
Keine Angaben wie der Controller jetzt wirklich heißt.

Die LED am PB0 blinkt ja auch artig, bloß das Display zeigt nur 16 graue Karos in der oberen Zeile.
Also ist Kontrast schon mal auszuschließen und der Atmel läuft. :confused:

Gruß
Dino
 
@dino03
Kleiner Nachtrag: kennst Du den Bausatz von ELV USB->LCD Ansteuerung
(Artikel-Nr.: 68-572-39) ULA200? Da ist auch ein Mega8 mit 8MHz Quarz
und an so einem Teil hab ich das Display Solomon LM118KFWL2 (ich hatte
gleich ein paar gekauft).
Hier ist es aber 8bitig angeschlossen. Ich hab den ATMega8 da drauf auch
mal ausgelesen und auf meinen im DIP-Gehäuse draufgebrannt. Hat bloss
nicht viel gebracht, weil mir bei dem auf dem Steckbrett der FT232 fehlt.
Somit kann ich wohl nix zur Anzeige bringen (?).:angel:

Gruss
Wolfgang
 
Hier der Beweis.....:
siehe Bild im Anhang....;)
 

Anhänge

  • Bild6.jpg
    Bild6.jpg
    68,6 KB · Aufrufe: 27

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)