Hello,
I have been working on porting over the stm32f746 example to stm32h7a3 nucleo board.
I have the usb device emulating correctly for audio / hid. Windows see the device correctly etc.
My problem occurs when I attempt to connect to the awe server. After i change the target connection to usb and enter 1155 for vid and pid of 759 (modified the usb driver for 759 instead of 746), I get the error can't connect to target.
So far a have traced the issue back to the input report (HID) is not being sent. Inside tuningdriver.c the processusbmsg_irqhandler is called and USBD_LL_Transmit function in called.
USBD_LL_Transmit(&hUsbDeviceHS, HID_IN_EP, HIDInBuff, HID_REPORT_PACKET_SIZE); The endpoint is correct, 0x03.
It appears the AWEIdleLoop to exit but the program isn't in a fault state because I can unplug and plug the usb comms cable and windows will start emulate the device.
Any guesses to what I missed on the HID side?
Thanks
Mike
1:03pm
attachment of the emulation
1:04pm
no report in
1:29pm
made some progress.
It seems the following fifo i had incorrect
HAL_PCDEx_SetRxFiFo(&hPDC_USB_FS, 0x80);
HAL_PCDEx_SetTxFiFo(&hPDC_USB_FS, 0, 0x40);
HAL_PCDEx_SetTxFiFo(&hPDC_USB_FS, 3, 0x40);
prior I had HAL_PCDEx_SetTxFiFo(&hPDC_USB_FS, 1, 0x40); set. I am guess the 2nd parameter is the endpoint? not sure.
So now I actually get a hard fault but the report message does get responded. Problem now seems to be in the awe_fwGetTargetInfo() and awe_processorLockInit().
5:01pm
Unfortunately debugging USB issues is outside the scope of support offered by this forum. However, I offer two possibilities to investigate. It may be that something is wrong with your USB descriptors or that you did not pend a read operation on the interrupt pipe to receive HID messages.
5:13pm
Hi Chris, thanks for the reply but why would you say this is still USB issue? I believe I have the usb part solved. My problem at this point is awe_processorLockInit() causes my unit to go into a hard fault.
I have two devices one being the F746 and I have compared the USB audio/hid results for windows and they are basically identical.
I will double check the usb part but I still feel that this new error might not be USB related. Because if it was I probably would not get the command to get target information and attempt to perform and processor lock.
Is there any documentation on this processorlockInit function? What exactly is this function attempting to do, whatever it is a hard fault is my situation.
please see the above attachment, stackcall_hardfault.jpg
thanks
mike
5:39pm
awe_processorLockInit checks if you are running on the expected ST hardware. Are you porting to an ST eval board?
5:44pm
If you are running on an STM32H7A3 it appears that the version of AWECore you are using may not be compatible with that part. You may need a version of AWECore that is not locked to ST until we get this resolved. Please contact DSP Concepts explaining the issue and ask for a version of AWECore that is not locked.
6:12pm
Thanks Chris. This now all makes sense. Appreciate your response and patience.