发 帖  
原厂入驻New

[经验] 如何将OPAMP,ACMP1和FDS的互连用于S08PB16

2020-8-31 10:44:07  209 MCU 寄存器 PWM 运算放大器
分享
3
本帖最后由 o_dream 于 2020-8-31 12:46 编辑

1.介绍
MC9S08PB16是一款低成本,高度集成且低引脚数的8位MCU。它基于增强型S09L核心平台,集成了运算放大器(OPAMP)模块,模拟比较器(ACMP)模块,故障检测和关断(FDS)模块。 S08PB16包含一组用于模块到模块互连的系统级逻辑,以实现灵活的配置。这些互连以最少的软件配置在模块之间提供了硬件触发功能。 OPAMP,ACMP1和FDS模块的互连可用于低端电机控制和其他通用应用,以实现过流/过压/过热保护。本应用笔记介绍了OPAMP,FDS的功能,以及如何实现OPAMP,ACMP1,FDS模块的互连。还有一个示例代码,说明如何实现互连以实现过压保护。本文档中的软件基于CodeWarrior 11.1 IDE(必须安装Service Pack:S08PB和S08PLS的CodeWarrior MCU 11.1 Service Pack),S08PB16-EVK板。
2.特点
2.1 OPAMP简介S08PB16具有一个片上固定增益(20x)单端输入电流检测放大器(OPAMP)模块。 正输入OPAMP +在PTA3 / KBI0P3 / TXD0 / SCL / ACMP1IN0 / OPAMP + / ADP3上可用,而负输入OPAMP-连接到GND。 OPAMP模拟输出内部连接到ACMP1或ADC输入通道AD12。 OPAMP模拟输出在外部引脚上不可用。 为了测量正电流和负电流,必须使用内部参考电压。 参考电压VREF由SYS_SOPT6_VREFSEL位控制为1/2 VDDA,1/4 VDDA或1/8 VDDA参考电平,并将其添加到放大器的正输入端。 电流传感器可以由SYS_SOPT6_AMPEN独立启用。
表1总结了这些属性
1.png
2.png
S08PB16中有一个电流检测放大器(OPAMP),用于检测流过外部电阻分流器的电流作为电阻两端的电压。 在BLDC电机控制应用中,典型用法是用于感测两相电流或DC总线电流。 OPAMP的输出连接到ACMP1输入,可用作过流保护。 用户可以通过设置ACMP1寄存器来选择正输入和负输入来配置过电流值。 ACMP1的中断输出连接到FDS模块。 FDS模块的输出连接到PWM通道,并控制PWM通道的状态。
图1显示了OPAMP和ACMP1的互连
3.png
2.2 FDS的介绍2.2.1 FDS的输入和输出S08PB16具有故障检测和关闭(FDS)模块,该模块提供了一种机制,可以在发生故障情况时立即将端口引脚置于预定义状态。 FDS模块可配置有八个故障输入源(如表2所示)和八个端口引脚的控制(如表3所示)。 八个故障输入和八个端口引脚的控制可以独立配置。 激活故障输入后,FDS最多可为八个引脚提供快速关机功能。
表2. FDS输入配置
4.png
表3. FDS输出配置
5.png
2.2.2 FDS寄存器FDS的寄存器分为三部分:FDS通用控制和状态寄存器,输入控制寄存器和输出控制寄存器。 表4列出了所有寄存器。
表4. FDS寄存器表
6.png
7.png
2.3 FDS输入和输出配置图2显示了检测到故障时的输出引脚控制配置和实现。 1.通过设置FDS_CS寄存器来启用FDS模块。 可以通过设置FDS_INE寄存器来独立启用每个输入信号。 当输入通道(FINn)中发生故障时,故障输入被锁存到FDS_INL寄存器中的相应位,并且FDF被置1。 2.如果FDS_PCE寄存器设置为1,则可以通过设置FDS_PCD和FDS_PCV寄存器来关闭输出引脚(FDSOUTx)并将其驱动到预定义状态(输出1,输出0或高阻抗)。 3.如果FDS_PCE寄存器设置为0,则输出引脚处于旁路模式,并输出其他功能。当故障源(FINn)被清除并且FDF被清除时,FDS模块将释放对相应引脚(FDSOUTx)的控制。 用于PWM或其他功能。
8.png
2.4 OPAMP,ACMP1和FDS的互连OPAMP,ACMP1和FDS的互连可用于电机控制应用中的过电流保护。图3显示了互连的框图。 OPAMP的输出与ACMP1输入互连,可以将其配置为ACMP1的负输入或正输入。通常,将OPAMP输出用作ACMP1 +的输入,并将DAC输出用作ACMP1-的输入。 ACMP1可用于电流/电压限制检测。 ACMP1将OPAMP输出与用户定义的过电流/电压设置进行比较。如果存在过压或过流,则ACMP1中断输出是FDS的故障输入源。此时,将产生故障。 FDS将最多延迟一个总线时钟。它将关闭输出引脚。 PWM通道已关闭。 FDS控制该引脚的输出,并将端口引脚置于预定义状态。此时,实现了电动机控制中的过电流/过电压保护功能。
9.png
3.实现细节
这是有关如何使用OPAMP,ACMP1,FDS的互连在S08PB16 MCU中实现过压保护的详细信息。 在使用情况下,FTM0通道1配置为在PTA1 / KBI0P1 / FTM0CH1引脚上输出PWM信号。 OPAMP,ACMP1和FDS配置为保护PWM通道免于过压。 当OPAMP输出电压高于限制电压2.7 V时,将导致产生ACMP1中断。 ACMP1中断输出用作FDS故障输入源(FIN2)。 然后,FDS将关闭PTA1引脚的PWM输出,并将PTA1引脚的输出值设置为0。当OPAMP输入返回到低于极限电压2.7 V的电压时,清除ACMP1中断标志(ACF)和FDS中断标志(FDF),并清除 故障源已清除。 FDS将释放对PTA1引脚的控制。 PTA1引脚恢复PWM功能。 图4显示了流程图。
10.png
3.1 PWM信号生成配置
FTM0通道1在PTA1引脚上生成PWM,以驱动蓝色LED触发。 FTM0的配置如下所示。

11.png
3.2 OPAMP配置只需配置SOPT6的两位即可完成OPAMP配置,如下所示。
12.png
对于S08PB16-EVK,连接J12 1-2时,转动电位计R58可以改变OPAMP负输入PTA3。在示例代码中,通过将SYS_SOPT6_VREFSEL设置为0,OPAMP的参考电压为625 mV。然后通过公式OPAMP输出= 625 mV + 20×VPTA3来计算输出电压。
3.3 ACMP1配置ACMP1模块的正确配置是实现电压或电流限制保护的重要步骤。 在本文中,通过设置ACMP1_C0_ACNSEL由内部可编程6位DAC驱动ACMP1的负输入。 通过设置ACMP1_C1_DACVAL将负输入值设置为2.7V。 通过设置ACMP1_C0_ACPSEL,OPAMP输出可驱动ACMP1的正输入。 注意,在配置ACMP1时必须使能中断位。 ACMP1的中断输出与FDS通道2(FIN2)互连。 通过将ACMP1_CS_ACMOD设置为3,在ACMP1输出的上升沿或下降沿产生ACMP1中断。ACMP1的具体配置如下所示。
13.png
以下代码是ACMP1执行中断服务程序(ISR)的过程。 如果FDS模块已经初始化并且产生了ACMP1中断,则FDS将在不到1个总线时钟周期内做出响应并关闭相应的引脚。 在ACMP1的ISR中,根据ACMP1的输出值判断电路是否过压/过流。 如果处于过压状态,则不会清除ACMP1中断标志和FDS中断标志,并执行过压保护。 当OPAMP输出小于2.7 V的比较电压时,ACF和FDF被清除,故障源将被消除。 然后,输出引脚PTA1将返回正常状态以输出PWM。
14.png
15.png
3.4 FDS配置根据以下代码,启用故障输入源FIN2,将输出控制通道FDSOUT7配置为输出值0。因此,当发生故障源OPAMP输出时,FDS模块会检测到故障并关闭PWM信号(FTM0 通道1),并将PTA1 / KBI0P1 / FTM0CH1引脚设置为值0。
16.png
4.结论
本应用笔记解释了OPAMP,FDS的功能以及如何使用OPAMP,ACMP1,FDS的互连实现过流保护。 用户可以通过参考配置细节轻松实现该功能。 可以从S08PB16-EVK下载该代码。
5.参考
1.《 MC9S08PB16参考手册》(文档MC9S08PB16RM)
  2.如何在MC9S08SU16中使用GDU模块(文档AN5395)

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表