楼主,请问下您用过gd32e503系列吗?m33内核。我现在把它配置成NOR和FPGA通信,始终不能成功。
这是我的初始化代码,还有时序参数
void Exmc_Norsram_Init()
{
exmc_norsram_parameter_struct norsram_init_struct;
exmc_norsram_timing_parameter_struct norsram_timing_init_struct;
/* enable EXMC clock*/
rcu_periph_clock_enable(RCU_EXMC); //时钟使能
rcu_periph_clock_enable(RCU_GPIOD);
rcu_periph_clock_enable(RCU_GPIOE);
rcu_periph_clock_enable(RCU_GPIOB);
/* configure GPIO */
/*************************************************************************
* AD[0~1]:PD14/15 AD[2~3]:PD0/1 AD[4~12]:PE7~15 AD[13~15]:PD8~10
* NADV:PB7 NE0:PD7 NWAIT:PD6 NWE:PD5 NOE:PD4
**************************************************************************/
gpio_init(GPIOD, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 |
GPIO_PIN_5 | GPIO_PIN_7 | GPIO_PIN_8 |
GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15 );
gpio_init(GPIOE, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 |
GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15);
gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7);
gpio_init(GPIOD, GPIO_MODE_IPU, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
norsram_timing_init_struct.asyn_address_setuptime = 6;//9
norsram_timing_init_struct.asyn_address_holdtime = 3;//2
norsram_timing_init_struct.asyn_data_setuptime = 11;//8
norsram_timing_init_struct.bus_latency = 3;//1
norsram_timing_init_struct.syn_clk_division = EXMC_SYN_CLOCK_RATIO_2_CLK;//EXMC_SYN_CLOCK_RATIO_DISABLE;
norsram_timing_init_struct.syn_data_latency = EXMC_DATALAT_2_CLK;
norsram_timing_init_struct.asyn_access_mode = EXMC_ACCESS_MODE_A;
norsram_init_struct.norsram_region = EXMC_BANK0_NORSRAM_REGION0;
norsram_init_struct.address_data_mux = ENABLE;
norsram_init_struct.memory_type = EXMC_MEMORY_TYPE_NOR;
norsram_init_struct.databus_width = EXMC_NOR_DATABUS_WIDTH_16B;
norsram_init_struct.burst_mode = DISABLE;
norsram_init_struct.nwait_polarity = EXMC_NWAIT_POLARITY_LOW;
norsram_init_struct.wrap_burst_mode = DISABLE;
norsram_init_struct.nwait_config = EXMC_NWAIT_CONFIG_BEFORE;
norsram_init_struct.memory_write = ENABLE;
norsram_init_struct.nwait_signal = DISABLE;
norsram_init_struct.extended_mode = DISABLE;
norsram_init_struct.asyn_wait = DISABLE;
norsram_init_struct.write_mode = EXMC_ASYN_WRITE;
norsram_init_struct.read_write_timing = &norsram_timing_init_struct;
norsram_init_struct.write_timing = &norsram_timing_init_struct;
exmc_norsram_init(&norsram_init_struct);
/* enable EXMC norsram bank0 */
exmc_norsram_enable(EXMC_BANK0_NORSRAM_REGION0);
|