cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H745 with MT25QL128A QSPI Flash algorithm .flm

YSN
Senior

Hi I was using 1Gb Flash erlier, now due to flash unavailability. I had to choose different QSPI flash MT25QL128A. But unfortunately there is no flash algorithm .flm file for this flash for STM32H745 device for keil

Can anybody help me with Flash algorithm source or .flm file for below PIN configuration ?

IO0 -- PD11

IO1 -- PF9

IO2 -- PF7

IO3 -- PF6

CLK -- PF10

NCS -- PG6

If possible, kindly compile for MT25QL128/256/512 as well.. so that for any future requirements it will be easy to migrate.

1 ACCEPTED SOLUTION
11 REPLIES 11

I have tried h7_mt25q128, on my custom board with part number MT25QL128ABB8E. But it is failing to verify constantly.

Erase and Write are happening, verify always fails ?

Any advice?

I'll have to spend some more time evaluating. Your BSP works?

I have MICRON RW207 parts

https://www.micron.com/products/nor-flash/serial-nor-flash/part-catalog/mt25ql128aba8esf-0sit

RW311 ?? You have these parts in a SOIC16/SOP16 300-mil package?

https://www.micron.com/products/nor-flash/serial-nor-flash/part-catalog/mt25ql128abb8esf-0aut

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

My Part Number is : MT25QL128ABA8ESF-0AAT TR.

It is RW199.

https://www.micron.com/products/nor-flash/serial-nor-flash/part-catalog/mt25ql128aba8esf-0aat

Is it not compatible with .FLM ?

Just needed to work out several quirks, also Keil has issues with long names, so needed to change the strategy there.

The RAM for the algorithms needs to accommodate the size of the loaders

https://github.com/cturvey/stm32extldr/blob/main/h7_mt25q128/README.md

https://github.com/cturvey/stm32extldr/blob/main/h7_mt25q128/MT25Q128_STM32H7XX-CUSTOM9.FLM

I tested with CUSTOM4 which is the pin mapping I have on the NUCLEO-H743ZI

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

@Community member​ Thanks a lot for your efforts in clearing the issue. I am now able to successfully flash thorough your CUSTOM9 FLM in my STM32H745 board. But some how still the code is not able to run from external flash. I have verified all the linker settings and my peripheral configuration is as below

static void MX_QUADSPI_Init(void)

{

BSP_QSPI_Init_t qspi_initParams ;

 /* USER CODE BEGIN QUADSPI_Init 0 */

 /* USER CODE END QUADSPI_Init 0 */

 /* USER CODE BEGIN QUADSPI_Init 1 */

 /* USER CODE END QUADSPI_Init 1 */

 /* QUADSPI parameter configuration*/

 hqspi.Instance = QUADSPI;

 hqspi.Init.ClockPrescaler = 3;

 hqspi.Init.FifoThreshold = 1;

 hqspi.Init.SampleShifting = QSPI_SAMPLE_SHIFTING_NONE;

 hqspi.Init.FlashSize = 23;

 hqspi.Init.ChipSelectHighTime = QSPI_CS_HIGH_TIME_3_CYCLE;

 hqspi.Init.ClockMode = QSPI_CLOCK_MODE_0;

 hqspi.Init.DualFlash = QSPI_DUALFLASH_DISABLE;

hqspi.Init.FlashID = QSPI_FLASH_ID_1;

 if (HAL_QSPI_Init(&hqspi) != HAL_OK)

 {

  Error_Handler();

 }

 /* USER CODE BEGIN QUADSPI_Init 2 */

/* USER CODE BEGIN QUADSPI_Init 2 */

 qspi_initParams.InterfaceMode = MT25TL01G_QPI_MODE;

 qspi_initParams.TransferRate = MT25TL01G_DTR_TRANSFER ;

 qspi_initParams.DualFlashMode = MT25TL01G_DUALFLASH_DISABLE;

 BSP_QSPI_DeInit(0);

 if (BSP_QSPI_Init(0, &qspi_initParams) != BSP_ERROR_NONE)

 {

  Error_Handler( );

 }

 if(BSP_QSPI_EnableMemoryMappedMode(0) != BSP_ERROR_NONE)

 {

  Error_Handler( );

 }

HAL_NVIC_DisableIRQ(QUADSPI_IRQn);

 /* USER CODE END QUADSPI_Init 2 */

 /* USER CODE END QUADSPI_Init 2 */

}

Any more details are missing or any other suggestions ?

MT25TL01G commands/modes aren't likely to work here.

If you plan on using multiple potential QSPI NOR Flash devices you're likely going to want to use the READ ID command to identify them, and adapt the read code/configuration accordingly.

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

Ohh,

I wanted to integrate MT25QL128A in place of MT25TL01G with STM32H745 for touchgfx integration. But there is a BSP Frame work associated with MT25TL01G driver like enableMemoryMapped IO etc.

Is there any driver with for MT25QL128A which is already integrated with touchgfx ?

@Community member​ I have modified all the configuration as required by MT25QL128 by removing 4-byte address modes from MT25TL01G  driver. But still getting flickering images and unable to figure out what is wrong.. Do you have any suggestions / main differences between MT25QL128 and MT25QL512 other than 4-byte addressing modes. Like Dummy Cycle config ? I have used 8 cycles as it is mentioned in the data sheet. 24 Bit instead of 32-bit. Size is adjusted to 24..

But still missing something?