![Silicon Laboratories AN725 Скачать руководство пользователя страница 25](http://html1.mh-extra.com/html/silicon-laboratories/an725/an725_manual_1271719025.webp)
AN725
Rev. 0.1
25
5.4.3. Refresh Rate
The LCD0 module on SiM3L1xx devices includes a programmable refresh rate by setting the CLKDIV bits in the
CLKCONTROL register. The LCD multiplexor mode must be taken into account when determining the prescaler
value. The LCD power consumption will scale proportionally with the refresh rate. For maximum power savings,
choose the slowest LCD refresh rate and the minimum LCD0 clock frequency that provides acceptable
performance for the application. For the least flicker, choose a fast LCD refresh rate.
5.5. Retention RAM
The retention RAM on SiM3L1xx devices is in eight 4 kB banks. All eight banks are available when not in PM8, but
can be individually powered down when in PM8. The current leakage of the RAM at higher temperatures may
increase, so disabling any unused banks when entering a low power mode may reduce system power
consumption.
For most applications, it is recommended to enable retention for all RAM banks. The specific bank containing the
stack pointer must be enabled to ensure proper code operation on an exit from PM8.
5.5.1. Adjusting the Stack Pointer with Keil µVision
With Keil µVision projects, the stack location can be controlled in the scatterfile. The default
linker_sim3l1xx_arm.sct
scatterfile can be found in the C:\SiLabs\32bit\si32-
x
.
y
.
z
\si32Hal\sim3l1xx directory,
where
x
is the major si32HAL version,
y
is the minor version, and
z
is the trivial version.
Inside the scatterfile:
ARM_LIB_STACK (SI32_MCU_RA SI32_MCU_RAM_SIZE)
The value in the parentheses after the ARM_LIB_STACK label is the location of the stack pointer in memory.
Change this value as needed for the application and ensure this RAM bank has retention enabled.
5.5.2. Adjusting the Stack Pointer with the Precision32 IDE
In the Precision32 IDE, projects can use a custom linker script file edited manually or the IDE dialogs to modify the
stack pointer address. To add a custom linker script file manually:
Right-click on the project name in the Project Explorer view and select
New
Folder
. This folder must use the
linkscripts
name.
Copy the
link_template.ld
file from the Precision32 installation directory
..\IDE\precision32\Wizards\linker
to the
project’s
linkscripts
folder.
Open the project’s link_template.ld file and edit the stack line near the bottom of the file:
PROVIDE(_vStackTop = __top_${DATA} - ${STACK_OFFSET});