I’ve been slowly working on integrating analog controls into the lovely Goom port for the STM32F4 and hit a bit of a roadblock. The AINSer64 module won’t initialize (no pulsing link light). I can get it to work only if I disable the last line of the following function. Commenting it out and returning 0, allows the AINSer64 to do its job, the link led pulses and turning knobs send debug messages with proper pin numbers and values. The Goom synth also works just fine without any of the AINSER code present. Currently the AINSER64 is setup on J19 / SPI 2.
s32 SYNTH_Init(u32 mode)
{
// initialize the AINSER module(s)
AINSER_Init(0);
// start task
xTaskCreate(TASK_Synth_Update, “SynthUpdate”, configMINIMAL_STACK_SIZE, NULL, PRIORITY_TASK_SYNTH_UPDATE, NULL);
xTaskCreate(TASK_AINSer_Scan, “AINSerScan”, configMINIMAL_STACK_SIZE, NULL, PRIORITY_TASK_AINSER_SCAN, NULL);
//use J10A.D0 for performance measurements
MIOS32_BOARD_J10_PinInit(0, MIOS32_BOARD_PIN_MODE_OUTPUT_PP);
// start I2S DMA transfers
return MIOS32_I2S_Start((u32 *)&sample_buffer[0], SAMPLE_BUFFER_SIZE, &SYNTH_ReloadSampleBuffer);
}
I2S is enabled in the config file. I saw that it can conflict with the SRIO SPI, tried setting SRIO_SPI to 0, with no luck. I wasn’t sure if that applied here or not.
Have tried this same code with ReloadSampleBuffer as an empty function, with the same results. I’m assuming the issue is somewhere in the I2S_Start function, but reading through that I didn’t notice any obvious issues.
Other AINSer apps like MIDIO128 work fine. I did have issues with the Jitter Monitor though - it just scrolls endlessly, returning empty results for all modules. I haven’t delved deeper into that since the module was returning results without any issues outside of trying to implement it in Goom.
Any insight into what might be happening here?
Thanks
Jeff