Forum: Mikrocontroller und Digitale Elektronik PIC Register APFCON


von Ben K. (keller_ben)


Angehängte Dateien:

Lesenswert?

Hallo erstmal, :)

ich beschäftige mich seid kurzem mit PIC´s und habe eine Frage bezüglich 
der IO´s, bzw. des APFCON- Registers.

Ich habe bisher AVR und MSP430 programmiert und da war es ein wenig 
anders.

Ich arbeite mit dem PIC16F1503 und möchte generell alle IO´s auch als 
digitale Ein- und Ausgänge verwenden. SPI oder andere Funktionen 
interessieren mich bei diesem Projekt nicht.

Schaue ich ins Datenblatt, dann sehe ich, dass ich die alternative Pin 
Funktion über das APFCON verwalten kann.

So weit so gut.

So und jetzt kommt mein Verständnisproblem:

Ich möchte aber RAC4,RAC,... und alle als Ein/Ausgänge verwenden.

Wie verhalten sich die I/Os wenn ich diese als normale GPIO´s verwende?
Das Datenblatt sagt folgendes:

These bits have no effect on the values of any TRIS
register. PORT and TRIS overrides will be routed to the
correct pin. The unselected pin will be unaffected.

<----- Bedeutet dies, dass ich knallhart diese trotzdem als GPIO´s 
verwenden kann, durchs normale initialisieren des TRIS-Registers??

Vielleicht hat ja jemand mehr Erfahrung :)

Vielen Dank.

von Klaus (Gast)


Lesenswert?

Ben K. schrieb:
> Schaue ich ins Datenblatt, dann sehe ich, dass ich die alternative Pin
> Funktion über das APFCON verwalten kann.

Das hat mit der Frage

Ben K. schrieb:
> Ich möchte aber RAC4,RAC,... und alle als Ein/Ausgänge verwenden.
>
> Wie verhalten sich die I/Os wenn ich diese als normale GPIO´s verwende?

nichts zu tun.

Ein Pin ist entweder einer internen Funktion zugeordnet oder ist ein 
GPIO. Wann er was ist, hängt von der Funktion ab. Meist gewinnt die 
Funktion (I2C, SPI ..) wenn sie enabled ist, genaueres steht im 
Datenblattabschnitt der jeweiligen Funktion. Ist der PIN GPIO, bestimmt 
man mit dem Bit im TRIS-Register die Datenrichtung.

Ben K. schrieb:
> <----- Bedeutet dies, dass ich knallhart diese trotzdem als GPIO´s
> verwenden kann, durchs normale initialisieren des TRIS-Registers??

TRIS bestimmt nur die Richtung, nicht ob es ein GPIO ist.

Nun gibt es für manche der Funktionen nicht nur einen festen Pin, 
sondern man kann sie, z.B. um das Layout zu erleichtern, an verschiedene 
Pins binden. Das macht man mit APFCON.

Wenn du dein gepostet mal liest findest du z.B.

1 = SDO is on RA4
0 = SDO in on RC2

Es passiert dann genau das, was da steht. Und ob SDO aktiv ist, bestimmt 
die SPI-Funktion.

MfG Klaus

von Ben K. (keller_ben)


Lesenswert?

Hallo Klaus,

Danke, aber das war mir bereits bewusst.
Ich versuche mal meine Frage zu konkretisieren.

Ein Bespiel:
Ich habe über das Register APFCON so konfiguriert das RC2 = SDO ist.
(Bsp.: APFCON = 0x00)
SPI ist deaktiviert.

Jetzt möchte ich RC2 als Ausgang oder Eingang festlegen.

Jetzt meine Frage, und bitte darauf antworten:

Ist eine solche Handhabung möglich?
Ja/ Nein?

Was passiert am besagten PIN??

Gruß
Ben

von Volker S. (vloki)


Lesenswert?

Ben K. schrieb:
> Jetzt möchte ich RC2 als Ausgang oder Eingang festlegen...

Wäre doch ziemlich bescheuert, wenn das nicht möglich wäre.

Wenn das SPI Modul nicht aktiviert ist, dann beeinflusst es es auch 
keine Pins.

von Ben K. (keller_ben)


Lesenswert?

> Wäre doch ziemlich bescheuert, wenn das nicht möglich wäre.

Ja, Da hast du recht.

> Wenn das SPI Modul nicht aktiviert ist, dann beeinflusst es es auch
> keine Pins.

Danke für die klare Antwort!
:)

von Volker S. (vloki)


Lesenswert?

Ehrlich gesagt, habe ich mit diesem speziellen Typ noch nichts gemacht.
Man weiß ja nie... ;-)

von met@boxler (Gast)


Angehängte Dateien:

Lesenswert?

Ben K. schrieb:
> Ich habe über das Register APFCON so konfiguriert das RC2 = SDO ist.
> (Bsp.: APFCON = 0x00)
> SPI ist deaktiviert.

Damit ist RC2 nicht als SDO konfiguriert!

Erst wenn SPI aktiviert wird, wird RC2 mit APFCON und der Funktion SDO 
belegt.

> Jetzt möchte ich RC2 als Ausgang oder Eingang festlegen.
>
> Jetzt meine Frage, und bitte darauf antworten:
>
> Ist eine solche Handhabung möglich?

Ja!

Du hast dem Pin RC2 keine Funktion zugewiesen. Er kann als I/O genutzt 
werden. Allerdings gibt es (gerade bei Microchip-PICs) manchmal auch 
noch andere Funktionen, die auf den Pins in der Grundkonfiguration 
eingeschaltet sind:
-> Analoge Funktionen immer abschalten, wenn diese nicht benötigt 
werden.

met@boxler

von Ben K. (keller_ben)


Lesenswert?

met@boxler schrieb im Beitrag #5220339

> Erst wenn SPI aktiviert wird, wird RC2 mit APFCON und der Funktion SDO
> belegt.

Das klingt logisch.
Danke für dein KnowHow :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.