I have several USB host shields which I intend on connecting to an Arduino UNO so I can connect a PS3 controller which will be used to control some electric motors controlled by an L298 H Bridge.
The issue I have is that half of the shields I have are working, the other half are not.
After lots of probing of the boards and testing using the USB host shield library 2.0 version 1.4.0 I have found that the D+ track on a working board is around 2.7V for the board which are not working the voltage is less than 0.1V.
I have tried to force the USB shield to recognize the USB device using the USB.cpp code on line 467, making a change
from: tmpdata = getVbusState();
to: tmpdata = 2;
which triggers the code to try and initialize the blue tooth dongle, but the process fails when it request the device information from the dongle.
rcode = getDevDescr(0, 0, sizeof (USB_DEVICE_DESCRIPTOR), (uint8_t*)buf);
I have also tried to force the initialization by connecting the 3.3V power supply directly to the D+ line. This will trigger a code response but again it fails when it tries to initialize the dongle.
Initially I was concerned it maybe a difference in the MAXIM3421e chip, however I have two chips manufactured in the same week from the same supplier and one works but the other does not. The only obvious difference between the boards is the one that works has 2045L on it, the others do not.
I am looking for suggestions as to how troubleshoot the issue and any ideas as to why the voltage on D+ is not registering the dongle being attached.