Skip to main content
Amith_lal
Associate III
February 9, 2024
Solved

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

  • February 9, 2024
  • 2 replies
  • 1761 views

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

Best answer by Federica Bossi

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
 }

2 replies

Federica Bossi
Technical Moderator
February 9, 2024

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 'Accept as Solution' on the reply which solved your issue or answered your question.
Amith_lal
Amith_lalAuthor
Associate III
February 9, 2024

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
Technical Moderator
February 13, 2024

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 'Accept as Solution' on the reply which solved your issue or answered your question.
Associate
February 6, 2025

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
February 6, 2025

@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.