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