Forum: Mikrocontroller und Digitale Elektronik DMX Verpolung erkennen


von Jakob Gebel (Gast)


Lesenswert?

Hi,

da mein Display ja jetzt läuft, mach ich mich ans nächste Problem, und
zwar: Wie kann ich erkennen ob ein DMX Signal verpolt ist. Im moment
hole ich die DMX Daten über folgenden Quelltext (Bascom) rein:

Rec_isr:
$asm
.def Uart_status = R16
.def Uart_byte = R17
.def Uart_temp1 = R18
.def Uart_temp2 = R19

      IN Uart_status,USR
      IN Uart_byte,UDR

      SBRC Uart_status,FE
      RJMP  Asm_reset
      RJMP  Asm_Loop1

Asm_reset:
      LDI Uart_temp1,$00
      STS {Dmx_count_temp} , Uart_temp1
      STS {Dmx_byte} , Uart_byte
      RJMP Asm_exit
Asm_loop1:
      STS {Dmx_byte} , Uart_byte
Asm_exit:
$end Asm
   If Dmx_count_temp <> 0 Then
        Incr Dmx_count
           Dmx_rxd = 1
           If Dmx_adr = Dmx_count Then
                 Dmx_buf = Dmx_byte
           End If
   Else
      Dmx_count = 0 : Dmx_count_temp = 1
   End If
Return

Der Quelltext stammt aus irgendeinem Dimmer-Projekt hier aus dem Forum.
Das funktioniert auch alles schon prima, jetzt aber die Frage, wie ich
erkennen kann, ob das DMX Signal verpolt ist. Anbieten würde sich ja da
sowohl die Erkennung der Polarität der Start & Stop Bits als auch die
Erkennung von Mark und Break. Nur wie mache ich das am besten, bzw. ist
das so, mit dem Quelltext möglich?

Danke für eine Antwort schon mal!

von Markus Cords (Gast)


Lesenswert?

abo

von Peter D. (peda)


Lesenswert?

Erkennen kannst Du das daran, daß aus der UART nur Mist rauskommt, bzw.
warscheinlich wirst Du auch gehäuft Stop-Bit Fehler (FE-Bit) bekommen.


Peter

von Jakob Gebel (Gast)


Lesenswert?

Hi,

das scheint zu klappen. Wenn das Signal verpolt ist, dann bekomme ich
so an die 550 FE-Error pro Sekunde, sonst sind es max. 44 (eben immer
wenn ein Reset gesendet wird).

Danke für deine Hilfe nochmal!

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.