Skip to main content
Amith_lal
Associate III
Feb 9, 2024 11:09 AM UTC
Solved

Can we integrate LSM6DSO16IS (IMU) with MCUs and application processors other than STM32 ?

Do we need to use stm32 ODE hardware every time fro programming the ISPU?. If no, how can i flash the program in to ISPU?. Since ISPU have 40 kB RAM do we need to write program every time in to RAM while booting ?

https://www.st.com/content/st_com/en/campaigns/ispu-ai-in-sensors.html

This topic has been closed for replies.
Federica Bossi
Federica BossiBest answer
ST Technical Moderator
Feb 13, 2024 3:29 PM UTC

Hi @Amith_lal ,

Yes, you can use another MCU and you can also not use Unicleo but use the .h file which is a C header file that can be included in any firmware, you have to scroll through the array contained in the header file and perform the operations described.

You can refer to the example on github, in particular to this snippet:

 // load device configuration
 for (uint32_t i = 0; i < sizeof(ispu_conf) / sizeof(ucf_line_ext_t); i++) {
 if (ispu_conf[i].op == MEMS_UCF_OP_WRITE)
 write(ispu_conf[i].address, ispu_conf[i].data); // write to device
 else if (ispu_conf[i].op == MEMS_UCF_OP_DELAY)
 delay(ispu_conf[i].data); // delay in ms
 }
In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question.

5 replies

Federica Bossi
ST Technical Moderator
Feb 9, 2024 2:12 PM UTC

Hi @Amith_lal ,

Welcome to ST Community!

ISPU has to be reprogrammed every time the power supply is switched off. programming, you can do with any microcontroller.
For testing, the fastest thing is to use a nucleo board with the firmware in the X-CUBE-ISPU package, then use Unicleo to load the ucf.

This getting started video could be helpful for you :)

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question.
Amith_lal
Amith_lalAuthor
Associate III
Feb 9, 2024 7:46 PM UTC

How can I program using other mcu is there any example for that and also what about flashing in to ISPU without software .

Federica Bossi
Federica BossiBest answer
ST Technical Moderator
Feb 13, 2024 3:29 PM UTC

Hi @Amith_lal ,

Yes, you can use another MCU and you can also not use Unicleo but use the .h file which is a C header file that can be included in any firmware, you have to scroll through the array contained in the header file and perform the operations described.

You can refer to the example on github, in particular to this snippet:

 // load device configuration
 for (uint32_t i = 0; i < sizeof(ispu_conf) / sizeof(ucf_line_ext_t); i++) {
 if (ispu_conf[i].op == MEMS_UCF_OP_WRITE)
 write(ispu_conf[i].address, ispu_conf[i].data); // write to device
 else if (ispu_conf[i].op == MEMS_UCF_OP_DELAY)
 delay(ispu_conf[i].data); // delay in ms
 }
In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question.
Associate
Feb 6, 2025 3:55 PM UTC

What is the write function? I want to flash the ISPU of the LSM6DSO16IS. I have the shield X-Nucleo IKS4A1A.

Andrew Neil
Super User
Feb 6, 2025 3:59 PM UTC

@ChristianValota wrote:

What is the write function?.


It's a function that you implement to provide the interface to your particular hardware.

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.