楼主,请问下您用过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);
|