TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: em2401 en 31 de Julio de 2014, 01:00:32
-
Hola, tengo un problema bastante extraño, ya lei mucho y muchos tutoriales diferentes sobre la comunicacion USB de los pic de la serie 18FX550, estoy haciendo una aplicacion para poderlo conectar en modo CDC, el codigo lo saque del libro que seguro algunas vez todos usaron "Compilador C CCS y Simulador Proteus para Microcontroladores PIC", en el sale un ejemplo muy sencillo, que era por donde quería empezar, lee una entrada analógica y el valor lo envia por el USB.
Mi problema es el siguiente, copie el codigo igual, me lo compila sin problemas pero cuando conecto el PIC al usb simplemente no ocurre nada, windows no me pide nigua driver ni nada, en el libro también explican como hacer la simulación con el proteus, segun este con la simulación windows también me debería pedir la instalación del driver y haría que en "Administrador de dispositivos" figure el puerto COMx, pero tampoco pasa esto en ninguno de lso 2 casos me pide la instalación del driver.
Tengo windows 8.1 64 bits, el fimware del pic lo compile tanto en ccs c 5.023, 5.025 y 4.14 en los 3 pude compilar sin problemas pero con el mismo resultado.
Este es el codigo:
#INCLUDE <18F2550.h>
#device adc=10
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#define USB_CON_SENSE PIN_B2
#include <usb_cdc.h>
void main() {
BYTE i, j, address, value;
int1 q,q1;
float p;
q1=0;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
usb_cdc_init();
usb_init();
do {
usb_task();
if(usb_enumerated()) {
q=read_adc();
if(q!=q1) {
p=5.0*q/1024.0;
printf(usb_cdc_putc, "\n\r voltage= %01.2f V", p);
}
q1=1;
delay_ms(500);
}
} while(true);
}
Las libreria USB_DESC_CDC.H no la modifique, para tampoco necesitar modificar el driver, pero ni a este paso puedo llegar :(
Cualquier ayuda se las agradecira mucho, ya he echo muchos proyectos personales con la serie 16 con exito, y mis primeros intentos con la serie 18 me están desconcertando, de ante mano muchas gracias a esta comunidad de la que he podido aprender demasiadas cosas.
-
Pues mas bien la pregunta es, si alguien ha echo pruebas usando windows 8.1???, en W7 no hay problema, pero en W8.1, no estoy seguro.
la otra es, si estas seguro de que tus descriptores están correctos???, si no mal recuerdo hay un VID y PID,estan correctos se supone porque comentas que no los modificaste, pero checalos de igual manera.
-
deberias mirar los hilos del foro en donde se tiene el mismo problema pero usando windows7, esto para verificar qué es lo que debe coincidir con los VID y PID tanto del driver que trae ccs como en la librería de ccs para empezar a descartar problemas.
-
deberias mirar los hilos del foro en donde se tiene el mismo problema pero usando windows7, esto para verificar qué es lo que debe coincidir con los VID y PID tanto del driver que trae ccs como en la librería de ccs para empezar a descartar problemas.
Pues mas bien la pregunta es, si alguien ha echo pruebas usando windows 8.1???, en W7 no hay problema, pero en W8.1, no estoy seguro.
la otra es, si estas seguro de que tus descriptores están correctos???, si no mal recuerdo hay un VID y PID,estan correctos se supone porque comentas que no los modificaste, pero checalos de igual manera.
El problema no es el driver, si entiendo lo de lso descriptores y que tienen que ser iguales a los del driver, lo que pasa es que al conectar el pic por el USB no sucede NADA, windows no muestra el mensaje de nuevo dispositivo y por ende nunca me pide ningún driver, y en el administrador de dispositivos no hay nada nuevo, como si no estuviera conectando nada.
PD: este es el circuito que uso
(http://nsae01.casimages.net/img/2014/07/31/140731064037483190.png)
-
esta totalmente descartado que sea un problema de hardware?
-
Está ejecutando siquiera eso con el MCLR semi-conectado a GND? Forza MCLR directamente a VDD. Instalaste los drivers USB que el Proteus necesita para poder conectar el dispositivo de la simulación con el OS?
Saludos.
-
esta totalmente descartado que sea un problema de hardware?
La verdad que no creo que el pic este dañado, le hice una modificación al problema para que me muestre la lectura analogica en un LCD, pero solo muestra una vez el mensaje y al llegar a la rutina de usb_cdc_init() como que se queda colgado. Este es el codigo:
#INCLUDE <18F2550.h>
#device adc=10
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN
#use delay(clock=48000000)
#include "lcd.c"
#use fast_io(B)
#define USB_CON_SENSE PIN_B3
#include <usb_cdc.h>
void main() {
BYTE i, j, address, value;
int16 q,q1;
float p;
q1=0;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
lcd_init();
lcd_putc("\f");
lcd_gotoxy(1, 1);
lcd_putc("Valor ADC: ");
usb_cdc_init();
usb_init();
do {
usb_task();
if(usb_enumerated()) {
q=read_adc();
if(q!=q1) {
p=5.0*q/1024.0;
printf(usb_cdc_putc, "\n\r voltage= %01.2f V", p);
printf(lcd_putc, "%04LU",q);
}
q1=1;
delay_ms(250);
}
} while(true);
}
PD: puse PLL1 porque hice una pruebas con un cristal de 4Mhz, el pic funciona bien, hice una prueba haciendo que cada segundo incremente una variable en 1 y la muestre en el LCD y el tiempo corresponde bien.
Está ejecutando siquiera eso con el MCLR semi-conectado a GND? Forza MCLR directamente a VDD. Instalaste los drivers USB que el Proteus necesita para poder conectar el dispositivo de la simulación con el OS?
Saludos.
El MCLR no toca gnd, el cable solo pasa por encima pero no hay conexión (no hay un punto sobre las lineas), si instale el driver del proteus para el USB
-
Bueno logre solucionar el problema, necesitaba poner un condensador entre el pin 14 (VUSB) y GND, no mandarlo directo con un cable, en el ejemplo del libro salia asi, pero claro era simulado en proteus, vi placas de desarrollo con este pic y llevan el condensador a tierra lo probé y arranco a la primera, también probé compilando con distintas versiones del ccs para descartar problemas y todo bien. Muchas gracias a todos y a la comunidad, al menos puedo dejar experiencia que la comunicación usb cdc se puede hacer sin problemas en windows 8.1 64bits usando los drivers mas recientes que incorpora el ccs.
Muchas gracias a la comunidad. :-/
-
;-)
-
que bien, ahora ya sabemos que si funciona en W8.1, 64 bits
Saludos.
-
Tengo una inquietud acerca de esta practica, yo también estoy haciendo el mismo ejemplo del libro "compilador ccs y proteus" con windows 8.1 64 bits y utilizando el ccs v5. Y quería saber si es posible hacer la simulación en Proteus; estoy utilizando la versión 8, pero al momento de ejecutar la simulación, el administrador de dispositivos muestra un icono desconocido, pero no me reconoce el usb_cdc e intento instalar la librería manualmente usando "mchpcdc.ifn" (ésta la consigo de michrochip) pero esto me causa errores en el proteus "fatal error ntdll.dll" provocando una pantalla azul a windows.
*ya verifique que esté instalado el driver usb para proteus.
*que los archivos *.inf de microchip sean compatibles con windows 8.1 x64 bits.
Creo que lo más practico sería hacer pruebas en versiones de windows de 32 bits, ya que he visto en foros que en esos S.O. si es posible hacer la simulación en proteus usando el usb.
Pero quería saber si alguno de ustedes sabía si se podía hacer algo en S.O. de 64bits :shock:
De antemano muchas gracias
-
Hummm me suscribo al hilo porque en breve me van a plantear este mismo problema (de hecho ya estoy avisado) :mrgreen:
-
la simulacion si es posible hacerla, en este momento no tengo nada de ccs instalado pero recuerdo en su momento que si funciona
-
No se en la simulación pero el circuito real, si el micro no esta siendo alimentado con 3v3, requiere de un cap en VUSB que no aparece en el esquemático que el usuario dice haber usado.
-
Permitirme un offtopic pero creo que es el cumpleaños de brunoF por lo que veo aquí, no llevo mucho tiempo en el foro y no se si esta es la manera de felicitar a alguien si no es así losiento.
Felicidades Bruno
Un saludo
-
Gracias juaperser1. Efectivamente hoy cumplo 2^5 :D
Saludos!!
-
Hola tengo Windows 8.1 de 64bits, instale proteus 8.1, instale el "Virtual USB Driver" tengo el modelo armado, todo muy lindo, pero cuando doy PLAY me sale el error:
Internal Exception: access violation in module 'NTDLL.DLL' [0003D9C9]
y se interrumpe la simulación. Me estará faltando instalar algo?
Estoy usando un PIC18F14K50.
En cuanto al código esta bien, ya que con el hardware real funciona perfecto...
em2401 de donde te guiaste para saber q instalar?
Saludos!
-
saludos amigo tengo el mismo problema...
Pero le envio un ejemplo que encontre en la red y funciona pero viene completo el diagrama en proteus, el programa en ccs compiler y el software
-
¡¡¡ Y tan completo que está, que no hay nada en el fichero!!!
-
¡¡¡ Y tan completo que está, que no hay nada en el fichero!!!
Tienes mas razón que un santo, lo he descargado y he obtenido un 100% de nada. :mrgreen:
-
¡¡¡ Y tan completo que está, que no hay nada en el fichero!!!
Tienes mas razón que un santo, lo he descargado y he obtenido un 100% de nada. :mrgreen:
Bueno, tampoco le quitemos todo el crédito. Hoy he aprendido que se puede zippear la nada mísma, que no es poca cosa. Ni creo poder reproducirlo siquiera.
-
jajajaja con solo ver lo que ocupa, 0.02kb, que mas podria tener :D
-
¿Son los agujeros negros gigantescos zips de nada? ¿le enviamos este zip a Stephen Hawking para que tenga la oportunidad de tener un agujero negro en su escritorio? :D :D :D
-
Hola como están tengo el problema que cuando conecto al USB el pic Windows 7 Pro no detecta nada no me pide driver ni nada. cuando pruebo en proteus detecta pero a los dos segundos se desconecta y manda re iniciar el programa el driver dice que esta instalado y funciona correctamente. cambie el capasitor por las dudas y sigue igual q puedo hacer
-
Hola, tengo un problema bastante extraño, ya lei mucho y muchos tutoriales diferentes sobre la comunicacion USB de los pic de la serie 18FX550, estoy haciendo una aplicacion para poderlo conectar en modo CDC, el codigo lo saque del libro que seguro algunas vez todos usaron "Compilador C CCS y Simulador Proteus para Microcontroladores PIC", en el sale un ejemplo muy sencillo, que era por donde quería empezar, lee una entrada analógica y el valor lo envia por el USB.
Mi problema es el siguiente, copie el codigo igual, me lo compila sin problemas pero cuando conecto el PIC al usb simplemente no ocurre nada, windows no me pide nigua driver ni nada, en el libro también explican como hacer la simulación con el proteus, segun este con la simulación windows también me debería pedir la instalación del driver y haría que en "Administrador de dispositivos" figure el puerto COMx, pero tampoco pasa esto en ninguno de lso 2 casos me pide la instalación del driver.
Tengo windows 8.1 64 bits, el fimware del pic lo compile tanto en ccs c 5.023, 5.025 y 4.14 en los 3 pude compilar sin problemas pero con el mismo resultado.
Este es el codigo:
#INCLUDE <18F2550.h>
#device adc=10
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#define USB_CON_SENSE PIN_B2
#include <usb_cdc.h>
void main() {
BYTE i, j, address, value;
int1 q,q1;
float p;
q1=0;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
usb_cdc_init();
usb_init();
do {
usb_task();
if(usb_enumerated()) {
q=read_adc();
if(q!=q1) {
p=5.0*q/1024.0;
printf(usb_cdc_putc, "\n\r voltage= %01.2f V", p);
}
q1=1;
delay_ms(500);
}
} while(true);
}
Las libreria USB_DESC_CDC.H no la modifique, para tampoco necesitar modificar el driver, pero ni a este paso puedo llegar :(
Cualquier ayuda se las agradecira mucho, ya he echo muchos proyectos personales con la serie 16 con exito, y mis primeros intentos con la serie 18 me están desconcertando, de ante mano muchas gracias a esta comunidad de la que he podido aprender demasiadas cosas.
Una consulta esa librería del usb se encuentra en una carpeta del ccs?, y si es así la puedo usar para ponerla dentro del mpabx?, muchas gracias.