www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mal wieder EA DOG-M 162, keine Initialisierung


Autor: Sven G. (u-s-f)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bitte nicht gleich steinigen, wenn ihr der Meinung seid, daß das Thema 
behandelt wurde. Ähnliche Fragen wurden bereits gestellt, Antworten 
jedoch keine gegeben, bzw. die gegeben wurden haben mein Problem nicht 
gelöst.

Es geht um die Initialisierung eines EA DOG-M 162, im Modus 5V 8bit 
welche mit einem ATMEGA16 fehlschlägt. (Andere LCDs konnte ich mit dem 
ATMEGA16 bisher erfolgreich ansteuern.)

Leider bin ich mir nicht sicher ob es an der Schaltung selbst oder am 
Programm liegt (z.B. Wartezeiten zu kurz, wobei ich dort schon 
experimentiert habe).

Anschlußbelegung:
Die Anschlußbelegung ist bei mir wie folgt, angelehnt an das Datenblatt 
des DOG-M. Kondensatoren oder andere Teile habe ich nicht 
zwischengeschaltet

Pin23 PSB  an 5V (Labornetzteil)
Pin24 VOUT an 5V
Pin25 VIN  an 5V
Pin26 VDD  an 5V
Pin27 VSS an Masse
Pin28 D7 an PortC 7 (ATMega16)
Pin29 D6 an PortC 6
Pin30 D5 an PortC 5
Pin31 D4 an PortC 4
Pin32 D3 an PortC 3
Pin33 D2 an PortC 2
Pin34 D1 an PortC 1
Pin35 D0 an PortC 0
Pin36 E an PortB 2
Pin37 RW an PortB 1
Pin38 CSB an Masse
Pin39 RS an PortB 0
Pin40 Reset an 5V

A1 an 5V (vorerst ohne Widerstand)
A2 an 5V (vorerst ohne Widerstand)
C1 an Masse
C2 an Masse


Die wesentlichen Bestandteile meines Programms für das DOG-M sehen wie 
folgt aus, auch angelehnt an die Initialisierung aus dem Datenblatt des 
DOG-M:

lcd_lade:
       sbi PORTB, 2
       nop
       nop
       nop
       cbi PORTB, 2
       ret

;Schleife 50us
vz50us:
        ldi temp3, 66
vz50us_:dec temp3
        brne vz50us_
        ret

; Schleife 2,1ms
vz2100us:
           ldi  temp3, 14  ;
WGLOOP0:   ldi  temp4, 201 ;
WGLOOP1:   dec  temp4
           brne WGLOOP1
           dec  temp3
           brne WGLOOP0
           ret

;Schleife 40ms
vz40ms:
           ldi  temp3, 230
WGLOOP0_:  ldi  temp4, 250
WGLOOP1_:  dec  temp4
           brne WGLOOP1_
           dec  temp3
           brne WGLOOP0_
           ret



start:
; Einstellung der Ports
            ldi r16,0xFF
     nop
     out DDRB, r16
     nop
     out DDRC, r16 ;
            nop

; Stackpointer initialisieren
            ldi temp, LOW(RAMEND)
            out SPL, temp
            ldi temp, HIGH(RAMEND)
            out SPH, temp

; Initialisierung LCD Typ EA DOGM162 für 5V
;####################################
;#                                  #
;#  RS auf Port B Pin0 (0b0000000x) #
;#  RW auf Port B Pin1 (0b000000x0) #
;#  E  auf Port B Pin2 (0b00000x00) #
;#  Datepins an Port C (0bxxxxxxxx) #
;#                                  #
;####################################

       rcall vz40ms
       rcall vz40ms

       ldi lcds, 0b00000000 ; RW= 0 RS =0
       out PORTB, lcds
       nop
;LCD Function SET
       ldi lcdd, 0b00111001  ; 8bit,2-Zeilen, kleine Schrift, usw.
       out PORTC, lcdd
       rcall lcd_lade
       rcall vz2100us
; Instruction Table 1 an
            ldi lcdd, 0b00011100  ; Standard
        out PORTC, lcdd
            nop
            rcall lcd_lade
            rcall vz50us

usw.
Wie geschrieben genau nach Initialisierungsbsp. des Datenblattes.


Woran liegt es daß die Initialisierung fehlschlägt?
Im Voraus danke für Eure Antworten.

Autor: Sven G. (u-s-f)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Info. Das DOG-M habe ich jetzt initalisiert und kann es ansteuern. 
Ich werde nochmal genau analysieren ob es tatsächlich an den Timings lag 
und dann das Ergebnis inkl. einer lauffähigen Initialisierungssequenz 
8bit 5V für Assembler einstellen.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na prima!

Pflege es doch bitte gleich ins ASM-Tut ein, da fehltes nämlich noch

Danke Klaus

Autor: Christian Siebert (csiebert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ist zwar ein bischen off-topic aber vielleicht weiß ja jemand bescheid.

Muss ich das Display auf 3,3V geregelt halten oder läuft das auch 
problemlos bei 3,8V oder gar 4V.

Im Datenblatt steht unter Versorgungsspannung 3.3...5V. Das würde ich 
als 3.3V bis 5V interpretieren. Weiter oben steht jedoch "3.3V oder 5V".


Gruß,
Christian

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wenn du das Datenblatt halbwegs aufmerksam gelesen hättest, wäre dir 
aufgefallen, das 3,3V- und 5V-Betrieb unterschiedliche Beschaltungen 
benötigen. Bei 3,3V werden interne Spannungen über Ladungspumpen 
erzeugt. Also entweder 3,3V oder 5V. Im Interesse der Lebensdauer des 
Displays wurde ich die Spanunngen auch halbwegs genau einhalten.

MfG Spess

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.