Hi,
weiß jmd wie man beim FTDI einen Break vom DMX-Signal erkennen kann? Ich
möchte gern DMX empfangen mit einem FTDI. Das Signal kommt auch an, aber
der DMX-Wert0 entspricht nicht dem ersten Wert im Buffer vom FTDI.
Gibt es hier eine Möglichkeit ähnlich wie bei einer normalen UART dass
man den Break erkennen kann?
Gruß
Bernd
habs mittlerweile gefunden, nur funktionieren tut es leider noch nicht,
die Break Detection wird immer zweimal pro 514-Bytes aufgerufen; zu
unterschiedlichen Werten....
Aber als Funktion muss FT_W32_ClearCommError verwendet werden und als
Error muss danach CE_BREAK ausgewertet werden....
Vielleicht hat jmd noch einen Hint an was das liegen könnte.
Hier mal mein Code um das DMX Signal auszulesen. Wie gesagt der CE_BREAK
kommt zweimal innerhalb eines DMX Frames an - einmal zu Beginn (DMX
Break) und einmal mitten drin in einem DMX Frame. Mit dem Oszilloskop
kann ich aber keine Break (low-level) über mehr als 8Bits erkennen;
sprich die Stoppbits sind immer vorhanden.
Michael Roek-ramirez schrieb:
>> Ruecksetzen des Timers vergessen.
Hab jetzt vor der while(1) Schleife den FT_SetLatencyTimer(ftHandle,
50); platziert und es scheint, dass dieser Timer der Grund für das
Fehlverhalten war. Jetzt treten die CE_BREAK Messages nämlich zu anderen
Zeiten auf.
Wie setze ich allerings diesen Timer wieder zurück? Bzw. kannst du mir
ein kurzes Beispiel geben, wie ich mit diesen Timern umgehen muss? Hab
auch schon versucht den Timer genau auf die Refreshrate zu setzen, aber
auch hier bekomme ich falsche Break conditions geliefert.
Gruß
Bernd
hab jetzt nochmal einen Versuch gestartet, indem ich das Enttec Projekt
mir angeschaut habe: leider wird auch in deren Beispiel der DMX Break
nicht richtig erkannt...
Den SetLatenyTimer hab ich per Default auf 16ms stehen gelassen. Wurde
im Enttec Projekt auch nicht angetastet.
Wenn jmd ne Ahnung hat oder mit einem anderen Derivate von FTDI DMX
Receive schon realisiert hat, wäre ich um einen Hint etc. sehr froh. Ich
selbst verwende momentan den FT4232H.
Gruß
Bernd