Forum: Mikrocontroller und Digitale Elektronik DMX Sender - C Code - zu schnell


von Eddi (Gast)


Lesenswert?

Hallo,
ich hab einige Codes im Internet von einem DMX Sender gefunden.
Die meisten schalten die Baudrate der USART beim BREAK einfach höher..
Allerdings stellt sich mir jetzt die Frage, wie man auf Werte zwischen 7 
- 17 für das LowRegister kommt?
Der BREAK sollte doch mind. 88us lang sein also müssten die Werte doch 
viel höher liegen!
Oder hab ich da etwas nicht verstanden?!
Der Grund warum ich frage ist, dass ich zurzeit selber einen kleinen 
DMX-Sender baue.

Danke im vorraus.

: Verschoben durch User
von Falk B. (falk)


Lesenswert?

@ Eddi (Gast)

>Die meisten schalten die Baudrate der USART beim BREAK einfach höher..

Eher niedriger.

>Allerdings stellt sich mir jetzt die Frage, wie man auf Werte zwischen 7
>- 17 für das LowRegister kommt?

Ausrechnen?

von Eddi (Gast)


Lesenswert?

Ja sorry die Baudrate wird niedriger und der Wert im Register höher...
Ja habs eben ausgerechnet sonst wüsst ich ja nicht dass es unter 88us 
liegt :D
bei zb. einen Wert von 9 bin ich wenn ichs noch richtig in erinnerung 
hab auf 10us gekommen
das wär ja viel zu kurz

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Nö, das kann schon hinkommen. Lass uns mal ein wenig rechnen: Die 
normale DMX Baudrate ist 250kBit/s, jedes Bit hat also eine Länge von 
4µs. Start- und Stopbit dazu sind insgesamt 10 bit = 40µs.
Also, etwas vereinfacht dauert ein Byte bei UBRR: 7 dann 40µs, bei UBRR: 
17 etwa 97µs.  ( Jetzt mal grob einfach mit Dreisatz). Sieht also alles 
recht gut aus. Die 88µs sind übrigens das Minimum, es darf auch etwas 
länger sein. Habe hier schon Pulte mit 120µs gemessen.

von Falk B. (falk)


Lesenswert?

@ Matthias Sch. (Firma: Matzetronics) (mschoeldgen)

>normale DMX Baudrate ist 250kBit/s, jedes Bit hat also eine Länge von
>4µs. Start- und Stopbit dazu sind insgesamt 10 bit = 40µs.

DMX hat ZWEI Stopbits, also 44us/Byte

Asserdem muss man nicht zwingend den Break über dem UART erzeugen, bei 
~100us darf man auch mal ein einfaches Delay nutzen. Problem gelöst.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Falk Brunner schrieb:
> DMX hat ZWEI Stopbits, also 44us/Byte

Na, umso besser, das verändert aber die Rechnung nur marginal.

Falk Brunner schrieb:
> Asserdem muss man nicht zwingend den Break über dem UART erzeugen, bei
> ~100us darf man auch mal ein einfaches Delay nutzen. Problem gelöst

Ist aber einfacher, den UART zu benutzen. Der läuft von alleine und 
beschäftigt den MC solange nicht. Deswegen machen das ja auch alle so.

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.