mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 16LF877a Komparator ==> RA2 = LOW


Autor: Alois Huber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe o.g. PIC mit Komparator und interner Spannungsreferenz
initialisiert (CM2:0 = 0b110, V1IN- liegt an RA0/AN0, V1IN+ an VREF
intern, V2IN- liegt an RA1/AN1, V2IN+ an VREF intern):

B'10001101' --> CVRCON
B'00000110' --> CMCON

Die PORTA-Pins sind alle auf digital gestellt und VREF+, VREF- sind
nicht angeschlossen:

ADCON1 --> xxxx011x

RA0/AN0 als Eingang, alle anderen PORTA-Pins als Ausgang:

TRISA --> B'00000001'

Ich vergleiche eine analoge Spannung an PORTA.0 mit der internen
Referenz 2.17 V mit Komparator C1.
Komparator C2 wird nicht verwendet.
Die anderen Pins an PORTA werden als digitale Ausgänge verwendet.

PROBLEM:
========
Sobald ich CMCON initialisiere wird PORTA.2 auf LOW, also 0 V gezogen.
Ich kann danach durch BSF den PORTA.2 testweise setzen, und der Ausgang
wird wie gewünscht auch HIGH, aber: Der Pin geht danach wieder auf LOW!

Am Pin RA2/AN2/VREF- liegt doch nur:
- die PORTA.2 Digital-Eingangslogik (TTL Input Buffer)
- der Eingang des nicht benutzten AD-Wandlers
- der offene Schalterkontakt (CIS=0) des Komparators C2
- der Ausgangstreiber des digitalen PORTA.2

Was mache ich falsch?

MfG,
Alois

Autor: Alois Huber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... ich hab's!

Konfiguriert man den Komparator, so werden die betreffenden
PORTA-Eingänge automatisch auch als analoge Eingänge geschaltet. Es ist
also das Signal 'Analog Input Mode' = '1' beim entsprechenden
Port-Pin (s. PIC16F877a Manual).

Ein Pin-Eingang wird also auf analog geschaltet, wenn:

A) in ADCON1 analog konfiguriert
ODER:
B) in CMCON entsprechend als Komparator konfiguriert


Dann darf man wieder nicht mit BSF oder BCF arbeiten, da
Read-Modify-Write - Lesen des Ports liefert dann immer '0'.

Im Kapitel "Comparator" des PIC16F877a-Manual ist das bei der
Mode-Übersicht ganz klein durch die 'A'-Eingänge gekennzeichnet.

Hier wäre eine Ergänzung im Kapitel "I/O Ports, Port A" vorteilhaft.

MfG,
Alois

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.