Hi!
I've copied this topic over from another older message. I hope that someone may help me find the solution:
Does anybody know why two USB modems may stop working with the new LUFA library? May it be compiler problems or anything else?
The first modem is Novatel Wireless the other one is Huawei E160. Both modems fail to get enumerated.
Tried three different GCC compilers and all existing optimization methods.
They just won't enumerate and with the E160 - it says that its a wrong CDC device.
Any suggestions?
The micro is AT90USB
Update: on Huawei E160 it isn't able to configure the pipes. Wasn't yet able to see what is wrong with the other one, but must mention that both modems work fine on a windows machine.
Update: it is not able to find a compatible data exchange interface (no notification endpoint???) with USB_GetNextDescriptorComp()
Update: GetNextDescriptorComp() tried to find a control interface using the comparator function DComp_NextCDCControlInterface() which went through the descriptors' headers (11 pieces) and found three with:
Class 255 SubClass 255 Protocol 255 StrIndex 0
But the first contained the flag TotalEndPoints with the value "3" and the other two had that value set to "2"
I guess this Class implies that the CDC interface realisation is manufacturer specific. But how come it worked before for both modems?
If I break the comparator function and make it hook up to an interface with the CLASS 255, the modem will be useless further on anyway:
if ((Interface->Class == CDC_CSCP_CDCClass || Interface->Class == 0xFF) && (Interface->SubClass == CDC_CSCP_ACMSubclass || Interface->SubClass == 0xFF) && (Interface->Protocol == CDC_CSCP_ATCommandProtocol || Interface->Protocol == 0xFF)) { return DESCRIPTOR_SEARCH_Found; }