Forum: Mikrocontroller und Digitale Elektronik EA DOG 3,3V 4bit (AVR-GCC-Tutorial/LCD-Ansteuerung)


von Marcel R. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte nach Vorlage des Codes aus dem Artikel 
AVR-GCC-Tutorial/LCD-Ansteuerung

ein EA DOGM Display mit 1x8 Zeichen mit 4bit und 3,3V betreiben.

4 bit und 1 Zeile konnte ich in der init-Routine anpassen. Da diese Lib 
keinen Kontrast oder Aktivierung des Boost-Modus unterstützt, habe ich 
es versucht einzubauen (Infos aus Datenblatt).

In der Include-Datei:
1
// 3.3 V Betrieb
2
#define LCD_POWER  0x54  //0b01010100
3
#define LCD_KONTRAST    0x78  //0b01111000

und in lcd-init:
1
// 3.3V-Betrieb einstellen
2
lcd_command(LCD_POWER);
3
_delay_ms( 20 );
4
lcd_command(LCD_KONTRAST);
5
_delay_ms( 20 );

Leider passiert jedoch gar nichts. Auch sehe ich keinen Unterschied, ob 
die Versorgungsspannung eingeschaltet ist, oder nicht. Keine schwarzen 
Balken, kein Cursor.

Dateien sind im Anhang. Kann mir jemand einen Hinweis geben, was ich 
falsch gemacht haben könnte?

von Marcel R. (Gast)


Lesenswert?

Gerade noch festgestellt: Voltage Booster Output liegt bei 2,9V, Vin hat 
aber ~3,3V gegen GND. Es wird also höchstwahrscheinlich daran liegen, 
dass der Booster nicht richtig arbeitet. 2x 1206 Kondensatoren lt. 
Datenblatt sind angeschlossen. Auch habe ich noch weitere 
Initialisierungsfolgen ausprobiert:
1
  //Wie im EA DOGM Datenblatt
2
        lcd_command(0x21);
3
  _delay_ms( 20 );
4
  lcd_command(0x14);
5
  _delay_ms( 20 );
6
  lcd_command(0x55);
7
  _delay_ms( 20 );
8
  lcd_command(0x6D);
9
  _delay_ms( 20 );
10
  lcd_command(0x7C);
11
  _delay_ms( 20 );
12
  lcd_command(0x30);
13
  _delay_ms( 20 );
14
  lcd_command(0x0F);
15
  _delay_ms( 20 );
16
  lcd_command(0x01);
17
  _delay_ms( 20 );
18
  lcd_command(0x06);
19
  _delay_ms( 20 );

Oder auch anders ausprobiert:
1
  // 3.3V-Betrieb einstellen
2
  lcd_command(LCD_POWER);
3
  _delay_ms( 20 );
4
  lcd_command(LCD_FOLLOWER);
5
  _delay_ms( 20 );
6
  lcd_command(LCD_KONTRAST);
7
  _delay_ms( 20 );
8
9
mit folgenden defines:
10
11
// 3.3 V Betrieb
12
#define LCD_POWER        0x55  //0b01010100
13
#define LCD_FOLLOWER      0x6D  //0b01101101
14
#define LCD_KONTRAST      0x7C  //0b1111100

Leider tut sich nichts am Display.....

von spess53 (Gast)


Lesenswert?

Hi

>  //Wie im EA DOGM Datenblatt
>        lcd_command(0x21);

Im Datenblatt steht als erstes die Umschaltung auf Instruction Table1 
mit Function Control. Sonst funktionieren dein Einstellungen nicht.

MfG Spess

von Marcel R. (Gast)


Lesenswert?

Aber das mache ich doch? So wie im dogm-Datenblatt auf Seite 7 mit dem 
Unterschied, dass ich mit 4bit arbeite, und nicht mit 8.
Wo meinst du denn konkret, was falsch ist bzw. was ich anders machen 
sollte? Würde das dann direkt ausprobieren!

von spess53 (Gast)


Lesenswert?

Hi

>Aber das mache ich doch? So wie im dogm-Datenblatt auf Seite 7 mit dem
>Unterschied, dass ich mit 4bit arbeite, und nicht mit 8.

Stimmt. Aber dann must du auch

  lcd_command(0x30);

in

  lcd_command(0x20);

ändern. Denn das ist 8-Bit-Mode.

MfG Spess

von Marcel R. (Gast)


Lesenswert?

also so:
1
  lcd_command(0x21);
2
  _delay_ms( 20 );
3
  lcd_command(0x14);
4
  _delay_ms( 20 );
5
  lcd_command(0x55);
6
  _delay_ms( 20 );
7
  lcd_command(0x6D);
8
  _delay_ms( 20 );
9
  lcd_command(0x7C);
10
  _delay_ms( 20 );
11
  lcd_command(0x20);
12
  _delay_ms( 20 );
13
  lcd_command(0x0F);
14
  _delay_ms( 20 );
15
  lcd_command(0x01);
16
  _delay_ms( 20 );
17
  lcd_command(0x06);
18
  _delay_ms( 20 );

ändert aber leider alles nichts. Display bleibt dunkel und Boost Output 
Voltage liegt mit 2,94V unter der Eingangsspannung con 3,3V.

von spess53 (Gast)


Lesenswert?

Hi

>ändert aber leider alles nichts. Display bleibt dunkel und Boost Output
>Voltage liegt mit 2,94V unter der Eingangsspannung con 3,3V.

Dann überprüfe nochmel deine Hardware. Ich hatte noch nie mit 
DOG-Displays Probleme. Allerdings benutze ich SPI und Assembler.

MfG Spess

von Marcel R. (Gast)


Lesenswert?

Ich hatte tatsächlich ein paar Fehler, die ich aber schon behoben habe. 
R/W war bspw. nicht fest auf GND und es ist doch kein 1x8, sondern 3x16 
Display..... Der Hauptfehler liegt m.E. aber in der Boost-Schaltung, da 
das Display nichts anzeigt und VOUT bei 2,9V liegt.

Dann habe ich alles angepasst und auch nochmal beide Kondensatoren 
gemessen. Zwischen VIN und VOUT liegt 1µF als "normaler" 
1206-Kondensator und zwischen CAP1N und CAP1P liegt ein 1206-Kondensator 
mit 0,47µF.

Trotzdem messe ich bei VOUT 2,9V. Kann es noch an den Follower- oder 
Bias-Einstellungen liegen? Hier bin ich mir nicht ganz sicher, wie ich 
lt. ST7036-Datenblatt die Bits richtig setzen muss. Habe es aber wie im 
DOGM-Datenblatt gemacht.

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
Noch kein Account? Hier anmelden.