CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!

APP BOD驱动

宏定义

APP_BOD_ENABLE

表 591 APP_BOD_ENABLE宏定义
描述

使能BOD模块

HAL_BOD_ENABLE

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

APP_BOD_DISABLE

表 592 APP_BOD_DISABLE宏定义
描述

不使能BOD模块

HAL_BOD_DISABLE

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

APP_BOD_EVENT_ENABLE

表 593 APP_BOD_EVENT_ENABLE宏定义
描述

使能BOD2事件

HAL_BOD2_ENABLE

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

APP_BOD_EVENT_DISABLE

表 594 APP_BOD_EVENT_DISABLE宏定义
描述

不使能BOD2事件

HAL_BOD2_DISABLE

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

APP_BOD_EVENT_LEVEL_XX

表 595 APP_BOD_EVENT_LEVEL_XX宏定义
描述
BOD2事件等级0 HAL_BOD2_LEVEL_0
BOD2事件等级1 HAL_BOD2_LEVEL_1
BOD2事件等级2 HAL_BOD2_LEVEL_2
BOD2事件等级3 HAL_BOD2_LEVEL_3
BOD2事件等级4 HAL_BOD2_LEVEL_4
BOD2事件等级5 HAL_BOD2_LEVEL_5
BOD2事件等级6 HAL_BOD2_LEVEL_6
BOD2事件等级7 HAL_BOD2_LEVEL_7
BOD2事件等级8 HAL_BOD2_LEVEL_8(仅GR5526支持)
BOD2事件等级9 HAL_BOD2_LEVEL_9(仅GR5526支持)
BOD2事件等级10 HAL_BOD2_LEVEL_10(仅GR5526支持)
BOD2事件等级11 HAL_BOD2_LEVEL_11(仅GR5526支持)
BOD2事件等级12 HAL_BOD2_LEVEL_12(仅GR5526支持)
BOD2事件等级13 HAL_BOD2_LEVEL_13(仅GR5526支持)
BOD2事件等级14 HAL_BOD2_LEVEL_14(仅GR5526支持)
BOD2事件等级15 HAL_BOD2_LEVEL_15(仅GR5526支持)

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

结构体

app_bod_params_t

结构体定义如下:

表 596 app_bod_params_t结构体成员
成员 描述 取值

bod_init_t init

BOD初始化参数结构体

参考bod_init_t结构体

bod_env_t bod_env

用于记录初始化设备的句柄,无需配置

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

bod_init_t

结构体定义如下:

表 597 bod_init_t结构体成员
成员 描述 取值

uint8_t bod_en

使能BOD模块(硬件),当供电电压低于典型值1.45 V时,复位MCU

该参数的取值可以是下列值中的任意一个:

  • APP_BOD_ENABLE(使能)
  • APP_BOD_DISABLE(不使能)

uint8_t bod2_en

使能BOD2事件(软件),当供电电压低于bod2_lvl配置的值时,触发中断

该参数的取值可以是下列值中的任意一个:

  • APP_BOD_EVENT_ENABLE(使能)

  • APP_BOD_EVENT_DISABLE(不使能)

uint8_t bod2_lvl

BOD2事件触发阈值

该参数的取值可以是下列值中的任意一个:

  • APP_BOD_EVENT_LEVEL_0

  • APP_BOD_EVENT_LEVEL_1

  • APP_BOD_EVENT_LEVEL_2

  • APP_BOD_EVENT_LEVEL_3

  • APP_BOD_EVENT_LEVEL_4

  • APP_BOD_EVENT_LEVEL_5

  • APP_BOD_EVENT_LEVEL_6

  • APP_BOD_EVENT_LEVEL_7

  • APP_BOD_EVENT_LEVEL_8 (仅GR5526支持)

  • APP_BOD_EVENT_LEVEL_9 (仅GR5526支持)

  • APP_BOD_EVENT_LEVEL_10 (仅GR5526支持)

  • APP_BOD_EVENT_LEVEL_11 (仅GR5526支持)

  • APP_BOD_EVENT_LEVEL_12 (仅GR5526支持)

  • APP_BOD_EVENT_LEVEL_13 (仅GR5526支持)

  • APP_BOD_EVENT_LEVEL_14 (仅GR5526支持)

  • APP_BOD_EVENT_LEVEL_15 (仅GR5526支持)

每个档位对应的电压值请参考芯片Datasheet中的BOD章节。2.4 V以下将低于芯片正常供电电压,不建议使用

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

app_bod_evt_t

结构体定义如下:

表 598 app_bod_evt_t结构体成员
成员 描述 取值

app_bod_evt_type_t type

BOD事件结构体

该参数的取值可以是下列值中的任意一个:

  • APP_BOD_EVT_TRIGGERED:供电电压低于阈值时,触发中断
  • APP_BOD_EVT_REMOVED:供电电压高于阈值时,触发“BOD解除”中断(GR551x不支持)

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

枚举

app_bod_evt_type_t

枚举定义如下:

表 599 app_bod_evt_type_t枚举成员
成员 描述

APP_BOD_EVT_TRIGGERED

BOD中断触发事件:供电电压低于阈值时,触发中断

APP_BOD_EVT_REMOVED

BOD条件解除中断事件:供电电压高于阈值时,触发“BOD解除”中断(GR551x不支持)

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

app_bod_state_t

枚举定义如下:

表 600 app_bod_state_t枚举成员
成员 描述
APP_BOD_INVALID = 0 BOD不可用
APP_BOD_ACTIVITY = 1 BOD激活

详细信息请参考文件:SDK_Folder\drivers\inc\app_bod.h

接口函数

表 601 BOD驱动接口函数
API 芯片
GR551x GR5526 GR5x25 GR533x GR5405

app_bod_init

Y

Y

Y Y Y

app_bod_deinit

Y

Y

Y Y Y

app_bod_enable

Y

Y

Y Y Y

app_bod_event_enable

Y

Y

Y Y Y

app_bod_event_set_level

Y

Y

Y Y Y
app_bod_static_mode_enable N N N Y Y
app_bod_event_auto_power_bypass_enable N N N Y Y

app_bod_init

表 602 app_bod_init接口
函数原型

uint16_t app_bod_init(app_bod_params_t *p_params, app_bod_evt_handler_t evt_handler)

功能说明

初始化BOD

输入参数
  • p_params:初始化参数的结构体指针
  • evt_handler:用户自己实现的中断回调函数
返回值

APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义

备注

回调函数形式参照typedef void (*app_bod_evt_handler_t)(app_bod_evt_t *p_evt);

HAL层已经实现中断标志位的清理,用户无需关心中断标志的清理,回调函数根据返回事件类型进行相应的处理即可。

app_bod_deinit

表 603 app_bod_deinit接口
函数原型

uint16_t app_bod_deinit(void)

功能说明

反初始化BOD

输入参数
返回值

APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义

备注

app_bod_enable

表 604 app_bod_enable接口
函数原型

uint16_t app_bod_enable(uint8_t enable)

功能说明

使能BOD硬件

输入参数

enable:1-使能;0-禁用

返回值

APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义

备注

app_bod_event_enable

表 605 app_bod_event_enable接口
函数原型

uint16_t app_bod_event_enable(uint8_t enable)

功能说明

使能BOD事件

输入参数

enable:1-使能;0-禁用

返回值

APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义

备注

app_bod_event_set_level

表 606 app_bod_event_set_level接口
函数原型

uint16_t app_bod_event_set_level(uint8_t level)

功能说明

设置BOD事件优先级

输入参数

level:优先级

返回值

APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义

备注

app_bod_static_mode_enable

表 607 app_bod_static_mode_enable接口
函数原型 uint16_t app_bod_static_mode_enable(uint8_t enable)
功能说明 设置是否使能BOD静态模式
输入参数 enable:1-使能;0-禁用
返回值 APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义
备注

app_bod_event_auto_power_bypass_enable

表 608 app_bod_event_auto_power_bypass_enable接口
函数原型 uint16_t app_bod_event_auto_power_bypass_enable (uint8_t enable)
功能说明 设置是否使能BOD旁路自动上/下电功能
输入参数 enable:1-使能;0-禁用
返回值 APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义
备注

示例工程

BOD供电电压监测

本示例实现对供电电压的监测,工程路径:SDK_Folder\projects\peripheral\bod\app_bod

初始化参数

 s_params.init.bod_en = APP_BOD_ENABLE;
 s_params.init.bod2_en = APP_BOD_EVENT_ENABLE;
 s_params.init.bod2_lvl = APP_BOD_EVENT_LEVEL_10;
  • init.bod_en:APP_BOD_ENABLE使能BOD模块(硬件),当供电电压低于典型值1.45 V时,复位MCU。
  • init.bod2_en:APP_BOD_EVENT_ENABLE使能BOD2事件(软件),当供电电压低于bod2_lvl配置的值时,触发中断。
  • init.bod2_lvl:BOD2事件触发阈值,APP_BOD_EVENT_LEVEL_10表示2.5 V。

重要函数

初始化BOD

app_bod_init(&s_params, app_bod_evt_handler)

测试验证

  1. 连接开发板到PC端,下载程序,打开串口调试助手。
  2. VBAT去掉内部电路供电,采用外部输入供电3.2 V,按RESET键复位。
  3. 改变供电电压为2 V,观察串口打印,是否有BOD TRIGGERED EVENT中断产生。
  4. 恢复供电电压为3.2 V,观察串口打印,是否有BOD REMOVED EVENT中断产生。
BOD TRIGGERED EVENT
BOD REMOVED EVENT

扫描关注

打开微信,使用“扫一扫”即可关注。