Connection to FPGA with FSMC
Hello.
I’m trying to connect a F207ZG to the Avalon-Bus of an Altera FPGA. I want to use the FSMC of the STM32. Because the STM32 and the FPGA have different clock domains, I configured the FSMC as asynchronous SRAM:
/* FSMC initialization function */
void MX_FSMC_Init(void) { FSMC_NORSRAM_TimingTypeDef Timing;/** Perform the SRAM1 memory initialization sequence
*/ hsram1.Instance = FSMC_NORSRAM_DEVICE; hsram1.Extended = FSMC_NORSRAM_EXTENDED_DEVICE; /* hsram1.Init */ hsram1.Init.NSBank = FSMC_NORSRAM_BANK1; hsram1.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE; hsram1.Init.MemoryType = FSMC_MEMORY_TYPE_SRAM; hsram1.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16; hsram1.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE; hsram1.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW; hsram1.Init.WrapMode = FSMC_WRAP_MODE_DISABLE; hsram1.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS; hsram1.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE; hsram1.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE; hsram1.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE; hsram1.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_ENABLE; hsram1.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE; /* Timing */ Timing.AddressSetupTime = 1; Timing.AddressHoldTime = 15; Timing.DataSetupTime = 1; Timing.BusTurnAroundDuration = 1; Timing.CLKDivision = 16; Timing.DataLatency = 17; Timing.AccessMode = FSMC_ACCESS_MODE_A; /* ExtTiming */HAL_SRAM_Init(&hsram1, &Timing, NULL);
}
I designed an interface FSMC / Avalon in the FPGA. Therefore I want to use the asynchronous wait of FSMC.
But the FSMC_NWAIT signal doesn’t affect the timing of the FSMC.Does the FSMC_NWAIT signal work in asynchronous mode?
Guenter