XNucleo-CCA01m1 Error code 20

20 Jun 2019

I know this has been discussed before on the forums, but I have tried the workarounds suggested by the community and have not been able to fix the error for my case. I am currently trying to get a sound terminal board based on the sta350bw to work on a Nucleo-f767zi board. Whenever I go to compile any program that includes the sta350bw library I get the following error:

Error: Identifier "I2S" is undefined in "X_NUCLEO_CCA01M1/Components/STA350BW/STA350BW.h", Line: 467, Col: 6 Info: Unable to download. Fix the reported errors...

I have tried changing the pins to a known i2s interface and have had no luck. I have tried updating the libraries and changing the targets, and I still get the same error. I could use some help. Any suggestions?

23 Sep 2019

Hello Will,

I assume that I2S refers to I2C bus. Most probably the error happened because sta350bw library try to control peripheral register and mbedOS already controls those. So the sta350bw library work on too low register level. MbedOS already creates I2C bus and controls that.

In general register level operations are not available from external libraries or application level with mbedOS. Is it possible to use higher level of the library and let mbedOS handle and init I2C bus?

Regard, Pekka

30 Sep 2019

Hi Pekka, Thanks for the response. Honestly, I just gave up on this. I figured out that ST hasn't created an I2S library for the STM32-F767zi, at least for mbed and doesn't support the cca01m1 with the stm32f767zi. This is despite the fact that the stm32F767zi has up to 5 i2s outputs.

It has support for the stm32f401re, however with mbed. It is pretty frustrating as they state that it is "compatible" with all Nucleo boards. This lack of support also transfers to using their own tools, as they only provide libraries/examples for five boards, not including the stm32f767zi., which, as far as I can tell, is the most high performance/most feature-rich Nucleo board. They even ported TensorFlow to it, but agian, their is no support for the amplifier board, which is really too bad. https://www.st.com/en/ecosystems/x-nucleo-cca01m1.html

https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-f767zi.html

I did mean I2s, it is a digital audio interface, similar to PCM, but with a master clock signal. Anyways, thanks for the response. Maybe at some point I will try to write a library, but I'm still learning and don't have the time at the moment.

Regards, Will