|
本帖最后由 smallcsduck 于 2018-4-16 22:35 编辑 : y' k9 n" b2 m+ ]3 X 前一段时间拿到了ST官方的STM32L4R9AI discovery开发板研究了一下。可能是刚出的板子,资料比较少,STM32cubeMX附带的例程也非常少。很多功能没有做demo,那就来慢慢给他补上吧。要达到的目标不是能跑起来就行了,要能发挥最大的性能和全部的功能。 这篇就来讲一下开发板板载的型号为IS66WV1M16EBLL的PSRAM初始化时序设置。 ; y; d' j' i! O& @& X6 Z* `/ J 首先是MCU主频是设置在120M。
PSRAM的FMC接口设置。
时序设置。( m; u! C2 w/ C) k+ W6 D
下面是寄存器设置,可以直接在SystemInit里初始化PSRAM。+ l, C: Y, z. \ __IO uint32_t tmp = 0x00;8 t. L4 y+ G |( e/ U - z8 e0 ?; Q v. o. ^) f6 }( M, a) }' F /*-- GPIOs Configuration -----------------------------------------------------*/4 `1 L7 o- f$ k2 g* f* @ /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */4 P4 @9 a& Z1 W6 G& j1 | RCC->AHB2ENR |= 0x000001FF;- G( J* Q% Y) l- o. y1 L& O. m /* Delay after an RCC peripheral clock enabling */ tmp = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIODEN);5 I2 ~+ x k+ \4 w- Z9 H* K% H ; F! S P" E2 @8 [' b; g /* Connect PDx pins to FMC Alternate function */4 Z0 c( G8 B* {! I" t GPIOD->AFR[0] = 0xC0CC00CC; GPIOD->AFR[1] = 0xCCCCCCCC; /* Configure PDx pins in Alternate function mode */ 4 B, U1 P- w5 t1 {3 Q# g: ~ GPIOD->MODER = 0xAAAABAFA;5 f1 g" K, z) @9 L6 `5 _ /* Configure PDx pins speed to 100 MHz */ ' V/ z& r: F. ] GPIOD->OSPEEDR = 0xFFFFCF0F;' V" _/ _5 ~ a& [ /* Configure PDx pins Output type to push-pull */ 6 A1 Y, Z1 o3 z0 R0 r3 T GPIOD->OTYPER = 0x00000000;" z# X( Z6 E0 D6 H0 b /* No pull-up, pull-down for PDx pins */ GPIOD->PUPDR = 0x00000000; : H7 O0 R& r+ K& R; n* i+ q/ F1 c /* Connect PEx pins to FMC Alternate function */ GPIOE->AFR[0] = 0xC000C0CC; GPIOE->AFR[1] = 0xCCCCCCCC;( H c2 ~, s7 Z! A: | /* Configure PEx pins in Alternate function mode */ $ P2 s2 L- o/ j) B; a GPIOE->MODER = 0xAAAABFBA;# N( V* A* z- l% X9 E7 p$ o /* Configure PEx pins speed to 100 MHz */ 6 u( Z3 Q* l/ }- B" T9 x GPIOE->OSPEEDR = 0xFFFFC0CF; /* Configure PEx pins Output type to push-pull */ GPIOE->OTYPER = 0x00000000; /* No pull-up, pull-down for PEx pins */ $ }) P5 G- q- |/ `; ?) x GPIOE->PUPDR = 0x00000000;/ j" s# m& v% K) P" t* i0 b6 d: v ! u) _" @. l9 } /* Connect PFx pins to FMC Alternate function */ GPIOF->AFR[0] = 0x00CCCCCC; GPIOF->AFR[1] = 0xCCCC0000; /* Configure PFx pins in Alternate function mode */ - r0 u9 G: U/ k6 m& @; s8 h* c GPIOF->MODER = 0xAAFFFAAA;3 _% x& ?9 B4 F$ v$ u0 X /* Configure PFx pins speed to 100 MHz */ 9 d9 ~& z0 G# m5 o GPIOF->OSPEEDR = 0xFF000FFF;- n6 E% \/ S/ C+ M /* Configure PFx pins Output type to push-pull */ GPIOF->OTYPER = 0x00000000; /* No pull-up, pull-down for PFx pins */ GPIOF->PUPDR = 0x00000000; / p( ]4 [3 p. }7 s- Y. { /* Connect PGx pins to FMC Alternate function */ GPIOG->AFR[0] = 0x00CCCCCC; GPIOG->AFR[1] = 0x00000000; /* Configure PGx pins in Alternate function mode */ 9 G6 A* b, d, e0 e GPIOG->MODER = 0xFFFFFAAA; /* Configure PGx pins speed to 100 MHz */ ) I# Q: c3 C9 A: d2 o% k3 |6 y: R) @ GPIOG->OSPEEDR = 0x00000FFF;$ e w C3 j% O( B1 a /* Configure PGx pins Output type to push-pull */ GPIOG->OTYPER = 0x00000000; /* No pull-up, pull-down for PGx pins */ , I7 ^6 Z* W4 X7 R GPIOG->PUPDR = 0x00000000; /*-- FMC/FSMC Configuration --------------------------------------------------*/7 \% J3 ]1 o' `/ x /* Enable the FMC/FSMC interface clock */& V8 }5 c. w" n( \% c! u4 M& |5 {$ O3 b RCC->AHB3ENR |= 0x00000001; 6 g ^8 {0 k4 B$ K % w* ]$ [- a; `9 @ P* `* @ /* Delay after an RCC peripheral clock enabling */ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);$ c, X, e1 `- S$ W8 O9 F" b /* Configure and enable Bank1_SRAM1 */ FMC_Bank1_R->BTCR[0] = 0x00005095; FMC_Bank1_R->BTCR[1] = 0x4FF104F3;/ O6 m# E4 ]2 W1 i2 n h @ FMC_Bank1E_R->BWTR[1] = 0x0FF103F3; 项目代码地址在http://github.com/babycheng/STM32L4R9AIDISCOVERY.git。研究好了的代码会及时推送上去。 项目使用 Arm Compiler 6.9 工具链,调试工具是开发板上集成的STLINK。使用MDK编译以后直接进debug模式运行。程序在SRAM1里面运行。烧进flash运行没有设置。 本人水平有限,以上如有错误之处,敬请指出。+ N- Z2 p# @8 L 转载请注明出处http://smallcsduck.blog.163.com 7 S9 g) w( d2 H: D: W* l/ X$ } ! `1 y# j: _2 i( H0 p) Z% t ) M3 i8 T, a! f8 o* H : u1 ~) t" C9 ]4 [) q; o |
STM32在边缘AI的布局及能力版图
从家电到机器人:STM32边缘AI应用案例拆解
STM32U3B5/U3C5:为超低功耗设计带来高性能 DSP 与边缘 AI
【NUCLEO-U3C5ZI 测评】+ 手写数字识别
【STM32U3 评测】MNIST 数字识别
STM32L4R9 QuadSPI Flash通讯速率优化解析 32位总线的DMA传输适配核心方案
AI玩具爆发前夜:技术拐点、体验鸿沟与破局路径
STM32 AI Model Zoo,现支持PyTorch的最大规模MCU AI模型集合
【STEVAL-STWINKT1B评测】运行Datalog固件并记录运行时间
【STEVAL-STWINKT1B评测】数字麦/模拟麦对比测试+音频配套上位机软件开发
微信公众号
手机版
https://www.stmcu.org.cn/module/forum/thread-615497-1-1.html