I am working on a cross-platform PSoC3 project. I am using the USBUART component for communication. I have two related question regarding enumeration on the host:
1) In Linux, I can get the device to enumerate, but it takes between 20-40 seconds because I can actually communicate with it. An entry is created in /dev/serial immediately when I plug it in, and an entry is also immediately visible in the kernel log (accessed via "dmesg | grep tty"). However, I still have to wait around 30 seconds because I can communicate with it. After communication is established, I can do everything without delay. If I halt the PSoC3's execution via JTAG debugger during enumeration, the 30 second time period still passes just fine, so I assume the issue is on the host side. Any thoughts about how I can reduce this delay?
2) I cannot establish communication with a Windows 7 host, either 32- or 64-bit. My initialization code is essentially copied from the USBUART example. I have attached a truncated copy of it in the text file. I started with the VID and PID copied from the example, and the drivers provided here: http://www.cypress.com/?rID=63794 did not work for it. I pointed Windows to the correct ones for my platform, and Windows didn't recognize them as the correct drivers. I found a forum entry here: http://www.cypros.org/?app=forum&id=2232&rID=89607 that described a different set of VID and PID settings that are supposed to be appropriate for the driver. When I use them, Windows seems to accept the driver, but my whole system locks up until I perform a hard reboot. I have halted execution on the PSoC3 during this time, and it seems to be stuck in the call to USBUART_GetConfiguration() on line 10 of the attached code.
Any help is much appreciated.