Serielle Schnittstelle mit 7 Bit None Parity

Gast #313819
Lesenswert?

Hallo zusammen,
für eine Anwendung brauche ich die möglichkeit 7-Bit ohne Parität an
einem 8051 zu empfangen.
In allen Büchern die ich finden konnte stand nur, dass der Controller
mit 8 Bit arbeitet.
Sprich 7 Bit und Even/Odd Parität.
Wie lässt sich dass Problem am einfachsten lösen ?


Danke und MfG


Marek Swierzy
Gast #313822
Lesenswert?

@Olaf: Nope, gibt nen framing error wenn der Sender mit nur einem
Stopbit arbeitet, weil zu dem Zeitpunkt, zu dem der Empfänger das
Stopbit sehen will, der Sender bereits das Startbit rauswirft.
Gast #313823
Lesenswert?

Leider nicht, ich kann nicht verändern.

9600 Baud, 7 Bit, None Parity, 1 Stopbit...
Aber irgendwie muss es ja machbar sein, am PC kann ich mir die Sachen
auch dem entsprechend einstellen.
Gast #313826
Lesenswert?

Klasse :) ;

kann mir jemand jetzt ne StarterKit empfehlen mit dem ich dass folgende
Projekt realisieren könnte:

232 in  -> 7 Bit ; none Parity ; 9600 Baud
232 out -> 8 Bit ; none Parity ; 9600 Baud

Danke
Gast #313827
Lesenswert?

Problem: mit 7 Bit rein und mit 8 Bit raus bei gleicher Bitrate gibt
Datenstau im Konverter.

Gibt's denn keine halbduplex Software-UART für i51? Der Empfänger-Teil
davon reicht ja, mit 8-bit Hardware senden ist kein Problem.
Gast #313828
Lesenswert?

> Problem: mit 7 Bit rein und mit 8 Bit raus bei gleicher Bitrate gibt
Datenstau im Konverter.

Na aber nur, wenn die 9600 Baud wirklich über längere Zeit voll
ausgelastet sind... Sonst würd ich sagen, einfaches C-Projekt anlegen,
die Fleury UART-Bibliothek einbinden, im H-File den In-Puffer größer
machen, denn noch ne kleine Routine machen, die alles annimmt und
gleich wieder ausgibt und fertig ist die Sache. Sind die 9600 Baud bei
der Ausgabe auch fix?
Wenn nicht, wärst sowieso fein raus. Bei 9600 Baud ist problemlos ein
SW-Uart möglich und man könnte die mit 8Bit und ner höheren
Geschwindigkeit wieder rausschicken.
Gast #313830
Lesenswert?

> Müste dass nicht über einen RingPuffer lösbar sein ?

Ja, mein ich doch... nichts anderes ist in der Fleury-Lib bereits
eingebaut. Du, das bekommst schon hin. Das ist keine große Sache. Musst
dir nur überlegen, wie groß der Puffer sein muss und evtl. anhand dessen
den uC auswählen. Der AtMega32 hat z.B. 2k Ram - die Hälfte könnte man
als Puffer nutzen - das sollte reichen, um knapp 1sec. komplett Daten
zwischenzuspeichern - aber vielleicht reicht bei dir auch weniger.
Voraussetzung, dass das ganze funktioniert ist aber wie gesagt, dass
die serielle Leitung nicht 100% ausgelastet ist... sonst läuft der
Puffer über

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren