PIC 18F4550 Eingangswiderstand von Pin RA2

OP #4297912
Hallo,

ich versuche ein Nummernfeld (Matrix 3x4) mit einem 18F4550 auszulesen. 
Eigentlich kein Problem, nur wollte ich zuletzt zum einlesen der 
"Zeilen" Port A verwenden. Dort belege ich RA2 - RA5. RA2 ist allerdings 
(wie ich nach einigem Suchen festgestellt habe) nicht hochohmig. Die 
Spannung, die über einen Pin von Port D kommt fällt also stark ab, 
sobald eine entsprechende Taste am Numfeld gedrückt wird, und der Pegel 
für High wird nicht erreicht.
Alle anderen Pins sind gleich konfiguriert und zeigen ein stark 
hochohmiges Eingangsverhalten.

Ist am Pin RA2 etwas besonderes? Abgesehen davon, dass er als AD-Eingang 
konfiguriert werden kann...

Das ist eigentlich alles Relevante, was ich bei der I/O-Einstellung 
mache:

   #use fast_io(A)
   #use fast_io(B)
   #use fast_io(C)
   #use fast_io(D)
   set_tris_A(0xFC); //0b1111 1100 Hier liegen die Ausgänge des 
Numfeldes drauf.
   set_tris_B(0x00); //0b0000 0000
   set_tris_C(0x00); //0b0000 0000
   set_tris_D(0x00); //0b0000 0000

Jemand eine Idee?

Herzlichen Dank.
Phil P. schrieb:
> Was könnte ich denn versuchen?

Hast du denn schon mal versucht in das Data Sheet zu schauen?
(Dann hättest du auf keine der Antworten warten müssen)

Kommt mir allerdings trotzdem etwas merkwürdig vor. Auch wenn A2 ein 
analoger Eingang ist, dann sollte er das Potential nicht so 
beeinflussen.
A2 müsste schon als Comparator Reference Output konfiguriert sein...

Wie sieht denn die Beschaltung von A2 genau aus?
OP
Vielen Dank für die Antworten.
@vloki: Natürlich habe ich im Datenblatt schon gesucht. Gefunden habe 
ich allerdings nur, dass dieser Eingang sich nicht so verhalten dürfte, 
wie er es tut. In welchem Kapitel stünden denn die Antworten?

Beschaltung:

          |              T
       µC |    1N4849   ---
          -------->|----o o-----.
          |D0                   |
          |                     |
          |                     |
          -----o----------------'
          |A2  |
          |   .-.
              | |
              | |10k
              '-'
               | VCC
               |
              ---

@picfan: Herzlichen Dank für die Hinweise. Ich werde das am Wochenende 
ausprobieren.
Phil P. schrieb:
> @vloki: Natürlich habe ich im Datenblatt schon gesucht.

Das ist leider nicht sooooo natürlich;-)
Wenn du es erwähnt hättest, dann bräuchte keiner nochmal nachfragen.
Wenn du die Beschaltung gleich geliefert hättest...
Wenn...

Was soll das VCC am unteren Anschluss des 10k Wid. bedeuten?
Was bedeutet "der Pegel wird nicht erreicht" den genau?
Was für Spannungen liegen denn in den verschiedenen Fällen genau an?
OP
Hallo.
Sorry. Das Vcc ist ein Copy&Paste Fehler gewesen. Muss Masse sein, womit 
der 10k einfach nur ein klares Potential definiert.

          |              T
       µC |    1N4849   ---
          -------->|----o o-----.
          |D0                   |
          |                     |
          |                     |
          -----o----------------'
          |A2  |
          |   .-.
              | |
              | |10k
              '-'
               |
               |
              --- GND

Wenn ich nachmesse, fließt etwa ein Strom von 65mA in den Pin. Das ist 
eigentlich viel zu viel. Dass der Eingang bereits Schaden genommen hätte 
kann ich allerdings nicht feststellen: Wenn man den Stromfluss zulässt 
wird das als High Signal erkannt.

Wenn allerdings nur die Schleife über D0 (als Ausgang), die Diode und 
den Taster als Strompfad verwendet wird (so in der späteren 
Applikation), fällt die Spannung an A2 auf unter 1,2V.
OP
Volker S. schrieb:
> Und die 10k sind wirklich 10k und nicht etwa 10Ohm?

Nene. Die Widerstänge stimmen schon ;-)

Volker S. schrieb:
> Welche Spannung liegt denn bei den 65mA an?

Wenn der Saft aus D0 kommt, etwa 1,2V.

UPDATE:
Habe da Problem gefunden:
Es liegt an
1
#use fast_io(A)

Sobald ich das WEGLASSE, funktioniert der PIN wie erwartet.
Noch ein Update:

Es handelt sich um den PIN RA1. Nicht RA2! (hatte die Schaltung nicht 
vor Augen, als ich den ersten post gemacht habe.

Nun Frage ich mich wie diese Sache mit dem FastIO zu tun hat?

1
  ADCON0=0x00;
2
  ADCON1=0x0F;
...hatte leider keinen Effekt.

Gruß

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 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.