cancel
Showing results for 
Search instead for 
Did you mean: 

Facing issue in read ADC with GPDMA in STM32U585ZIT6Qwith trust zone option enabled

JShah.7
Associate III

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.

16 REPLIES 16

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.


_legacyfs_online_stmicro_images_0693W00000dDUHxQAO.pngadc1ConvBuff[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.

RomainR.
ST Employee

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.

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.

 
_legacyfs_online_stmicro_images_0693W00000dDZi5QAG.png Please guide me for same or please provide example code for ADC_GPDMA in non secure.  

RomainR.
ST Employee

Hello JShah.7 (Community Member)

Change the Runtime context of your ADC1 in the STM32CubeMX configuration from M33S to M33NS.


_legacyfs_online_stmicro_images_0693W00000dDa62QAC.pngThen 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.

JShah.7
Associate III

Hi @RomainR.​ 

Thanks for support. I have tried as per your suggestion but still i am facing issue for ADC1/ADC4 with DMA in non secure zone. I have attached my code .Please guide me if any wrong parameter configured. Or please share working example code for same.

RomainR.
ST Employee

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.


_legacyfs_online_stmicro_images_0693W00000dDcOSQA0.pngAs explained before, I just changed ADC1 secure context as following.


_legacyfs_online_stmicro_images_0693W00000dDcQnQAK.png

  • Regenerated the projet
  • Move ADC1 user code and callback from \secure\main.c to \Nonsecure\main.c

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.

JShah.7
Associate III

Hi @RomainR.​ 

Thanks for support. Code is working fine.