mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AD Wandlung mit MAX187 und MC51


Autor: OleM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich probiere und spiele gerade an einem MC51 Entwicklungsboard rum, auf
dem auch der 12 Bit AD Wandler Max 187 sitzt.
Mein Ziel ist es einen mit einem Poti eingetellten analogen Wert in
einen digitalen (von 0 bis 4095) umzusetzen.
Leider habe ich sehr wenig Erfahrung und komme nicht so recht voran.
Wo kann ich das lernen? Das bekannte MC Kochbuch hilft mir nur
teilweise. Hat hier mal jemand sowas gemacht?
Mein Problem ist eben, dass ich nicht weiß, wie ich das Ding
programmieren soll.
Ich glaube im groben ist es so: Erstmal einen externen Takt angeben in
dem die Daten gelesen werden sollen.
Wenn das Startbit des AD Wandlers kommt müssen die folgenden 12 Bit
einzeln gelesen und im Speicher abgelegt werden und es werden wegen der
12 Bit ein voller 8 Bit Speicher und ein "halber" für die letzten 4
Bit benötig. Dann diese 12 Bit Zahl in einen Wert umsetzen, der
ausgegeben werden kann.
Alles nicht so leicht für einen Anfänger. Kann mir jemand helfen?
Vielen Dank!
OleM

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So schwer ist das ganze nicht.
Du taktest SCLK einmal, legst CS\ an Masse und wartest bis DOUt auf
High geht.
In einer Schleife liest du 4bit seriell ein, indem du den pin in das
Carry schreibst und mit rlc ein Byte daraus machst und taktest immer
den Clock Pin des ADC.
Dann liest du in einer zweiten Schleife die restlichen 8bits ein.
Beide Werte zusammen ergeben jetzt die 12bit Zahl.

Autor: OleM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

erstmal danke für deine Antwort. Ich bin absolut neu auf dem Gebiet,
will das aber gerne lernen. Was ich bisher zusammengedichtet habe ist
folgendes. Aber ich komme von hier ab nicht weiter und nehme auch an,
dass im Programmteil Fehler sind.
Vielleicht kannst du mir da weiterhelfen?

        ORG     CODEMEM+30H

USING   2                       ; Registerbank 2 verwenden

T0IRQ:  PUSH    PSW
        MOV     PSW,#010H       ; Registerbank 2 einschalten

        MOV     TH0,#HIGH(TIMCNT)
        MOV     TL0,#LOW(TIMCNT)
        CPL     TAKT
        DJNZ    TCOUNT,T0RET
        CLR     CS              ; Konvertierung starten
        NOP
WFR:    JNB     DOUT,WFR
        DJNZ    ZAEHL,WFR2      ; 8 Bit-Schleife
        MOV     DOUT,C
        MOV     C,#02H
        RL      #02H

WFR2:   DJNZ    ZAEHL2,T0RET    ; 4 Bit-Schleife
        MOV     DOUT,C
        MOV     C,#04H
        RL      #04H


        MOV     TCOUNT,#T10MS

T0RET:  POP     PSW             ; Flags wiederherstellen
        RETI

USING   0                       ; Registerbank 0 verwenden

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist einiges falsch. Schau dir das Timing im Datenblatt nochmal genau
an.

Die Schleife so in etwa:

WFR:    JNB     DOUT,WFR
mov zaehl, #4
clr acc
setb dout
WFR2:   MOV     C,DOUT
        RLc      acc
        setb TAKT
        nop
        clr TAKT
        DJNZ    ZAEHL,WFR2      ; 4 Bit-Schleife
mov r2, a

clr acc
mov zaehl, #8
WFR3:   MOV     C,DOUT
        RLc      acc
        setb TAKT
        nop
        clr TAKT
        DJNZ    ZAEHL,WFR3      ; 8 Bit-Schleife
mov r3, a

Autor: joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf www.reinerjansen.de/4flash gibt es einige Beispiele für diesen
Wandler.

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.