2024-02-09 03:09 AM
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
Solved! Go to Solution.
2024-02-13 07:29 AM
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
}
2024-02-09 06:12 AM
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 :)
2024-02-09 11:46 AM
How can I program using other mcu is there any example for that and also what about flashing in to ISPU without software .
2024-02-13 07:29 AM
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
}