Forum: Mikrocontroller und Digitale Elektronik RS-232 empfangen mittles PIC16F628


von Patrick Plattes (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

dies ist das erste mal, dass ich hier im Forum etwas schreibe. Obwohl
ich nun seit zwei Tagen denke, google, durch das Forum streife und mich
durch spruts Seite lese komme ich einfach nicht weiter.

Ich möchte gerne einen PIC16F628 an eine serielle Schnittstelle des PCs
anschließen und die übermittelten Daten an einem LCD-Display ausgeben.
Wenn ich die Daten in das Programm schreibe werden die auch
ordnungsgemäß ausgegeben, aber wenn ich die via RS-232 übertragenen
Daten ausgebe kommen nur seltsame Zeichen (btw. interessanten
Zeichensatz haben diese Displays).

Da das direkte Ausgeben funktioniert denke ich, dass es an meiner
RS-232 Konfiguration liegt.

Von der Hardwareseite scheit alles sauber zu sein, denn ansonsten würde
er keine Daten empfangen, oder? Als Pegelwandler setze ich einen MAX232
ein.

Ich habe den Quellcode mal angehangen. Wenn jemandem etwas einfällt
oder einen Tipp für mich hat bitte ich um eine Antwort, denn so langsam
frustriert mich das Teil :-(.

Danke und viele Grüße,
 Patrick

von Dmitri (Gast)


Lesenswert?

Hallo Patrick!

movlw D'26'; 9600 Baud at 3.932 MHz
movwf SPBRG

Sollte es bei 4MHz nicht "25" sein? Du benützt ja den internen 4MHz
Oszillator, ne?

Gruss
Dmitri

von Patrick Plattes (Gast)


Lesenswert?

Hallo,

ich hatte zuerst das mit dem internen Oszillator versucht, hatte aber
keinen Erfolg. Da der erhebliche Abweichungen von 4MHz haben kann habe
ich nun einen externen dran gelötet, aber auch ohne Erfolg.

Die 25 für SPBRG habe ich berechnet, aber sowohl 25, als auch 26
funktionieren nicht.

Danke,
 Patrick

von Heiner B. (karadur)


Lesenswert?

Hallo

entschuldige wenn ich so dumm frage aber wo ist im Sourcecode die RS232
Empfangsroutine?

von Yves (Gast)


Lesenswert?

Wie mit Polling unter "tmp" erledigt, allerdings wird nur 1 Zeichen
empfangen!

von Yves (Gast)


Lesenswert?

... sorry nicht "Wie" sondern "wird"! g

von Heiner B. (karadur)


Lesenswert?

@Yves: Danke

Ich kenne mich mit PIC nicht aus.
Ich hatte aber ähnliche Probleme mit SAB80535.
Das Problem war, das der PC Strings sendete und der Controller ohne
interuptgesteuertem Empfang nicht schnell genug war ( 14,384 MHz )

von Yves (Gast)


Lesenswert?

Aber ich denke das Polling wird schnell genug sein! Sind zur Abfrage ja
nur 2 Befehle - Die Abfrage und das goto!

Stimmt die Baudrate denn auf dem PC selber? Mit welchem "Tool" läuft
das ganze. Denn ich denke mit dem Windows Terminal kann man diese
ungerade Baudrade nicht einstellen!?

Falsche Zeichen sind meistens ein Problem einer flaschen Baudraute auf
der Seite des PCs oder des uCs!

von Yves (Gast)


Lesenswert?

... manbinichdooof sorry, sinnlose Antwort! Baud nicht gleich
Oscillator :(

von Patrick Plattes (Gast)


Lesenswert?

Hallo,

ich versuche masl allen zu antworten :)

Hans-Heinrich: wie Yves richtig erklärt hat geschieht das empfangen
über ein einfaches Polling. Das RS-232 Protokoll muss an im übrigen bei
diesem PIC nicht implementieren, da er das mitbringt. Ich bin im übrigen
auch der Meinung, dass es schnell genug sein sollte, da ich lediglich
ein Zeichen empfange.

Yves: Ich benutze minicom unter Linux.


Grüße,
 Patrick

von tippgeber (Gast)


Lesenswert?

Erster Ansatz bei Kommunikations-Debugging:
Das Empfangene wieder zurücksenden und sehen, was ankommt.

von Patrick Plattes (Gast)


Lesenswert?

Hallo,

und danke für die vielen Antworten. Ich habe den Fehler gefunden :).
Zuerst einmal möchte ich sagen, dass ich doch nicht ganz so dämlich
binn, wie ich aussehe g, denn die programmierung war sichtig. ich
habe jetzt mal den MAX232 getauscht und siehe da, es funktioniert...

Aber ohne die Hilfe wäre ich wohl kaum darauf gekommen. Da mir keiner
geschrieben hat, dass das Programm nicht funktionieren kann ( aus
welchem Grund auch immer ) habe ich angefangen die Hardware mal zu
tauschen, und siehe da...

Nochmals Danke und viele Grüße,
 Ein sehr glücklicher Patrick

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.