The low power consumption of ZigBee is something everyone is very concerned about, for example, devices powered by button batteries. (Currently, I have tested that PM2 is about 1.2uA and PM3 is around 0.3uA for the core board, not counting peripherals.) Today, I will just jot down a simple memo:
1. Network Joining Power Consumption Control When scanning the network, it can significantly increase power consumption. If the network design has issues or there are bugs in the code causing frequent disconnections and reconnections, the battery consumption will be substantial. Therefore, it is necessary to control the power consumption during network joining according to actual needs to save current. My approach is to check the network status in the ZDO_STATE_CHANGE event of the protocol stack when joining the network. If it has not successfully joined or rejoined after a certain period, I choose to continue sleeping and wait for the next scheduled scan or a triggered scan, judging based on practical applications.
2. Runtime Power Consumption Control Increasing the interval of requests and reducing transmission power can also lower power consumption, or reducing the retransmission count of the protocol stack, and implementing related delivery control at the application layer, such as response.
3. Sleep Mode Power Consumption Control Low power can be categorized into two types (actually three, which is to completely turn off the power). Let’s mainly discuss PM3. First, turn off the power. Second, handle unused IO to avoid frequent interrupts waking up. Third, regarding the network part, PM3 mode can only be woken up by interrupts, and I believe the purpose of waking up is solely to send data. The retransmission mechanism of the protocol stack is not to be taken lightly; if it retransmits 5 or 6 times each time, it effectively reduces the lifespan by 5 or 6 times. This point also needs careful attention. 4. Other Considerations In PM3 mode, you will notice many interesting things, such as the serial port becoming unusable and the timer being inaccurate, which may still occur even after the terminal wakes up. The reason for this is that the crystal oscillator does not oscillate when the power is not held steady. This point also needs to be noted.
This article is reproduced from the Internet of Things.

Long press the left QR code to identify and follow.