查看: 5648|回复: 7

[已解决] LPC54608开发板的SDRAM引脚于SD卡引脚重复

[复制链接]

该用户从未签到

61

主题

233

帖子

7

高级会员

Rank: 4

积分
750
最后登录
2021-1-25
发表于 2017-9-5 10:49:17 | 显示全部楼层 |阅读模式
最近在调试54608开发板的SDRAM,在代码里发现部分引脚与之前的SD部分引脚重复了,但是电路图上并没有体现出来。

具体如下,原理图中SD只用到D0-D3  4位数据。但在boards\lpcxpresso54608\usb_examples\usb_device_msc_sdcard_lite这个demo里,SD卡没有用到的数据位D4-D7引脚也作了相应配置,
  const uint32_t port1_pin27_config = (
    IOCON_PIO_FUNC2 |                                        /* Pin is configured as SD_D(4) */
    IOCON_PIO_MODE_PULLUP |                                  /* Selects pull-up function */
    IOCON_PIO_INV_DI |                                       /* Input function is not inverted */
    IOCON_PIO_DIGITAL_EN |                                   /* Enables digital function */
    IOCON_PIO_INPFILT_OFF |                                  /* Input filter disabled */
    IOCON_PIO_SLEW_STANDARD |                                /* Standard mode, output slew rate control is enabled */
    IOCON_PIO_OPENDRAIN_DI                                   /* Open drain is disabled */
  );
  IOCON_PinMuxSet(IOCON, PORT1_IDX, PIN27_IDX, port1_pin27_config); /* PORT1 PIN27 (coords: F10) is configured as SD_D(4) */
  const uint32_t port1_pin28_config = (
    IOCON_PIO_FUNC2 |                                        /* Pin is configured as SD_D(5) */
    IOCON_PIO_MODE_PULLUP |                                  /* Selects pull-up function */
    IOCON_PIO_INV_DI |                                       /* Input function is not inverted */
    IOCON_PIO_DIGITAL_EN |                                   /* Enables digital function */
    IOCON_PIO_INPFILT_OFF |                                  /* Input filter disabled */
    IOCON_PIO_SLEW_STANDARD |                                /* Standard mode, output slew rate control is enabled */
    IOCON_PIO_OPENDRAIN_DI                                   /* Open drain is disabled */
  );
  IOCON_PinMuxSet(IOCON, PORT1_IDX, PIN28_IDX, port1_pin28_config); /* PORT1 PIN28 (coords: E12) is configured as SD_D(5) */
  const uint32_t port1_pin29_config = (
    IOCON_PIO_FUNC2 |                                        /* Pin is configured as SD_D(6) */
    IOCON_PIO_MODE_PULLUP |                                  /* Selects pull-up function */
    IOCON_PIO_INV_DI |                                       /* Input function is not inverted */
    IOCON_PIO_DIGITAL_EN |                                   /* Enables digital function */
    IOCON_PIO_INPFILT_OFF |                                  /* Input filter disabled */
    IOCON_PIO_SLEW_STANDARD |                                /* Standard mode, output slew rate control is enabled */
    IOCON_PIO_OPENDRAIN_DI                                   /* Open drain is disabled */
  );
  IOCON_PinMuxSet(IOCON, PORT1_IDX, PIN29_IDX, port1_pin29_config); /* PORT1 PIN29 (coords: C11) is configured as SD_D(6) */
  const uint32_t port1_pin30_config = (
    IOCON_PIO_FUNC2 |                                        /* Pin is configured as SD_D(7) */
    IOCON_PIO_MODE_PULLUP |                                  /* Selects pull-up function */
    IOCON_PIO_INV_DI |                                       /* Input function is not inverted */
    IOCON_PIO_DIGITAL_EN |                                   /* Enables digital function */
    IOCON_PIO_INPFILT_OFF |                                  /* Input filter disabled */
    IOCON_PIO_SLEW_STANDARD |                                /* Standard mode, output slew rate control is enabled */
    IOCON_PIO_OPENDRAIN_DI                                   /* Open drain is disabled */
  );
  IOCON_PinMuxSet(IOCON, PORT1_IDX, PIN30_IDX, port1_pin30_config); /* PORT1 PIN30 (coords: A8) is configured as SD_D(7) */


在boards\lpcxpresso54608\driver_examples\emc\sdram这个demo里以及原理图上的设计,上述P1_27,P1_28,P1_29,P1_30被用于SDRAM的地址位和数据位配置:
const uint32_t port1_pin27_config = (
    IOCON_PIO_FUNC6 |                                        /* Pin is configured as EMC_A(9) */
    IOCON_PIO_MODE_INACT |                                   /* No addition pin function */
    IOCON_PIO_INV_DI |                                       /* Input function is not inverted */
    IOCON_PIO_DIGITAL_EN |                                   /* Enables digital function */
    IOCON_PIO_INPFILT_OFF |                                  /* Input filter disabled */
    IOCON_PIO_SLEW_FAST |                                    /* Fast mode, slew rate control is disabled */
    IOCON_PIO_OPENDRAIN_DI                                   /* Open drain is disabled */
  );
  IOCON_PinMuxSet(IOCON, PORT1_IDX, PIN27_IDX, port1_pin27_config); /* PORT1 PIN27 (coords: F10) is configured as EMC_A(9) */
  const uint32_t port1_pin28_config = (
    IOCON_PIO_FUNC6 |                                        /* Pin is configured as EMC_D(12) */
    IOCON_PIO_MODE_INACT |                                   /* No addition pin function */
    IOCON_PIO_INV_DI |                                       /* Input function is not inverted */
    IOCON_PIO_DIGITAL_EN |                                   /* Enables digital function */
    IOCON_PIO_INPFILT_OFF |                                  /* Input filter disabled */
    IOCON_PIO_SLEW_FAST |                                    /* Fast mode, slew rate control is disabled */
    IOCON_PIO_OPENDRAIN_DI                                   /* Open drain is disabled */
  );
  IOCON_PinMuxSet(IOCON, PORT1_IDX, PIN28_IDX, port1_pin28_config); /* PORT1 PIN28 (coords: E12) is configured as EMC_D(12) */
  const uint32_t port1_pin29_config = (
    IOCON_PIO_FUNC6 |                                        /* Pin is configured as EMC_D(13) */
    IOCON_PIO_MODE_INACT |                                   /* No addition pin function */
    IOCON_PIO_INV_DI |                                       /* Input function is not inverted */
    IOCON_PIO_DIGITAL_EN |                                   /* Enables digital function */
    IOCON_PIO_INPFILT_OFF |                                  /* Input filter disabled */
    IOCON_PIO_SLEW_FAST |                                    /* Fast mode, slew rate control is disabled */
    IOCON_PIO_OPENDRAIN_DI                                   /* Open drain is disabled */
  );
  IOCON_PinMuxSet(IOCON, PORT1_IDX, PIN29_IDX, port1_pin29_config); /* PORT1 PIN29 (coords: C11) is configured as EMC_D(13) */
  const uint32_t port1_pin30_config = (
    IOCON_PIO_FUNC6 |                                        /* Pin is configured as EMC_D(14) */
    IOCON_PIO_MODE_INACT |                                   /* No addition pin function */
    IOCON_PIO_INV_DI |                                       /* Input function is not inverted */
    IOCON_PIO_DIGITAL_EN |                                   /* Enables digital function */
    IOCON_PIO_INPFILT_OFF |                                  /* Input filter disabled */
    IOCON_PIO_SLEW_FAST |                                    /* Fast mode, slew rate control is disabled */
    IOCON_PIO_OPENDRAIN_DI                                   /* Open drain is disabled */
  );
  IOCON_PinMuxSet(IOCON, PORT1_IDX, PIN30_IDX, port1_pin30_config); /* PORT1 PIN30 (coords: A8) is configured as EMC_D(14) */

请问这几个引脚复用了,有影响吗?对我的SDRAM和SD相关功能。

我知道答案 目前已有7人回答
重复引脚.png
回复

使用道具 举报

  • TA的每日心情
    擦汗
    2021-9-9 22:51
  • 签到天数: 415 天

    连续签到: 1 天

    [LV.9]以坛为家II

    79

    主题

    3088

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    5181
    最后登录
    2022-5-23
    发表于 2017-9-5 11:49:23 来自手机 | 显示全部楼层
    帮忙顶一个,lpc就是管脚服用有点疼~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    233

    帖子

    7

    高级会员

    Rank: 4

    积分
    750
    最后登录
    2021-1-25
     楼主| 发表于 2017-9-5 15:10:46 | 显示全部楼层
    ALTIUM2 发表于 2017-9-5 11:49
    帮忙顶一个,lpc就是管脚服用有点疼~~

    这个该怎么配置初始化额?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24932
    最后登录
    2025-7-23
    发表于 2017-9-5 15:14:36 | 显示全部楼层
    LPCXpresso 54608 跑SDRAM和SD卡,不需要额外的硬件配置,所以不存在影响的问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    233

    帖子

    7

    高级会员

    Rank: 4

    积分
    750
    最后登录
    2021-1-25
     楼主| 发表于 2017-9-5 15:55:43 | 显示全部楼层
    小恩GG 发表于 2017-9-5 15:14
    LPCXpresso 54608 跑SDRAM和SD卡,不需要额外的硬件配置,所以不存在影响的问题

    引脚配置会冲突啊。因为以后我的设备既有SD卡,也有SDRAM.,还有SPI FLASH
    在sdram例子里P1_27,P1_28,P1_29,P1_30分别设置成了EMC_A9,EMC_D12,EMC_D13,EMC_D14.
    但是在SD卡例子里上述引脚配置成了SD_D4,SD_D5,SD_D6,SD_D7
    如果把SD卡的数据位调整到其他IO。又会跟SPIFI引脚冲突。
    引脚.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24932
    最后登录
    2025-7-23
    发表于 2017-9-5 16:26:53 | 显示全部楼层
    paulkiyt 发表于 2017-9-5 15:55
    引脚配置会冲突啊。因为以后我的设备既有SD卡,也有SDRAM.,还有SPI FLASH
    在sdram例子里P1_27,P1_28,P ...

    当然,很多模块要一起用的话,会有引脚冲突的问题,毕竟引脚就这么多
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    233

    帖子

    7

    高级会员

    Rank: 4

    积分
    750
    最后登录
    2021-1-25
     楼主| 发表于 2017-9-5 16:28:51 | 显示全部楼层
    小恩GG 发表于 2017-9-5 16:26
    当然,很多模块要一起用的话,会有引脚冲突的问题,毕竟引脚就这么多

    有个问题想问一下,原理图上SD卡数据位物理上只有4位 SD0~SD3,那为什么引脚配置的时候要把SD4~SD7都要配置进去?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    233

    帖子

    7

    高级会员

    Rank: 4

    积分
    750
    最后登录
    2021-1-25
     楼主| 发表于 2017-9-7 17:30:36 | 显示全部楼层
    大家好,重新清理一遍IO后上述问题解决。
      IOCON_PinMuxSet(IOCON, PORT3_IDX, PIN16_IDX, port3_pin16_config); /* PORT1 PIN27 (coords: F10) is configured as SD_D(4) */
      IOCON_PinMuxSet(IOCON, PORT3_IDX, PIN17_IDX, port3_pin17_config); /* PORT1 PIN28 (coords: E12) is configured as SD_D(5) */
      IOCON_PinMuxSet(IOCON, PORT3_IDX, PIN18_IDX, port3_pin18_config); /* PORT1 PIN29 (coords: C11) is configured as SD_D(6) */
      IOCON_PinMuxSet(IOCON, PORT3_IDX, PIN19_IDX, port3_pin19_config); /* PORT1 PIN30 (coords: A8) is configured as SD_D(7) */
    SD0~SD3。SPIFI , EMC_SDRAM还是采用demo里分配引脚.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-25 08:42 , Processed in 0.103866 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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