I found the issue keeping the HID interface from working. Every time you receive a HID report, you need to rearm the read interface, which I knew and thought was implemented. This also needs to happen at the beginning in initialization. There were several calls to his in the switch statements, but either the code never passed through these case statements or did so at the wrong time. I put printf statements in the HID event handler and the USB task case statements so I could watch the startup process. The only HID report that was happening was Set IDLE and then the interface would hang. So I added the rearm in that event and it all works now. The PC program and the PIC32 device exchange messages and the PIC32 device is initialized. Not sure that is the correct place for it, but that is where it is for now.
I coded the MP3 player portion and ran some tests. When commanded the, PIC32 loads the file, reads it in and sends it to the VS1053. When it is done, the file is closed and the USB is reconnected.The player code was hung up trying to stop the VS1053, but for a first run, not bad. Now I need to verify that VS1053 is initialized correctly and the data is going to the right ports. Time for the logic analyzer.
Observation:
I have noticed that the demo apps are not consistent in implementation. I have been through about 5 or 6 of them now as I worked on getting the SPI to work, SST26 FAT, a basic HID and then HID and MSD. They are good at showing functionality, may not be as good at robust production code. And when you combine two different apps to get combination functionality, you can run into some quirks.
No comments:
Post a Comment