I have been trying all kinds of changes to the code to change the order in which the different peripherals are initialized, and accessed. But on other boards, they do work together, same compiled code. So the USB and Ethernet both work if called separately on those boards, just not together. If I comment out the calls to the Ethernet so that code never gets linked in, the USB works on those affected boards. ![]() Even though the Ethernet code is included in the image and never called, the USB still fails to work. If I include the Ethernet code but do not call it (protect it via a large counter to delay it from being touched until a long time period has elapsed, which keeps it linked in), the USB still does not work on those affected boards. Windows device manager says code 10, cannot start device. Ethernet and other peripherals work, the only problem is the USB. If I have both USB and Ethernet enabled, along with all the other stuff, the USB fails to come up on some boards, but it does work on other boards. Micro is 120 MHz and uses a 25 MHz crystal. Ethernet uses its own 50 MHz crystal, RMII mode. ![]() ![]() ![]() Release build, no watchdog enabled (was before all this debugging), no optimizations. Board has Full Speed USB 2.0 that I am using in device mode as a custom HID, 10/100 Ethernet, misc GPIO, SPI and I2C in use. Using IAR EWARM 6.50.6 for ARM M3, on a custom board with a STM32F217VET6 micro.
0 Comments
Leave a Reply. |