Other Parts Discussed in Thread: MSP430F5638, MSP430F5529, TUSB3410, MSP430F1612
I started with the MSP-EXP430F5529 Experimental Board and got everything to work as needed with the code provided. Now for my particular project there are a lot more features we need the MSP430 to do and we wanted a smaller package. We designed a new board using the MSP430F5638, which also has the USB port and uses the same user guide as the MSP430F5529.
I am trying to get the USB to work on this new board with the MSP430F5638. I imported the USB code over, but it fails. I can do the initial set up just fine, call the MassStorage function, show that the USB is connected and enabled, but it gets stuck in the USB_Reset function. In the function it sets up the IEPs like shown below.
BYTE edbIndex = stUsbHandle[i].edb_Index;
/* Set settings for IEPx */
tInputEndPointDescriptorBlock[edbIndex].bEPCNF = EPCNF_USBIE |
EPCNF_UBME |
EPCNF_DBUF; //double buffering
tInputEndPointDescriptorBlock[edbIndex].bEPBBAX =
(BYTE)(((stUsbHandle[i].iep_X_Buffer -
START_OF_USB_BUFFER) >> 3) & 0x00ff);
// This is as far as the code will go
tInputEndPointDescriptorBlock[edbIndex].bEPBBAY =
(BYTE)(((stUsbHandle[i].iep_Y_Buffer -
START_OF_USB_BUFFER) >> 3) & 0x00ff);
// The CPU turns off after this instruction or just goes to the program start if I step into this line.
Now how do I get past this?