I haven't found a way to get the debugger to connect reliably with low power modes without manual intervention.
If you hold the reset button on the development board when you do a make flash until you get to the point where it has identified the CPU it should work. Release the reset and then the flashing should complete successfully. I haven't tested on the kw2xd, but it works on at least the k22f and the kw41z. Hope this helps. /Joakim Den sön 18 nov. 2018 20:17 skrev Olivier Fauchon <[email protected]>: > Hi Joakim. > > I 've been playing with your PR here: > https://github.com/gebart/RIOT/tree/pr/kinetis-pm. > > To make it work with my custom board, I made some changes in my local > board definition: > > * include/periph_conf.h > > #define LPTMR_NUMOF (1U) > #define LPTMR_CONFIG { \ > { \ > .dev = LPTMR0, \ > .base_freq = 32768u, \ > .llwu = LLWU_WAKEUP_MODULE_LPTMR0, \ > .src = 2, \ > .irqn = LPTMR0_IRQn, \ > }, \ > } > > * include/board.h > > /* LPTMR xtimer configuration */ > #define XTIMER_DEV (TIMER_LPTMR_DEV(0)) > #define XTIMER_CHAN (0) > /* LPTMR is 16 bits wide and runs at 32768 Hz (clocked by the RTC) */ > #define XTIMER_WIDTH (16) > #define XTIMER_BACKOFF (5) > #define XTIMER_ISR_BACKOFF (5) > #define XTIMER_OVERHEAD (4) > #define XTIMER_HZ (32768ul) > > Is that right ? > > > After that, I found out low power modes were blocked because of some > PM_BLOCK() in UART. > > As a workaround, I added uart_poweroff(UART_DEV(0)) before xtimer_sleep() > in my main thread loop. > (So the uart don't limit pm_set_lowest() ) > > > Since I flashed this new binary, I cannot connect anymore my board through > openocd/jlink/swd. > > I'm wondering if my board is bricked (maybe the low power mode shuts down > JTAG too fast after boot ? ) > > As soon as I have a new working board, I'll continue working on your code. > > (Of course I'll add safeguard so low power mode cannot activate that fast > at poweron) > > Any ideas/comment welcome > > Thanks > Olivier. > > > > > > > Le ven. 16 nov. 2018 à 08:14, Joakim Nohlgård <[email protected]> > a écrit : > >> Hi again, >> >> On Thu, Nov 15, 2018 at 10:36 PM Olivier Fauchon <[email protected]> >> wrote: >> > >> > Hi. >> > It seems the board I use don't have LPTMR declared : >> > >> > >> https://github.com/RIOT-OS/RIOT/blob/master/boards/pba-d-01-kw2x/include/periph_conf.h >> > >> > #define PIT_NUMOF (2U) >> > #define PIT_CONFIG { \ >> > { \ >> > .prescaler_ch = 0, \ >> > .count_ch = 1, \ >> > }, \ >> > { \ >> > .prescaler_ch = 2, \ >> > .count_ch = 3, \ >> > }, \ >> > } >> > #define LPTMR_NUMOF (0U) >> > #define LPTMR_CONFIG {} >> > #define TIMER_NUMOF ((PIT_NUMOF) + (LPTMR_NUMOF)) >> > >> > >> > Can you confirm I need to declare LPTMR to get Low Power Mode working ? >> >> You will need LPTMR if you want to be able to use low power modes when >> you are using the xtimer module, which is usually required for things >> like network timeouts etc. >> >> > Do you have example of working LPTMR declarations ? >> >> Yes, look at the other Kinetis based boards in the tree. Here is one >> example from FRDM-K22F: >> >> https://github.com/RIOT-OS/RIOT/blob/836fe3dbbaba8b65bf23110c8b56cbaf1558c022/boards/frdm-k22f/include/periph_conf.h#L82-L90 >> >> #define LPTMR_NUMOF (1U) >> #define LPTMR_CONFIG { \ >> { \ >> .dev = LPTMR0, \ >> .irqn = LPTMR0_IRQn, \ >> .src = 2, \ >> .base_freq = 32768u, \ >> }, \ >> } >> >> >> /Joakim >> _______________________________________________ >> 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
