mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD-Modul TC1602E-01 von Pollin ansteuern


Autor: Gast1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich habe folgendes Display von Pollin "LCD-Modul TC1602E-01". Ich kann 
das Display zwar initialisieren jedoch kann ich keinerlei Text auf dem 
Display ausgeben.
Ich habe leider keinerlei Info gefunden welcher Controller auf dem 
Display ist.

Ich verwende die lcd-lib "lcd-routines.c" von avgcc-tutorial, habe auch 
schon gelesen das es mit der fleury lib funktioniert und habe diese 
durchgearbeitet. Jedoch konnte ich keinerlei Unterschiede zwischen den 
beiden Libs finden.

verwende nur folgenden kleinen Test-Code:


#include "globals.h"

void main (void)
{

lcd_init();
lcd_string("init ready");
while(1)
{}

}

Hatte jemand von euch schon mal dieses Problem und hat einen Unterschied 
in den Libs gefunden?

Autor: Gast1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kleiner Nchtrag.

Display lässt sich nicht initialisieren.

Am Anfang wird ein schwarzer Balken angezeigt solang nicht mit µC 
kommuniziert wird sobald irgendetwas übertragen wurde verschwindet der 
schwarze balken jedoch wird nicht richtig initialisiert.

Habe versucht mit blinkenden Cursor zu initialisieren, Cursor wird 
jedoch nicht angezeigt!

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Test-Code ist zwar sehr klein, aber nicht ausreichend um
a) das Display anzusteuern
b) eine Hilfestellung zu geben

Wie sieht die Schaltung aus, welcher µC wird verwendet?

Hast Du den Kontrast richtig angeschlossen und mal verändert?

Industriestandard könnte HD44780 kompatibel heissen...

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er sagte doch, das die eine Libary nicht funktioniert, die andere aber 
schon. Ein Fehler in der Beschaltung oder beim Kontrast wird also 
weniger das Problem sein, sondern vielmehr ein anderes Timing oder eine 
andere Sequenz von Befehlen, die zum Display gesendet wird.
Ich kenne nun nicht fleury lib und kann daher leider nicht weiterhelfen, 
würde dir aber mal raten dir das Timing der Wartezyklen anzuschauen. Die 
konnten afaik etwas je nach Hersteller des Controllers variieren. Viel 
Erfolg.

Autor: Gast1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt erkenne ich leider keine Unterschiede bei den Timings etc. 
...
Vielleicht gibt es jemanden der auch dieses Display verwendet und eine 
eigene LCD_init hat und mir somit helfen könnte.

Weiß jemand welcher Controller genau verwendet wird, dann könnte man die 
infos ja aus dem Datenblatt beziehen? Wie bekomme ich den Controller-Typ 
heraus?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Gast1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Beitrag habe ich gelesen.

Vermute das Display gefunden zu haben
http://www.tinsharp.com/en/displayproduct.html?proID=1507104
werde jetz mal die Controller vergleichen SPLC780D - Standard HD4470 und 
meine Lib aus dem Tutorial anpassen.

Autor: Wolfgang-G (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du nicht zu hohe Forderungen an den Programmierstil stellst, hier 
ein Programmschnipsel für deine Flüssigkristallanzeige (FKA). (läuft bei 
mir an TC1602E-01)
Mit FKA_einrichten() sollte die Anzeige starten.
der „Rest“ des Programms ist Beiwerk.
Allerdings sind meine Programme vorzugsweise in Deutsch geschrieben.
(hier für MSP430)
MfG

Autor: viellöter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hab das Display schon ein par mal verbaut und es wird
angesprochen wie die meisten HD44780 kompatibeln LCD's

Zu beachten ist lediglich, das die versorgung vertauscht ist.
Bei Standart-Display's ist pin 1=GND, Pin 2=+ .....
Nicht so bei diesem! Pin 1=+5V, Pin 2=GND und dann normal weiter.

MfG

Autor: A. M. (am85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Um keinen neuen Thread zu eröffnen, poste ich einfach mal hier. Ich habe 
im Endeffekt das Gleiche Problem. Ich habe das besagte LCD über einzelne 
Testkabel an den Port C menes ATmega32 (16 MHz Quarz) wie folgt 
angeschlossen:

Pin 1 (Vdd) -> +5V
Pin 2 (Vss) -> GND
Pin 3 (V0) -> Poti
Pin 4 () -> PortC0
Pin 5 () -> PortC1
Pin 6 () -> PortC2
Pin 7 () -> GND
Pin 8 () -> GND
Pin 9 () -> GND
Pin 10() -> GND
Pin 11() -> PortC4
Pin 12() -> PortC5
Pin 13() -> PortC6
Pin 14() -> PortC7
Pin 15(A) -> hängt in der Luft
Pin 16(K) -> hängt in der Luft

Die Pins der Hintergrundbeleuchtung offen zu lassen ist zwar nicht schön 
und wird wohl auch nicht so bleiben, sollte aber keine Probleme beim 
ansprechen des LCDs verursachen. Ich benutze die Bibliothek von Fleury 
(http://jump.to/fleury) und habe sie folgendermaßen umgeändert:
/** 
 *  @name  Definitions for MCU Clock Frequency
 *  Adapt the MCU clock frequency in Hz to your target. 
 */
#define XTAL 16000000              /**< clock frequency in Hz, used to calculate delay timer */

/**
 *  @name Definitions for 4-bit IO mode
 *  Change LCD_PORT if you want to use a different port for the LCD pins.
 *
 *  The four LCD data lines and the three control lines RS, RW, E can be on the 
 *  same port or on different ports. 
 *  Change LCD_RS_PORT, LCD_RW_PORT, LCD_E_PORT if you want the control lines on
 *  different ports. 
 *
 *  Normally the four data lines should be mapped to bit 0..3 on one port, but it
 *  is possible to connect these data lines in different order or even on different
 *  ports by adapting the LCD_DATAx_PORT and LCD_DATAx_PIN definitions.
 *  
 */
#define LCD_PORT         PORTC        /**< port for the LCD lines   */
#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN    4            /**< pin for 4bit data bit 0  */
#define LCD_DATA1_PIN    5            /**< pin for 4bit data bit 1  */
#define LCD_DATA2_PIN    6            /**< pin for 4bit data bit 2  */
#define LCD_DATA3_PIN    7            /**< pin for 4bit data bit 3  */
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
#define LCD_RS_PIN       0            /**< pin  for RS line         */
#define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
#define LCD_RW_PIN       1            /**< pin  for RW line         */
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
#define LCD_E_PIN        2            /**< pin  for Enable line     */

Mein Code sieht wie folgt aus:
#include <avr/io.h>
#include "lcd.h"

int main(void)
{
  lcd_init(LCD_DISP_ON_CURSOR);
  lcd_clrscr();
  lcd_home();
  lcd_putc('c');

  while(1)
        {
        }
}

Auf dem Display ist die oberste Reihe schwarz, was sie schon nach dem 
ersten Anschließen ohne Programmcode auf dem mega war. Sonst passiert 
nichts.

Wo könnte ich nach möglichen (bekannten?) Fehlern suchen?

Schon einmal danke und Schöne Grüße.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Wo könnte ich nach möglichen (bekannten?) Fehlern suchen?

JTAG abgeschaltet?

MfG Spess

Autor: A. M. (am85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Hi
>
>>Wo könnte ich nach möglichen (bekannten?) Fehlern suchen?
>
> JTAG abgeschaltet?
>
> MfG Spess

Jupp, ist aus. Habe es eben extra nochmal kontrolliert.

Autor: A. M. (am85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mh, hat vielleicht noch jemand eine Idee, was man testen könnte?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
André M. schrieb:
> Pin 7 () -> GND
> Pin 8 () -> GND
> Pin 9 () -> GND
> Pin 10() -> GND

Ich weiss nicht, warum sich das so hartnäckig hält, aber die Pins lässt 
man offen und groundet sie nicht. Das Display hat interne Pullups, 
wenn also die Datenmleitungen extern gegroundet werden, geben sie nicht 
nur falsche Daten, sondern verbrauchen auch noch Strom.

Autor: A. M. (am85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Sch. schrieb:
> André M. schrieb:
>> Pin 7 () -> GND
>> Pin 8 () -> GND
>> Pin 9 () -> GND
>> Pin 10() -> GND
>
> Ich weiss nicht, warum sich das so hartnäckig hält, aber die Pins lässt
> man offen und groundet sie nicht. Das Display hat interne Pullups,
> wenn also die Datenmleitungen extern gegroundet werden, geben sie nicht
> nur falsche Daten, sondern verbrauchen auch noch Strom.

Heißt also, dass das der Übeltäter sein kann?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wenn also die Datenmleitungen extern gegroundet werden, geben sie nicht
>nur falsche Daten, sondern verbrauchen auch noch Strom.

Und sogar noch ein bisschen mehr Strom wenn man das
Display auch noch ausliest so wie Fleury. Dann sind die
Pins Ausgänge.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
> Und sogar noch ein bisschen mehr Strom wenn man das
> Display auch noch ausliest so wie Fleury. Dann sind die
> Pins Ausgänge.

Du meinst, das selbst im 4-bit Mode diese Pins angetrieben werden? 
Könnte natürlich sein, ich habs noch nie ausprobiert. Jedenfalls muss 
irgendwo die Fehlinformation mit den 'Pins auf Ground' rumschwirren. Im 
AVR-Tutorial LCD stehts aber richtig.
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.