PIC18F4550 no es detectado por PC

Ya corregí todo gracias a Dios, encontré información que me ayudo a solucionar el tema de firmas digitales en windows 10 x 64.

Este es el comando que tienen que ejecutar en cmd en modo administrador.

bcdedit /set testsigning on

Este es video que está en youtube.

 
Hola, buenas tardes a todos, electrónicos.
E
sta última semana estuve realizando pruebas para la comunicación con el PIC18F4550 y el PC, el cual les dejo el código en CCS versión 5 que mide las entradas analógicas para pasarlas por USB a la PC y visualizarlas.
S
in embargo, al momento de hacer la transmisión me dice que el dispositivo no se reconoce, tanto la implementación como en simulación en proteus, por lo cual sospecho que debe ser por los controladores, por ello hago uso de los controladores que me ofrece Microchip, pero al instalarlo no me deja, debido a mi sistema operativo que es Windows 10 de 64 bits, cosa que tiene que ser necesariamente en este sistema operativo.
Ya intenté cambiar la instalación de controladores no firmados y aún así no me deja instalar.
Si alguien encontró una solución del problema o similar, para que me pueda ayudar, por favor.
C:
///////////////////////////////////////////////////////////////////////////////

///                              PROGRAMA v2.0                              ///

///////////////////////////////////////////////////////////////////////////////

#INCLUDE <18F4550.h>
///////////////////////////////////////////////////////////////////////////////
///                          CONFIGURACION DEL PIC                          ///
///////////////////////////////////////////////////////////////////////////////
#DEVICE ADC=10  // 10 bits de conversion
#FUSES HSPLL      // Oscilador de cristal: >4MHz (20MHz)
#FUSES NOWDT      // Watch Dog Timer deshabilitado
#FUSES NOPROTECT  // Proteccion contra la lectura de la memoria

                                        // FLASH deshabilitada
#FUSES NOLVP      // Programacion en baja tension deshabilitado
#FUSES NODEBUG    // Modo DEBUG para ICD deshabilitado
#FUSES USBDIV     // Clock del modulo USB: PLL/2 (48MHz)
#FUSES PLL5       // Divisor de PLL: 1 (4MHz)
#FUSES CPUDIV1    // Clock del procesador: PLL/2 (48MHz)
#FUSES VREGEN     // Regulador interno de 3.3v habilitado
#FUSES NOPBADEN   // Configura el puerto B como E/S digitales
#FUSES MCLR       // Pin Master Clear habilitado

#USE delay (clock=48MHZ)   // Frecuencia del oscilador: 48MHz
#INCLUDE <usb_cdc.h>       // Libreria de funciones para USB-CDC

int16 Canal1,Canal2,Canal3,canal4;     // Variable de lectura del ADC
float v1,v2,v3,v4,muestra=5;           // Variable de tension de y de
                                       // cantidad de lecturas por canal
int i;                                 // Variable contador
char dato;                             // Variable de dato recibido

///////////////////////////////////////////////////////////////////////////////

///                                 FIRMWARE                                ///

///////////////////////////////////////////////////////////////////////////////
void main() {              // Menu principal
   // Configuracion conversor AD
   setup_adc_ports(AN0_TO_AN3);        // Canal AN0 analogico
   setup_adc(ADC_CLOCK_DIV_64);        // Fuente de reloj para la conversion
   // Inicializacion puerto USB-CDC
   usb_cdc_init();                     // Inicializa puerto virtual COM
   usb_init();                         // Inicializa el hardware USB
   usb_wait_for_enumeration();         // Espera hasta que sea enumerado
   while(!usb_cdc_connected()){
   }
   do{                                 // Blucle infinito
      usb_task();                       //
      if (usb_enumerated()){           // ¿El dispositivo esta enumerado?
         if (usb_cdc_kbhit()){
            dato=usb_cdc_getc();
            if (dato=='A'){
               v1=0;
               v2=0;
               v3=0;
               v4=0;
               // Lectura de v1
               for (i=1; i<=muestra; i++){
                  set_adc_channel(0);        // Habilita canal 0
                  delay_us(20);                  // Retardo de tiempo de 20us
                  Canal1=read_adc();         // Canal 1 igual a lectura en AN0
                  v1=v1+5.0*Canal1/1023.0;   // Calculo para v1
               }
               v1=v1/muestra;                // Promedio de v1
               // Lectura de v2
               for (i=1; i<=muestra; i++){
                  set_adc_channel(1);        // Habilita canal 1
                  delay_us(20);              // Retardo de tiempo de 20us
                  Canal2=read_adc();         // Canal 1 igual a lectura en AN1
                  v2=v2+5.0*Canal2/1023.0;   // Calculo para v2
               }
               v2=v2/muestra;                // Promedio de v2
               // Lectura de v3
               for (i=1; i<=muestra; i++){
                  set_adc_channel(2);        // Habilita canal 2
                  delay_us(20);                // Retardo de tiempo de 20us
                  Canal3=read_adc();         // Canal 1 igual a lectura en AN2
                  v3=v3+5.0*Canal3/1023.0;   // Calculo para v3
               }
               v3=v3/muestra;                // Promedio de v3
               // Lectura de v4
               for (i=1; i<=muestra; i++){
                  set_adc_channel(3);        // Habilita canal 3
                  delay_us(20);              // Retardo de tiempo de 20us
                  Canal4=read_adc();         // Canal 1 igual a lectura en AN3
                  v4=v4+5.0*Canal4/1023.0;   // Calculo para v4
               }
               v4=v4/muestra;                // Promedio de v4
               // Transmision de datos
               printf(usb_cdc_putc,"%2.2f%2.2f%2.2f%2.2f",v1,v2,v3,v4);
            }
            else if (dato=='B'){
               printf(usb_cdc_putc,"B");
            }
         }
      }
   }while(TRUE);

}IMG-20220505-WA0011.jpgIMG-20220505-WA0012.jpg
 
Última edición por un moderador:
Esta última semana estuve realizando pruebas para la comunicación con el PIC18F4550 y el PC, el cual les dejo el código en CCS versión 5
Este compilador tiene muchas versiones 5.XXX
Actualmente debe de ir por la versión 5.109 o superior, y entre todo ese rango de versiones siempre hay cosas que no funcionan.
Sobre todo cuando se trata de los controladores para comunicación por USB.
Prueba con la versión 5.081, esa va bien en este aspecto y todo lo demás.
Si eres usuario registrado puedes hacer el downgrade desde la página de descargas o recuperar tus instalaciones con el instalador.
Incluso puedes comentar directamente a CCS Info sobre tus problemas y te resuelven de inmediato.
 
Atrás
Arriba