Windows Vista & PIC 18f4550 USB
7/16/09
OK. I'm trying to get USB functioning with both the PICDEM FS USB board, and a new CUI board. I want to get USB functioning on Windows this time. I'm working from firmware that Jordan Parrott put together last summer, and his Windows host code too. I'm using Windows Vista too.
I tried the PICDEM FS USB bootloader firmware driver for Windows XP (from MCHPFSUSB\Pc\MCHPUSB Driver\Release dated 2004), but perhaps not surprisingly, when I tried to flash the PICDEM with Jordan's firmware, this failed with the error:
USB Write Failed
Failed with error 997: Overlapped I/O operation is in progress.
I rebooted the system and retried, and got the same error.
I'm assuming this is a problem with the Windows XP driver, so I'm about to try the latest MCHPFSUSB (v 2.5) drivers. First, I'll uninstall the current drivers. OK, so now it's not clear where the Windows Vista device driver is located in the collection of MCHPFSUSB (v 2.5) installed files. Also, I'm not finding documentation for MCHPFSUSB (v 2.5). Hmmm. Found the documentation. It's buried in: Microchip Solutions\Microchip\Usb\Documentation
I'm now trying to figure out what device driver is intended for the PICDEM FS USB bootloader firmware.Talking to Microchip, they say to install the driver at: C:\Microchip Solutions\USB Tools\MCHPUSB Custom Driver\MCHPUSB Driver\Release
The device driver now says "Microchip Custom USB Device" (previously it said something like 18f4550). Using the PICDEM FS USB Demo Tool, I was now able to flash the program memory of the PICDEM. (The config data failed to program, but I think this is because the PICDEM has the config data write protected to protect the boot loader). I flashed the PICDEM with this code.
I'll try to get my Windows host program working now. The Windows host program works! I used this program. So, this is a "standalone" USB testing program. I.e., only Windows, and the PICDEM USB board are needed.
My goal here is to just make sure the USB operation of the board is working. Another of my goals is also to test this on my CUI board USB.
OK! I was now able to flash the firmware of a perfboard & wirewrapped CUI board with the same code as above for the microcontroller, and use the same Windows program as above, and the microcontroller flashing worked, and the program ran successfully!! Oh. And this CUI board has a "type A" USB connector (i.e., flat style), and I wanted to connect the USB of my CUI to the Windows laptop, so I cobbled together my own USB connector by cutting up and connecting together two other USB cables.
And this CUI board also works in this USB test when I first power it up with it's own 5V power supply, and then attach it to the Windows system with the USB cable!
Here are some pictures of my first perfboard & wirewrapped CUI board, used in the test above:
![]()
![]()
And here's my new USB connector:
![]()