mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATTiny2313 & LDC-Display EA DOGM163E


Autor: M. B. (freiberger77)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin Anfaänger mit AVR und versuche seit ner Woche ein EA DOGM163E - 
LCD-Display (5V) an nem ATTiny2313 im 4Bit-Modus laufen zu lassen.
(SPI habe ich auch versucht, ohne Erfolg)

Den Code habe ich im Netz gefunden ( nur Port C auf Port D geändert)
 * PD4     = RS
 * PD5     = Enable
 * PD0-PD3 = D4-D7
 * R/W ist n.c.

Allerdings bekomme ich keine Anzeige auf dem Display ?
Gibt es einen Trick, wie man sehen kann, ob das Teil überhaupt geht ?

Habe die PINS (PD0 bis PD5) mit ner LED geprüft, es flackert auch was.
Die F_CPU ist angepasst...

Ich weiß echt nicht weiter...

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Beyer schrieb:

>  * R/W ist n.c.

Muss am Display auf GND, sonst wird das nix.

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe beides schon probiert ( 5V und GND ).
Gibt es an dem Display einen "Test", den man abfragen kann, wenn das 
Teil geht ?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lcd_write mit seinen 2 Nibbles kann bei der Initialisierung erst 
verwendet werden, wenn der 4bit Modus fertig ausgehandelt ist. Davor 
wird das zweite Nibble logischerweise missverstanden.

Doku zum Display-Controller ST7036 lesen, da steht die korrekte 
Initialisierung für 4-Bit Modus drin.

NB etwas Kosmetik:
 PORTD = PORTD | ( 1<<DDD5 ) ;
DDD5 gehört zu DDRD. Also:
 PORTD |= ( 1<<PD5 ) ;

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Apropos EA DOG: Die Dinger ähneln zwar der gängigen HD44780-Displays, 
anschlusstechnisch gibt es aber Unterschiede. In der Initialisierung 
auch. Hast du ein Schaltbild von deiner Verschaltung?

Such lieber Code speziell für solche EA DOG Displays, keinen 
Standardcode für die HD44780-Displays.

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe leider keinen anderen Code gefunden, der ohne Probleme bei mir 
läuft.
Habe die Port-Einstellung geändert.
Die Anzeige bleibt leer...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist das Display angeschlossen, und bitte komplett?

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich versuche es mal damit...

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter: So ganz kommentarlos einem Anfänger den Code auf Basis der 
Anschlussvariante SPI unterzuschieben...

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Display ist wie im Datenblatt angeschlossen (auf Steckbrett).
5V 4Bit...

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist mit CSB passiert?

Das Teil kann man auch seriell ansprechen. Das zu passt Peters Code. Zu 
deinem 4-Bit Interface passt er nicht.

Könnte aber, da Steckbrett, für dich einfacher sein, den Anschluss auf 
SPI zu ändern und seinen Code zu verwenden.

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CSB int auf GND.
Den SPI-Code würde ich auch testen, muß ihn aber erstmal zum laufen 
bringen...
Der Takt sollte stimmen, sonst würde die LED an PB0 nicht mit 1Hz 
blinken...

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei Peters Code kommen noch die Fehler...


Main.o: In function `main':
X:\AVR-Programme\LCD-Display_2\default/../Main.c:7: undefined reference 
to `lcd_init'
X:\AVR-Programme\LCD-Display_2\default/../Main.c:9: undefined reference 
to `lcd_pos'
X:\AVR-Programme\LCD-Display_2\default/../Main.c:10: undefined reference 
to `lcd_text_'
X:\AVR-Programme\LCD-Display_2\default/../Main.c:11: undefined reference 
to `lcd_pos'
X:\AVR-Programme\LCD-Display_2\default/../Main.c:12: undefined reference 
to `lcd_text_'
make: *** [LCD-Display_2.elf] Error 1
Build failed with 5 errors and 1 warnings...

Weiß noch nicht warum

Autor: A. K. (prx)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Weil Peter möglicherweise eine etwas urtümliche Umgebung verwendet. 
Anbei aktualisiert. Wirst aber trotzdem nicht drum herum kommen, beide 
.c Files zusammen zu übersetzen.

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, der Code läuft.
Mußte noch
#include "lcd_drv.c"
in MAIN.c hinzufügen...

Ich werde mal das Steckbrett umbauen.
Danke aber erstmal für eure schnelle Hilfe

Aber ich muß dann doch in der MAIN.H die Ports zuordnen.
(oder das Steckbrett danach anschließen)
#define  LCD_DI    SBIT( PORTB, 3 )
#define  LCD_DDR_DI  SBIT( DDRB, 3 )

#define  LCD_RS    SBIT( PORTB, 2 )
#define  LCD_DDR_RS  SBIT( DDRB, 2 )

#define  LCD_SCK    SBIT( PORTB, 0 )
#define  LCD_DDR_SCK  SBIT( DDRB, 0 )

#define  LCD_CS    SBIT( PORTB, 1 )
#define  LCD_DDR_CS  SBIT( DDRB, 1 )

Ich habe laut Schaltplan
SI, CLK, RS & CSB
Ich nehme mal an SI=DI, RS=RS, CLK SCK & CSB=CS, bin ich da richtig ?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Beyer schrieb:

> #include "lcd_drv.c"
> in MAIN.c hinzufügen...

Geht auch ist aber trotzdem ein falscher Weg. Womit arbeitest Du, dem 
Studio? Dann einfach das zweite .c File zum Projekt hinzufügen.

> Ich nehme mal an SI=DI, RS=RS, CLK SCK & CSB=CS, bin ich da richtig ?

Ja.

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das zweite .c-File ist hinzugefügt.
Aber wenn ich #include "lcd_drv.c" rausnehme geht es manchmal und nach 
dem Neustart von AVR-Studio gehts dann mal wieder nicht...

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, viele Dank für die Hilfe,
mit SPI kann ich endlich mal was sehen.

Es steht schon mal "Hallo" in der ersten Zeile.
Laut Code sollte noch "Peter" darunter stehen, aber ich denke mal das 
liegt an den Einstellungen in der MAIN.h, da es für EA_DOGM162 ausgelegt 
ist.
In der LCD_DRV.c kann man das ja änder, aber wie ???
#ifdef      EA_DOGM081
  lcd_command( 0x31 );
  lcd_command( 0x1C );
  lcd_command( 0x51 );
  lcd_command( 0x6A );
  lcd_command( 0x74 );
#elif defined    EA_DOGM162
  lcd_command( 0x39 );
  lcd_command( 0x1C );
  lcd_command( 0x52 );
  lcd_command( 0x69 );
  lcd_command( 0x74 );
#else
#error No LCD type defined !!!
#endif

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datesheet, Display oder ST7036.

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, habe es gefunden.
DANKESCHÖN !    ;-)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

#ifdef      EA_DOGM081
  lcd_command( 0x31 );
  lcd_command( 0x1C );
  lcd_command( 0x51 );
  lcd_command( 0x6A );
  lcd_command( 0x74 );
#elif defined    EA_DOGM162
  lcd_command( 0x39 );
  lcd_command( 0x1C );
  lcd_command( 0x52 );
  lcd_command( 0x69 );
  lcd_command( 0x74 );
#elif defined    EA_DOGM163
  lcd_command( 0x39 );
  lcd_command( 0x1D );
  lcd_command( 0x50 );
  lcd_command( 0x6C );
  lcd_command( 0x7C );
#else
#error No LCD type defined !!!
#endif

und

void lcd_pos( u8 line, u8 column )
{
  switch( line ){
#ifdef      EA_DOGM163
    case 2: column += 0x10;
    case 1: column += 0x10;
#else
    case 1: column += 0x40;
#endif
  }
  lcd_command( 0x80 + column );
}


Peter

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.