AT32F435ZMT7芯片中的XMC在使用同步复用模式连接PSRAM时,PD3CLK引脚为什么没有时钟啊?
这是我的初始化函数代码
gpio_init_struct.gpio_pins = GPIO_PINS_3; //CLK
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init(GPIOD, &gpio_init_struct);
/*-- xmc configuration ------------------------------------------------------*/
xmc_norsram_default_para_init(&xmc_norsram_init_struct);
xmc_norsram_init_struct.subbank = XMC_BANK1_NOR_SRAM3; //XMC_BANK1_NOR_SRAM3
xmc_norsram_init_struct.data_addr_multiplex = XMC_DATA_ADDR_MUX_ENABLE; //复用
xmc_norsram_init_struct.device = XMC_DEVICE_PSRAM; //PSRAM设备
xmc_norsram_init_struct.bus_type = XMC_BUSTYPE_16_BITS; //16bit
xmc_norsram_init_struct.burst_mode_enable = XMC_BURST_MODE_ENABLE; //突发模式配置
xmc_norsram_init_struct.asynwait_enable = XMC_ASYN_WAIT_DISABLE; //异步传输期间等待信号使能控制
xmc_norsram_init_struct.wait_signal_lv = XMC_WAIT_SIGNAL_LEVEL_LOW; //等待信号极性,在同步模式下,此位设置NWAIT 信号极性
xmc_norsram_init_struct.wrapped_mode_enable = XMC_WRAPPED_MODE_DISABLE; //支持非对齐的成组模式,XMC 于同步模式时是否支持将非对齐的AHB 成组操作拆成2 次操作
xmc_norsram_init_struct.wait_signal_config = XMC_WAIT_SIGNAL_SYN_BEFORE; //等待时序配置,仅在同步模式有效
xmc_norsram_init_struct.write_enable = XMC_WRITE_OPERATION_ENABLE; //写使能位
xmc_norsram_init_struct.wait_signal_enable = XMC_WAIT_SIGNAL_ENABLE; //同步传输期间等待信号使能位
xmc_norsram_init_struct.write_timing_enable = XMC_WRITE_TIMING_DISABLE; //读写时序不同控制位,读存储器与写存储器使用不同的时序进行操作,即SRAM/NOR 闪存写时序寄存器(XMC_BKxTMGWR)被开放
xmc_norsram_init_struct.write_burst_syn = XMC_WRITE_BURST_SYN_ENABLE; //对存储器写操作位
xmc_nor_sram_init(&xmc_norsram_init_struct);
/* timing configuration */
xmc_norsram_timing_default_para_init(&rw_timing_struct, &w_timing_struct);
rw_timing_struct.subbank = XMC_BANK1_NOR_SRAM3; //指定需要复位的subbank
rw_timing_struct.write_timing_enable = XMC_WRITE_TIMING_DISABLE; //读写时序不同控制位,读存储器与写存储器使用不同的时序进行操作,即SRAM/NOR 闪存写时序寄存器(XMC_BKxTMGWR)被开放
rw_timing_struct.addr_hold_time = 0x00; //地址保持时间
rw_timing_struct.addr_setup_time = 0x00; //地址建立时间
rw_timing_struct.data_setup_time = 0x00; //数据建立时间
rw_timing_struct.data_latency_time = 0x0A; //数据延迟,仅在同步模式有效
rw_timing_struct.bus_latency_time = 0x0; //总线延迟时间,为了防止数据总线发生冲突,在复用模式或同步模式时,一次读操作之后XMC在数据总线上插入延迟
rw_timing_struct.clk_psc = 0x0; //时钟分频系数,仅在同步模式有效,定义XMC_CLK 时钟的频率
rw_timing_struct.mode = XMC_ACCESS_MODE_A; //异步访问模式选择位,只在RWTD 位使能时有效
w_timing_struct.subbank = XMC_BANK1_NOR_SRAM3;
w_timing_struct.write_timing_enable = XMC_WRITE_TIMING_DISABLE;
w_timing_struct.addr_hold_time = 0x00;
w_timing_struct.addr_setup_time = 0x00;
w_timing_struct.data_setup_time = 0x00;
w_timing_struct.data_latency_time = 0x0A;
w_timing_struct.bus_latency_time = 0x0;
w_timing_struct.clk_psc = 0x0;
w_timing_struct.mode = XMC_ACCESS_MODE_A;
xmc_nor_sram_timing_config(&rw_timing_struct, &w_timing_struct);
|