Hola, amigos. Cómo están?
Yo estoy haciendo una interface DMX también basada en el code de nuestro queridísimo amigo.
También se me presentó la idea de hacerlo vía RS232 directamente y tuve que recurrir a un conversor.
Bueno, hace un tiempo concurrí una presentación de productos Microchip que se hizo en BsAs, y ahí nos entregaron una placa que cumple la funcionalidad de convertir USB a señales RS232 (incluye el MAX232, con lo cual también tiene salidas TTL). Bien, ese día conocí al MCP2200. Es un integradito que necesita un cristal de 12Mhz y un par de capacitores para salir funcionando. De todos los adaptadores que probé, éste me resultó de maravillas. Posee una aplicación para cambiar el VId del USB entre otros parámetros. También es posible modificar el boudrate. Para quienes viven en BsAs, pueden conseguirlo en Elemon, ahí los venden y creo que cuesta algo de u$s4.
Respecto a la interface DMX, aun no logro hacerla funcionar. Configuré el PIC para que la USART funcione a 250Kbps. Desde el hyperterminal envío las tramas una a una y funciona de maravilla. Pero el problema aparece cuando lo hago desde el FreeStyler. Por algún motivo no interpreta los datos que le llega al PIC y no hace nada. Para poder comprobarlo, en cada estado de recepción puse un led, de manera que se pueda verificar si realmente llega el 0X43 de inicio de trama. Desde el hyperterminal el led enciende bien cuando le envío 0x43, pero no desde el freeStyler. Analicé los datos que el FreeStyler envía y noto que están bien, con la única diferencia que éste lo envía todo junto (C001L255, por ejemplo), mientras que desde el hyper terminal sale byte a byte.
También hice una aplicación en VC# para usar el mismo método que usa FreeStyler para enviar los datos. De comienzo tampoco me funcionó, pero me dí cuenta que era un problema de configuración del PIC, estaba configurado para usar 9bits, y VC# usaba 8bits. Luego de cambiar eso, desde VC# funciona de maravillas. Pero claro, no tengo aun toda la funcionalidad que ofrece freeStyler, es por eso que quiero hacerlo funcionar con éste último.
De momento, mi idea es usar el puerto serie conectado al PIC, y a éste conectarle los 3 Leds, sin enviar nada por medio de otro puerto. Como les comenté, esto funciona bien desde HyperTerminal y desde VC#.
Mis preguntas son:
1 - A qué baudrate opera FreeStyler sobre el puerto configurado? No pude ver el baudrate, pero sí el puerto COM.
2 - Es posible que freeStyler esté trabajando a otro baudrate que el configurado en el PIC?
Desde ya, muchas gracias a todos y éxitos!
Cristian.