The issue on FMC EXTMODE ModeA write access
Hi community,
I'm developing on STM32F7, it accesses the external device via FMC.
Then it can read the external device's register, but it cannot write to the register.
The external device expects EXTMODE ModeA timing like the following figure.

Reference from
RM0410 Rev 4 Reference manual
STM32F76xxx and STM32F77xxx advanced Arm®-based 32-bit MCUs
Our issue is that NEx signal and NWE signal are falling down at the same time on our target board.
Here is the code for initializing FMC.
-----
/** Perform the SRAM4 memory initialization sequence
*/
hsram4.Instance = FMC_NORSRAM_DEVICE;
hsram4.Extended = FMC_NORSRAM_EXTENDED_DEVICE;
/* hsram4.Init */
hsram4.Init.NSBank = FMC_NORSRAM_BANK4;
hsram4.Init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE; /* MUXEN =0 */
hsram4.Init.MemoryType = FMC_MEMORY_TYPE_SRAM; /* MTYP =0 */
hsram4.Init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_16; /* MWID =1 */
hsram4.Init.BurstAccessMode = FMC_BURST_ACCESS_MODE_DISABLE; /* BURSTEN =0 */
hsram4.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW; /* WAITPOL =0 */
hsram4.Init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS; /* WAITCFG =0 */
hsram4.Init.WriteOperation = FMC_WRITE_OPERATION_ENABLE; /* WREN =1 */
hsram4.Init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE; /* WAITEN =0 */
hsram4.Init.ExtendedMode = FMC_EXTENDED_MODE_ENABLE; /* + EXTMOD =1 */
hsram4.Init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_DISABLE; /* ASYNCWAIT =0 */
hsram4.Init.WriteBurst = FMC_WRITE_BURST_DISABLE; /* CBURSTRW =0 */
hsram4.Init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ONLY; /* CCLKEN =0 */
hsram4.Init.WriteFifo = FMC_WRITE_FIFO_ENABLE; /* WFDIS =0 */
hsram4.Init.PageSize = FMC_PAGE_SIZE_NONE; /* CPSIZE =0 */
/* Timing */
Timing.AddressSetupTime = 4; /* + ADDSET =4 */
Timing.AddressHoldTime = 15; /* ADDHLD =15 */
Timing.DataSetupTime = 18; /* + DATAST =18 */
Timing.BusTurnAroundDuration = 2; /* + BUSTURN =2 */
Timing.CLKDivision = 16; /* CLKDIV =15(16*HCLK) */
Timing.DataLatency = 17; /* DATLAT =15(17CLK-2) */
Timing.AccessMode = FMC_ACCESS_MODE_A; /* ACCMOD =0 */
/* ExtTiming */
ExtTiming.AddressSetupTime = 4; /* + ADDSET =4 */
ExtTiming.AddressHoldTime = 15; /* ADDHLD =15 */
ExtTiming.DataSetupTime = 25; /* + DATAST =25 */
ExtTiming.BusTurnAroundDuration = 2 ; /* + BUSTURN =2 */
ExtTiming.AccessMode = FMC_ACCESS_MODE_A; /* ACCMOD =0 */
if (HAL_SRAM_Init(&hsram4, &Timing, &ExtTiming) != HAL_OK)
{
Error_Handler( );
}
-----
What is the wrong for this issue?
Thanks in advance for any help.
Thanks,
Hiromichi
