This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3874上FPGA利用GPMC控制器通讯问题

采用GPMC控制器的片选CS2、D0~D15共16位数据线,A0~15共16位地址线,数据和地址不复用,采用异步方式进行电路设计。MUX配置如下:

omap_mux_init_signal("vout1_b_cb_c2.gpmc_a_0_mux1",TI814X_PULL_UP);//gp_a0
omap_mux_init_signal("mmc2_dat3.gpmc_a_1_mux1", TI814X_PULL_UP);//gp_a1
omap_mux_init_signal("mmc2_dat2.gpmc_a_2_mux1", TI814X_PULL_UP);//gp_a2
omap_mux_init_signal("mmc2_dat1.gpmc_a_3_mux1", TI814X_PULL_UP);//gp_a3
omap_mux_init_signal("mmc2_dat0.gpmc_a_4_mux1", TI814X_PULL_UP);//gp_a4
omap_mux_init_signal("gmii0_rxdv.gpmc_a_5_mux0", TI814X_PULL_UP);//gp_a5
omap_mux_init_signal("gmii0_gtxclk.gpmc_a_6_mux0", TI814X_PULL_UP);//gp_a6
omap_mux_init_signal("gmii0_txd0.gpmc_a_7_mux0", TI814X_PULL_UP);//gp_a7
omap_mux_init_signal("gmii0_txd1.gpmc_a_8_mux0", TI814X_PULL_UP);//gp_a8
omap_mux_init_signal("gmii0_txd2.gpmc_a_9_mux0", TI814X_PULL_UP);//gp_a9
omap_mux_init_signal("gmii0_txd3.gpmc_a_10_mux0", TI814X_PULL_UP);//gp_a10
omap_mux_init_signal("gmii0_txd4.gpmc_a_11_mux0", TI814X_PULL_UP);//gp_a11
omap_mux_init_signal("gmii0_txd5.gpmc_a_12_mux0", TI814X_PULL_UP);//gp_a12
omap_mux_init_signal("gmii0_txd6.gpmc_a_13_mux0", TI814X_PULL_UP);//gp_a13
omap_mux_init_signal("gmii0_txd7.gpmc_a_14_mux0", TI814X_PULL_UP);//gp_a14
omap_mux_init_signal("gmii0_txen.gpmc_a_15_mux0", TI814X_PULL_UP);//gp_a15
omap_mux_init_signal("gpmc_ad0", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d0
omap_mux_init_signal("gpmc_ad1", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d1
omap_mux_init_signal("gpmc_ad2", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d2
omap_mux_init_signal("gpmc_ad3", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d3
omap_mux_init_signal("gpmc_ad4", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d4
omap_mux_init_signal("gpmc_ad5", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d5
omap_mux_init_signal("gpmc_ad6", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d6
omap_mux_init_signal("gpmc_ad7", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d7
omap_mux_init_signal("gpmc_ad8", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d8
omap_mux_init_signal("gpmc_ad9", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d9
omap_mux_init_signal("gpmc_ad10", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d10
omap_mux_init_signal("gpmc_ad11", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d11
omap_mux_init_signal("gpmc_ad12", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d12
omap_mux_init_signal("gpmc_ad13", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d13
omap_mux_init_signal("gpmc_ad14", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d14
omap_mux_init_signal("gpmc_ad15", TI814X_PULL_DIS | TI814X_INPUT_EN);//gp_d15
omap_mux_init_signal("gpmc_oen_ren", TI814X_PULL_UP);//gpmc_oen_ren
omap_mux_init_signal("gpmc_wen", TI814X_PULL_UP);//gpmc_wen
omap_mux_init_signal("gpmc_clk", TI814X_PULL_UP);//gpmc_clk
omap_mux_init_signal("gpmc_advn_ale", TI814X_PULL_UP);
omap_mux_init_signal("gpmc_ben0", TI814X_PULL_UP);
omap_mux_init_signal("gpmc_ben1", TI814X_PULL_UP);
omap_mux_init_signal("gpmc_oen_ren", TI814X_PULL_UP);
omap_mux_init_signal("gpmc_wait0", TI814X_PULL_UP);
omap_mux_init_signal("gpmc_cs2", TI814X_PULL_UP);
omap_mux_init_signal("gpmc_cs3", TI814X_PULL_UP);
omap_mux_init_signal("gpmc_cs1", TI814X_PULL_UP);
omap_mux_init_signal("gpmc_cs4", TI814X_PULL_UP);
omap_mux_init_signal("gpmc_cs0", TI814X_PULL_UP);

上述管脚配置,通过编写应用代码,已经反向验证,系统配置管脚与我设计要求信号一致。

编写FPGA驱动,对fpga进行读取数据访问:

gpmc_cs_request(2, FPGA_IO_SIZE,
&gpmc_fpga_io_data->phys_base);

request_mem_region(info->phys_base, FPGA_IO_SIZE,pdev->dev.driver->name));
gpmc_fpga = ioremap(info->phys_base, FPGA_IO_SIZE);

使用ioread16(gpmc_fpga+0x8);对FPGA进行访问

从示波器看,gpmc_clk没有信号,只有ncs片选信号出来,其他信号没有测试。 

请问是什么原因导致?