Forum: Mikrocontroller und Digitale Elektronik Serielle Schnittstelle mit 7 Bit None Parity


von Marek Swierzy (Gast)


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

von peter dannegger (Gast)


Lesenswert?

Wenn der Sender 2 Stopbits sendet, gehts auch, einfach das 8. Bit
wegschmeißen.


Peter

von Olaf (Gast)


Lesenswert?

Wenn du nur empfangen willst koenntest du ja 8Bit empfangen und
ein Bit ignorieren.

Aber nur so mal aus reiner Neugier, was ist denn das fuer eine
merkwuerde Gegenstelle?

Olaf

von A.K. (Gast)


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.

von Marek Swierzy (Gast)


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.

von Marek Swierzy (Gast)


Lesenswert?

Ich würde sogar andere Hardware dafür bauen, wenn mir jemand sagen kann
womit es realisierbar ist.

von Stefan K. (_sk_)


Lesenswert?

>Ich würde sogar andere Hardware dafür bauen, wenn mir jemand sagen
>kann womit es realisierbar ist.

Die ATmega-Serie erlaubt zwischen 5 und 9 Bit.

Gruß, Stefan

von Marek Swierzy (Gast)


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

von A.K. (Gast)


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.

von Marcel Pokrandt (Gast)


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.

von Marek Swierzy (Gast)


Lesenswert?

9600 Baud sind bei der Ausgabe fix.
Müste dass nicht über einen RingPuffer lösbar sein ?
Ich hoffe der Umstieg von C51 nach AVR wird nicht all zu schwer.

von Marcel Pokrandt (Gast)


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

von Marek Swierzy (Gast)


Lesenswert?

na klasse.....
hmmm gibt es nicht ist jemanden eine andere methode nicht bekannt ?


mfg

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.