|
本帖最后由 smallcsduck 于 2018-4-16 22:35 编辑 9 a( Y, M$ f) o r2 W" u 前一段时间拿到了ST官方的STM32L4R9AI discovery开发板研究了一下。可能是刚出的板子,资料比较少,STM32cubeMX附带的例程也非常少。很多功能没有做demo,那就来慢慢给他补上吧。要达到的目标不是能跑起来就行了,要能发挥最大的性能和全部的功能。 这篇就来讲一下开发板板载的型号为IS66WV1M16EBLL的PSRAM初始化时序设置。 首先是MCU主频是设置在120M。! d! k7 R, \5 D0 p7 t) _
PSRAM的FMC接口设置。& z6 _) B! }$ z7 O7 Q A3 @
时序设置。
下面是寄存器设置,可以直接在SystemInit里初始化PSRAM。* G- R5 w' q: f5 w __IO uint32_t tmp = 0x00; * K4 k0 b0 O' S% N /*-- GPIOs Configuration -----------------------------------------------------*/3 `" ?( V A& X5 @8 L6 n. [ /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */- {7 v h' H: B1 x2 T, p RCC->AHB2ENR |= 0x000001FF;. i7 G! y8 |) M+ f8 x# I! s% _ /* Delay after an RCC peripheral clock enabling */ tmp = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIODEN); 2 _* f) j( z( D' }3 y /* Connect PDx pins to FMC Alternate function */; P7 S) { ~# k) x GPIOD->AFR[0] = 0xC0CC00CC;! q, e1 x1 D g* ? GPIOD->AFR[1] = 0xCCCCCCCC;+ Z6 G9 L: S7 q6 \" |8 U& D" F# e /* Configure PDx pins in Alternate function mode */ 4 P8 S3 V3 Z) z, G3 z3 I: |4 v GPIOD->MODER = 0xAAAABAFA;0 ~, v7 @$ W7 B7 p /* Configure PDx pins speed to 100 MHz */ % ]+ Z0 L' O$ R: q' V2 G- r GPIOD->OSPEEDR = 0xFFFFCF0F; /* Configure PDx pins Output type to push-pull */ GPIOD->OTYPER = 0x00000000; /* No pull-up, pull-down for PDx pins */ 1 s1 r* i$ [& k GPIOD->PUPDR = 0x00000000;% ^; B N" J9 y' F5 J, G 7 s y9 v i7 U: d /* Connect PEx pins to FMC Alternate function */6 ?. B- `) `6 l& c v GPIOE->AFR[0] = 0xC000C0CC;, @3 o, Z( E2 ^0 @3 ?- z- }1 g GPIOE->AFR[1] = 0xCCCCCCCC; /* Configure PEx pins in Alternate function mode */ GPIOE->MODER = 0xAAAABFBA; /* Configure PEx pins speed to 100 MHz */ 4 O* q) b) F5 F* M/ b GPIOE->OSPEEDR = 0xFFFFC0CF;7 }) Z4 v+ p0 ]2 }6 a5 l /* Configure PEx pins Output type to push-pull */ GPIOE->OTYPER = 0x00000000;7 y" \4 j* _2 P! y P8 k( h /* No pull-up, pull-down for PEx pins */ GPIOE->PUPDR = 0x00000000; 7 h b! v7 P+ \) W* B& p /* Connect PFx pins to FMC Alternate function */( @8 b6 x, Z2 ^$ P/ b1 s% Z GPIOF->AFR[0] = 0x00CCCCCC; GPIOF->AFR[1] = 0xCCCC0000; /* Configure PFx pins in Alternate function mode */ 6 D/ y. [! q: W6 I6 }4 } GPIOF->MODER = 0xAAFFFAAA;1 [) ^# ^/ l. o- u4 N /* Configure PFx pins speed to 100 MHz */ 7 k6 ~ ?2 z; l2 ?* n9 B5 E GPIOF->OSPEEDR = 0xFF000FFF; /* Configure PFx pins Output type to push-pull */ . W% O+ ~. `! ^5 v# o, H2 D GPIOF->OTYPER = 0x00000000; /* No pull-up, pull-down for PFx pins */ 5 c R7 W S K5 M3 O GPIOF->PUPDR = 0x00000000;! P0 B: ^' E* K: D( e1 l /* Connect PGx pins to FMC Alternate function */( ^# X8 C, p0 `+ a1 V9 K2 R GPIOG->AFR[0] = 0x00CCCCCC;1 J6 Z8 [- i" j3 p GPIOG->AFR[1] = 0x00000000; /* Configure PGx pins in Alternate function mode */ GPIOG->MODER = 0xFFFFFAAA;2 ^: r) V4 J. O0 V /* Configure PGx pins speed to 100 MHz */ ) O" B/ x5 R* {7 c: j, ^/ R GPIOG->OSPEEDR = 0x00000FFF;0 A5 K. k+ g" N1 m1 s' I /* Configure PGx pins Output type to push-pull */ GPIOG->OTYPER = 0x00000000;4 X7 y, J9 d) s /* No pull-up, pull-down for PGx pins */ / H6 I; x) U. f' O GPIOG->PUPDR = 0x00000000;+ N. b' {3 |3 Z8 E. Q , K. x5 P; v/ ^, B- B /*-- FMC/FSMC Configuration --------------------------------------------------*/ /* Enable the FMC/FSMC interface clock */ RCC->AHB3ENR |= 0x00000001;& l/ m% J b. y" k) ?" y; g ) E5 L& H8 e4 k# F /* Delay after an RCC peripheral clock enabling */ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);+ i; P9 R" Q' { /* Configure and enable Bank1_SRAM1 */5 r0 H2 C+ a: h. i9 o6 ~* D FMC_Bank1_R->BTCR[0] = 0x00005095;: r; U$ [/ M* E. A) Y$ ^- R" Q FMC_Bank1_R->BTCR[1] = 0x4FF104F3; FMC_Bank1E_R->BWTR[1] = 0x0FF103F3;5 l4 M0 _; t1 T5 ^# ]# p% J# b/ b % ]5 {) P8 v- N9 \' ^. c, C5 | 项目代码地址在http://github.com/babycheng/STM32L4R9AIDISCOVERY.git。研究好了的代码会及时推送上去。8 D- A0 N; d7 y" @+ ] 项目使用 Arm Compiler 6.9 工具链,调试工具是开发板上集成的STLINK。使用MDK编译以后直接进debug模式运行。程序在SRAM1里面运行。烧进flash运行没有设置。5 j3 p; Q! ~4 w 本人水平有限,以上如有错误之处,敬请指出。 转载请注明出处http://smallcsduck.blog.163.com! v5 H' N& w8 t* I7 L9 L9 e" C, t ! S% m& l# H; M& D8 d, Y; Y ; a* w1 h! `: d* U7 n! m/ T! h2 P |
【STM32H5 评测】MNIST 数字识别
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固件并记录运行时间
微信公众号
手机版
https://www.stmcu.org.cn/module/forum/thread-615497-1-1.html