cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7,STM32H743 ADC with DMA

Volker Bremauer
Associate III
Posted on October 11, 2017 at 15:09

In summer 2017, I started an project with the STM32F767 on the Nucleo board, because the H743 was still announced but not available. For some weeks I got the new Nucleo board of the STM32H743.

After I transferred the code from the F767 to the H743, I recognized the not working DMA interrupt. The DMA interrupt was working on the 767 perfectly. So I reduced the code of the F767 and the H743 (by using cube) to only this function for see what�s the difference.
  • TIM3 managed 4 PWM Signals (22KHz) and triggers the ADC1 on falling edge and call the interrupt call back function. (LED GREEN toggles).
  • When ADC1 conversion is finished, the DMA is triggered and copies the data.
  • When the DMA transfer is completed, the call back function is called, and the BLUE LED toggles

I can�t see, why the interrupt for the DMA at the STM32H743 is not working!

Have somebody done something like this already and was successful?

I put both projects for Cube and the AC6 workbench to the attachment. Hope somebody can help me.

BR Volker

#stm32h743 #stm32h7
35 REPLIES 35
Posted on June 05, 2018 at 16:57

The original post was too long to process during our migration. Please click on the provided URL to read the original post. https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I6vN&d=%2Fa%2F0X0000000by4%2F7qXN8NmUL53wyCoz1ZPPCT295mvU6N0XgdEM_lV205k&asPdf=false

Posted on June 06, 2018 at 09:18

Hello Bremauer.VolkerI've got the same your problem. Please show me where is 
LinkerScript.ld located in. I couldn't find it in my project.

Posted on June 06, 2018 at 09:27

Name, syntax and location of the linker script depends on the toolchain (IDE).

Which one you are using ?

Posted on June 06, 2018 at 09:46

System Workbench for STM32 - OpenOCD (for Windows 32bits)

Version: 1.15.0.201708311556

Build id: @build@

Copyright (c) 2014 Ac6 Tools.  All rights reserved.

Visit

https://community.st.com/external-link.jspa?url=http%3A%2F%2Fwww.openstm32.org

Posted on June 06, 2018 at 09:54

Depending on your project structure, search for the *.ld extention.

You can define different scripts for Debug|Release

in my poject:

W:\Proj_H743\H743\STM32H743ZITx_FLASH.ld

0690X00000604cnQAA.jpg
Posted on June 06, 2018 at 12:48

Hi Volker, thanks for your reply. Is the linker file created by CubeMX or you edited it manually?

Posted on June 06, 2018 at 13:13

Thank for your replay. I use Keil 5 to complie, My project is read multi channels ADC, but I can't use DMA for ADC. If you know it, please help me!  I use stm32H743VI6 and variables adc_value not change...0690X0000060L9GQAU.png0690X0000060L9LQAU.png

Posted on June 06, 2018 at 14:36

Created by cube-x and edited by myself for my purpose.

Posted on June 07, 2018 at 15:15

Hi Nhan,

My setting for ADC1, of cause I am using also ADC2 and ADC3 (looks nearly same)

Difference to your app:

ADC1 is triggered by Timer3 Capture. In your example you want to trigger by SW.

0690X00000604UlQAI.jpg0690X00000604XpQAI.jpg0690X00000604gUQAQ.jpg

DMA definition for all ADC DMA channels

0690X00000604gZQAQ.jpg

Hope this helps.

Posted on June 08, 2018 at 13:12

The linker script you posted in the message differs from the one in the archive. Which one is correct?