Hallo,
zurzeit arbeite ich daran, ein DMX Signal mit 250kbaut zu empfangen und
auszuwerten. Mein Problem liegt jetzt darin, den Break zu erkennen. Mein
Controller (89C51ED2) verfügt zwar über eine Frame Error Erkennung,
jedoch ist mir diese nicht ganz klar.
Im Datenblatt steht, dass das FE-Bit an der 7. Stelle in SCON liegt.
Soweit kein Problem. Das Problem liegt jedoch darin, dass es sich diesen
Platz mit dem SM0-Bit teilt. Im Datenblatt steht weiterhin, dass ich zur
Auswahl eines der beiden Bits das SMOD0 Bit in PCON umschalten muss
(SMOD0 =1 --> FE, SMOD0 = 0 --> SM0).
Meinen UART initialisiere ich so:
1 | UART_Init()
|
2 | {
|
3 | SCON = 00010000; /* UART Tx Mode 2: Osz:64 */
|
4 | PCON = 00000000; /* single Baud: 0x00 --> Teiler = 32 */
|
5 | TI = 1; /* kein Zeichen im Ausgabepuffer */
|
6 | RI = 0;
|
7 | }
|
Soweit scheint das auch in Ordnung zu sein bei einem Quarztakt von
16MHz, ohne X2-Bit.
Jetzt schalte ich vor dem Empfang das SMOD0-Bit um:
Wenn ich nun jedoch hingehe, und mir den Zustand des FE-Bits auf einen
Port-Pin ausgeben lasse, kann ich keine Änderung erkennen.
Wo liegt mein Problem?
Viele Grüße und vielen Dank im Vorraus
Jojo