
本帖最后由 smallcsduck 于 2018-4-16 22:35 编辑 前一段时间拿到了ST官方的STM32L4R9AI discovery开发板研究了一下。可能是刚出的板子,资料比较少,STM32cubeMX附带的例程也非常少。很多功能没有做demo,那就来慢慢给他补上吧。要达到的目标不是能跑起来就行了,要能发挥最大的性能和全部的功能。 这篇就来讲一下开发板板载的型号为IS66WV1M16EBLL的PSRAM初始化时序设置。 首先是MCU主频是设置在120M。 ![]() PSRAM的FMC接口设置。 ![]() 时序设置。 ![]() 下面是寄存器设置,可以直接在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 |
实战经验 | STM32 AFCI方案TensorBoard的使用介绍
【STM32N6570-DK评测】1.你好N6
STM32如何分配原理图IO
【STM32N6570-DK评测】1.开箱测评
【实测教程】STM32CubeMX-STM32L4之研究(ADC)
【STWINKT1B评测】2.初步测试IIS3DWB振动传感器
实战经验 | STM32 AI Model Zoo 的安装及实例介绍
【圣诞专享活动】使用TouchGFX做GUI显示:圣诞快乐&Merry Christmas!
串口通信波特率异常的解决办法
【STWINKT1B 评测】6. NanoEdge AI 音频分类器 (2)
https://www.stmcu.org.cn/module/forum/thread-615497-1-1.html