Problema de paquete DMX512 (¿no hay interrupción?)

No estoy seguro de si estoy leyendo esto mal o algo así, pero esto es un rastro del paquete DMX que proviene de mi módulo USB-RS485 y luego se convierte a niveles lógicos UART para mi microcontrolador.

paquete DMX

Paquete diferencial

Hay algunas cosas que no creo que estén bien...

  • Lo que asumo es que la 'rotura' es solo el ancho de un cuadro, pero por definición en el estándar es más probable que tenga el doble de este tamaño o más.

  • El 'Mark after break' es enorme. Desde el alcance, puede ver que tiene aproximadamente 116 us de ancho, cuando en realidad solo debería tener 8

  • Por último, no parece haber un 'cuadro de inicio'. Cuando se establece el canal 1 en cualquier valor, entra en el primer cuadro después de lo que supuse que es el 'Mark after break' extra largo

¿Me estoy perdiendo algo aquí o malinterpretando el protocolo DMX? En este momento estoy usando Freestyler para controlar el dispositivo RS485 como un transmisor ENTTEC OpenDMX. ¿Alguien tiene alguna idea? ¿Es un software o una cosa configurada? También probé una herramienta llamada KMTronic DMX device tester y me dio el mismo tipo de salida.

Acabo de darme cuenta después de mirar las líneas RS485 diferenciales (ver imagen de arriba): parece que al principio en realidad es un cuadro (¿tal vez el cuadro de inicio?). Puedo ver que la línea pasa de un estado desconocido a conducir alto durante 4us (¿marcar el tiempo entre paquetes?), conducir bajo para el marco de 44us, luego conducir alto durante 8us (normalmente un tiempo de bit de parada). Después de eso, la línea vuelve a pasar a un estado desconocido. Realmente extraño y confuso. Sin embargo, si ese es el caso, entonces no tengo nada que se parezca a un 'descanso'.

También para aquellos que no están familiarizados con la estructura de paquetes DMX: http://www.dmx512-online.com/gifs/dmxpack.gif

¿Cómo se ve si "alejas" un poco? ¿Podría ser que esté mirando la línea de datos invertida del 485 y vea los datos al revés?
Es probable que su problema fundamental sea que en USB-serial y DMX tiene dos cosas muy diferentes, cada una de las cuales puede ser "más o menos" interoperable con un dispositivo asíncrono ordinario que está dispuesto a cumplir con sus peculiaridades, pero probablemente no entre sí. DMX tiene requisitos particulares sobre la temporización dentro de un paquete, mientras que la conversión USB en serie asume que la temporización entre caracteres es arbitraria y la demora se puede insertar de manera segura siempre que el bus USB no haya podido mantener el búfer lleno, o eliminarse cuando el USB ha almacenado datos en búfer más rápido. de lo que se puede enviar.
Es probable que necesite una implementación personalizada en la que pueda llenar un búfer para un paquete DMX completo de 512 bytes a través del USB y luego registrarlo en estricta conformidad con el protocolo DMX, independientemente del USB.
John, está en su estado desconocido si alejo el zoom (el TTL predeterminado es alto en este estado). Chris, entiendo lo que dices, soy consciente de que los tiempos pueden estar un poco fuera de lugar aquí. Sin embargo, todavía no entiendo por qué obtengo una estructura extraña en los paquetes.
Aquí hay un vistazo al paquete diferencial RS485 imgur.com/5ghGluC . (hay algunos datos en el canal 2)
Tengo 2 convertidores USB-RS485; uno funciona para DMX y el otro no, porque el controlador del chip serie USB no admite cambiar la velocidad en baudios lo suficientemente alta. ¿Qué chip USB-RS232 usa el tuyo? Además, estos convertidores baratos y 'tontos' dependen de que los dispositivos esclavos sean bastante indulgentes con el estándar de temporización.
Definitivamente me fui por la ruta 'barata'. Compré uno de estos: ebay.co.uk/itm/… . Si eso es lo que está causando el problema y puede recomendar una solución rentable que funcione, ¡sería muy apreciado!

Respuestas (1)

¿Tiene la terminación de bus correcta? Muchos adaptadores RS485 más económicos 'liberarán' el bus cuando no se transmita nada durante un tiempo; por lo tanto, su 'marca después de la pausa' puede ser que el transmisor RS485 se apague debido a la falta de transmisiones. Asegúrese de llevar el autobús a los valores correctos.