Hi Joakim, I have been busy designing my own board (based on phywave module) https://github.com/ofauchon/oflmotes/blob/master/mote-devboard/kw2xd/circuit/v1/devboard_kw2xd_v1.0_board.png
Now I'm back to RIOT-OS tests. I can see your Low Power contributions: [1]: https://github.com/RIOT-OS/RIOT/pull/7897 [2]: https://github.com/RIOT-OS/RIOT/pull/8930 [3]: https://github.com/RIOT-OS/RIOT/pull/8933 [4]: https://github.com/RIOT-OS/RIOT/pull/8814 ... had been merged to Master. That's great! Can you confirm me Kinetis Low Power Modes are fully supported in Riot/master ? Should I switch my board from PIT to LPTMR to enable these low power modes ? Thanks Olivier Fauchon. Le lun. 21 mai 2018 à 14:51, Joakim Nohlgård <[email protected]> a écrit : > Hi Olivier, > Thanks for the offer of helping! Could you write a short review on > each of the PRs that you have used/tested to let others know what the > state is and whether anything is not working as intended? > A review from a non-maintainer can not be used to approve and merge > PRs, but it does give an indication to the people with the proper > access that a PR is ready or if it needs more work. > > Also, if you have a FRDM-KW41Z board, the PR > https://github.com/RIOT-OS/RIOT/pull/9147 needs a review, and is a > fairly small fix. > > Best regards, > Joakim > > On Mon, May 21, 2018 at 9:09 AM, Olivier Fauchon <[email protected]> > wrote: > > Hi Joakim, > > > > You were right... > > > > Low power mode were blocked by PIT timers (PM_BLOCK at init) > > So I switched my board to LPTMR (board/pba-d-01-kw2x). > > > > With this change I could reduce power consumption from 10 mA to ~1mA, > > and xtimers were still working > > > > Note I rebased your pr/kinetis-pm branch to upstream/RIOT/master to > work > > on latest code. > > > > As soon as I cleanup my work, I'll send a PR for LPTMR on > "pba-d-01-kw2x". > > > > And I'll review your other "timer refactoring" PRs ASAP. > > > > Feel free to ask if you need more testing and help so your PRs get > merged. > > > > Thanks. > > Olivier > > > > > > > > > > > > > > > > Le sam. 19 mai 2018 à 22:51, Joakim Nohlgård <[email protected]> > a > > écrit : > >> > >> My guess is that your board uses xtimer with the PIT timer hardware, try > >> using the LPTMR instead. See the frdm-kw41z configuration for an example > >> config (board.h, periph_conf.h). I think Mulle has a config example as > well > >> but it is disabled by default. > >> You might find the timer refactoring PRs helpful [1], [2], [3] (any help > >> with testing and reviewing is welcome!) > >> You might also have the UART RX blocking power modes if you don't > >> configure the llwu pin in the UART config. Clocking mode will affect the > >> reliability of the UART in low power mode, some clock modes take too > long to > >> recover from sleep mode so you will miss the first few characters on > RX. Use > >> FEI if unsure. > >> > >> Best regards, > >> Joakim > >> > >> [1]: https://github.com/RIOT-OS/RIOT/pull/8933 > >> [2]: https://github.com/RIOT-OS/RIOT/pull/8814 > >> [3]: https://github.com/RIOT-OS/RIOT/pull/8830 > >> > >> /Joakim > >> > >> On Sat, May 19, 2018, 22:24 Olivier Fauchon <[email protected]> > >> wrote: > >>> > >>> Joakim, Matthew, > >>> > >>> Thanks for your help. > >>> > >>> @Joakim: I cloned your repository, I checkout the pr/kinetis-pm branch > >>> and rebase from master > >>> Then I turned ENABLE_LEDS 1 in pm.c to facilitate debugging. > >>> > >>> I build a sample application with a very simple main() loop: > >>> > >>> while (1){ > >>> printf("*** pause 5s ***\n"); > >>> xtimer_sleep(5); > >>> } > >>> > >>> With this setup, I could run the above code, but the MCU is idling in > >>> KINETIS_PM_WAIT mode > >>> (Lowest power saving ?). > >>> > >>> Maybe I missed something in my Makefiles or includes (llwu, pm_layered > >>> ?) to enable the advanced power saving modes ? > >>> > >>> Are there changes to make on the board I use (pba-d-01-kw2x) too ? > >>> > >>> Do you have a test application I can use as a reference implementation > ? > >>> > >>> Thanks > >>> > >>> Olivier Fauchon > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> 2018-05-16 20:07 GMT+02:00 Joakim Nohlgård <[email protected] > >: > >>>> > >>>> Hi Olivier, > >>>> Welcome to RIOT! > >>>> There is a pull request to integrate stop modes for the Kinetis CPUs > >>>> [1]. There's no VLPR or VLPW yet, but STOP, VLPS, and LLS are > working. It > >>>> does need a rebase though. > >>>> We could use some help reviewing this and some other related Kinetis > >>>> pull requests [2], [3], [4] if you would like to help with this. Feel > free > >>>> to open new PRs for any other improvements you may have. > >>>> > >>>> [1]: https://github.com/RIOT-OS/RIOT/pull/7897 > >>>> [2]: https://github.com/RIOT-OS/RIOT/pull/8930 > >>>> [3]: https://github.com/RIOT-OS/RIOT/pull/8933 > >>>> [4]: https://github.com/RIOT-OS/RIOT/pull/8814 > >>>> > >>>> Best regards, > >>>> Joakim > >>>> > >>>> On Wed, May 16, 2018, 09:01 Matthew Blue < > [email protected]> > >>>> wrote: > >>>>> > >>>>> Hi Olivier, > >>>>> > >>>>> Unfortunately, it seems that low power management hasn't gotten a lot > >>>>> of love for most platforms yet. The basic API is in place though, if > >>>>> you > >>>>> wish to implement it on your platform. > >>>>> > >>>>> Relevant files: > >>>>> sys/include/pm_layered.h > >>>>> sys/pm_layered/pm.c > >>>>> drivers/include/periph/pm.h > >>>>> drivers/periph_common/pm.c > >>>>> > >>>>> The PR that introduced power management: > >>>>> https://github.com/RIOT-OS/RIOT/pull/6160 > >>>>> > >>>>> This command will let you find a few areas where the API has been > used: > >>>>> grep -r -e 'pm_[un]*block' -e pm_set > >>>>> > >>>>> In general I think the idea is to number the power modes such that > you: > >>>>> * Start by giving your lowest power mode 0 > >>>>> * Then find the next lowest power mode that supports features that > are > >>>>> a superset of the features supported by 0, and make that mode 1 > >>>>> * Repeat until you run out of power modes. > >>>>> > >>>>> You then write a function pm_set in cpu/*/periph/pm.c that implements > >>>>> switching the power modes. And also you set up anything that can't > run > >>>>> in a certain power mode to pm_block that mode, and then to pm_unblock > >>>>> when it stops running. I think the kernel then handles the rest. > >>>>> > >>>>> There may be some details I missed, because I am not super-familiar > >>>>> with the system, but this should give you a good start. > >>>>> > >>>>> Good luck! > >>>>> Matthew Blue > >>>>> > >>>>> > >>>>> On Wed, 16 May 2018 08:06:45 +0200 > >>>>> Olivier Fauchon <[email protected]> wrote: > >>>>> > >>>>> > Hello, > >>>>> > > >>>>> > I'm using RIOT with KW2xD Kinetis MCU for Wireless sensors. > >>>>> > > >>>>> > I could observe that the board's current is 10mA when idle which is > >>>>> > too high for long battery > >>>>> > operation. > >>>>> > > >>>>> > The application note : > >>>>> > http://cache.freescale.com/files/32bit/doc/app_note/AN4503.pdf), > >>>>> > says there are Very Low Power Run / Wait / Stop modes. > >>>>> > > >>>>> > There are at lease these functions to integrate in RIOT Kernel. > >>>>> > > >>>>> > void enter_vlpr(void); => Enter low power run mode > >>>>> > void exit_vlpr(void); => Go back in regular power run mode > >>>>> > void enter_vlps(void); => Go to low power sleep > >>>>> > > >>>>> > What is the correct way to integrate this low power mode in Riot > >>>>> > Power > >>>>> > management? > >>>>> > Are there existing implementation for these low power modes for > other > >>>>> > MCUs to take in example ? > >>>>> > > >>>>> > Thanks > >>>>> > > >>>>> > Olivier > >>>>> > >>>>> _______________________________________________ > >>>>> users mailing list > >>>>> [email protected] > >>>>> https://lists.riot-os.org/mailman/listinfo/users > >>>> > >>>> > >>>> _______________________________________________ > >>>> users mailing list > >>>> [email protected] > >>>> https://lists.riot-os.org/mailman/listinfo/users > >>>> > >>> > >>> _______________________________________________ > >>> users mailing list > >>> [email protected] > >>> https://lists.riot-os.org/mailman/listinfo/users > >> > >> _______________________________________________ > >> users mailing list > >> [email protected] > >> https://lists.riot-os.org/mailman/listinfo/users > > > > > > _______________________________________________ > > users mailing list > > [email protected] > > https://lists.riot-os.org/mailman/listinfo/users > > > _______________________________________________ > users mailing list > [email protected] > https://lists.riot-os.org/mailman/listinfo/users >
_______________________________________________ users mailing list [email protected] https://lists.riot-os.org/mailman/listinfo/users
