PIC12F617 Eingang soll Ab 1V high melden.

OP #7504584
Lesenswert?

Hallo, Ist mein erstes Projekt habe also keine Erfahrung. Wie kann ich einen Eingang des PIC12F617 so konfigurieren das er ab >1V ein High meldet und <1V Low)? Die Betriebsspannung des PIC ist 4,5V. Und welcher Eingang ist dafür am besten geeignet? Vielen Dank

#7504603
Lesenswert?

Und welcher Eingang ist dafür am besten geeignet?

Es gibt manche Mikrocontroller die haben einen eingebauten Komparator wo du dann an den anderen Vergleicheingang eventuell 1V zur verfuegung stellen kannst. Ob das so ist darfst du selber rausfinden indem du das Datenblatt deines Controllers selber liesst und dabei mal nach Komparator suchst.

Viele Controller koennen das aber nicht, da musst du dann einen externen Komparator bereitstellen der dein Signal mit 1V vergleicht. Beachte dabei das viele Komparatoren einen Opencollektorausgang haben. Ein sehr alter Comparator den schon unsere Grosseltern verwendet haben ist dabei der LM393, deutlich moderner, aber auch schon 10Jahre alt, waere ein LMC7211.

Vanye

#7504690
Lesenswert?

Vanye hat eigentlich schon alles gesagt - aber in der Praxis gibt es meist ein paar Stolperfallen. Zur Verdeutlichung hab ich dir mal einen Auszug aus dem Datenblatt angehängt.

FIGURE 9-1 zeigt gleich in der Fußnote in mögliches erstes Problem: "The black areas of the output of the comparator represents the uncertainty due to input offsets and response time." Deine Aufgabe wäre hier, die bei deiner Anwendung zulässige "uncertainty" zu bestimmen und abzuprüfen.

FIGURE 9-2 zeigt dir zunächst, dass sowohl GP1/CIN0- als auch GP4/CIN0- als Messeingang möglich sind, und welche Möglichkeiten du hast, um den Vergleichswert (1V) bereit zu stellen. Dein uC bietet hier GP0/CIN+, FixedRef, CVREF oder CMVREN. Deine Aufgabe wäre hier zu prüfen, ob das für dich so hin haut.

Bei der ganzen Geschichte solltest du aber auch "9.2 Analog Input Connection Considerations" beachten ...

Angehängte Dateien:
#7504711
Lesenswert?

Genau, da steht's geschrieben. Noch wichtig, das Kapitel 5, der/die Eing[a/ä]ng(e) müssen auf Analog- bzw. Digital-Funktion konfiguriert werden.
Wenn Du es abschreiben willst, dort:
http://www.f-w-eppers.homepage.t-online.de/BigC_Dir/big_C8.X.zip
werden, wenn ich richtig erinnere, 2* Komparatoren genutzt.
Was mir noch einfällt: Web-Site von Sprut, er läßt sich auch gründlich zu Comparator aus.
mfG fE

#7505028
Lesenswert?

Torsten R. schrieb:

Wie kann ich einen Eingang des PIC12F617 so konfigurieren das er ab >1V ein High meldet und <1V Low)?

Der Eingang kann dir keine Analogsignale melden. Hast du dir das Kapitel 9 im Datenblatt schon einmal zu Gemüte geführt? Das dürfte dein Problem lösen. Deine Meldung kannst du dann z.B. im Register CMCON0 im COUT Bit ablesen. https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/41302D.pdf

OP #7505230
Lesenswert?

Ich habe die Specs nicht geändert. Dann hast du mich nur falsch verstanden, oder ich mich zu dämlich ausgedrückt. Hier der genaue Hintergrund, der macht die Aufgabe vielleicht verständlicher.

Der PIC selbst läuft mit 4,5V Betriebsspannung. An einem Eingang ist über einen Taster aber nur die Spannung einer Uhrenbatterie, also je nach Füllstand noch ca. 1- 1-5V. Ich will nun wissen ob der Taster gedrückt ist (=1 - 1,5V am Eingang) oder eben nicht gedrückt ist (=0V am Eingang), mehr nicht.

OP #7505233
Lesenswert?

Ich habe dazu mal ChatGPT befragt und da kam folgende Antwort:

"Der PIC12F617 hat eine feste interne Referenzspannung von 1,024 V, die nicht programmierbar ist. Du musst die Referenzspannung nicht manuell festlegen, da sie bereits intern festgelegt ist. Hier ist der Code:

LIST P=12F617 INCLUDE <P12F617.INC> __CONFIG _CP_OFF & _WDT_OFF & _MCLRE_OFF & _IOSCFS_4MHZ

1
ORG     0x00        ; Reset vector
2
GOTO    Main

Main: BSF STATUS,RP0 ; Select register bank 1 MOVLW B'00000001' ; Set GP0 as input (Channel 0) TRIS GPIO ; Configure GPIO as input BCF STATUS,RP0 ; Select register bank 0

1
BSF     CMCON0, C2OE ; Enable Comparator 2
2
BCF     CMCON0, C2OUT; Clear Comparator 2 output (C2OUT)

Loop: BTFSS CMCON0, C2OUT ; Check the Comparator 2 output GOTO LowSignal ; If C2OUT is low, jump to LowSignal GOTO HighSignal ; If C2OUT is high, jump to HighSignal

LowSignal: ; Hier kannst du den Code ausführen, wenn das Signal niedrig (0V) ist. GOTO Loop

HighSignal: ; Hier kannst du den Code ausführen, wenn das Signal hoch (1V) ist. GOTO Loop

1
END
1
In diesem  Code wird der Komparator 2 (C2) verwendet, um das Eingangssignal mit der fixen internen Referenzspannung von 1,024V verglichen.
2
Wenn der Ausgang des Komparators 2 hoch ist (das Eingangssignal höher als die Referenzspannung), wird der HighSignal-Abschnitt ausgeführt, andernfalls der LowSignal-Abschnitt.
3

4
Bitte beachte, dass der PIC12F617 eine feste Referenzspannung hat, die nicht geändert werden kann. Du kannst den Code verwenden, um den Zustand des Eingangssignals zu überwachen und entsprechend darauf zu reagieren."
5

6

7
Könnte das korrekt sein? Ich kann es noch nicht testen.
#7505235
Lesenswert?

Torsten R. schrieb:

Ich will nun wissen ob der Taster gedrückt ist (=1 - 1,5V am Eingang) oder eben nicht gedrückt ist (=0V am Eingang), mehr nicht.

Wo kommen dann die 0V her? Taste nicht gedrückt sorgt erstmal nur für "Spannung undefiniert". Typisch schaltet man daher Tasten gegen GND und enabled den internen Pullup. Der Pullup legt dann High an bei Taste nicht gedrückt.

#7505315
Lesenswert?

Torsten R. schrieb:

Könnte das korrekt sein?

Nein! Das ist eine dumme KI und kein Mensch... :DDD

Torsten R. schrieb:

Ich kann es noch nicht testen.

Aber ins Dabla gugen, solltest du endlich!

1
 2010 Microchip Technology Inc. DS41302D-page 67
2
PIC12F609/615/617/12HV609/615
3
9.0 COMPARATOR MODULE
4
The comparator can be used to interface analog
5
circuits to a digital circuit by comparing two analog
6
voltages and providing a digital indication of their
7
relative magnitudes. The comparator is a very useful
8
mixed signal building block because it provides analog
9
functionality independent of the program execution.
10
The Analog Comparator module includes the following
11
features:
12
 Programmable input section
13
 Comparator output is available internally/externally
14
 Programmable output polarity
15
 Interrupt-on-change
16
 Wake-up from Sleep
17
 PWM shutdown
18
 Timer1 gate (count enable)
19
 Output synchronization to Timer1 clock input
20
 Programmable voltage reference
21
 User-enable Comparator Hysteresi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren