找回密码
 立即注册

只需一步,快速开始

搜索

【复旦微FM33LG0系列开发板测评】OPA功能简析

0
回复
1787
查看
[复制链接]

166

主题

343

帖子

3076

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3076
QQ
2022-1-5 16:20:49 显示全部楼层 |阅读模式
【复旦微FM33LG0系列开发板测评】OPA功能简析

原帖地址:【复旦微FM33LG0系列开发板测评】OPA功能简析 - 国产芯片交流 - 电子工程世界-论坛 (eeworld.com.cn)

1. 芯片功能

FM33LG0的主要特性包括,宽电压范围1.65~5.5V,最高主频64Mhz,64/128/256KB Flash,16/32/32KB RAM,12bit 2Msps SAR-ADC和12bit 1Msps DAC,最大支持4COM×44SEG / 6COM×42SEG / 8COM×40SEG,ES支持ECB/CBC/CTR/GCM/GMAC模式,功能逻辑框图如下。


低功耗下可以由电池供电,供电回路也比较简单,最大端口电压可以6.5V,比较厉害的,可以和瑞萨的比一下了。标准运行下大致工作电流6.16mA,低功耗以uA计算,

当芯片从 Flash 启动时,FM33LG048 的地址空间分配如下图(256KB Flash,32KB RAM)存储空间分配


在芯片的PMU管理,基准电压等,都提供了高精度高水平的芯片技术,CPU 内核为 Cortex-M0+,符合 ARMv6-M 架构和编程模型;


2. OPA功能介绍

当采用功放功能的时候,CMRR 共模抑制比66~70dB。FM33LG0集成1个运算放大器,可用于放大微弱输入信号,或用于弱驱动信号阻抗匹配。

典型GBW 2MHz ;典型功耗150uA(正常模式),2uA(低功耗模式); 最大驱动电流500uA; 支持standalone模式、buffer模式、PGA模式(x2, x4, x8, x16) ; OPA输出可连接ADC。

OPA输入有4个通道,OPA输出连接到4个GPIO上,其中OPA1_OUT1不经过模拟开关,以优化输出阻抗;其他3个输出通 路经过模拟开关,默认关闭。

根据寄存器配置选择AMUX不同通路,可以实现不同的闭环应用,比如buffer、PGA(内置反馈电阻)、 独立运放。输出可以从IO引出,或接给ADC,也可以产生数字信号或中断输出。


其中standalone模式下,输出通过外置的Rf来配置运放的倍数,   



Buffer模式下OPA可用于为ADC输入提供阻抗调整,当输入信号频率与OPA的GBW相适应时,配置 为buffer模式的OPA可以增强ADC输入信号的驱动能力。

软件配置方法:  配置OPAxCR.VPSEL和VNSEL选择输入IO ; 配置OPAxCR.OPAxMOD为11,即buffer模式 ;使能OPAx。

在PGA模式下可以通过DAC在OPA正端施加一个直流偏置,可以来自DAC也可以来自外部电压源,




3. 范例代码分析

范例代码使用PGA模式如下,主程序为main.C

  1. int main(void)
  2. {
  3.     MF_Clock_Init();
  4.     MF_SystemClock_Config();
  5.     FL_Init();
  6.     MF_Config_Init();
  7.     UserInit();
  8.     Test_OPA1PGA();
  9.     while(1)
  10.     {
  11.         //        LED0_TOG();
  12.         //        FL_DelayMs(1000);
  13.     }
  14. }
复制代码

具体函数已经封装起来,先配置,然后使能就启动该功能了

  1. void Test_OPA1PGA(void)
  2. {
  3.     //OPA_PGA_NOINVERT_Init();
  4.     OPA_PGA_INVERT_Init();
  5.     FL_OPA_Enable(OPA);
  6. }
复制代码

初始化的过程就是选择GPIO方向,然后设置OPA的功能和配置,代码如下

  1. void OPA_PGA_INVERT_Init(void)
  2. {
  3.     FL_GPIO_InitTypeDef    GPIO_InitStruct;
  4.     FL_OPA_InitTypeDef     OPA1_InitStruct;
  5.     //OPA1正端输入,INP1
  6.     GPIO_InitStruct.pin         = FL_GPIO_PIN_11;
  7.     GPIO_InitStruct.mode        = FL_GPIO_MODE_ANALOG;
  8.     GPIO_InitStruct.outputType  = FL_GPIO_OUTPUT_PUSHPULL;
  9.     GPIO_InitStruct.pull        = FL_DISABLE;
  10.     GPIO_InitStruct.remapPin    = FL_DISABLE;
  11.     FL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  12.     //OPA1负端输入,INN2
  13.     GPIO_InitStruct.pin         = FL_GPIO_PIN_6;
  14.     GPIO_InitStruct.mode        = FL_GPIO_MODE_ANALOG;
  15.     GPIO_InitStruct.outputType  = FL_GPIO_OUTPUT_PUSHPULL;
  16.     GPIO_InitStruct.pull        = FL_DISABLE;
  17.     GPIO_InitStruct.remapPin    = FL_DISABLE;
  18.     FL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  19.     //OPA1输出,OUT
  20.     GPIO_InitStruct.pin         = FL_GPIO_PIN_12;
  21.     GPIO_InitStruct.mode        = FL_GPIO_MODE_ANALOG;
  22.     GPIO_InitStruct.outputType  = FL_GPIO_OUTPUT_PUSHPULL;
  23.     GPIO_InitStruct.pull        = FL_DISABLE;
  24.     GPIO_InitStruct.remapPin    = FL_DISABLE;
  25.     FL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  26.     //OPA1配置
  27.     OPA1_InitStruct.INP              = FL_OPA_INP_SOURCE_INP1;
  28.     OPA1_InitStruct.INN              = FL_OPA_INN_SOURCE_INN2;   //只有INN2通道支持反相PGA模式
  29.     OPA1_InitStruct.mode             = FL_OPA_MODE_PGA;
  30.     OPA1_InitStruct.negtiveToPin     = FL_DISABLE;
  31.     OPA1_InitStruct.gain             = FL_OPA_GAIN_INVERT_X7;
  32.     OPA1_InitStruct.lowPowermode     = FL_DISABLE;
  33.     OPA1_InitStruct.PGAModeSelect    = FL_OPA_PGA_MODE_FB_TO_NEGATIVE;
  34.     FL_OPA_Init(OPA, &OPA1_InitStruct);

  35. }
复制代码

4. 试验和验证

直接启动工程,


编译后下载到开发板,就可以显示输入和输出的方大功能了。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

返回顶部