Hi Jitesh.
An apps engineer is going to try to replicate your setup here to see what we can do to help. Can you please provide the board rev of the BF561 EZ-KIT and USB-LAN extender card that you are using? Also, what version of VisualDSP++ are you using (major release and any installed Update)?
Thanks!
Hi,
The details are:
EZ-kit Rev:1.4
USB-LAN EZ Extender Rev:2.1
VDSP++ Rev: 4.5 with Update 8 installed
Hope this helps.
Thanks,
Jitesh Butala
I tried recreating the setup that you have. I used the VDSP bulk loopback app with Rev 1.1 of the USB LAN EZ extender, VDSP 5.0 Update 6 driver, and a host running Win XP SP2. I burned the code into flash with the default init code that ships with VDSP and I did not run into what you are seeing. The USB cable is connected, and I then power up the EZKIT. The board enumerates as a high speed device. Have you tried running it on different PCs, or using different ports on the same PC? Is this behavior consistent on all machines and USB ports? Also, are you running one of our example applications or custom code? If you have another USB LAN extender card, you could try that as well.
I do not believe adding the delay in code will help here since the host determines if the device is high or full speed using special signals during RESET, well before control transfers are initiated. It could be the case that the Netchip doesn't respond appropriately during the RESET in this particular case, but I would like to first rule out issues on the host end.
Could the issue be because of how the different versions of the VDSP (4.5 with update 8 and 5 with update 6) handle the netchip IC? Also, I noticed in the code that was shipped with VDSP 4.5 that the driver for the netchip was undergoing a complete re-write for VDSP 5. Is there any change which will affect this?
Also, please could you send me the default init code as I have VDSP 4.5 and there is no init code given along with it.
Thanks,
Jitesh
That could definitely be one cause of the problem. The part that concerns me with the VDSP 4.5 code is that before holding RESET# low on the Netchip, the code does not enable the root port wakeup enable on the Netchip. This could mean that if the Host issues a RESET when the blackfin is trying to issue a reset over the GPIO, the Netchip might not respond appropriately to the host RESET.You can try incorporating the code from the reset routine of VDSP 5.0, but I would strongly recommend just updating to the latest version, since there were a number of issues with the older driver that were fixed going forward.
Just for clarification, there are 2 ways to reset the Netchip, a complete reset by holding the RESET# pin on the Netchip low, and the other is a root port reset issued by a host, where the host holds an SE0 on the data lines for >= 10ms. The 2 types of resets do different things on the Netchip.
Unfortunately, I only have the 5.0 init code dxe. You can try importing the 561 init code project into 4.5 and trying to compile a 4.5 dxe for use with your project though.
hope this helps!
--Karthik
Hi Karthik,
Thanks for your crucial inputs. This has helped me in getting a vetter understanding of what was actually going on during the boot process of the BF561 and NET2272. I have been unable to look into changing the code so as to enable the root port wakeup enable which might allow the correct detection on the host side. What I have done, as a workaround, is to have the USB cable unplugged until the board boots up completely and then insert it into the PC and this enables the correct detection of the NET2272 as a high speed device.
Thanks,
Jitesh