cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H743ZI-NUCLEO UART DMA experiment for help

one V
Associate III
Posted on November 16, 2017 at 04:48

The UART DMA communication experiment using STM32H743ZI-NUCLEO development board, the routine can work, but the project generated using CUBEMX (V4.23) and STM32CubeH7 Firmware Package V1.1.0 can not work, the performance is TX no data out.

P

roject 

generated with STM32F446ZI-NUCLEO can also work. Anyone have encountered such a situation? Ask for help!
6 REPLIES 6
Xiangyu Chen
Associate
Posted on November 16, 2017 at 06:39

Hello, I guess the recent STM32CUBE is not ready for the development of new MCUs.

There are a lot of bugs when a new MCU appears. 

Uart is not the only bug, the DFSDM clock is also limited to 12.5Mhz while it should be as fast as the PCLK2.

I suggest you either wait or check into peripheral initialization file uart.c,  check if the parameters in that file is as same as what is written in stm32cube. 

Joerg Wagner
Senior III
Posted on November 16, 2017 at 08:38

Hello.

The STM32H743ZI has a different memory structure and software of STM32F7xx /STM32F4xx will not work.

When you search for 'H743 DMA' you will find my answers regarding this.

Assuming you did not change the linker script, your data wil be located in DTCMRAM (0x20000000 - 0x20020000).

But the peripheral DMA controllers do not have access to this RAM block. There is no interconnection in the matrix.

(Take a brief look at page 99 and page 100 in the Reference Manual RM0433)

You have two options:

Simple way: Set the start address of your RAM to  0x24000000 in the linker script (D1 domain, page 109 in RM0433).

Advanced: Or use a .section command for your memory stream in the linker script and in your code.

- Joerg -

Posted on November 16, 2017 at 18:27

Hello. You should open a topic.

DFSDM clock maximum speed can be even fSYSCLK (page 163 in the Datasheet).

- Joerg -

Posted on November 17, 2017 at 03:21

Joerg

 ,

Thank you very much. Indeed, as you said, I did not notice the DMA address problem. The problem is solved, thanks again.

Posted on November 17, 2017 at 09:59

Thank you very much. Indeed, as you said, I did not notice the DMA address problem. The problem is solved, thanks again.

https://community.st.com/0D50X00009bMM5DSAW

 
Posted on February 20, 2018 at 17:32

static void MPU_Config(void)
{
 MPU_Region_InitTypeDef MPU_InitStruct;
 /* Disable the MPU */
 HAL_MPU_Disable();
 MPU_InitStruct.Enable = MPU_REGION_ENABLE;
 MPU_InitStruct.BaseAddress = 0x24000000;
 MPU_InitStruct.Size = MPU_REGION_SIZE_512KB;
 MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
 MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;
 MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
 MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
 MPU_InitStruct.Number = MPU_REGION_NUMBER0;
 MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
 MPU_InitStruct.SubRegionDisable = 0x00;
 MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;
 HAL_MPU_ConfigRegion(&MPU_InitStruct);
 /* Enable the MPU */
 HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);
}�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..