搜索
bottom↓
回复: 2

AM335x GPMC使用总结

[复制链接]

出0入0汤圆

发表于 2018-3-14 12:03:31 | 显示全部楼层 |阅读模式
本帖最后由 szypf2011 于 2018-3-14 12:03 编辑

AM335X GPMC使用比较灵活,可以配置为
●        8-bit 同步或者异步并行总线 (非burst)
●        16-bit 同步或者异步并行中线
●        16-bit 非复用的NOR Flash
●        16-bit 数据和地址总线复用的NOR Flash
●        8-bit 和 16-bit NAND Flash
●        16-bit pSRAM.

下面以EVB335X扩展EXAR ST16C554为例,讲解如何配置GPMC。
1.        配置GPMC引脚
static struct pinmux_config gpmc_pin_mux[] = {
        /********* 8-bit data bus **************/
        {"gpmc_ad0.gpmc_ad0",                        OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
        {"gpmc_ad1.gpmc_ad1",                        OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
        {"gpmc_ad2.gpmc_ad2",                        OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
        {"gpmc_ad3.gpmc_ad3",                        OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
        {"gpmc_ad4.gpmc_ad4",                        OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
        {"gpmc_ad5.gpmc_ad5",                        OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
        {"gpmc_ad6.gpmc_ad6",                        OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
        {"gpmc_ad7.gpmc_ad7",                        OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},

        /**************** 8-bit address bus ****************/
        {"gpmc_a0.gpmc_a0",                        OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
        {"gpmc_a1.gpmc_a1",                        OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
        {"gpmc_a2.gpmc_a2",                        OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
        {"gpmc_a3.gpmc_a3",                        OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
        {"gpmc_a4.gpmc_a4",                        OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
        {"gpmc_a5.gpmc_a5",                        OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
        {"gpmc_a6.gpmc_a6",                        OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
        {"gpmc_a7.gpmc_a7",                        OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
        
        {"gpmc_csn2.gpmc_csn2",                        OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
        {"gpmc_oen_ren.gpmc_oen_ren",                OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
        {"gpmc_wen.gpmc_wen",                        OMAP_MUX_MODE0 | AM33XX_PULL_DISA},

        {NULL, 0},
};
        setup_pin_mux(gpmc_pin_mux);
2.        申请GPMC内存
unsigned long serial_gpmc_mem_base_phys;
int cs = 2;                        /* EVB335X评估板中ST16C554接在CS2上 */
gpmc_cs_request(cs, SZ_16M, &serial_gpmc_mem_base_phys)
此时serial_gpmc_mem_base_phys存放的是该CS上多对应的物理起始地址。
3.        设置GMPC类型
gpmc_cs_configure(cs, GPMC_CONFIG_DEV_TYPE, GPMC_DEVICETYPE_NOR); /*设置为并行总线*/
val = GPMC_CONFIG1_READTYPE_SYNC;        /* 设置为8-bit sync */
val |= GPMC_CONFIG1_WRITETYPE_SYNC;
gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, val);
4.        设置GPMC时序






因此时序设置为: (单位ns)
static struct gpmc_timings ext_uart_timings = {
        /* Minimum clock period for synchronous mode (in picoseconds) */
        .sync_clk = 0,

        /* CS signal timings corresponding to GPMC_CONFIG2 */
        .cs_on = 10,                                /* T6s */
        .cs_rd_off = 80,                        /* oe_off + T7h */
        .cs_wr_off = 60,                        /* Tcs for write: we_off + T13h */

        /* ADV signal timings corresponding to GPMC_CONFIG3 */
//        .adv_on = 0,                        /* Address setup Tas*/
//        .adv_rd_off = 110,                /* Read deassertion time  Trd + Tdd*/
//        .adv_wr_off = 90,                /* Write deassertion time  Twr + Tdh*/

        /* WE signals timings corresponding to GPMC_CONFIG4 */
        .we_on = 20,                /* WE assertion time: cs_on + T13d */
        .we_off = 60,                /* WE deassertion time: we_on + T13w */

        /* OE signals timings corresponding to GPMC_CONFIG4 */
        .oe_on = 20,                /* OE assertion time: cs_on + T7d */
        .oe_off = 70,                /* OE deassertion time: oe_on + T7w */


        /* Access time and cycle time timings corresponding to GPMC_CONFIG5 */
//        .page_burst_access = 2 * 10,        /* Multiple access word delay */
        .access = 60,                /* Start-cycle to first data valid delay: at leaset oe_on + T12d */
        .rd_cycle = 110,                /* Total read cycle time: cs_rd_off + (T9d - T7h) - oe_on */
        .wr_cycle = 90,                /* Total write cycle time: cs_wr_off + (T15d - T13h) - we_on */

        /* The following are only on OMAP3430 */
        .wr_access = 40,                /* WRACCESSTIME: max we_off - T16s  */
        .wr_data_mux_bus = 0,        /* WRDATAONADMUXBUS */

};
gpmc_cs_set_timings(cs, &ext_uart_timings)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2018-3-14 12:04:35 | 显示全部楼层
来一份资料!!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出140入8汤圆

发表于 2018-3-15 06:17:20 | 显示全部楼层
最近也准备搞个am335x板卡回来折腾,但是估计要吃灰…
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 15:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表