Ausgänge PIC funktionieren nicht

OP #3621647
Hallo miteinander

Ich benutze einen PIC16f628a. Ich habe alle Ports (A und B) auf ausgang 
geschaltet und auf high gelegt.

Gewisse Pins haben nun 5V aber ein Paar nicht. Zum einen solche RA1 - 
RA4. Ich weiss diese sind von haus aus auf analog geschaltet.

Ich benutze den XC8 compiler. Kann mir jemand verraten, wie ich diese 
Pins anstatt analog auf digital umkonfigurieren kann?

Der PortB funktioniert als ausgang einwandfrei.

http://www.sprut.de/electronic/pic/grund/ioports.htm habe ich mir schon 
durchgelesen, ist aber für assembler.

gruss
Gast #3621653
alphi hard schrieb:
> Gewisse Pins haben nun 5V aber ein Paar nicht. Zum einen solche RA1 -
> RA4. Ich weiss diese sind von haus aus auf analog geschaltet.

mehrere Möglichkeiten:

1. Nicht digital konfiguriert. (Analog / Comparator) Da der PIC16F628 
keine ADC Eingänge hat  bleibt nur der Comparator über. Siehe 3.

2. http://www.sprut.de/electronic/pic/fallen/fallen.html#ra4

3. Manche PICs haben Comparatoren die auch gerne nach Reset aktiviert 
sind. Der 16f628 gehört zu denen. Zum ändern Datenblatt lesen und die 
Register setzen. Das ist Grundlagenarbeit. Guckst du also hier 
http://ww1.microchip.com/downloads/en/devicedoc/40044f.pdf auf S63ff 
steht schon das richtige Register. Einfach Comparatoren deaktivieren und 
es sollte gehen.

alphi hard schrieb:
> http://www.sprut.de/electronic/pic/grund/ioports.htm habe ich mir schon
> durchgelesen, ist aber für assembler.

Das ändert nichts daran. Ob man nun die Register in Assembler oder C 
beschreibt macht keinerlei unterschied.
#3621657
alphi hard schrieb:
> Kann mir jemand verraten, wie ich diese
> Pins anstatt analog auf digital umkonfigurieren kann?
Ja, das Datenblatt:
http://ww1.microchip.com/downloads/en/devicedoc/40044f.pdf
Seite 33:
> EXAMPLE 5-1:      INITIALIZING PORTA
>
> CLRF PORTA        ;Initialize PORTA by
>                   ;setting
>                   ;output data latches
> 0x07              ;Turn comparators off and
> MOVWF CMCON       ;enable pins for I/O
>                   ;functions
> BCF STATUS, RP1
> BSF STATUS, RP0   ;Select Bank1
> MOVLW 0x1F        ;Value used to initialize
>                   ;data direction
> MOVWF TRISA       ;Set RA<4:0> as inputs
>                   ;TRISA<5> always
>                   ;read as ‘1’.
>                   ;TRISA<7:6>
>                   ;depend on oscillator
>                   ;mode
Die TRSISA bits darfst du natürlich so ändern wie du sie haben willst.

RA4 ist bei diesem PIC wirklich nur Open Drain. Um den auf High zu 
kriegen brauchst du einen Pullup.
Auf S. 13 im Datenblatt findest du eine Liste, in der steht, welcher IO 
was kann. Nicht benötigte Zusatzfunktionen müssen deaktiviert werden, 
falls diese nach dem Power On Reset aktiv sind. Wie man das macht steht 
im Datenblatt im Kapitel zu diesem Modul.

P.S. Diesen alten PIC würde ich nicht mehr verwenden. Moderne PIC16 sind 
schneller und haben mehr Peripherie, ROM und RAM. Der Instuction Set ist 
besser für C-Compiler geeignet. Oft sind sie auch billiger.
Zum Beispiel der PIC16F1827.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.