USB Port issue

Thread Starter

MKAK

Joined May 28, 2025
1
I am using PIC24FJ256GB106 controller for USB CDC communication, I have downloaded the MLA from microchip and by modifying the cdc_basic_demo of PIC24FJ256GB110 to PIC24FJ256GB106 (changed the device form PIC24FJ256GB110 to PIC24FJ256GB106 in project configuration).

In device manager in USB section it is showing as unknown device(device descriptor request failed), I also tried installing device driver from inf file in utilities of usb folder, by doing that it is showing that it is not compatible for windowsx64.

I also tried generating code by using MCC which only have Framework Lite library of USB and by using MLA USB Device Lite I generated a code and dumped it in my controller but this time no sign of device is shown in device manager.

I am using PIC24FJ256GB106 with 12Mhz crystal and the D+ and D- pins of the controller are connected to connector via choke, no external pullup resistors are used only internal pull-up. WCM 2012-121Y-N is the choke I am using and it is used to avoid high frequency noise.



C-like:
#pragma config WPFP = WPFP511  //Write Protection Flash Page Segment Boundary->Highest Page (same as page 170)


#pragma config WPDIS = WPDIS  //Segment Write Protection Disable bit->Segmented code protection disabled


#pragma config WPCFG = WPCFGDIS  //Configuration Word Code Page Protection Select bit->Last page(at the top of program memory) and Flash configuration words are not protected


#pragma config WPEND = WPENDMEM  //Segment Write Protection End Page Select bit->Write Protect from WPFP to the last page of memory




// CONFIG2


#pragma config POSCMOD = HS  //Primary Oscillator Select->HS oscillator mode selected


#pragma config DISUVREG = OFF  //Internal USB 3.3V Regulator Disable bit->Regulator is disabled


#pragma config IOL1WAY = OFF  //IOLOCK One-Way Set Enable bit->Write RP Registers Once


#pragma config OSCIOFNC = ON  //Primary Oscillator Output Function->OSCO functions as port I/O (RC15)


#pragma config FCKSM = CSECMD  //Clock Switching and Monitor->Clock switching is enabled, Fail-safe Clock Monitor is disabled


#pragma config FNOSC = PRIPLL  //Oscillator Select->FRC


#pragma config PLL_96MHZ = ON  //96MHz PLL Disable->Enabled


#pragma config PLLDIV = DIV3  //USB 96 MHz PLL Prescaler Select bits->Oscillator input divided by 3 (12MHz input)


#pragma config IESO = ON  //Internal External Switch Over Mode->IESO mode (Two-speed start-up)disabled




// CONFIG1


#pragma config WDTPS = PS32768  //Watchdog Timer Postscaler->1:32768


#pragma config FWPSA = PR128  //WDT Prescaler->Prescaler ratio of 1:128


#pragma config WINDIS = OFF  //Watchdog Timer Window->Standard Watchdog Timer enabled,(Windowed-mode is disabled)


#pragma config FWDTEN = OFF  //Watchdog Timer Enable->Watchdog Timer is disabled


#pragma config ICS = PGx2  //Comm Channel Select->Emulator functions are shared with PGEC1/PGED1


#pragma config BKBUG = OFF  //Background Debug->Device resets into Operational mode


#pragma config GWRP = OFF  //General Code Segment Write Protect->Writes to program memory are allowed


#pragma config GCP = OFF  //General Code Segment Code Protect->Code protection is disabled


#pragma config JTAGEN = OFF  //JTAG Port Enable->JTAG port is disabled
Mod: Added Code tag/quotes to Code text.

This is my project's configuration bits an also attached the project file below.

It would be helpful if anyone guide me to resolve this problem.

Thankyou in advance!
 

Attachments

Last edited by a moderator:

geekoftheweek

Joined Oct 6, 2013
1,429
I'm not familiar with PIC24 USB, but I have worked with PIC18 USB. I tried a quick project in MPlabX and using a 12MHz crystal I came up with the same clock configuration. Have you tried enabling the USB voltage regulator (#pragma config DISUVREG = OFF)? I'm assuming you are using 3.3V and shouldn't need it, but sometimes these things can make a difference. As far as the chokes go that is out of my league. Have you tried without?

Wireshark https://www.wireshark.org/download.html helped me a lot getting my first 18F2550 going. It will capture USB traffic and display the packets. Personally I use Linux so as far as any Windows specific issues I can't help.

Good luck!!
 
Top