cancel
Showing results for 
Search instead for 
Did you mean: 

STM32MP157 MINI - ADC Analog Muti channel IO

bass34
Associate II

Hello friends,
Please, if you can really help me, I'm not an expert in the Linux device tree.

I urgently need to understand the commands to execute on the device tree on the powerful STM32MP157 MINI Linux board alientek ATOMIC (Note: Chinese language, please right click google automatically translate from browser):

https://www.bilibili.com/video/BV15U4y1E7Bh/

https://www.bilibili.com/video/BV1kr4y1c7bv/

https://www.alientek.com/Product_Details_17/31.html

 

WiKi Compiler YOCTO Linux Image:

https://han-ya.blogspot.com/2024/03/stm32mp157-linux.html

GUI QT

 

 

ADC1+ADC2  - Analog Multi channel IO

ARM_LINUX_ADC_RS485_MCU_EEPROM_PANEL_v2.jpg

STM32MP157_MINI_Periferiche_inizializzate.jpg

DEVICE TREE

It is essential to create from device tree :

- 8 ANALOG type GPIO physical pins on the board (AN0,AN1,AN2, AN3,AN4,AN5,AN6,AN7)

- 3 GPIO physical pins of PWM type real time motors on the board (PWM0, PWM1,PWM3)


But manufacturing company says only 2 ADC pins can be read,
I attach STM32MP157 MINI mapping:

bass34_0-1717702888727.png

bass34_0-1717704467061.png

STM32MP157DAA1_1G-RAM _ 8GB-eMMC - Datasheet
But the powerful SOM BOARD STM32MP157DAA1_1G-RAM _ 8GB-eMMC clearly specifies 22 multiple IO Analog channels on ADC1 and ADC2 and 32 multiple PWM IO channelsADC_PWM_channel.jpg


Please multiple control of 8 analog sensors and 3 PWM sensors (motor control) in Linux is fundamental for my machine control project from Linux CPU, that's why I chose the powerful STM32MP157 MINI board from alintek (STM32MP157DAA1_1G-RAM _ 8GB-eMMC)


Your precious help is essential, thanks

12 REPLIES 12
bass34
Associate II

Hello all friends,
a beautiful day today!

A first uImage KERNEL Linux YOCTO STM32MP157 board image has been generated, it is only a first generation test but the cross compiler did not throw errors:

uImage_YOCTO_kernel_created.jpg


this guide was fundamental (Chinese, right click automatically translate from Browser please):
https://www.bilibili.com/read/cv11484220/

Now what needs to be done:
1) uImage (local pc):
uImage should be loaded on the File System of the STM32MP157 board in /boot or in which path??

2) DEVICE TREE FILES MODIFIED (local pc)
NOTE: I remember the modified device tree files are the following (see ADC MULTIPLEXING manual EN on page 52:
- stm32mp15-pinctrl.dtsi
- stm32mp157d-atk.dtsi

Which device tree files should be loaded onto the File System of the STM32MP157 motherboard and where should they be loaded in which path??:
- stm32mp157d-atk-hdmi.dtb (???)
- stm32mp157d-atk-hdmi.dts (???)
- stm32mp15-pinctrl.dtsi (???)

file_dtsi_dts_dtb_UPLOAD_SCP_STM32MP157_board.jpg


3) SOFTWARE TEST READING MULTI ANALOG DEVICE - MULTI PIN Analog GPIO 
It is possible to indicate an example of a Python3 script to read 8 analog devices connected to the respective GPIO pins compiled in the files
Device tree modified:
- stm32mp15-pinctrl.dtsi
- stm32mp157d-atk.dtsi

--------------------------------------------------------------------

Note*: PowerFull DFRobot pinPong Library (Prefer):

https://www.unihiker.com/wiki/pinpong_python_lib​
https://wiki.dfrobot.com/pinpong_introduction
https://www.unihiker.com/wiki/system-framework​
-----------------------------------------------------------------

 

4) BACKUP FIRMWARE YOCTO STM32MP157 (eMMC)

Is there a method to extract entire Linux YOCTO system image of STM32MP157 board written to eMMC (backup)????
NB. It is important to have an entire backup image of the working firmware on the board, for quick recovery in the event of a crash of the YOCTO Linux operating system, STM32MP157 board unreachable after loading new uImage system files and other device tree dtb files, etc. 

 

 

Link MEGA MULTIPLEXING Manual STM32MP157 Board (multi-language):

https://mega.nz/file/0iJTjApI#3x6eQ35KSevHkDpJcFvLIR6EgpqzxIrTPmTkU-hLRNM

 


Thank you for your support, it is now fundamental, alientek does not release information

is there anyone here who can help to make ADC multiplexing work, read 5 analog devices on 5 GPIO pins on Linux STM32MPX boards???

Hi @bass34 

I'm not expert and not knowledgeable on the board you are using, I will try to help you on that topics:

1) please have a look to https://wiki.st.com/stm32mpu/wiki/OpenSTLinux_directory_structure

2) please have a look to https://wiki.st.com/stm32mpu/wiki/STM32_MPU_device_tree

3) those should help:

https://wiki.st.com/stm32mpu/wiki/ADC_OpenSTLinux_drivers#Linux_kernel_driver

https://wiki.st.com/stm32mpu/wiki/How_to_use_the_IIO_user_space_interface#How_to_do_a_simple_ADC_conversion_using_the_sysfs_interface

4) I did not fully understand your concern, with Yocto and embedded Linux systems, you should (and you must) generate a customized full image of all the eMMC partitions (in order to being able in production to flash blank boards using STM32CubeProg or else), so backup is not a concern as eMMC image is already on your PC.

Regards.

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.