2023-06-06
10:35 PM
- last edited on
2023-06-27
06:41 AM
by
Laurids_PETERSE
Hi;
I am using STM32U585ZIT6Q controller in my current project. I am enabled Trust Zone option.
I have configured ADC 1 (4 channel) in non secure with GPDMA.I am not able to read ADC data. I have attached all configuration. I have used HCLK(160MHz) for ADC.
if i got working example then it will more helpful.
Please help me for same.
Solved! Go to Solution.
2023-06-09 05:09 AM - edited 2023-11-20 03:47 AM
Hello @JShah.7 (Community Member)
Here attached a STM32CubeIDE project with Trust zone enabled using ADC1 in following context.
The project was designed for B-U585I-IOT02A board, but it should works on your device.
Secure context:
The ADC1 use GPDMA1 CH10 to convert Internal channel VBAT, TEMP_SENSOR and VREF (see watch expression capture below).
PH7 use a Led light on/off to show ADC+GPDMA activity.
adc1ConvBuff[0] = ADC_CHANNEL_VBAT DIV4 ~1034lsb with ADC1 in 12b resolution.
adc1ConvBuff[1] = ADC_CHANNEL_TEMPSENSOR ~941lsb
adc1ConvBuff[2] = ADC_CHANNEL_VREFINT ~1427lsb
Then the secure code start the non-secure code below
Non-Secure context:
A second LED controled by PH6 in non-secure is toggling in while(1) loop.
You should see in U585I-IOT02A_ADC_GPDMA.ioc the correct configuration for GPDMA transfer and compare with your project.
This video could also help you.
https://www.youtube.com/watch?v=R9DsR-qF3bw&t=1189s
Regards,
Romain,
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.
2023-06-09 05:17 AM
Hi @ChintaN (Community Member)
Yes, based to RM0456, Table 4. Securable peripherals by TZSC, you can see all the peripheral can be either securable or TrustZone-aware.
BR
Romain,
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.
2023-06-11 11:05 PM - edited 2023-11-20 03:47 AM
Hi @RomainR.
Thanks for support. I test above code and its working fine. ADC with GPDMA in secure zone works fine.
I have two ADC ,one in secure zone and other in non secure.
Can you suggest me what changes need to do in above code to run adc in non secure zone?
I follow below configuration steps to run ADC in non secure zone.
1)Take above code as reference.
2)Configure ADC1 in non secure.
3)Configure GPDMA for non secure (Security tab->attached pic).
4)only one time get GPDMA interrupt after that not getting.
Please guide me for same or please provide example code for ADC_GPDMA in non secure.
2023-06-12 12:41 AM - edited 2023-11-20 03:47 AM
Hello JShah.7 (Community Member)
Change the Runtime context of your ADC1 in the STM32CubeMX configuration from M33S to M33NS.
Then apply same ADC1 and GPDMA1 Parameters setting than my .ioc example, except for GPDMA1 Security, you need to configure a new Channel in Non Secure/Non Priviledged.
Then configure NVIC _NS to generate new GPDMA channel and ADC1 global interrupt.
Check also Security GTZC_S and GTZC_NS, ADC1 should be configured in Non secure mode.
Regards,
romain,
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.
2023-06-12 02:08 AM
2023-06-12 07:56 AM - edited 2023-11-20 03:48 AM
Here attached my previous project with ADC1 in non secure context (NS) and in 12bit resolution.
I also added ADC1 channel computation en mV for VREFINT, VBAT and Degree Celsius for TempSensor.
I do not implemented ADC4, it's up to you for its implementation where you want.
As explained before, I just changed ADC1 secure context as following.
Good luck.
Romain,
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.
2023-06-12 11:38 PM
Hi @RomainR.
Thanks for support. Code is working fine.
2024-07-25 02:21 AM
Hello I have a similar issue .
does this mean that we cant use ADC1 on the secure side of the code?