搜索
查看: 2702|回复: 1

[原创] STM32L4R9AI discovery开发板的PSRAM时序设置

[复制链接]

该用户从未签到

14

主题

50

帖子

29

蝴蝶豆

中级会员

最后登录
2018-8-25
发表于 2018-4-16 22:34:14 | 显示全部楼层 |阅读模式
本帖最后由 smallcsduck 于 2018-4-16 22:35 编辑

        前一段时间拿到了ST官方的STM32L4R9AI discovery开发板研究了一下。可能是刚出的板子,资料比较少,STM32cubeMX附带的例程也非常少。很多功能没有做demo,那就来慢慢给他补上吧。要达到的目标不是能跑起来就行了,要能发挥最大的性能和全部的功能。             这篇就来讲一下开发板板载的型号为IS66WV1M16EBLL的PSRAM初始化时序设置。      
     首先是MCU主频是设置在120M。
1.png
        PSRAM的FMC接口设置。
2.png
         时序设置。
3.png
       下面是寄存器设置,可以直接在SystemInit里初始化PSRAM。
__IO uint32_t tmp = 0x00;


/*-- GPIOs Configuration -----------------------------------------------------*/
   /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */
  RCC->AHB2ENR   |= 0x000001FF;
  /* Delay after an RCC peripheral clock enabling */
  tmp = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIODEN);

  /* Connect PDx pins to FMC Alternate function */
  GPIOD->AFR[0]  = 0xC0CC00CC;
  GPIOD->AFR[1]  = 0xCCCCCCCC;
  /* Configure PDx pins in Alternate function mode */  
  GPIOD->MODER   = 0xAAAABAFA;
  /* Configure PDx pins speed to 100 MHz */  
  GPIOD->OSPEEDR = 0xFFFFCF0F;
  /* Configure PDx pins Output type to push-pull */  
  GPIOD->OTYPER  = 0x00000000;
  /* No pull-up, pull-down for PDx pins */
  GPIOD->PUPDR   = 0x00000000;

  /* Connect PEx pins to FMC Alternate function */
  GPIOE->AFR[0]  = 0xC000C0CC;
  GPIOE->AFR[1]  = 0xCCCCCCCC;
  /* Configure PEx pins in Alternate function mode */
  GPIOE->MODER   = 0xAAAABFBA;
  /* Configure PEx pins speed to 100 MHz */
  GPIOE->OSPEEDR = 0xFFFFC0CF;
  /* Configure PEx pins Output type to push-pull */  
  GPIOE->OTYPER  = 0x00000000;
  /* No pull-up, pull-down for PEx pins */
  GPIOE->PUPDR   = 0x00000000;

  /* Connect PFx pins to FMC Alternate function */
  GPIOF->AFR[0]  = 0x00CCCCCC;
  GPIOF->AFR[1]  = 0xCCCC0000;
  /* Configure PFx pins in Alternate function mode */   
  GPIOF->MODER   = 0xAAFFFAAA;
  /* Configure PFx pins speed to 100 MHz */
  GPIOF->OSPEEDR = 0xFF000FFF;
  /* Configure PFx pins Output type to push-pull */  
  GPIOF->OTYPER  = 0x00000000;
  /* No pull-up, pull-down for PFx pins */
  GPIOF->PUPDR   = 0x00000000;

  /* Connect PGx pins to FMC Alternate function */
  GPIOG->AFR[0]  = 0x00CCCCCC;
  GPIOG->AFR[1]  = 0x00000000;
  /* Configure PGx pins in Alternate function mode */
  GPIOG->MODER   = 0xFFFFFAAA;
  /* Configure PGx pins speed to 100 MHz */
  GPIOG->OSPEEDR = 0x00000FFF;
  /* Configure PGx pins Output type to push-pull */  
  GPIOG->OTYPER  = 0x00000000;
  /* No pull-up, pull-down for PGx pins */
  GPIOG->PUPDR   = 0x00000000;

/*-- FMC/FSMC Configuration --------------------------------------------------*/
  /* Enable the FMC/FSMC interface clock */
  RCC->AHB3ENR         |= 0x00000001;


  /* Delay after an RCC peripheral clock enabling */
  tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);
  /* Configure and enable Bank1_SRAM1 */
  FMC_Bank1_R->BTCR[0]  = 0x00005095;
  FMC_Bank1_R->BTCR[1]  = 0x4FF104F3;
  FMC_Bank1E_R->BWTR[1] = 0x0FF103F3;


        项目代码地址在http://github.com/babycheng/STM32L4R9AIDISCOVERY.git。研究好了的代码会及时推送上去。
        项目使用 Arm Compiler 6.9 工具链,调试工具是开发板上集成的STLINK。使用MDK编译以后直接进debug模式运行。程序在SRAM1里面运行。烧进flash运行没有设置。

        本人水平有限,以上如有错误之处,敬请指出。
        转载请注明出处http://smallcsduck.blog.163.com





回复

使用道具 举报

  • TA的每日心情
    开心
    2018-2-6 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    1182

    主题

    4967

    帖子

    1

    蝴蝶豆

    论坛元老

    最后登录
    2020-3-17
    发表于 2018-4-17 14:48:13 | 显示全部楼层
    感谢分享,请汇总到4月技术原创
    https://www.stmcu.org.cn/module/forum/thread-615497-1-1.html
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-5-11 00:38 , Processed in 0.178070 second(s), 38 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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