NetSilicon & Digi Confidential NET+OS 6.1 Training 12/29/2018 NetSilicon & Digi Confidential
NetSilicon & Digi Confidential Power Save Driver 12/29/2018 NetSilicon & Digi Confidential
NetSilicon & Digi Confidential Power Save API H/W Features H/W Limitations Preparing for power down API Functions 12/29/2018 NetSilicon & Digi Confidential
Power Save H/W Features Lowers power consumption during idle periods by shutting down modules in the chip, including the CPU. Listens for a predefined trigger that causes the system to wake up. 12/29/2018 NetSilicon & Digi Confidential
NetSilicon & Digi Confidential Reset Triggers BBUS Aggregate Interrupt. Predefined serial data is received on port B. I2C Interrupt. Ethernet packet is received. PCI module generates interrupt 3. 12/29/2018 NetSilicon & Digi Confidential
Power Save H/W Limitations Chip wakes up by doing a hard reset. All memory and state information is lost. The trigger that caused the system to wake up is lost (Ethernet packet for example). Cannot be used with the software watchdog. 12/29/2018 NetSilicon & Digi Confidential
Preparing for Power Down Some modules need to shut down gracefully (close TCP connections for example) before the system is powered down. Some drivers for external devices may need to power down their devices. NAPDRegister() registers functions that are called just before the system is powered down. Priority level for each function is specified and functions are executed in priority order. Ensures services required by a shutdown routine will be available. 12/29/2018 NetSilicon & Digi Confidential
NetSilicon & Digi Confidential Serial Trigger Serial Port B can be monitored when powered down. First word received on port B is examined. Everything else received on port B is discarded. Word may contain between 1 and 4 bytes. 12/29/2018 NetSilicon & Digi Confidential
NetSilicon & Digi Confidential Serial Trigger Software loads ARM Wakeup register with data to match port B data against before powering down system. All valid bytes in first word from port B are compared against corresponding bytes in the ARM Wakeup register. System is reset if all valid bytes match. Use NAPDSetSerialWakeupData() to load the ARM Wakeup register. 12/29/2018 NetSilicon & Digi Confidential
NetSilicon & Digi Confidential Other Wake up Triggers Application software must set up H/W to support other triggers. For example, serial port must be correctly programmed for baud rate, data word size, etc. Ethernet H/W should probably be configured to reject broadcasts if Ethernet trigger is to be used. 12/29/2018 NetSilicon & Digi Confidential
NetSilicon & Digi Confidential Powering Down Call NAPDSleep() to power down the system. Assert() generated if watchdog timer is enabled. Calls functions previously registered with NAPDRegister() in priority order. Powers down modules not required by selected triggers. Arms the triggers. Powers down CPU and memory controller. 12/29/2018 NetSilicon & Digi Confidential
NetSilicon & Digi Confidential API Summary NAPDRegister(): Register a function to be called before the system powers down. Functions are prioritized. NAPDSetSerialWakeupData(): Sets data to be compared against first word received from serial port B. NAPDSleep(): Powers down the chip. 12/29/2018 NetSilicon & Digi Confidential