3
3
* @file system_stm32l1xx.c
4
4
* @author MCD Application Team
5
5
* @version V1.2.0
6
- * @date 8 -January-2014
6
+ * @date 11 -January-2014
7
7
* @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File.
8
8
* This file contains the system clock configuration for STM32L1xx Ultra
9
9
* Low power devices, and is generated by the clock configuration
47
47
*-----------------------------------------------------------------------------
48
48
* SYSCLK | 16000000 Hz
49
49
*-----------------------------------------------------------------------------
50
- * HCLK | 8000000 Hz
50
+ * HCLK | 16000000 Hz
51
51
*-----------------------------------------------------------------------------
52
- * AHB Prescaler | 2
52
+ * AHB Prescaler | 1
53
53
*-----------------------------------------------------------------------------
54
54
* APB1 Prescaler | 1
55
55
*-----------------------------------------------------------------------------
63
63
*-----------------------------------------------------------------------------
64
64
* VDD | 3.3 V
65
65
*-----------------------------------------------------------------------------
66
- * Vcore | 1.5 V (Range 2 )
66
+ * Vcore | 1.8 V (Range 1 )
67
67
*-----------------------------------------------------------------------------
68
68
* Flash Latency | 0 WS
69
69
*-----------------------------------------------------------------------------
70
- * SDIO clock (SDIOCLK) | NA
71
- *-----------------------------------------------------------------------------
72
70
* Require 48MHz for USB clock | Disabled
73
71
*-----------------------------------------------------------------------------
74
72
*=============================================================================
121
119
* @{
122
120
*/
123
121
124
- /*!< Uncomment the following line if you need to use external SRAM mounted
125
- on STM32L152D_EVAL board as data memory */
126
- /* #define DATA_IN_ExtSRAM */
127
-
128
122
/*!< Uncomment the following line if you need to relocate your vector Table in
129
123
Internal SRAM. */
130
124
/* #define VECT_TAB_SRAM */
@@ -158,9 +152,6 @@ __I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}
158
152
*/
159
153
160
154
static void SetSysClock (void );
161
- #ifdef DATA_IN_ExtSRAM
162
- static void SystemInit_ExtMemCtl (void );
163
- #endif /* DATA_IN_ExtSRAM */
164
155
165
156
/**
166
157
* @}
@@ -196,10 +187,6 @@ void SystemInit (void)
196
187
197
188
/*!< Disable all interrupts */
198
189
RCC -> CIR = 0x00000000 ;
199
-
200
- #ifdef DATA_IN_ExtSRAM
201
- SystemInit_ExtMemCtl ();
202
- #endif /* DATA_IN_ExtSRAM */
203
190
204
191
/* Configure the System clock frequency, AHB/APBx prescalers and Flash settings */
205
192
SetSysClock ();
@@ -346,17 +333,17 @@ static void SetSysClock(void)
346
333
/* Power enable */
347
334
RCC -> APB1ENR |= RCC_APB1ENR_PWREN ;
348
335
349
- /* Select the Voltage Range 2 (1.5 V) */
350
- PWR -> CR = PWR_CR_VOS_1 ;
336
+ /* Select the Voltage Range 1 (1.8 V) */
337
+ PWR -> CR = PWR_CR_VOS_0 ;
351
338
352
339
353
340
/* Wait Until the Voltage Regulator is ready */
354
341
while ((PWR -> CSR & PWR_CSR_VOSF ) != RESET )
355
342
{
356
343
}
357
344
358
- /* HCLK = SYSCLK /2 */
359
- RCC -> CFGR |= (uint32_t )RCC_CFGR_HPRE_DIV2 ;
345
+ /* HCLK = SYSCLK /1 */
346
+ RCC -> CFGR |= (uint32_t )RCC_CFGR_HPRE_DIV1 ;
360
347
/* PCLK2 = HCLK /1*/
361
348
RCC -> CFGR |= (uint32_t )RCC_CFGR_PPRE2_DIV1 ;
362
349
@@ -379,131 +366,6 @@ static void SetSysClock(void)
379
366
}
380
367
}
381
368
382
- #ifdef DATA_IN_ExtSRAM
383
- /**
384
- * @brief Setup the external memory controller.
385
- * Called in SystemInit() function before jump to main.
386
- * This function configures the external SRAM mounted on STM32L152D_EVAL board
387
- * This SRAM will be used as program data memory (including heap and stack).
388
- * @param None
389
- * @retval None
390
- */
391
- void SystemInit_ExtMemCtl (void )
392
- {
393
- /*-- GPIOs Configuration -----------------------------------------------------*/
394
- /*
395
- +-------------------+--------------------+------------------+------------------+
396
- + SRAM pins assignment +
397
- +-------------------+--------------------+------------------+------------------+
398
- | PD0 <-> FSMC_D2 | PE0 <-> FSMC_NBL0 | PF0 <-> FSMC_A0 | PG0 <-> FSMC_A10 |
399
- | PD1 <-> FSMC_D3 | PE1 <-> FSMC_NBL1 | PF1 <-> FSMC_A1 | PG1 <-> FSMC_A11 |
400
- | PD4 <-> FSMC_NOE | PE7 <-> FSMC_D4 | PF2 <-> FSMC_A2 | PG2 <-> FSMC_A12 |
401
- | PD5 <-> FSMC_NWE | PE8 <-> FSMC_D5 | PF3 <-> FSMC_A3 | PG3 <-> FSMC_A13 |
402
- | PD8 <-> FSMC_D13 | PE9 <-> FSMC_D6 | PF4 <-> FSMC_A4 | PG4 <-> FSMC_A14 |
403
- | PD9 <-> FSMC_D14 | PE10 <-> FSMC_D7 | PF5 <-> FSMC_A5 | PG5 <-> FSMC_A15 |
404
- | PD10 <-> FSMC_D15 | PE11 <-> FSMC_D8 | PF12 <-> FSMC_A6 | PG10<-> FSMC_NE2 |
405
- | PD11 <-> FSMC_A16 | PE12 <-> FSMC_D9 | PF13 <-> FSMC_A7 |------------------+
406
- | PD12 <-> FSMC_A17 | PE13 <-> FSMC_D10 | PF14 <-> FSMC_A8 |
407
- | PD13 <-> FSMC_A18 | PE14 <-> FSMC_D11 | PF15 <-> FSMC_A9 |
408
- | PD14 <-> FSMC_D0 | PE15 <-> FSMC_D12 |------------------+
409
- | PD15 <-> FSMC_D1 |--------------------+
410
- +-------------------+
411
- */
412
-
413
- /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */
414
- RCC -> AHBENR = 0x000080D8 ;
415
-
416
- /* Connect PDx pins to FSMC Alternate function */
417
- GPIOD -> AFR [0 ] = 0x00CC00CC ;
418
- GPIOD -> AFR [1 ] = 0xCCCCCCCC ;
419
- /* Configure PDx pins in Alternate function mode */
420
- GPIOD -> MODER = 0xAAAA0A0A ;
421
- /* Configure PDx pins speed to 40 MHz */
422
- GPIOD -> OSPEEDR = 0xFFFF0F0F ;
423
- /* Configure PDx pins Output type to push-pull */
424
- GPIOD -> OTYPER = 0x00000000 ;
425
- /* No pull-up, pull-down for PDx pins */
426
- GPIOD -> PUPDR = 0x00000000 ;
427
-
428
- /* Connect PEx pins to FSMC Alternate function */
429
- GPIOE -> AFR [0 ] = 0xC00000CC ;
430
- GPIOE -> AFR [1 ] = 0xCCCCCCCC ;
431
- /* Configure PEx pins in Alternate function mode */
432
- GPIOE -> MODER = 0xAAAA800A ;
433
- /* Configure PEx pins speed to 40 MHz */
434
- GPIOE -> OSPEEDR = 0xFFFFC00F ;
435
- /* Configure PEx pins Output type to push-pull */
436
- GPIOE -> OTYPER = 0x00000000 ;
437
- /* No pull-up, pull-down for PEx pins */
438
- GPIOE -> PUPDR = 0x00000000 ;
439
-
440
- /* Connect PFx pins to FSMC Alternate function */
441
- GPIOF -> AFR [0 ] = 0x00CCCCCC ;
442
- GPIOF -> AFR [1 ] = 0xCCCC0000 ;
443
- /* Configure PFx pins in Alternate function mode */
444
- GPIOF -> MODER = 0xAA000AAA ;
445
- /* Configure PFx pins speed to 40 MHz */
446
- GPIOF -> OSPEEDR = 0xFF000FFF ;
447
- /* Configure PFx pins Output type to push-pull */
448
- GPIOF -> OTYPER = 0x00000000 ;
449
- /* No pull-up, pull-down for PFx pins */
450
- GPIOF -> PUPDR = 0x00000000 ;
451
-
452
- /* Connect PGx pins to FSMC Alternate function */
453
- GPIOG -> AFR [0 ] = 0x00CCCCCC ;
454
- GPIOG -> AFR [1 ] = 0x00000C00 ;
455
- /* Configure PGx pins in Alternate function mode */
456
- GPIOG -> MODER = 0x00200AAA ;
457
- /* Configure PGx pins speed to 40 MHz */
458
- GPIOG -> OSPEEDR = 0x00300FFF ;
459
- /* Configure PGx pins Output type to push-pull */
460
- GPIOG -> OTYPER = 0x00000000 ;
461
- /* No pull-up, pull-down for PGx pins */
462
- GPIOG -> PUPDR = 0x00000000 ;
463
-
464
- /*-- FSMC Configuration ------------------------------------------------------*/
465
- /* Enable the FSMC interface clock */
466
- RCC -> AHBENR = 0x400080D8 ;
467
-
468
- /* Configure and enable Bank1_SRAM3 */
469
- FSMC_Bank1 -> BTCR [4 ] = 0x00001011 ;
470
- FSMC_Bank1 -> BTCR [5 ] = 0x00000300 ;
471
- FSMC_Bank1E -> BWTR [4 ] = 0x0FFFFFFF ;
472
- /*
473
- Bank1_SRAM3 is configured as follow:
474
-
475
- p.FSMC_AddressSetupTime = 0;
476
- p.FSMC_AddressHoldTime = 0;
477
- p.FSMC_DataSetupTime = 3;
478
- p.FSMC_BusTurnAroundDuration = 0;
479
- p.FSMC_CLKDivision = 0;
480
- p.FSMC_DataLatency = 0;
481
- p.FSMC_AccessMode = FSMC_AccessMode_A;
482
-
483
- FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3;
484
- FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
485
- FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
486
- FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
487
- FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
488
- FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
489
- FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
490
- FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
491
- FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
492
- FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
493
- FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
494
- FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
495
- FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
496
- FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
497
- FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
498
-
499
- FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
500
-
501
- FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3, ENABLE);
502
- */
503
-
504
- }
505
- #endif /* DATA_IN_ExtSRAM */
506
-
507
369
/**
508
370
* @}
509
371
*/
0 commit comments