ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
Драйвер модуля POWER

Драйвер модуля управления питанием и режимами работы Подробнее...

Файлы

файл  hal_power.h
 Интерфейс драйвера модуля POWER.
 

Структуры данных

struct  power_mode_config
 Структура параметров режима питания Подробнее...
 
struct  power_trim_config
 Структура подстроечных параметров APC и DC-DC. Подробнее...
 
struct  power_config
 Структура конфигурации блока POWER. Подробнее...
 
struct  power_state
 Структура параметров состояния блока POWER. Подробнее...
 
struct  power_handle
 Структура обработчика драйвера I2S. Подробнее...
 

Определения типов

typedef void(* power_callback_t) (PWRCTR_Type *base, struct power_handle *handle, uint8_t interrupt_mask, void *user_data)
 Функция обратного вызова для обработки прерывания POWER.
 

Перечисления

enum  power_status
 Коды возврата функций драйвера POWER. Подробнее...
 
enum  power_dcdc_vlevel
 Перечисление выходных напряжений встроенного регулятора DC-DC. Подробнее...
 
enum  power_dcdc_vlevel_value
 Перечисление значений для уровней 0-2 выходных напряжений встроенного регулятора DC-DC. Подробнее...
 
enum  power_dcdc_mode
 Перечисление режимов работы встроенного регулятора DC-DC. Подробнее...
 
enum  power_eco_mode
 Перечисление режимов ECO DC-DC и APC. Подробнее...
 
enum  power_dcdc_threshold
 Перечисление пороговых напряжений DC-DC. Подробнее...
 
enum  power_flash_mode
 Перечисление пороговых напряжений DC-DC. Подробнее...
 
enum  power_test_block
 Перечисление блоков для тестирования Подробнее...
 
enum  power_interrupt
 Перечисление типов фронтов прерываний Подробнее...
 

Функции конфигурирования и чтения состояния

void POWER_GetCurrentConfig (PWRCTR_Type *base, struct power_config *config)
 Получение текущих значений параметров блока POWER.
 
void POWER_SetConfig (PWRCTR_Type *base, struct power_config *config)
 Установка параметров блока POWER.
 
void POWER_GetStatus (PWRCTR_Type *base, struct power_state *status)
 Установка параметров блока POWER.
 

Функции управления прерываниями

void POWER_EnableInterrupt (PWRCTR_Type *base, enum power_interrupt idx)
 Разрешение прерывания
 
void POWER_EnableInterruptMask (PWRCTR_Type *base, uint8_t mask)
 Разрешение прерываний по маске
 
bool POWER_IsInterruptEnabled (PWRCTR_Type *base, enum power_interrupt idx)
 Запрос - разрешено ли прерывание
 
uint8_t POWER_GetEnabledInterruptMask (PWRCTR_Type *base)
 Запрос маски разрешенных прерываний
 
void POWER_DisableInterrupt (PWRCTR_Type *base, enum power_interrupt idx)
 Запрет прерывания
 
void POWER_DisableInterruptMask (PWRCTR_Type *base, uint8_t mask)
 Запрет прерываний по маске
 
bool POWER_GetInterruptStatus (PWRCTR_Type *base, enum power_interrupt idx)
 Получение состояния флага прерывания
 
uint8_t POWER_GetInterruptStatusMask (PWRCTR_Type *base)
 Получение маски активных прерываний
 
void POWER_ClearInterrupts (PWRCTR_Type *base)
 Сброс признаков активных прерываний
 
enum power_status POWER_CreateHandle (PWRCTR_Type *base, struct power_handle *handle, power_callback_t callback, void *user_data)
 Инициализация обработчика прерываний блока POWER.
 

Функции управления тестовыми режимами

void POWER_StartTestMode (PWRCTR_Type *base, enum power_test_block test_block)
 Запуск тестового режима
 
void POWER_StopTestMode (PWRCTR_Type *base)
 Останов тестового режима
 

Функции переключения режимов

void POWER_DeepSleepThisCpu ()
 Функция погружения ядра процессора в сон Погружается в сон то ядро, на котором выполнится данная функция.
 
enum power_status POWER_Standby (PWRCTR_Type *base)
 Функция погружения процессора в сон
 
enum power_status POWER_Shutdown (PWRCTR_Type *base)
 Функция погружения процессора в глубокий сон
 

Подробное описание

Драйвер модуля управления питанием и режимами работы

Драйвер модуля POWER позволяет управлять режимами питания микросхемы.

Типы

◆ power_callback_t

typedef void(* power_callback_t) (PWRCTR_Type *base, struct power_handle *handle, uint8_t interrupt_mask, void *user_data)

Функция обратного вызова для обработки прерывания POWER.

Аргументы
baseБазовый адрес блока POWER
handleУказатель на обработчик
interrupt_maskПричина вызова
user_dataДанные пользователя

Перечисления

◆ power_dcdc_mode

Перечисление режимов работы встроенного регулятора DC-DC.

Элементы перечислений
POWER_DcdcModeAuto 

Автовыбор PWM/PFM

POWER_DcdcModePwm 

PWM

POWER_DcdcModePwmFccm 

PWM FCCM

POWER_DcdcModePfm 

PFM (рекомендуется для режима ECO)

◆ power_dcdc_threshold

Перечисление пороговых напряжений DC-DC.

Элементы перечислений
POWER_DcdcThreshold_0_60V 

0,60 B

POWER_DcdcThreshold_0_62V 

0,62 B

POWER_DcdcThreshold_0_64V 

0,64 B

POWER_DcdcThreshold_0_66V 

0,66 B

POWER_DcdcThreshold_0_68V 

0,68 B

POWER_DcdcThreshold_0_70V 

0,70 B

POWER_DcdcThreshold_0_72V 

0,72 B

POWER_DcdcThreshold_0_74V 

0,74 B

POWER_DcdcThreshold_0_76V 

0,76 B

POWER_DcdcThreshold_0_78V 

0,78 B

POWER_DcdcThreshold_0_80V 

0,80 B

POWER_DcdcThreshold_0_82V 

0,82 B

POWER_DcdcThreshold_0_84V 

0,84 B

POWER_DcdcThreshold_0_86V 

0,86 B

POWER_DcdcThreshold_0_88V 

0,88 B

POWER_DcdcThreshold_0_90V 

0,90 B

◆ power_dcdc_vlevel

Перечисление выходных напряжений встроенного регулятора DC-DC.

Элементы перечислений
POWER_DcdcVLevel0 

VLEVEL0

POWER_DcdcVLevel1 

VLEVEL1

POWER_DcdcVLevel2 

VLEVEL2

◆ power_dcdc_vlevel_value

Перечисление значений для уровней 0-2 выходных напряжений встроенного регулятора DC-DC.

Параметры VLEVEL0-2 должны выбираться так, чтобы выполнялись условия:

  • VLEVEL0 < VLEVEL1 < VLEVEL2;
  • VLEVEL0 < 0,99 В.
Элементы перечислений
POWER_DcdcVLevel_0_85V 

0,85 В

POWER_DcdcVLevel_0_86V 

0,86 В

POWER_DcdcVLevel_0_87V 

0,87 В

POWER_DcdcVLevel_0_88V 

0,88 В

POWER_DcdcVLevel_0_89V 

0,89 В

POWER_DcdcVLevel_0_90V 

0,90 В

POWER_DcdcVLevel_0_91V 

0,91 В

POWER_DcdcVLevel_0_92V 

0,92 В

POWER_DcdcVLevel_0_93V 

0,93 В

POWER_DcdcVLevel_0_94V 

0,94 В

POWER_DcdcVLevel_0_95V 

0,95 В

POWER_DcdcVLevel_0_96V 

0,96 В

POWER_DcdcVLevel_0_97V 

0,97 В

POWER_DcdcVLevel_0_98V 

0,98 В

POWER_DcdcVLevel_0_99V 

0,99 В

POWER_DcdcVLevel_1_00V 

1,00 В

POWER_DcdcVLevel_1_01V 

1,01 В

POWER_DcdcVLevel_1_02V 

1,02 В

POWER_DcdcVLevel_1_03V 

1,03 В

POWER_DcdcVLevel_1_04V 

1,04 В

POWER_DcdcVLevel_1_05V 

1,05 В

POWER_DcdcVLevel_1_06V 

1,06 В

POWER_DcdcVLevel_1_07V 

1,07 В

POWER_DcdcVLevel_1_08V 

1,08 В

POWER_DcdcVLevel_1_09V 

1,09 В

POWER_DcdcVLevel_1_10V 

1,10 В

POWER_DcdcVLevel_1_11V 

1,11 В

POWER_DcdcVLevel_1_12V 

1,12 В

POWER_DcdcVLevel_1_13V 

1,13 В

POWER_DcdcVLevel_1_14V 

1,14 В

POWER_DcdcVLevel_1_15V 

1,15 В

POWER_DcdcVLevel_1_16V 

1,16 В

◆ power_eco_mode

Перечисление режимов ECO DC-DC и APC.

Элементы перечислений
POWER_EcoOff 

Режим ECO выключен

POWER_EcoDcdc 

Включен режим ECO DC-DC

POWER_EcoReserved 

Зарезервировано (не используется)

POWER_EcoDcdcAndApc 

Включен режим ECO DC-DC и APC

◆ power_flash_mode

Перечисление пороговых напряжений DC-DC.

Элементы перечислений
POWER_FlashModeNormal 

Рабочий режим

POWER_FlashModeSleep 

Сон

POWER_FlashModePowerDown 

Флеш отключена

◆ power_interrupt

Перечисление типов фронтов прерываний

Элементы перечислений
POWER_VmonRising 

Прерывание по нарастающему фронту сигнала монитора питания

POWER_VmonFalling 

Прерывание по спадающему фронту сигнала монитора питания

◆ power_status

Коды возврата функций драйвера POWER.

Элементы перечислений
POWER_Status_Ok 

Успешно

POWER_Status_Fail 

Провал

◆ power_test_block

Перечисление блоков для тестирования

Элементы перечислений
POWER_TestBlockApc 

Тестирование APC

POWER_TestBlockDcdc 

Тестирование DC-DC

POWER_TestBlockJtm 

Тестирование JTM

POWER_TestBlockRwc 

Тестирование RWC

Функции

◆ POWER_ClearInterrupts()

void POWER_ClearInterrupts ( PWRCTR_Type * base)

Сброс признаков активных прерываний

Аргументы
baseБазовый адрес блока POWER

◆ POWER_CreateHandle()

enum power_status POWER_CreateHandle ( PWRCTR_Type * base,
struct power_handle * handle,
power_callback_t callback,
void * user_data )

Инициализация обработчика прерываний блока POWER.

Аргументы
baseБазовый адрес блока POWER
handleОбработчик
callbackФункция обратного вызова
user_dataДанные пользователя
Возвращаемые значения
POWER_Status_Ok
POWER_Status_Fail

◆ POWER_DisableInterrupt()

void POWER_DisableInterrupt ( PWRCTR_Type * base,
enum power_interrupt idx )

Запрет прерывания

Аргументы
baseБазовый адрес блока POWER
idxНомер флага состояния/прерывания

◆ POWER_DisableInterruptMask()

void POWER_DisableInterruptMask ( PWRCTR_Type * base,
uint8_t mask )

Запрет прерываний по маске

Аргументы
baseБазовый адрес блока POWER
maskМаска флагов прерываний

◆ POWER_EnableInterrupt()

void POWER_EnableInterrupt ( PWRCTR_Type * base,
enum power_interrupt idx )

Разрешение прерывания

Аргументы
baseБазовый адрес блока POWER
idxНомер прерывания

◆ POWER_EnableInterruptMask()

void POWER_EnableInterruptMask ( PWRCTR_Type * base,
uint8_t mask )

Разрешение прерываний по маске

Аргументы
baseБазовый адрес блока POWER
maskМаска флагов прерываний

◆ POWER_GetCurrentConfig()

void POWER_GetCurrentConfig ( PWRCTR_Type * base,
struct power_config * config )

Получение текущих значений параметров блока POWER.

Аргументы
baseБазовый адрес блока POWER
configСтруктура с параметрами конфигурации

◆ POWER_GetEnabledInterruptMask()

uint8_t POWER_GetEnabledInterruptMask ( PWRCTR_Type * base)

Запрос маски разрешенных прерываний

Запрос маски разрешенных прерываний, единицы в соответствующих разрядах соответствуют включенным прерываниям.

Аргументы
baseБазовый адрес блока POWER
Возвращает
Маска разрешенных прерываний

◆ POWER_GetInterruptStatus()

bool POWER_GetInterruptStatus ( PWRCTR_Type * base,
enum power_interrupt idx )

Получение состояния флага прерывания

Аргументы
baseБазовый адрес блока POWER
idxНомер флага состояния/прерывания
Возвращаемые значения
trueФлаг прерывания установлен
falseФлаг прерывания сброшен

◆ POWER_GetInterruptStatusMask()

uint8_t POWER_GetInterruptStatusMask ( PWRCTR_Type * base)

Получение маски активных прерываний

Аргументы
baseБазовый адрес блока POWER
Возвращает
Маска активных прерываний

◆ POWER_GetStatus()

void POWER_GetStatus ( PWRCTR_Type * base,
struct power_state * status )

Установка параметров блока POWER.

Аргументы
baseБазовый адрес блока POWER
statusСтруктура с параметрами состояния блока POWER

◆ POWER_IsInterruptEnabled()

bool POWER_IsInterruptEnabled ( PWRCTR_Type * base,
enum power_interrupt idx )

Запрос - разрешено ли прерывание

Аргументы
baseБазовый адрес блока POWER
idxНомер флага состояния/прерывания
Возвращаемые значения
trueПрерывание разрешено
falseПрерывание запрещено

◆ POWER_SetConfig()

void POWER_SetConfig ( PWRCTR_Type * base,
struct power_config * config )

Установка параметров блока POWER.

Аргументы
baseБазовый адрес блока POWER
configСтруктура с параметрами конфигурации

◆ POWER_Shutdown()

enum power_status POWER_Shutdown ( PWRCTR_Type * base)

Функция погружения процессора в глубокий сон

Аргументы
baseБазовый адрес блока POWER
Возвращаемые значения
POWER_Status_Ok
POWER_Status_Fail

◆ POWER_Standby()

enum power_status POWER_Standby ( PWRCTR_Type * base)

Функция погружения процессора в сон

Аргументы
baseБазовый адрес блока POWER
Возвращаемые значения
POWER_Status_Ok
POWER_Status_Fail

◆ POWER_StartTestMode()

void POWER_StartTestMode ( PWRCTR_Type * base,
enum power_test_block test_block )

Запуск тестового режима

Аргументы
baseБазовый адрес блока POWER
test_blockТестируемый блок

◆ POWER_StopTestMode()

void POWER_StopTestMode ( PWRCTR_Type * base)

Останов тестового режима

Аргументы
baseБазовый адрес блока POWER