
“ ไร้สายทำให้ง่าย!” - เปิดใช้งานการนับพัลส์ในแอปพลิเคชัน Lorawan ที่มีกำลังต่ำ

ซอฟต์แวร์มีให้ "ตามสภาพ" และให้เส้นทางสำหรับการสนับสนุนตนเองและการบำรุงรักษาตนเอง
ที่เก็บนี้มีรหัสตัวอย่างที่ไม่ได้รับการสนับสนุนเพื่อช่วยเร่งการพัฒนาผลิตภัณฑ์ลูกค้า ไม่ได้รับการตรวจสอบสำหรับการผลิตหรือตรวจสอบเพื่อการปฏิบัติที่ดีที่สุดด้านความปลอดภัย
โปรดทราบว่าในขณะที่พื้นที่เก็บข้อมูลนี้ไม่ได้รับการสนับสนุนการบริจาคของชุมชน Microchip ต้อนรับและการตอบกลับทั้งหมดจะได้รับการพิจารณาเพื่อรวมเข้ากับที่เก็บ
โต้ตอบกับเพื่อนในชุมชนที่ Lora Forum
จากแอปพลิเคชัน Lorawan ที่สร้างขึ้นจาก ASFV3 รหัสตัวอย่างนี้แสดงให้เห็นถึงวิธีการเปิดใช้งานการนับพัลส์ที่ประหยัดพลังงานในขณะที่อุปกรณ์ถูกวางไว้ในโหมดสแตนด์บายซึ่งมีประโยชน์สำหรับแอปพลิเคชันที่ใช้พลังงานจากแบตเตอรี่ที่ใช้ในการวัดอัจฉริยะ
แอปพลิเคชันหลักประกอบด้วยการส่งค่าตัวนับไปยังคลาวด์ของผู้ให้บริการเครือข่าย Lorawan ผ่านเกตเวย์ เพื่อจุดประสงค์ของการสาธิตนี้ TTN และ TTI ที่มีองค์ประกอบความปลอดภัยที่ได้รับการจัดเตรียมไว้ล่วงหน้าได้ถูกนำมาใช้
โคลน/ดาวน์โหลด repo ปัจจุบันเพื่อรับซอฟต์แวร์
ต้อง: ซื้อชุดประเมินผล SAM R34 XPLAINED PRO

ซื้อชุดประเมินผล WLR089U0 Xplained Pro

ต้อง: ซื้อเกตเวย์ Lora (R) (เช่นจากอุตสาหกรรมสิ่งต่าง ๆ ) 
ตัวเลือก: ซื้อตัวอย่างขององค์ประกอบที่ปลอดภัยของ ATECC608A-TNGLORA และชุดซ็อกเก็ต UDFN Cryptoauthentication UDFN
ดาวน์โหลดและติดตั้ง Microchip Studio 7.0 IDE
เปิด Microchip Studio 7.0 IDE
จาก เครื่องมือ -> ส่วนขยายและการอัปเดต ติดตั้งเฟรมเวิร์กซอฟต์แวร์ขั้นสูง (ASFV3) v3.49.1 รีลีสหรือรุ่นบน
รีสตาร์ทสตูดิโอไมโครชิป
ดาวน์โหลดและติดตั้งโปรแกรมเทอร์มินัลอนุกรมเช่น TERA TERM
ในการแยกการบริโภคปัจจุบัน SAM R34 คณะกรรมการจะต้องกำหนดค่าตามที่อธิบายไว้ด้านล่าง:

ในกรณีที่คุณใช้เซิร์ฟเวอร์ TTI และองค์ประกอบที่ปลอดภัยของ ATECC608A-TNGLORA โปรดดูที่ repo นี้สำหรับการตั้งค่า
WLR089 Xplained Pro ต้องการการปรับเปลี่ยนฮาร์ดแวร์เพื่อใช้รหัสแอปพลิเคชัน โดยค่าเริ่มต้นตัวเหนี่ยวนำ L301 (10UH) และตัวเก็บประจุ C316 (100NF) ไม่ได้ติดตั้งบน WLR089 XPLAINED Pro ทั้งสองจำเป็นต้องติดตั้งเพื่อใช้แอปพลิเคชันตัวอย่างและเลือกตัวแปลงบั๊กเป็นตัวควบคุมแรงดันไฟฟ้าหลักในโหมดแอคทีฟ
ตรวจสอบเอกสาร WLR089 XPLAINED PRO สำหรับรายละเอียดเพิ่มเติม



อุปกรณ์ SAMR34/R35 มีออสซิลเลเตอร์ภายนอกและภายในที่แม่นยำ โดเมนนาฬิกาที่แตกต่างกันสามารถกำหนดค่าได้อย่างอิสระให้ทำงานที่ความถี่ที่แตกต่างกันทำให้สามารถประหยัดพลังงานได้โดยการรันแต่ละอุปกรณ์ต่อพ่วงที่ความถี่นาฬิกาที่ดีที่สุดจึงรักษาความถี่ CPU สูงในขณะที่ลดการใช้พลังงาน
อุปกรณ์ SAM R34/R35 มีโหมดสลีปซอฟต์แวร์ที่เลือกได้สี่โหมด: ว่าง, สแตนด์บาย, สำรองและปิด
ใน โหมดว่าง CPU จะหยุดในขณะที่ฟังก์ชั่นอื่น ๆ ทั้งหมดอาจทำงานต่อไป
ใน โหมดสแตนด์บาย นาฬิกาและฟังก์ชั่นทั้งหมดจะหยุดลงยกเว้นที่เลือกให้ทำงานต่อ ในโหมดนี้ Rams และเนื้อหาลอจิกทั้งหมดจะถูกเก็บไว้ อุปกรณ์รองรับการเดินนอนหลับซึ่งช่วยให้อุปกรณ์ต่อพ่วงบางตัวตื่นจากการนอนหลับตามเงื่อนไขที่กำหนดไว้ล่วงหน้าดังนั้นจึงช่วยให้การดำเนินการภายในเช่นการถ่ายโอน DMA และ/หรือซีพียูเพื่อปลุกเมื่อจำเป็นเท่านั้น ตัวอย่างเช่นเมื่อมีการข้ามเกณฑ์หรือผลลัพธ์ก็พร้อม ระบบเหตุการณ์รองรับเหตุการณ์แบบซิงโครนัสและอะซิงโครนัสช่วยให้อุปกรณ์ต่อพ่วงสามารถรับตอบสนองและส่งเหตุการณ์แม้ในโหมดสแตนด์บาย
ใน โหมดสำรองข้อมูล ส่วนใหญ่ของเซลล์ตรรกะและอะนาล็อกจะถูกปิด มีคุณสมบัติเพียงไม่กี่อย่างเท่านั้น (RTC, การลงทะเบียนสำรอง, ปลุกจากพินภายนอก)
ไม่แนะนำให้ ใช้โหมดปิด เนื่องจากความต้านทานสูงบนรถบัส SPI ภายในส่งผลให้เกิดการแพร่กระจาย
อุปกรณ์ SAM R34/R35 มีระดับประสิทธิภาพการเลือกซอฟต์แวร์สองระดับ (PL0 และ PL2) ช่วยให้ผู้ใช้สามารถปรับระดับแรงดันไฟฟ้าแกนต่ำสุดที่รองรับความถี่ในการทำงาน เพื่อลดการบริโภคในปัจจุบันให้น้อยที่สุดโดยเฉพาะการกระจายการรั่วไหลอุปกรณ์ใช้เทคนิคการ gating โดเมนพลังงานด้วยการเก็บรักษาเพื่อปิดพื้นที่ตรรกะบางส่วนในขณะที่รักษาสถานะตรรกะของพวกเขา เทคนิคนี้ได้รับการจัดการอย่างเต็มที่ในฮาร์ดแวร์
Microchip Lorawan Stack (MLS) ให้โมดูลการจัดการพลังงาน (PMM) ในสแต็ก แอปพลิเคชันที่ทำงานอยู่ด้านบนของ MLS สามารถเลือกใช้ PMM เพื่อประหยัดพลังงานในช่วงเวลาว่าง นอกเหนือจากการประหยัดพลังงานในระหว่างที่ไม่ได้ใช้งาน PMM พยายามลดการใช้พลังงานแม้ในระหว่างการทำธุรกรรม การประหยัดพลังงานทำได้โดยการเปลี่ยน MCU เป็นหนึ่งในโหมดพลังงานต่ำที่มีอยู่ ปัจจุบัน PMM ได้รับการสนับสนุนเฉพาะใน SAM R34 MCU และสามารถกำหนดค่าได้ทั้งในโหมดสแตนด์บายหรือการสำรองข้อมูล
โหมดสแตนด์บาย:
โหมดสำรอง:
PMM เปิดใช้งานผ่าน Macro CONF_PMM_ENABLE แมโครนี้ควบคุมการเพิ่มและการลบ PMM ในแอปพลิเคชันและในสแต็ก หลังจากเปิดใช้งานคุณสมบัติ PMM ในรหัสแอปพลิเคชันบางส่วนของรหัสที่อยู่ระหว่างส่วนต่อไปนี้จะถูกรวบรวมและดำเนินการ:
#ifdef CONF_PMM_ENABLE
..
#endif
แอปพลิเคชันปัจจุบัน (ไฟล์ lorawan_app.c ) ใช้รหัสทั้งหมดที่จำเป็นสำหรับการใช้คุณสมบัติ PMM แล้ว และรายละเอียดต่อไปนี้จะได้รับข้อมูล
ในการใช้ PMM ในแอปพลิเคชันจำเป็นต้องรวมไฟล์ส่วนหัวต่อไปนี้:
#ifdef CONF_PMM_ENABLE
#include "pmm.h"
#include "conf_pmm.h"
#include "sleep_timer.h"
#include "sleep.h"
#endif
โดยค่าเริ่มต้นเวลาการนอนหลับของแอปพลิเคชันจะถูกกำหนดค่าเป็นเวลา 30 วินาทีและสามารถเปลี่ยนเป็นค่าที่ต้องการได้ แอปพลิเคชันสลีปเวลาคำขอได้รับการกำหนดค่าโดยแมโคร:
#define DEMO_CONF_DEFAULT_APP_SLEEP_TIME_MS 30000 // Sleep duration in ms
แต่ระยะเวลาการนอนหลับจะต้องอยู่ในช่วงที่ยอมรับได้ซึ่งเป็น givin ในตารางต่อไปนี้

โมดูล Timer Sleep จะต้องเริ่มต้นเพื่อเปิดใช้งานโมดูล RTC:
#ifdef CONF_PMM_ENABLE
SleepTimerInit() ;
#endif
ไฟล์ rtc_count.h มีแหล่งนาฬิกาที่มีอยู่สำหรับโมดูล RTC
#ifdef FEATURE_RTC_CLOCK_SELECTION
/**
* brief Available clock source for RTC.
* RTC clock source.
*/
enum rtc_clock_sel {
/** 1.024KHz from 32KHz internal ULP oscillator */
RTC_CLOCK_SELECTION_ULP1K = OSC32KCTRL_RTCCTRL_RTCSEL_ULP1K_Val,
/** 32.768KHz from 32KHz internal ULP oscillator */
RTC_CLOCK_SELECTION_ULP32K = OSC32KCTRL_RTCCTRL_RTCSEL_ULP32K_Val,
#if !(SAML22)
/** 1.024KHz from 32KHz internal oscillator */
RTC_CLOCK_SELECTION_OSC1K = OSC32KCTRL_RTCCTRL_RTCSEL_OSC1K_Val,
/** 32.768KHz from 32KHz internal oscillator */
RTC_CLOCK_SELECTION_OSC32K = OSC32KCTRL_RTCCTRL_RTCSEL_OSC32K_Val,
#endif
/** 1.024KHz from 32KHz external oscillator */
RTC_CLOCK_SELECTION_XOSC1K = OSC32KCTRL_RTCCTRL_RTCSEL_XOSC1K_Val,
/** 32.768KHz from 32.768KHz external crystal oscillator */
RTC_CLOCK_SELECTION_XOSC32K = OSC32KCTRL_RTCCTRL_RTCSEL_XOSC32K_Val,
};
#endif
สำหรับแอปพลิเคชันนี้โมดูล RTC จะถูกโอเวอร์คล็อกจากนาฬิกา 32KHz ภายนอก การใช้ออสซิลเลเตอร์พลังงานต่ำพิเศษ 32KHz ภายในเนื่องจากแหล่งนาฬิกา RTC เป็นไปได้ แต่ต้องใช้การตั้งค่านาฬิกาที่แตกต่างกัน การใช้ XOSC32 จะส่งผลให้ประสิทธิภาพดีขึ้นการดริฟท์ความถี่น้อยลงและความเสถียรที่สูงขึ้น
ในโหมดสแตนด์บายแหล่งนาฬิกาทั้งหมดจะหยุดยกเว้นที่บิต runstdby (เรียกใช้ในสแตนด์บาย) สำหรับโมดูลถูกตั้งค่าหรือตั้งค่าบิต ondemand เป็นศูนย์ โดยค่าเริ่มต้นตัวควบคุมจะทำงานในโหมดพลังงานต่ำเมื่อใช้โหมดสลีปสแตนด์บาย ก่อนที่จะเข้าสู่โหมดสแตนด์บายจะต้องตรวจสอบให้แน่ใจว่ามีการปิดการใช้งานนาฬิกาและอุปกรณ์ต่อพ่วงจำนวนมากเพื่อให้ตัวควบคุมแรงดันไฟฟ้าไม่มากเกินไป เพื่อหลีกเลี่ยงการโอเวอร์โหลดอุปกรณ์ต่อพ่วงควรได้รับการกำหนดค่าเพื่อให้การใช้พลังงานทั้งหมดที่จัดทำโดยตัวควบคุมภายในในโหมดพลังงานต่ำควรน้อยกว่า50μA หากอุปกรณ์ต่อพ่วงที่จำเป็นในการทำงานในโหมดสแตนด์บายใช้มากกว่า 50UA ตัวควบคุมควรกำหนดค่าให้ทำงานในโหมดปกติและสามารถทำได้จากซอฟต์แวร์โดยการตั้งค่าบิต runstdby ใน sysctrl -> vreg
แอปพลิเคชันใช้ฟังก์ชั่นการเพิ่มประสิทธิภาพพลังงานต่อไปนี้เพื่อให้ได้ประโยชน์ของสถาปัตยกรรมพลังงานต่ำพิเศษของอุปกรณ์ SAM R34
static void configure_sleep(void)
{
/* Disable BOD33 */
SUPC->BOD33.reg &= ~(SUPC_BOD33_ENABLE);
/* Select BUCK converter as the main voltage regulator in active mode */
SUPC->VREG.bit.SEL = SUPC_VREG_SEL_BUCK_Val;
/* Wait for the regulator switch to be completed */
while(!(SUPC->STATUS.reg & SUPC_STATUS_VREGRDY));
/* Set Voltage Regulator Low power Mode Efficiency */
SUPC->VREG.bit.LPEFF = 0x1;
/* Apply SAM L21 Erratum 15264 */
SUPC->VREG.bit.RUNSTDBY = 0x1;
SUPC->VREG.bit.STDBYPL0 = 0x1;
/* SRAM configuration in standby */
PM->STDBYCFG.reg = PM_STDBYCFG_BBIASHS(1) | PM_STDBYCFG_VREGSMOD_LP ;
}
อ้างถึงแผ่นข้อมูลผลิตภัณฑ์ครอบครัว Sam L21 สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับสถาปัตยกรรมพลังงานต่ำของไมโครคอนโทรลเลอร์ https://www.microchip.com/wwwproducts/en/atsaml21j18b
โดยทั่วไปเซ็นเซอร์การไหลจะแปลงพลังงานจลน์จากการหมุนเป็นสัญญาณดิจิตอลไฟฟ้าในรูปแบบของพัลส์
ในแอปพลิเคชันนี้อุปกรณ์ SAM R34 นับจำนวนพัลส์ในขณะที่อยู่ในโหมดสแตนด์บาย ขอบคุณคุณสมบัติของ Event System (EVSYS) ที่มีอยู่ภายในอุปกรณ์ SAM R34 เพื่อเปิดใช้งานการสื่อสารระหว่างอุปกรณ์เสริมพ่วงดังนั้นจึงช่วยลดภาระ CPU และการใช้พลังงานของระบบ ช่วยให้สามารถควบคุมอุปกรณ์ต่อพ่วงได้โดยไม่ใช้แบนด์วิดท์ CPU และสามารถอยู่ในโหมดสแตนด์บายเป็นระยะเวลานานขึ้น
อุปกรณ์ต่อพ่วงบางตัวสามารถทำงานในโหมดสแตนด์บายต่อไปซึ่งนาฬิกาต้นทางกำลังทำงานอยู่และนี่คือกรณีของตัวนับตัวจับเวลา (TC) หรือตัวนับตัวจับเวลาสำหรับแอปพลิเคชันควบคุม (TCC)
ระบบเหตุการณ์ประกอบด้วยสองแหล่งเหตุการณ์ต่อไปนี้:
ในแอปพลิเคชันปัจจุบันระบบเหตุการณ์ได้รับการกำหนดค่าดังด้านล่าง

แอปพลิเคชันนี้มีจุดมุ่งหมายเพื่อนับพัลส์ที่มาจากแหล่งพัลส์และส่งผ่านโปรโตคอล Lorawan RF

โมดูล Extint8 (เชื่อมต่อทางกายภาพกับปุ่มผู้ใช้ที่มีอยู่บนบอร์ด) ได้รับการกำหนดค่าเพื่อสร้างเหตุการณ์เมื่อกดปุ่ม SW0 SW0 เชื่อมต่อกับ PA28 ซึ่งสามารถสร้างการขัดจังหวะในการเสนอราคา [8]
// configure external interrupt for SW0
void configure_extint(void)
{
// configure external interrupt controller
struct extint_chan_conf extint_chan_config ;
extint_chan_config.gpio_pin = CONF_EIC_PIN ;
extint_chan_config.gpio_pin_mux = CONF_EIC_MUX ;
extint_chan_config.gpio_pin_pull = EXTINT_PULL_UP ;
extint_chan_config.detection_criteria = EXTINT_DETECT_RISING ;
extint_chan_config.filter_input_signal = true ;
extint_chan_set_config(CONF_EIC_CHAN, &extint_chan_config) ;
// configure external interrupt module to be an event generator
struct extint_events extint_event_config ;
extint_event_config.generate_event_on_detect[CONF_EIC_CHAN] = true ;
extint_enable_events(&extint_event_config) ;
}
สิ่งนี้ถูกกำหนดเส้นทางไปยังตัวจับเวลา/ตัวนับ TC0 โดยช่องระบบเหตุการณ์ 8
// configure event system for generators and users
void configure_eventsystem(void)
{
// configure event system
struct events_resource event_res ;
// configure channel
struct events_config config ;
events_get_config_defaults(&config) ;
config.generator = CONF_EVENT_GENERATOR_ID ;
config.edge_detect = EVENTS_EDGE_DETECT_RISING ;
config.path = EVENTS_PATH_ASYNCHRONOUS ;
config.run_in_standby = true ;
events_allocate(&event_res, &config) ;
// configure user
events_attach_user(&event_res, CONF_EVENT_USER_ID) ;
}
TC0 ได้รับการกำหนดค่าให้เพิ่มตัวนับ 16 บิตในเหตุการณ์ที่สร้างขึ้นจากโมดูลการนอนหลับ
// configure_tc
void configure_tc(void)
{
// configure TC module for counting
static struct tc_config tc_counter_config ;
tc_reset(&tc_counter_module) ;
tc_get_config_defaults(&tc_counter_config) ;
tc_counter_config.clock_prescaler = TC_CLOCK_PRESCALER_DIV1 ;
tc_counter_config.count_direction = TC_COUNT_DIRECTION_UP ;
tc_counter_config.counter_size = TC_COUNTER_SIZE_16BIT ;
tc_counter_config.on_demand = true ;
tc_counter_config.run_in_standby = true ;
tc_init(&tc_counter_module, CONF_TC, &tc_counter_config) ;
struct tc_events tc_event = {
.on_event_perform_action = true,
.event_action = TC_EVENT_ACTION_INCREMENT_COUNTER,
.generate_event_on_overflow = false
} ;
tc_enable_events(&tc_counter_module, &tc_event) ;
// enable TC module
tc_enable(&tc_counter_module) ;
}
เนื่องจาก TC มีบิต ondemand จึงปรับปรุงการใช้พลังงานเล็กน้อยในโหมดสแตนด์บายกับโมดูล TCC ใน conf_pulse_counter.h เป็นไปได้ที่จะเลือกใช้ TC หรือ TCC เป็นตัวนับ ทั้งคู่สามารถนับได้ในโหมดสแตนด์บาย
#ifndef CONF_PULSE_COUNTER_H
#define CONF_PULSE_COUNTER_H
// Counter selection
#define USE_TC 0
#define USE_TCC 1
#define COUNTER_SELECTED USE_TC
// EXTINT Config
#define CONF_EIC_CHAN BUTTON_0_EIC_LINE // EXTINT8
#define CONF_EIC_PIN BUTTON_0_EIC_PIN
#define CONF_EIC_MUX BUTTON_0_EIC_MUX
// EVSYS Config
#define CONF_EVENT_GENERATOR_ID EVSYS_ID_GEN_EIC_EXTINT_8
#if (COUNTER_SELECTED == USE_TCC)
#define CONF_EVENT_USER_ID EVSYS_ID_USER_TCC1_EV_0
#else
#define CONF_EVENT_USER_ID EVSYS_ID_USER_TC4_EVU // must match with CONF_TC
#endif
// TCC
#define CONF_TCC TCC1
#define CONF_CAPTURE_CHAN_0 0
#define CONF_CAPTURE_CHAN_1 1
// TC
#define CONF_TC TC4 // TC0 is already used in LoRaWAN stack (hw_timer.c, conf_hw_timer.h)
#endif
เปิดโครงการปัจจุบันด้วย Microchip Studio 7 IDE
จากเมนูด้านบนไปที่โครงการ -> คุณสมบัติ
ในกรณีที่องค์ประกอบที่ปลอดภัยเชื่อมต่อกับบอร์ด SAM R34 XPLAINED PRO ตรวจสอบให้แน่ใจว่ามีการกำหนด macro CRYPTO_DEV_ENABLED เลือก Toolchain> arm/gnu c คอมไพเลอร์> สัญลักษณ์

จากการตั้งค่าเครื่องมือเลือกบอร์ดของคุณเป็นตัวดีบัก EDBG พร้อมอินเตอร์เฟส SWD


จากเมนูด้านบนเครื่องมือเปิด> data visualizer

ภายใต้แผงควบคุม DGI เลือก SAMR34 XPLAINED PRO และคลิกเชื่อมต่อ

เมื่อพร้อมให้เลือกอินเทอร์เฟซ "Power" แล้วคลิกเริ่มต้นเพื่อเริ่มการวิเคราะห์พลังงานบนบอร์ด

Data Visualizer ควรแสดงการใช้พลังงานของอุปกรณ์ SAM R34 และสร้างนามธรรมของ I/O และการใช้ชิปออนบอร์ดภายนอก
Open Tera Term UART คอนโซลที่กำหนดค่าที่ 115200 bps, 8-data bits/no parity/1-stop บิต
กดปุ่ม "รีเซ็ต" บนบอร์ด SAM R34 Xplained Pro เพื่อดูเอาต์พุตที่พิมพ์ลงในคอนโซล
หากมีการกำหนด Macro CRYPTO_DEV_ENABLED

หากไม่ lorawan_app.c กำหนด macro CRYPTO_DEV_ENABLED

เมื่ออุปกรณ์เข้าร่วมเครือข่าย Lorawan ได้สำเร็จแอปพลิเคชันจะตื่นขึ้นมาทุก ๆ 60 วินาทีและส่งข้อความอัปลิงค์ผ่านเครือข่าย Lorawan เป็นระยะ ข้อความห่อหุ้มค่าตัวนับและอุณหภูมิใน° C และใน° F

ในโหมดที่ใช้งานอยู่ทุกครั้งที่ตื่นอุปกรณ์จะออกเกียร์ตามด้วยหน้าต่างรับสัญญาณสองบาน

ระหว่างการส่งสองครั้งการใช้พลังงานในโหมดสแตนด์บายอยู่ที่ประมาณ 8UA

ในโหมดสแตนด์บายการนับพัลส์เป็นไปได้โดยไม่ต้องตื่น CPU

เมื่อเปรียบเทียบกับแผ่นข้อมูล SAM R34 กระแส UA เพิ่มเติมเกิดจากความจริงที่ว่าสวิตช์ RF จะถูกเปิดใช้งานเสมอในการออกแบบบอร์ด XPLAINTE PRO ปัจจุบัน
ด้วยบอร์ด WLR089U0 XPLAINTE PRO สวิตช์ RF จะถูกควบคุมโดยแอปพลิเคชันและด้วยการปรับปรุงนั้นการบริโภคในปัจจุบันที่วัดได้จะต่ำกว่ามาก
ผลลัพธ์สามารถสังเกตได้บนคอนโซลเซิร์ฟเวอร์เครือข่าย Lorawan เช่นกัน

สำหรับอุปกรณ์คลาส A; ซึ่งนอนหลับเกือบตลอดเวลา เป็นสิ่งสำคัญที่จะต้องคำนึงถึงปริมาณพลังงานเมื่ออุปกรณ์ไม่ได้ทำธุรกรรมทางวิทยุ การใช้ PMM กับพารามิเตอร์เวลานอนที่ยาวนานขึ้นเป็นวิธีปฏิบัติที่ดีในการลดจำนวนเหตุการณ์ปลุกและลดการใช้พลังงานโดยรวม ปัจจัยอื่น ๆ ที่ควรพิจารณาเมื่อคุณต้องการเพิ่มประสิทธิภาพการใช้พลังงานโดยรวมของอุปกรณ์ของคุณ
หากเปิดใช้งานรอบการทำงาน (เช่นหากใช้วงดนตรี EU868) ตัวจับเวลารอบการทำงานจะขัดจังหวะการนอนหลับและให้การปลุกที่ไม่คาดคิด
