Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-src by
targets/hal/TARGET_STM/TARGET_STM32L1/sleep.c@522:aee49fe30179, 2015-04-23 (annotated)
- Committer:
- mbed_official
- Date:
- Thu Apr 23 09:15:08 2015 +0100
- Revision:
- 522:aee49fe30179
- Parent:
- 496:543871686697
Synchronized with git revision 809d8aa82baa0e196695d0c8bfec84e654676705
Full URL: https://github.com/mbedmicro/mbed/commit/809d8aa82baa0e196695d0c8bfec84e654676705/
commit 5390a0eb7fc28dda30993602652350fd0ad87df0
Merge: 7c4831f 3998966
Author: 0xc0170 <c0170@rocketmail.com>
Date: Thu Apr 23 08:48:31 2015 +0100
Merge branch 'master' of https://github.com/dudmuck/mbed into dudmuck-master
Conflicts:
workspace_tools/export/uvision4.py
commit 3998966b1b130716855ac01142d8da917c3e1d2f
Author: U-owner-PC\owner <Wayne Roberts>
Date: Thu Apr 9 13:45:09 2015 -0700
using defines for platform specific requirement
commit 755c5d9b0713768771d110468a6750abf506bb1c
Author: U-owner-PC\owner <Wayne Roberts>
Date: Wed Apr 8 14:59:47 2015 -0700
added device ID for MOTE_L152RC
commit d812fb0002dbc1eea64984bdaf4c18b335979d7d
Merge: 6ad66e8 158cbeb
Author: U-owner-PC\owner <Wayne Roberts>
Date: Wed Apr 8 07:25:23 2015 -0700
Merge remote-tracking branch 'upstream/master'
commit 6ad66e89d818e595a9327710a9c79bee078b067f
Merge: 14a1807 cfb9dd1
Author: U-owner-PC\owner <Wayne Roberts>
Date: Fri Mar 27 15:54:03 2015 -0700
merged upstream
commit 14a18078ca11b4126779914b02df6b75225e1315
Author: U-owner-PC\owner <Wayne Roberts>
Date: Tue Mar 24 10:01:02 2015 -0700
RTC subSeconds at 16384Hz
commit 32d75d04c18177b2fb823f011e002ec36190005a
Merge: bc84c03 ea01d61
Author: U-owner-PC\owner <Wayne Roberts>
Date: Tue Mar 24 09:59:43 2015 -0700
Merge remote-tracking branch 'upstream/master'
commit bc84c03a37e10c819e55592aa1efcb621900460b
Author: U-owner-PC\owner <Wayne Roberts>
Date: Mon Mar 16 16:26:18 2015 -0700
handle HSE-PLL enabled upone deepsleep wakeup
commit 11bfe693b9a03744b1624f943fa6ed0f6b05ede6
Merge: b7cec55 fdc75bf
Author: U-owner-PC\owner <Wayne Roberts>
Date: Mon Mar 16 14:37:11 2015 -0700
Merge remote-tracking branch 'upstream/master'
commit b7cec55d08020fd007046ea93f0ed968e0fb953e
Merge: c5b61f5 4b74c54
Author: U-owner-PC\owner <Wayne Roberts>
Date: Mon Mar 9 13:15:56 2015 -0700
syncd with upstream
commit c5b61f5c1d366a789b426f9147cee3fc6e8cd6e3
Merge: c16a115 9d2fd3e
Author: U-owner-PC\owner <Wayne Roberts>
Date: Tue Mar 3 14:05:54 2015 -0800
syncd with upstream
commit c16a115e183b340589fb8d61f79ada1f1ce8a7e2
Merge: 51efd61 1b2a621
Author: U-owner-PC\owner <Wayne Roberts>
Date: Tue Feb 24 09:48:55 2015 -0800
Merge remote-tracking branch 'upstream/master'
commit 51efd619f14b0534037167d5a2080106a2ac0adc
Author: U-owner-PC\owner <Wayne Roberts>
Date: Tue Feb 24 09:48:22 2015 -0800
MOTE_L152RC
commit a122226e460e2910dfcc8e379ac3484fd5ac5e78
Author: U-owner-PC\owner <Wayne Roberts>
Date: Tue Feb 24 09:46:08 2015 -0800
renamed SEMTECH_LORA915 to MOTE_L152RC
commit 88fcf53069d8a7e602ddfc997947d2871cb93ffa
Merge: 3e291c1 8648ff5
Author: U-owner-PC\owner <Wayne Roberts>
Date: Mon Feb 23 08:11:48 2015 -0800
Merge remote-tracking branch 'upstream/master'
commit 3e291c1ccec69901c498b061a6108f0df4b6db2f
Merge: a59aefc c9e93d2
Author: U-owner-PC\owner <Wayne Roberts>
Date: Tue Feb 17 19:04:04 2015 -0800
Merge remote-tracking branch 'upstream/master'
syncing my fork with master
commit a59aefc6eddfeda6df91ad526f3727c2afcd1da2
Author: U-owner-PC\owner <Wayne Roberts>
Date: Tue Feb 17 18:46:27 2015 -0800
added SEMTECH_LORA915 to python scripts
commit 15b1989b692673edfa1d69ef7ffdd7b5795e9778
Author: U-owner-PC\owner <Wayne Roberts>
Date: Tue Feb 17 18:42:13 2015 -0800
added platform SEMTECH_LORA915
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 76:aeb1df146756 | 1 | /* mbed Microcontroller Library |
mbed_official | 76:aeb1df146756 | 2 | ******************************************************************************* |
mbed_official | 76:aeb1df146756 | 3 | * Copyright (c) 2014, STMicroelectronics |
mbed_official | 76:aeb1df146756 | 4 | * All rights reserved. |
mbed_official | 76:aeb1df146756 | 5 | * |
mbed_official | 76:aeb1df146756 | 6 | * Redistribution and use in source and binary forms, with or without |
mbed_official | 76:aeb1df146756 | 7 | * modification, are permitted provided that the following conditions are met: |
mbed_official | 76:aeb1df146756 | 8 | * |
mbed_official | 76:aeb1df146756 | 9 | * 1. Redistributions of source code must retain the above copyright notice, |
mbed_official | 76:aeb1df146756 | 10 | * this list of conditions and the following disclaimer. |
mbed_official | 76:aeb1df146756 | 11 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
mbed_official | 76:aeb1df146756 | 12 | * this list of conditions and the following disclaimer in the documentation |
mbed_official | 76:aeb1df146756 | 13 | * and/or other materials provided with the distribution. |
mbed_official | 76:aeb1df146756 | 14 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
mbed_official | 76:aeb1df146756 | 15 | * may be used to endorse or promote products derived from this software |
mbed_official | 76:aeb1df146756 | 16 | * without specific prior written permission. |
mbed_official | 76:aeb1df146756 | 17 | * |
mbed_official | 76:aeb1df146756 | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
mbed_official | 76:aeb1df146756 | 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
mbed_official | 76:aeb1df146756 | 20 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
mbed_official | 76:aeb1df146756 | 21 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
mbed_official | 76:aeb1df146756 | 22 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
mbed_official | 76:aeb1df146756 | 23 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
mbed_official | 76:aeb1df146756 | 24 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
mbed_official | 76:aeb1df146756 | 25 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
mbed_official | 76:aeb1df146756 | 26 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
mbed_official | 76:aeb1df146756 | 27 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
mbed_official | 76:aeb1df146756 | 28 | ******************************************************************************* |
mbed_official | 76:aeb1df146756 | 29 | */ |
mbed_official | 76:aeb1df146756 | 30 | #include "sleep_api.h" |
mbed_official | 174:8bb9f3a33240 | 31 | |
mbed_official | 174:8bb9f3a33240 | 32 | #if DEVICE_SLEEP |
mbed_official | 174:8bb9f3a33240 | 33 | |
mbed_official | 76:aeb1df146756 | 34 | #include "cmsis.h" |
mbed_official | 76:aeb1df146756 | 35 | |
mbed_official | 354:e67efb2aab0e | 36 | static TIM_HandleTypeDef TimMasterHandle; |
mbed_official | 84:f54042cbc282 | 37 | |
mbed_official | 354:e67efb2aab0e | 38 | void sleep(void) |
mbed_official | 354:e67efb2aab0e | 39 | { |
mbed_official | 354:e67efb2aab0e | 40 | // Disable HAL tick interrupt |
mbed_official | 354:e67efb2aab0e | 41 | TimMasterHandle.Instance = TIM5; |
mbed_official | 354:e67efb2aab0e | 42 | __HAL_TIM_DISABLE_IT(&TimMasterHandle, TIM_IT_CC2); |
mbed_official | 354:e67efb2aab0e | 43 | |
mbed_official | 354:e67efb2aab0e | 44 | // Request to enter SLEEP mode |
mbed_official | 354:e67efb2aab0e | 45 | HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI); |
mbed_official | 354:e67efb2aab0e | 46 | |
mbed_official | 354:e67efb2aab0e | 47 | // Enable HAL tick interrupt |
mbed_official | 354:e67efb2aab0e | 48 | __HAL_TIM_ENABLE_IT(&TimMasterHandle, TIM_IT_CC2); |
mbed_official | 76:aeb1df146756 | 49 | } |
mbed_official | 76:aeb1df146756 | 50 | |
mbed_official | 354:e67efb2aab0e | 51 | void deepsleep(void) |
mbed_official | 354:e67efb2aab0e | 52 | { |
mbed_official | 522:aee49fe30179 | 53 | #if defined(TARGET_MOTE_L152RC) |
mbed_official | 522:aee49fe30179 | 54 | int8_t STOPEntry = PWR_STOPENTRY_WFI; |
mbed_official | 522:aee49fe30179 | 55 | #endif |
mbed_official | 522:aee49fe30179 | 56 | |
mbed_official | 354:e67efb2aab0e | 57 | // Disable HAL tick interrupt |
mbed_official | 354:e67efb2aab0e | 58 | TimMasterHandle.Instance = TIM5; |
mbed_official | 354:e67efb2aab0e | 59 | __HAL_TIM_DISABLE_IT(&TimMasterHandle, TIM_IT_CC2); |
mbed_official | 174:8bb9f3a33240 | 60 | |
mbed_official | 522:aee49fe30179 | 61 | #if defined(TARGET_MOTE_L152RC) |
mbed_official | 522:aee49fe30179 | 62 | /* Select the regulator state in Stop mode: Set PDDS and LPSDSR bit according to PWR_Regulator value */ |
mbed_official | 522:aee49fe30179 | 63 | MODIFY_REG(PWR->CR, (PWR_CR_PDDS | PWR_CR_LPSDSR), PWR_LOWPOWERREGULATOR_ON); |
mbed_official | 522:aee49fe30179 | 64 | |
mbed_official | 522:aee49fe30179 | 65 | /* Set SLEEPDEEP bit of Cortex System Control Register */ |
mbed_official | 522:aee49fe30179 | 66 | SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); |
mbed_official | 522:aee49fe30179 | 67 | |
mbed_official | 522:aee49fe30179 | 68 | /* Select Stop mode entry --------------------------------------------------*/ |
mbed_official | 522:aee49fe30179 | 69 | if(STOPEntry == PWR_STOPENTRY_WFI) |
mbed_official | 522:aee49fe30179 | 70 | { |
mbed_official | 522:aee49fe30179 | 71 | /* Request Wait For Interrupt */ |
mbed_official | 522:aee49fe30179 | 72 | __WFI(); |
mbed_official | 522:aee49fe30179 | 73 | } |
mbed_official | 522:aee49fe30179 | 74 | else |
mbed_official | 522:aee49fe30179 | 75 | { |
mbed_official | 522:aee49fe30179 | 76 | /* Request Wait For Event */ |
mbed_official | 522:aee49fe30179 | 77 | __SEV(); |
mbed_official | 522:aee49fe30179 | 78 | __WFE(); |
mbed_official | 522:aee49fe30179 | 79 | __WFE(); |
mbed_official | 522:aee49fe30179 | 80 | } |
mbed_official | 522:aee49fe30179 | 81 | __NOP(); |
mbed_official | 522:aee49fe30179 | 82 | __NOP(); |
mbed_official | 522:aee49fe30179 | 83 | __NOP(); |
mbed_official | 522:aee49fe30179 | 84 | /* Reset SLEEPDEEP bit of Cortex System Control Register */ |
mbed_official | 522:aee49fe30179 | 85 | CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); |
mbed_official | 522:aee49fe30179 | 86 | #else |
mbed_official | 354:e67efb2aab0e | 87 | // Request to enter STOP mode with regulator in low power mode |
mbed_official | 354:e67efb2aab0e | 88 | HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); |
mbed_official | 522:aee49fe30179 | 89 | #endif |
mbed_official | 174:8bb9f3a33240 | 90 | |
mbed_official | 129:0182c99221bc | 91 | // After wake-up from STOP reconfigure the PLL |
mbed_official | 129:0182c99221bc | 92 | SetSysClock(); |
mbed_official | 354:e67efb2aab0e | 93 | |
mbed_official | 354:e67efb2aab0e | 94 | // Enable HAL tick interrupt |
mbed_official | 354:e67efb2aab0e | 95 | __HAL_TIM_ENABLE_IT(&TimMasterHandle, TIM_IT_CC2); |
mbed_official | 76:aeb1df146756 | 96 | } |
mbed_official | 174:8bb9f3a33240 | 97 | |
mbed_official | 174:8bb9f3a33240 | 98 | #endif |