TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: proyecto2009utu en 16 de Agosto de 2011, 23:08:54
-
Buenas, estoy intentando trasmitir datos desde la PC al PIC y luego a otro dispositivo (CPLD)
El tema es el siguiente: los datos se trasmiten en paralelo 8bit (1byte, del PIC al CPLD) pero hay un bit de Clock (CLK) que cambia con cada dato,
ahora bien este cambio no lo esta haciendo, mi codigo es el siguiente: (solo esa parte del programa)
datagen=gethex_usb(); // Recibo los datos
output_high(PIN_E1); // Clock datos
output_d(datagen); // Envio datos al CPLD
output_low(PIN_E1); // Clock datos
No se si es necesario agregar un delay para que pueda cambiar de estado el PIN_E1??? o como puedo hacer para que este pin me sirva de CLK???
Comento: - El TRIS E esta bien configurado como salida, ya que en otras partes de programa con delays cambia de estado perfectamente (pero esta parte que recibo los datos por USB no quise ponerle delay porque pierdo datos)
- Por el PORT D si me salen los datos que le mando perfectamente :shock:
Muchas gracias por su ayuda, espero haber sido claro, cualquier cosa comenten.... Gracias
-
Hola. Debería cambiar de estado excepto la carga conectada a RE1 sea tan grande que impida el cambio a tiempo.
podrias probar con output_toogle(PIN_E1) a ver si tenés mejores resultados.
Por ahí el uC que estás utilizando tenga Parallel Serial Port(PSP) o bien Streaming Parallel Port(SPP). Si estás enviando datos a gran velocidad por ahí valga la pena utilizar esos módulos que simplifican la tarea por hardware.
Saludos.
-
Quedo bien!!! :-/
la verdad fue tontera mia, ya estaba andando aparentemente.
El problema estaba en que estaba usando un osciloscopio analogico y nunca via los clock :5]
Con uno digital (que capturara la imagen cuando hay un cambio) se vieron los pulsos que son muy pequeños en tiempo pero sirven de clock.
Igual gracias por tu ayuda y amabilidad BrunoF quizas el output_toogle(PIN_E1) me pueda servir para dejar el programa mas sencillo.
El PIC que utilizo es el 18F4550, y si tiene SPP, pero realmente no se muy bien como usarlo y no se si me da muchas ventajas a lo que tengo, ya que la comunicacion con el CPLD es un poco entreverada.
Gracias :)