PIC 16LF877a Komparator ==> RA2 = LOW

Gast #229869
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
Gast #229870
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.