STM32G474xx HAL用户手册
定义 | 函数
stm32g4xx_hal_opamp.c 文件参考

OPAMP HAL模块驱动程序。本文件提供固件函数来管理运算放大器外设的以下功能:+ 初始化/去初始化函数+ I/O操作函数+ 外设控制函数+ 外设状态函数。 更多...

#include "stm32g4xx_hal.h"

转到该文件的源代码。

定义

#define OPAMP_CSR_RESET_VALUE   (0x00000000UL)
#define OPAMP_CSR_RESET_CHECK_MASK   (~(OPAMP_CSR_TRIMOFFSETN | OPAMP_CSR_TRIMOFFSETP))
#define OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK
#define OPAMP_TCMR_UPDATE_PARAMETERS_INIT_MASK

函数

HAL_StatusTypeDef HAL_OPAMP_Init (OPAMP_HandleTypeDef *hopamp)
 根据OPAMP_InitTypeDef中指定的参数初始化OPAMP,并初始化关联的句柄。
HAL_StatusTypeDef HAL_OPAMP_DeInit (OPAMP_HandleTypeDef *hopamp)
 去初始化OPAMP外设。
__weak void HAL_OPAMP_MspInit (OPAMP_HandleTypeDef *hopamp)
 初始化OPAMP MSP。
__weak void HAL_OPAMP_MspDeInit (OPAMP_HandleTypeDef *hopamp)
 去初始化OPAMP MSP。
HAL_StatusTypeDef HAL_OPAMP_Start (OPAMP_HandleTypeDef *hopamp)
 启动运算放大器。
HAL_StatusTypeDef HAL_OPAMP_Stop (OPAMP_HandleTypeDef *hopamp)
 停止运算放大器。
HAL_StatusTypeDef HAL_OPAMP_SelfCalibrate (OPAMP_HandleTypeDef *hopamp)
 运行一个OPAMP的自校准。
HAL_StatusTypeDef HAL_OPAMP_Lock (OPAMP_HandleTypeDef *hopamp)
 锁定选定的运算放大器配置。
HAL_StatusTypeDef HAL_OPAMP_LockTimerMux (OPAMP_HandleTypeDef *hopamp)
 锁定选定的运算放大器定时器控制多路复用器配置。
HAL_OPAMP_StateTypeDef HAL_OPAMP_GetState (OPAMP_HandleTypeDef *hopamp)
 返回OPAMP状态。
OPAMP_TrimmingValueTypeDef HAL_OPAMP_GetTrimOffset (OPAMP_HandleTypeDef *hopamp, uint32_t trimmingoffset)
 返回OPAMP工厂校准值。
HAL_StatusTypeDef HAL_OPAMP_RegisterCallback (OPAMP_HandleTypeDef *hopamp, HAL_OPAMP_CallbackIDTypeDef CallbackId, pOPAMP_CallbackTypeDef pCallback)
 注册用户OPAMP回调 用于替代弱(可重载的)预定义回调。
HAL_StatusTypeDef HAL_OPAMP_UnRegisterCallback (OPAMP_HandleTypeDef *hopamp, HAL_OPAMP_CallbackIDTypeDef CallbackId)
 注销用户OPAMP回调 OPAMP回调重定向到弱(可重载的)预定义回调。

详细说明

OPAMP HAL模块驱动程序。本文件提供固件函数来管理运算放大器外设的以下功能:+ 初始化/去初始化函数+ I/O操作函数+ 外设控制函数+ 外设状态函数。

作者:
MCD应用团队
注意:

版权所有(c)2019 STMicroelectronics。保留所有权利。

本软件根据LICENSE文件中规定的条款获得许可。如果本软件未附带LICENSE文件,则按"原样"提供。

================================================================================
          ##### OPAMP外设特性 #####
================================================================================

  [..] 该器件集成多达6个运算放大器OPAMP1、OPAMP2、
       OPAMP3、OPAMP4、OPAMP5和OPAMP6:

       (#) OPAMP提供多种独立运行模式。
       (++) 独立模式
       (++) 可编程增益放大器(PGA)模式(电阻反馈输出)
       (++) 跟随器模式

       (#) OPAMP提供校准功能。
       (++) 校准旨在纠正某些运行模式下的偏移。
       (++) OPAMP使用工厂校准设置或用户定义
           校准(微调)设置(即微调模式)。
       (++) 用户定义的设置可以通过自校准获得
           由HAL_OPAMP_SelfCalibrate、HAL_OPAMPEx_SelfCalibrateAll
       (++) HAL_OPAMP_SelfCalibrate:
       (++) 自动运行两步校准。
            (NMOS晶体管的90% VDDA,PMOS晶体管的10% VDDA)。
            (由于OPAMP是轨到轨输入/输出,这两步校准在大多数情况下是
            适当且足够的)。
       (++) 启用用户微调模式
       (++) 使用新的校准结果更新初始化结构。
            用户可以存储校准结果以备后用
            (例如监测微调值随温度的变化)
       (++) 对于具有6个OPAMP的STM32G4器件
            HAL_OPAMP_SelfCalibrateAll
            并行运行6个OPAMP的校准。

       (#) 对于任何运行模式,可以在顶层设置额外的定时器控制多路复用器(多路复用器)
           模式。
       (++) 定时器控制多路复用器模式允许自动切换输入
           配置(反相和非反相)。
       (++) 因此,除默认值(主)反相和非反相输入外,
           用户应选择次级反相和非反相输入。
       (++) TIM1 OC6、TIM8 OC6和TIM20 OC6提供主输入和次级输入之间的
           交替切换节拍。
       (++) 这3个定时器(TIM1、TIM8和TIM20)可以组合设计更复杂的
           切换方案,使得任何选定的通道都可以启动配置切换。

       (#) 运行模式:独立模式
       (++) 增益由外部设置(增益取决于外部负载)。
       (++) 也可以通过将反相输入连接到输出来实现外部跟随器模式。

       (#) 运行模式:跟随器模式
       (++) 反相输入未连接。

       (#) 运行模式:可编程增益放大器(PGA)模式
           (电阻反馈输出)
       (++) OPAMP输出可以在内部连接到电阻反馈输出。
       (++) OPAMP反相输入可以"不"连接,待放大的信号连接到
           非反相输入,增益为正(2、4、8、16、32或64)。
       (++) OPAMP反相输入可以连接到VINM0:
           如果信号施加到非反相输入,增益为正(2、4、8、16、32或64)。
           如果信号施加到反相输入,增益为负(-1、-3、-7、-15、-31或-63)。
           在这两种情况下,另一个输入可以用作偏置。


            ##### 如何使用此驱动程序 #####
================================================================================
  [..]

    *** 高速/正常功耗模式 ***
    ============================================
    [..]  要以高速模式运行:

      (#) 使用HAL_OPAMP_Init()函数配置OPAMP:
      (++) 选择OPAMP_POWERMODE_HIGHSPEED
      (++) 否则选择OPAMP_POWERMODE_NORMALSPEED

    *** 校准 ***
    ============================================
    [..]  要运行OPAMP自校准:

      (#) 使用HAL_OPAMP_SelfCalibrate开始校准。
           存储校准结果。

    *** 运行模式 ***
    ============================================
    [..]  要使用OPAMP,请执行以下步骤:

      (#) 在HAL_OPAMP_MspInit()中填写
      (++) 使用HAL_GPIO_Init()将OPAMP输入和输出配置为模拟模式,
          将OPAMP输出映射到GPIO引脚。

      (#) 注册回调
      (++) 当编译定义USE_HAL_OPAMP_REGISTER_CALLBACKS设置为1时,
           允许用户动态配置驱动程序回调。

      (++) 使用函数HAL_OPAMP_RegisterCallback()注册用户回调,
           它允许注册以下回调:
      (+++) MspInitCallback         : OPAMP MspInit。
      (+++) MspDeInitCallback       : OPAMP MspDeInit。
           此函数需要参数:HAL外设句柄、回调ID
           和用户回调函数指针。

      (++) 使用函数HAL_OPAMP_UnRegisterCallback()将回调重置为默认的
           弱(可重载)函数。它允许重置以下回调:
      (+++) MspInitCallback         : OPAMP MspInit。
      (+++) MspDeInitCallback       : OPAMP MspDeInit。
      (+++) 所有回调

      (#) 使用HAL_OPAMP_Init()函数配置OPAMP:
      (++) 选择模式
      (++) 选择反相输入
      (++) 选择非反相输入
      (++) 选择是否启用/禁用内部输出(如果启用,常规I/O输出被禁用)
      (++) 选择定时器控制多路复用器是禁用还是启用并由指定定时器控制
      (++) 如果启用了定时器控制多路复用器模式,选择次级反相输入
      (++) 如果启用了定时器控制多路复用器模式,选择次级非反相输入
      (++) 如果启用了PGA模式,选择是否连接反相输入
      (++) 如果启用了PGA模式,选择要使用的PGA增益。
      (++) 选择工厂或用户定义的微调模式。
      (++) 如果启用了用户定义的微调模式,选择PMOS和NMOS微调值
          (典型设置为HAL_OPAMP_SelfCalibrate函数返回的值)。

      (#) 使用HAL_OPAMP_Start()函数启用OPAMP。

      (#) 使用HAL_OPAMP_Stop()函数禁用OPAMP。

      (#) 使用HAL_OPAMP_Lock和HAL_OPAMP_TimerMuxLock函数锁定OPAMP运行模式。
          从那时起,配置只能通过以下方式修改
      (++) 硬件复位
      (++) 或通过用户定义的HAL_OPAMP_MspDeInit从HAL_OPAMP_DeInit调用。

    *** 运行模式:OPAMP开启时更改配置 ***
    ============================================
    [..]    要在OPAMP开启时重新配置OPAMP(动态更改)
      (#) 如有需要,在HAL_OPAMP_MspInit()中填写
      (++) 例如,如果您想使用新的OPAMP I/O,这就是这种情况

      (#) 使用HAL_OPAMP_Init()函数配置OPAMP:
      (++) 与配置情况一样,首先选择您希望修改的参数。
      (++) 如果OPAMP控制寄存器被锁定,则无法动态修改任何值
          (即使是定时器控制多路复用器参数)。
      (++) 如果OPAMP定时器控制多路复用器模式寄存器被锁定,则可以修改控制寄存器的任何值
          但不能修改定时器控制多路复用器模式寄存器的值。

      (#) 从高速模式切换到正常功耗模式(反之亦然)需要
          首先调用HAL_OPAMP_DeInit()(强制OPAMP关闭)然后调用HAL_OPAMP_Init()。
          换句话说,如果OPAMP开启,HAL_OPAMP_Init不能单独更改功耗模式。

  

定义于文件stm32g4xx_hal_opamp.c