Autor Tema: recepcion de datos dmx  (Leído 10496 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
recepcion de datos dmx
« en: 20 de Diciembre de 2007, 17:11:24 »
hola queria preguntaros alguna cosilla sobre el tema , pues me esta dando problemillas de planteamiento utilizar el protocolo DMX para recibir datos. Y es que no consigo reconocer el byte de start, este es el esquema que mas claro he visto


he configurado el pin rx como digital y en el programa testea cuanto tiempo esta a nivel bajo la señal , he puesto el limite en 88 us(BREAK) y si sobrepasa este tiempo espera a que vuelva a nivel alto, para volver a testar que esté a nivel alto durante 8us +-, si se cumple, configura la usart para recibir el primer byte. que se presupone que es el de start, y a partir del siguiente empieza a contar el nº de recepciones hasta llegar a la del canal seleccionado. termina de contar hasta las 512 recepciones y vuelve a configurar el rx como entrada digital. he pensado que si entre recepcion y recepcion de datos si no recibe el siguiente en x tiempo vuelva a configurar el pin como digital , significaria que el controlador no envia la trama completa de 512 datos o se les ocurre alguna otra forma de reconocer el byte de start,  el programa reconoce cualquier byte como start y empieza a contar a partir de este y hasta que no harecibido 512 no vuelve a empezar y existen controladores que envian 50 canales y no 512 , me han sugerido que utilizase otro pin del micro como entrada digital conectado al rx de esta forma si hace la secuencia de breack en este pin el siguiente byte es el de start, como lo veis vosotros es un buen camino o continuo cambiando la config de la usart hasta que de con la forma

un saludo y gracias

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: recepcion de datos dmx
« Respuesta #1 en: 20 de Diciembre de 2007, 17:32:53 »
Si quieres echa un vistazo a este artículo: Receptor DMX

Siempre utilizo la USART para la lectura de la trama, en ningún caso miro el estado del pin "a pelo". Para detectar la señal Break hago uso del error de Frame.

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: recepcion de datos dmx
« Respuesta #2 en: 20 de Diciembre de 2007, 17:59:39 »
mmmm error de frame perdoname nocturno pero no se que es , creo entender que reconoces el byte de start cuando hay un error de recepcion,(seguro que no es eso) el proyecto lo conozco , por desgracia solo he visto ensamblador y entender como funciona en ccs es como leer geroglificos para mi todavia, veo un ave, un raton, algun IF y aclaraciones en cada linea, pero no me responde la neurona, yo estoy haciendo mis pinitos y bueno me he quedado pillado en ese punto, no me parecio una buena idea como lo estaba haciendo , el ejemplo es que no funciona  :( pero vamos en algun momento se me encendera la bombilla asi que cualquier orientacion sera buena  :mrgreen:

un saludo y gracias

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: recepcion de datos dmx
« Respuesta #3 en: 20 de Diciembre de 2007, 18:21:45 »
Aquí hay un ejemplo en assembler, aunque es menos eficiente porque no usa la interrupción de la USART
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en527825

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: recepcion de datos dmx
« Respuesta #4 en: 21 de Diciembre de 2007, 03:00:48 »
mmmm error de frame perdoname nocturno pero no se que es , creo entender que reconoces el byte de start cuando hay un error de recepcion,(seguro que no es eso)

Te recomiendo que mires un párrafo muy ilustrativo de la datasheet, que permite implementar la detección de la secuencia Break:


El error de Frame (framing error) es el bit FERR del registro RCSTA, y aparece cuando el byte no dura lo que la usart espera que debería durar, o sea, cuando pierde el sincronismo.
FERR: Framing Error bit
1 = Framing error (can be updated by reading RCREG register and receive next valid byte)
0 = No framing error

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: recepcion de datos dmx
« Respuesta #5 en: 21 de Diciembre de 2007, 14:41:25 »
  :mrgreen:  le seguiere dando vueltas  :-) y a ver que sale con un pequeño pic16   

un saludo y gracias