desktop

Control de dispositivos a través del módulo USB del PIC18F45/2550

hola kuropatula,
trabajando con fryck por separado repeti tu error cuando borraste el driver del sistema, descubri algo muy raro en mi circuito, que talvez tu puedas recrear, mira inverti los cables del D+ y D-, osea instala el D+ al D- y viseversa, yo estuve todo un dia tratando de que la PC reconociera el pic, otra vez, como CDC y cuando hice eso el PC lo reconocio sin problema y volvi al problema original de no poder enviar datos al PIC, he visto que la version del CCS 4.05x esta teniendo un bueno numero de bugs asi que hice un upgrade a la version 4.093, para eliminar la posibilidad de bugs, despues de trabajar con un ing en sistemas que reviso las librerias el dice que es muy posible que el error este en las librerias usb_cdc y usb_desc_cdc no en el driver... tambien, si alguien pueda confirmarme si los cables del pic van crusados o directos ( D+ a D- o D+ a D+) se los agradeseria.....
 
hola kuropatula intenta cambiando el tamaño maximo de los paquetes en tu librería usb_desc_cdc.h

PHP:
//pic to pc endpoint config
#define USB_CDC_DATA_IN_ENDPOINT       2
#define USB_CDC_DATA_IN_SIZE           64  // ponlo en 16
#define USB_EP2_TX_ENABLE  USB_ENABLE_BULK
#define USB_EP2_TX_SIZE  USB_CDC_DATA_IN_SIZE

//pc to pic endpoint config
#define USB_CDC_DATA_OUT_ENDPOINT       2
#define USB_CDC_DATA_OUT_SIZE           64 // ponlo en 16
#define USB_EP2_RX_ENABLE  USB_ENABLE_BULK
#define USB_EP2_RX_SIZE  USB_CDC_DATA_OUT_SIZE
esto es para disminuir los requisitos de RAM define esos dos registros como 16 y prueba para ver si funciona saludos
 
Última edición:
Tengo una Consulta:
Utilizo un led para señalar que me conecte al puerto USB con este código:
.....
while (TRUE)
{
if(usb_enumerated()) // si el Pic está configurado via USB
{
LED_ON(LEDR); // encendemos led en Rc7 al establecer contacto con la PC
.......
, pero este se mantiene ativo cuando lo desconecto. ¿Cuál es la forma correcta de hacerlo sin recurrir a #define USB_CON_SENSE_PIN PIN?
 
Muchas gracias por tu respuesta Moyano, ;) la verdad estaba pensado en tener un contador de instrucciones para saver cada cuanto tiempo leer el adc y asi poder muestrear la frecuencia de 44.1KHz a 16bits como el audio del pc (btw, cual es el registro de este contador?)

Por otro lado, es posible modificar las librerias usb para no usar el sense pin, ya que la tarjeta que estamos usando no posee la configuración para dicho pin, y es alimentada por el Vbus, asi que me parece que no necesita de este pin, o ustedes que piensan al respecto?

gracias nuevamente =)
 
La verdad no le veo sentido práctico a usar USB_sense....pero en ciertas ocaciones muy especiales como por ejemplo que en tu aplicación tengas 2 tareas 1 con USB y otra que ejecute otras cosas...entonces se usa una directiva del programa para que sense cuando el USB esté conectado ..entonces ejecuta la tarea USB....y cuando lo desconectamos ejecuta otra porción del programa...en las primeras páginas de este hilo he explicado su funcionamiento.
 
Disculpen la molestia pero desde hace unos meses he tratado de hacer un osciloscopio por usb (En realidad empezó por ser vía rs232 con cable conversor USB/Serial). He buscado en muchas partes pero no he logrado mucho. Lo que quiero es simplemente que el PIC tome una muestra del ADC y lo mande a la PC y lo grafico. Quisiera llegar a unos 100kHz x lo menos pero para empezar me conformo con 20kHz... La parte de la PC ya funciona perfecto, el problema (como en cualquier relación) es la comunicación. Empecé configurando el PIC como HID con el asistente HID de Protón pero casi nunca lo reconocía la computadora (a lo mejor por algún error mío) y cuando lo reconocía muestreaba a 8kHz como mucho. Leyendo x ahi encontré era por algo llamado POLL (todavía no se que es pero dura 1ms haciendo eso). Después me cambié a C (con el compilador PCWHD) y logré algo pero a muy baja velocidad. Lo que les mando es la última versión con varios archivos con los que he probado. Agradezco la ayuda que me puedan brindar!!!
 

Adjuntos

  • Osciloscopio_USB.rar
    317.3 KB · Visitas: 247
Hola Moyano:

Tardé en descargarlo ya que había quehacer mil cosas antes de bajarlo. Por lo que veo el vídeo, parece que este usuario se fijó ennosotros, jajaja, sobre todo en ti. A mi lo del puerto serie y a ti sobre USB con el sensor de temperatura y visual studio .net VB .net.

Dime tu gmail y te lo paso, dura 1:12 h. son 18 MB.

Saludo.
 
Por si a alguien le interesa Todavía no he logrado que el PIC muestree a la frecuencia que quiero y mande los datos por USB....

Por si a alguien le interesa encontré esto buscando en internet:

http://www.hobbypic.com/

Todavía no he probado nada de eso, pero voy a tratar de hacerlo pronto y les aviso...
 
Me mandaron a diseñar con micro generalmente el 16f87x un protectico, un monitor de 8 maquinas de soldar

Led verde: todas encendias
Led amarillo: Maquina parada
Led rojo: todas paradas

Diagrama de flujo y lenguaje ensamblador asm. ayundenme por favor aunque sea con el diagrama de flujo.
 
Define "Monitor"... ¿¿Es simplemente que verifique cuando se prenden y cuando se apagan??
Eso no tiene mucho que ver con "Control de dispositivos a través del módulo USB del PIC18F2550" no? Pero bueno, cada loco con su tema...

-Haz que le llegue tensión a 8 pines del pic (a través de relés u optoacopladores) cuando cada máquina esté encendida.
-Constantemente cuenta cuantos pines están en 1, si da 0 la cuenta prendes el led rojo, si da 8 prendes el led verde.
-La lectura de los 8 pines compleméntala y mándala directamente a los Led's amarillos.
 
La verdad está muy bueno el video muy explicativo ..ahora habla mucho sobre RS232...USB lo toca bastante por arriba pero igual muy bueno.
Yo también lo tengo cargado el video el que quiere me contacta por MP y le mando el mail
 
Atrás
Arriba