Hallo Zusammen, Bin neu hier und möchte gerne mein bereits vorhandenes LCD von Samsung aus einem Siemens Telefon mit M50530 Controller an meinen Atmega 8515 anschliessen. Ich nutze ein STK500 Board ;) Die PIN Belegung meines LCD ist folgende: Pin 01 -> Ground Pin 02 -> Data0 Pin 03 -> Data1 Pin 04 -> Data2 Pin 05 -> Data3 Pin 06 -> Data4 Pin 07 -> Data5 Pin 08 -> Data6 Pin 09 -> Data7 Pin 10 -> EX Pin 11 -> R/W Pin 12 -> OC2 Pin 13 -> OC1 Pin 14 -> 8,2 volt Pin 15 -> 5 volt Pin 16 -> Ground Mein Controller ermöglicht mir eine 4 oder 8 Bit ansteuerung, Ich möchte Ihn jedoch mit 4 Bit und ohne Busyleitung ansteuern. Dazu hab ich Pin 06-09 an PORTC P0-P3 bereits angeschlossen, an P4 liegt OC2 und an P5 OC1 und an P6 liegt EX. Mein R/W liegt auf Masse vom Netzteil das mit 5 und 8.5V liefert. Wenn ich jedoch das LCD in dieser Konstellation in Betrieb nehme sehe ich in jeder zweiten Zeile Graue Balken. Selbst wenn Data 0 bis Data 3 auf GND verbunden sind. Mach ich irgendwas grundsätzlich falsch? Nun da ich mein Programm mit AVR Studio in GCC Programmieren möchte, wollte ich hier mal eben anfragen, wer einen Code oder Treiber für GCC hat? Bitte nicht Bascom, das liegt mir irgendwie garnicht... Oder kann mir jemand ein Beispielcode geben, wie ich mein Display Initialisiere? Hab mir bereits die AVR-GCC tutorials mit dem HD Controller angeschaut, aber das hat mich leider nicht wirklich weiter gebracht da ich nicht weiß was ich mit OC1 und OC2 anfangen soll... wozu dienen die? Das ich diese als Ausgänge setzen muss hab ich schon erfahren...
Der M50530 ist mit dem HD44780 NICHT kompatibel, Initialisierung und Programmroutinen vom HD44780 funktionieren nicht. Über die Forensuche findest du ein paar Infos zum M50530. Ich habe so ein Display mit M50530 (8 Zeilen x 24 Zeichen) schon mal zum Laufen gebracht, allerdings im 8-bit Modus in Assembler an einem AT90S2313. Wenns interessiert kann ich mal die Routinen hier reinstellen, aber frühestens heute Abend, jetzt habe ich keinen Zugriff darauf. Gruß Reinhard
Hallo, Hab hier schon alle Beiträge aus der Foren suche heute Nacht studiert, bin aber nicht effektiv weiter gekommen in dieser Sache. Hab zwar schon einiges in ASM im 4 Bit Modus hier im Forum gefunden, aber entweder ganz andere PIN Belegungen oder 8 Bit Modus, oder so ein durcheinander das man da gar nicht durch blickt. Hab ein Sourcecode mit Anschlussplan gefunden bei frickelfritze.de aber da stimmt nicht mal der Sourcecode mit dem Anschlussplan überein. Aber meine Wichtigste Frage ist ja, ob ich mein LCD so korrekt angeschlossen habe? Die Zwei OC1 und OC2 müssen als Ausgänge Konfiguriert werden. Die Datenleitungen von DB4 - DB7 müssen als Ein/Ausgang Konfiguriert werden. Kannst gerne mal den Code hier rein stellen.
Das sieht so aus, als ob bei deiner Initialisierung die Parameter Duty und Ram beim Set Function Mode Instruction (SF) nicht stimmen und dadurch die falsche Zeilenzahl eingestellt wird. Im Datenblatt, das Hannes mal gepostet hat, wäre das die Tabelle 14, die du beachten musst.
In dem Datenblatt sind I/OC1 und I/OC2 aus Sicht des M50530 Eingänge, d.h. eine Einstellung als Output aut dem STK500 stimmt. Welche Werte du ausgeben musst, ist im Datenblatt bei den einzelnen Instruktionen in den Tabellen aufgeführt.
So, wie versprochen meine Versuche mit dem M50530 in Wort (Assembler) und Bild. Die Grundroutinen habe in die "0282Adef.inc" gepackt, die in das Hauptprogramm direkt includiert werden kann. Ist auch einigermaßen kommentiert. Die beiden .asm-Programme sind nur mal so zum Testen gewesen, da sind noch Definitionen und Teile von anderen Anwendungen drin, Kommentare sind auch eher weniger. Also nicht so genau hinsehen, habe sie nur dazugepackt um zu zeigen, wie die Bilder entstanden sind. Gruß Reinhard
Hallöchen, Danke für die Unterstützung, werde ggf. wenn ich mit meinem GCC Code nicht weiter kommen sollte, einfach hier neu dazu Posten, in der hoffnung das mir jemand licht ins Dunkel bringt :) Vielen dank! Daniel
Gibts eigentlich einen vernünftigen Initialisierung Code? Irgendwie hab ich das LCD nicht zum Initialisieren gekriegt, habs auch schon an den LPT dran geklemmt und es funktioniert einwandfrei... Danke :)
Daniel Steiner wrote: > Gibts eigentlich einen vernünftigen Initialisierung Code? > > Irgendwie hab ich das LCD nicht zum Initialisieren gekriegt, habs auch > schon an den LPT dran geklemmt und es funktioniert einwandfrei... > > Danke :) Also der hier vorgestellte LCD-Treiber ist (aus heutiger Sicht) zwar auch nicht das Nonplusultra, aber er funktioniert: http://www.hanneslux.de/avr/zuenduhr/index.html Ist allerdings weder in C noch in BASCOM... ;-) ...
Hey, Okay dann werd Ich wohl ein bischen hilfe brauchen. Und zwar, ich hab folgende Routine die Commands an das LCD schickt. DB4-DB7 liegt an PC0-3 an EN => PC04 RW => PC05 OC2 => PC06 OC1 => PC07 Um nun die nibbels zu vertauschen habe ich folgendes programmiert:
1 | void lcd_command(unsigned char temp1) |
2 | {
|
3 | unsigned char temp2 = temp1; |
4 | |
5 | LCD_DDR &= ~(1<<LCD_OC1) | (1 <<LCD_OC2) | (1 << LCD_RW); |
6 | |
7 | temp1 = temp1 >> 4; // oberes Nibble holen |
8 | temp1 = temp1 & 0xF0; // maskieren |
9 | LCD_PORT &= 0x0F; |
10 | LCD_PORT |= temp1; // setzen |
11 | lcd_enable(); |
12 | |
13 | temp2 = temp2 & 0xF0; // unteres Nibble holen und maskieren |
14 | LCD_PORT &= 0x0F; |
15 | LCD_PORT |= temp2; // setzen |
16 | lcd_enable(); |
17 | |
18 | _delay_ms(10); |
19 | }
|
Kann das so funktionieren??
Ich haette auch noch Assemblercode fuer nen Mega16 und Mega644 im 4-bit Mode. Da funktioniert auch die Initialisierung 8-). cu Tarzanwiejane
Kannst du mir bitte den für ein Atmega16 zukommen lassen? :)
1 | temp1 = temp1 >> 4; //soweit so gut |
2 | // temp1 = temp1 & 0xF0; //falsch, du maskierst das Highnibble,
|
3 | // in dem aber schon nichts mehr steht
|
4 | |
5 | temp1 &= 0x0F; //loesch das high nibble (ist UNNOETIG, wenn |
6 | // temp1 ein 'unsigned char' bzw. uint8_t ist)
|
7 | |
8 | /* LCD_PORT &= 0x0F;
|
9 | LCD_PORT |= temp1;
|
10 | */
|
11 | // lieber ganz sicher gehen:
|
12 | LCD_PORT = (temp1 & 0x0F) | (LCD_PORT & 0xF0); |
13 | /* "LCD_PORT ist das low-nibble aus temp1 und das highnibble von LCD_PORT" |
hth. Jörg
Wo gibt es das Datenblatt von dem Display? Habe bis jetzt nichts gefunden.
ES wrote: > Wo gibt es das Datenblatt von dem Display? > Habe bis jetzt nichts gefunden. Beitrag "Re: Display Menü LCD 4x20" ...
Und alle die das Datenblatt vom Display itself lieber moegen hier noch mal direkt das vom Samsung anstatt des Chips auf dem Display. Wobei man sagen muss das die Zeilenanfangsaddressen falsch sind. cu Tommi
Thomas Otto wrote: > Und alle die das Datenblatt vom Display itself lieber moegen hier noch > mal direkt das vom Samsung anstatt des Chips auf dem Display. Dieses Mini-Datenblatt (vermutlich von Pollin) hilft zwar bei der Anschlussbelegung, aber keinesfalls beim Befehlssatz bzw. Init-Sequenz. > Wobei man sagen muss das die Zeilenanfangsaddressen falsch sind. Stimmt... - Siehe Anhang... Und es sind auch LCDs mit unterschiedlichem erweiterten Zeichensatz im Umlauf. > > cu Tommi
@Hannes Du hast natuerlich recht, man braucht natuerlich beide Datenblaetter um mit dem Display arbeiten zu koennen. 8-) Wobei man sagen muss das die aus den Siemens Telefonen alle den gleichen Zeichensatz haben. cu Tommi
Hallo, Vielen dank :) Es ist ein Display aus einem Siemens telefon ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.