Forum: Mikrocontroller und Digitale Elektronik Serielle Daten mit PIC einlesen?


von Mario Grimm (Gast)


Lesenswert?

Hallo,
meine Suche hier hat leider nichts passendes ergeben.
Ich möchte mit einem PIC ein 8 BIT Signal einlesen.
Der verwendete PIC hat aber keine direkte Schnittstelle dafür, so
wollte ich einfach einen Eingang nutzen.

Das Byte kommt mit 9600Baud. (keine Taktleitung)

9600 Baud bedeutet doch 9600 BIT/Sekunde
Also alle 0,0001041 Sekunden ein neues BIT? ( 1/9600) Richtig?

Der PIC arbeitet mit 4 Mhz intern also mit 1Mhz
Das sind dann 1.000.000 Takte (Befehle) /Sekunde
Dann müsste ich also alle 104,1 Takte den Port abfragen (gerundet 105)
?

Statt "10000001" bekomme ich immer "11111111"
Die Abfrage startet aber beim ersten H
Der Pegelwandler ist auch OK. Der Oszi zeigt mir gute Impulse an.

Hab ich da einen Rechenfehler oder gibt es da einen einfacheren Weg.

Danke für jeden Tip.

von smartie (Gast)


Lesenswert?

Wenn das Startbit kommt, mußt Du noch nen halben Puls länger
warten,damit Du die Mitte des Pulses erwischt und nicht die Flanke.

Schaumal bei Microchip, da gibts massig Applikationen, z.B. AN712
Autoboaud-Erkennung.

von Markus_8051 (Gast)


Lesenswert?

Wenn Du ein zwei-Kanal-Oszi hast, dann gib mal genau zu dem Zeitpunkt,
wo Du den einen Port abfragst auf einem anderen Portpin einen
Flankenwechsel aus und beobachte diesen mit dem zweiten Kanal. Dann
kannst Du genau sehen, zu welchen Zeiten der µC die Daten einliest.

Gruß,
Markus_8051

von Markus_8051 (Gast)


Lesenswert?

Ach, noch etwas, sind das wirklich nur 8 bit die da an Daten ankommen,
ohne Start/Stopbit?

von Andreas Häusler (Gast)


Lesenswert?

Hi

Der CCS Compiler liefert einen Software UART gleich aus Library
Funktion mit. Da kannst Du die gewünschten Pins, die Baudrate usw.
selber definieren und hast mit dem Rest fast nichts mehr zu tun. Eine
tolle Sache. Hab damit schon auf einem 8Pin / PIC in 5Min. eine UART
zum Laufen gebracht.

Gruss Andy

von Mario Grimm (Gast)


Lesenswert?

Hallo,

vielen Dank für die zahlreichen Antworten!!!!
Stimmt 8 Bit war nicht richtig, sondern mit Start und Stopbit.
Also 5 Bits hintereinander konnte ich schon genau einlesen.
Da es aber Möglich ist, das es ohne Pause auch mehr sein können, ist
meine Routine noch zu ungenau.
Die Idee mit dem 2 Kanal-Oszi ist gut. Zum Glück hatte ich mir gleich
so einen gekauft.

Das AN721 schau ich mir dann auch mal an. Hoffentlich versteh ich das
mit meinen Englisch-Kenntnissen.

Hi Andy.
Ich arbeite mit MPLAB. Und kenne mich auch sonnst nicht so aus.
Welchen CSS-Compieler meinst Du. Falls das nicht verboten ist, könntest
Du mir das Library zusenden? Wenn das noch etwas Dokumentiert ist, wär
das eine ganz tolle Sache :o)

DANKE!

von Schoaschi (Gast)


Lesenswert?

Hi!

Und Hast du eh nicht darauf vergessen deinen PIN als Eingang zu
definieren?
Die UART-Lib von CCs kannst du glaube ich nicht verwenden.

Schau mal auf folgende seite: http://www.fernando-heitor.de/

Hier wird auch´der CCS Compiler beschrieben und da wirst du auch mehr
hilfe finden.

mfg schoasch

von Mario Grimm (Gast)


Lesenswert?

Hi Schoasch

Danke für den Link!!!

>Und Hast du eh nicht darauf vergessen deinen PIN als Eingang zu
definieren?<

Den Satz versteh ich nicht ;o).
Klar ist mein Pin als Eingang definiert, sonnst geht es ja nicht.
Oder was meinst Du?

von schlizbäda (Gast)


Lesenswert?

Hallo Mario,

vielleicht bist Du in die berühmte "Analog-Falle" getappt. Die
I/O-Pins von Port A sind mit den AD-Modulen gemultiplext und nach einem
Reset im AD-Modus. Nähere Hinweise auf www.sprut.de

schlizbäda

von Mario (Gast)


Lesenswert?

Hallo schlizbäda,

warst Du in einem zeitloch ? ;o)
Danke für den Tip, aber der kommt Monate zu spät.
Was ich übersehen hatte war das Stopbit, welches ein L ist und ich
dachte das kommt auch als H an. Man kann ja nicht alles wissen.
das Programm funktioniert dann auch.

Gruß Mario

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.