Open main menu

DAVE Developer's Wiki β

Changes

Power consumption (SBC Lynx)

2,095 bytes added, 10:27, 28 April 2016
no edit summary
Measurements have been performed on the following platform (also denoted as ''testbed2'' in the rest of the document):
* SBC Lynx rev.0 (S-XUBB0000C0R) equipped with a plug-in board for 24-bit RGB LCD interfacing
* System software: [[SBC_Lynx_Embedded_Linux_Kit_(XUELK)|XUELK 0.9.0]]
* processor's LDO is enabled (required to perform voltage scaling)
*TBD elencare modifiche hw Some HW modifications are required to obtain the minimum power consumption:** CAN Transceiver SN65HVD232 (phy can ecc.U4)is removed, beaceuse it doesn't have low power functionality** All the unneeded pull-ups on signals in the VDD_SNVS_IN voltage domain are removed** Backup battery is removed** LCD_DATA14 is connected to MPUART0_ON signal in order to shutdown RS232 transceiver
* Power monitors: two custom current probes have been used
**power probe #1 is connected to the input power rail at 12V
===System idle===
In this case the default <code>interactive</code> governor is used.
<pre>
root@sbc-lynx:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
interactive
</pre>
{|class="wikitable"
|-
!Processor subsystem power consumption ([[#PSUBlockDiagram|probe #2]]) [1],[2]<br>[mW]
|-
| TBD 385 [2]||TBD 336 [2]
|-
|}
*CAN PHY
*RS485 polarization network
*TBDRS232 and RS485 are in shutdown mode*Ethernet link
[2] 24MHz active oscillator power consumption is included. As the board under test is equipped with iMX6UL revision 1.0, active oscillator is required to implement the fix described by errata ERR009455. Typical consumption of this oscillator is about 20mW. Future revision of the board will be populated with silicon revision 1.1 or newer. Thus active oscillator will be removed. For more details please refer to ''Chip Errata for the i.MX 6UltraLite''<ref name="IMX6ULCE">Freescale Semiconductor, ''Chip Errata for the i.MX 6UltraLite'', Rev. 0.1, 02/2016</ref>.
!Processor subsystem power consumption ([[#PSUBlockDiagram|probe #2]]) [1],[2]<br>[mW]
|-
| TBD 90 ||TBD68-74
|-
|}
*CAN PHY
*RS485 polarization network
*TBDRS232 and RS485 are in shutdown mode*Ethernet link
[2] 24MHz active oscillator power consumption is included. As the board under test is equipped with iMX6UL revision 1.0, active oscillator is required to implement the fix described by errata ERR009455. Typical consumption of this oscillator is about 20mW. Future revision of the board will be populated with silicon revision 1.1 or newer. Thus active oscillator will be removed. For more details please refer to ''Chip Errata for the i.MX 6UltraLite''<ref name="IMX6ULCE">Freescale Semiconductor, ''Chip Errata for the i.MX 6UltraLite'', Rev. 0.1, 02/2016</ref>.
To configure the system to perform this test, the following commands have been used.
TBD<pre>#!/bin/bash
echo 8 > /proc/sys/kernel/printk
ifconfig eth0 down
echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor # Disable MPUART0 (RS232 transceiver)# MPUART0_ONecho 83 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio83/directionecho 0 > /sys/class/gpio/gpio83/value # MPUART0_DENecho 136 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio136/directionecho 0 > /sys/class/gpio/gpio136/value # MPUART0_RXENecho 137 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio137/directionecho 0 > /sys/class/gpio/gpio137/value # Disable MPUART1 (RS485 transceiver)# MPUART1_ONecho 84 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio84/directionecho 0 > /sys/class/gpio/gpio84/value</pre> The system automatically switch between low-power idle and normal idle states when needed:<pre>root@sbc-lynx:~# ./idle.shroot@sbc-lynx:~#Bus freq set to 24000000 start...Bus freq set to 24000000 done! Bus freq set to 400000000 start...Bus freq set to 400000000 done! Bus freq set to 24000000 start...Bus freq set to 24000000 done! Bus freq set to 400000000 start...Bus freq set to 400000000 done! Bus freq set to 24000000 start...Bus freq set to 24000000 done! root@sbc-lynx:~#root@sbc-lynx:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorpowersave</pre> It is worth to remember that the use of <code>powersave</code> governor '''has a drawback in terms of system reactivity''', because processor is relatively slow to get out of the idle condition. This can lead to phenomena such as the UART RX FIFO overrun, shown in the following box{{efn|This is the same issue described [[Linux_and_interrupt_latency_(Axel)#A_real-word_case:_UART_RX_FIFO_overrun|here]].}}. Here is an example of an entire command pasted into the serial console leading to the Rx FIFO overrun issue:<pre>root@sbc-lynx:~# imx-uart 2020000.serial: Rx FIFO overruncat /sys/devices/system/cpu/cpugovernorcat: /sys/devices/system/cpu/cpugovernor: No such file or directoryroot@sbc-lynx:~#</pre>
==Deep-sleep mode (aka suspend)==
136
edits