使用ADSP-CM408F ADC控制器的电机控制反馈采样时序
moboyou 2025-05-16 17:48 35 浏览
简介
本应用笔记介绍ADSP-CM408F模数转换器控制器(ADCC)模块的主要特性,重点讨论该产品在高性能电机控制应用的电流反馈系统中的相关性与可用性。
本应用笔记的目的是为了强调模数转换器(DAC)模块的关键功能,并提供针对电机控制应用的配置指南。本文提供演示ADI ADCC驱动器的代码示例。
有关此ADCC的所有功能、配置寄存器和应用程序接口(API)的更多详细信息,请参阅
ADSP-CM402F/ADSP-CM403F/ADSP-CM407F/ADSP-CM408F产品页面和采用ARM Cortex-M4和16位ADC开发产品的ADSP-CM40x混合信号控制处理器的产品页面上提供的《采用ARM Cortex-M4的ADSP-CM40x混合信号控制处理器硬件参考指南》。
虽然本应用笔记重点讨论电流反馈,类似的配置和应用原理同样适用于其他信号的反馈与测量。
同样,虽然本应用笔记重点讨论ADSP-CM408F,但原理在本质上同样适用于ADSP-CM402F/
ADSP-CM403F/ADSP-CM407F/ADSP-CM408F系列的其他产品。
电流反馈系统概述
电机控制应用中的电流反馈示例如图1所示。该配置常用于高性能电机驱动,并针对电机相位绕组电流采样,而非对逆变器低端相位引脚采样。中高电平时,电流传感器或变压器(CT0和CT1)必须用于电流测量路径,因为阻性分流器尺寸过大而低效。
在图1的配置中,处理器位于安全的隔离栅低压侧,而信号隔离通常为CT0和CT1所固有,且微处理器的脉冲宽度调制PWM输出和栅极驱动器之间还存在数字隔离。
通常需要在电流传感器输出和ADC输入之间进行一些信号调理,以便实现范围匹配和高频噪声滤波。随后将调理的电流测量信号施加于ADC输入,用来采样和转换。对每个ADC输入进行一次绕组电流测量将使能电流测量的同步采样以获得更高的控制环路精度,从而增强性能。另外,还可在硬件内直接配置采样时间与PWM sync脉冲的同步。
图1. 电机控制中ADSP-CM408F ADC的电流反馈
这些特性可使能PWM周期中相位电流测量点的精密时序。将这些测量时刻与零矢量的中间点或PWM周期的中间点对齐,确保电流采样电平等效于忽略开关纹波的瞬时平均电流。
图2中显示了零矢量中点和PWM周期中点处的同步U相位和V相位采样。
图2. 平均电流采样图解
完成数据转换后,便可将其通过直接存储器访问(DMA)传输至控制器静态随机存取存储器(SRAM),完成传输后会生成一个中断。在内核模式下,通过存储器映射寄存器,还可实现直接ADC状态和数据读取,但这种方法需消耗更多的处理器开销。
通常还会采样其他模拟信号,例如直流总线电压、隔离式栅极双极性晶体管(IGBT)温度和电机位置正弦与余弦输出。虽然本应用笔记重点讨论电流反馈,但很多信息也与系统中的其他测量参数有关。
ADC模块概述
该ADC采用双通道、16位、高速、低功耗、逐次逼近型寄存器(SAR)设计,精度高达14位。
输入多路复用器最多支持连接两个独立受控ADC的26个模拟输入源组合(每个ADC的12路模拟输入加上1路DAC回送输入),任意时刻都对两个通道同步采样。 ADC转换时间快达380 ns。单端模拟输入所需的电压输入范围为0 V至2.5 V。
多路复用器和ADC之间提供片内缓冲器,无需使用额外的外部信号调理ADSP-CM408F。此外,每个ADC都有一个片内2.5 V基准电压源,当优先选择外部基准电压源时可将其过驱(通过ADCC_CFG寄存器选择该选项)。
ADSP-CM408F中的总模拟子系统的图形概述如图3所示。ADSP-CM408F采用多芯片系统级封装(SiP),而ADC硅片制造工艺与处理器硅片工艺有所不同,如图3所示。
ADCC负责ADC中与处理器的时序同步,并管理DMA,将采样数据传输到SRAM。
图3. ADSP-CM408F模拟子系统
电流反馈调整
若要最大限度地正确利用ADC的能力,正确调整反馈信号非常重要。信号通过反馈路径处理,如图5所示。双极性相位绕组电流IW通过电流传感器(或变压器)和信号调理电路的组合功能转换为ADC输入端的单极性电压。
电流传感器的传递函数由下式表示:
VIW = KCTIW + V0CT
其中:
VIW为输出电压。
KCT是传感器的线性增益系数。
V0CT是传感器的零电流失调电压。
KCT在不同传感器类型的某些电流水平下表现出非线性,且为了获得更佳的精度,应当与IW成函数关系,即KCT (IW)。之后,ADC输入电压可表示为:
VIW_ADC= KSIGVIW = KSIG[KCT(IW)IW + V0CT]
其中,KSIG是信号调理电路的低频增益。
该单极性电压转换为16位无符号整数,并由DMA传输至处理器存储器,然后发出中断,提醒控制程序新数据样本可用。ADC理想化的传递函数如下所示:
其中:
NIW是ADC数字输出字。
KADC表示ADC的线性增益,等于
根据输入电压范围划分的ADC分辨率,如上所示。
ADC输出会产生一些失调;而在软件内进行一些失调补偿(NADC_OFFSET)通常是一个好办法,可将ADC自身的所有失调以及传感器和信号调理电路产生的所有残余失调从ADC输出中去除。该值可在零电流周期(如系统启动或禁用驱动输出)中动态更新。
最后,电流传感器零电流失调电压NCT_OFFSET的数字表示从ADC输出信号中去除,使带符号值IW(与实际相位绕组电流有关)的表达式为:
IW = KADC(KSIG[KCT(IW)IW + V0CT]) – NADC_OFFSET – NCT_OFFSET
其中:
这个带符号的16位值可转换为浮点值,或直接使用,具体取决于控制器实现方案。若要最大限度地利用ADC的全范围,则系统中的正峰值受控电流必须与ADC输入电压2.5 V相对应,而负峰值受控电流与ADC输入0 V相对应。
1 23
加入微信
更多内涵你懂的!
搜索微信公众号:电子产品世界
该情况的一个示例如图4所示。该图显示了典型电流波形和相关的各种零电平、峰值电平以及标称电平,图4显示的电流电平将转换为通过信号测量系统传播(如图5所示)的比例量(参见表1)。
图4. 电流反馈信号幅度
表1. 电流反馈信号幅度
本示例采用连接LEM(R),的CAS 6-NP霍尔效应传感器,其初级匝数为3,具有0 V至5 V输出,后接增益为0.5的信号调理电路。
图5. 电流反馈路径的调整关系
ADC操作时序
ADCC控制器触发采样事件后,ADC操作本身具有一个转换时间延迟。图9显示单次ADC事件与每个ADC接口相关联,且使能两次事件同步采样的情况。
有三个独立的转换周期与ADC操作有关。
1. 写入8位控制字,选择ADC读取通道(ADCC_EVTCTL.CTLWD)。
2. 置位转换脉冲,使能ADC采样和转换。
3. 让16位ADC数据回流至ADCC。
ADCC提供这3个事件相位的片选和选通时钟信号。ADCC与ADC的接口为串行接口,采用双通道位操作。因此,每个CS脉冲期间提供的最小时钟周期数(ADCC时序控制寄存器的NCK段)为8。其他重要的设置有:ADC时钟频率、转换周期片选信号之间的最小延迟(tCSCS)(ACLK周期内),以及CS边沿和ACLK边沿之间的最小延迟(tCSCK和tCKCS)。因此,单个同步采样信号对的ADC转换周期时间tCONV_ADC可表示为:
其中,fACLK表示ADCC时钟频率。
ADCC时钟由处理器系统时钟(fSYSCLK)通过ACKDIV分频(在时序控制寄存器ADCC_TCA中)在内部产生,计算如下:
其结果是系统时钟来源于处理器内核时钟(fCORECLK)。当fCORECLK为fSYSCLK的整数倍时,获得最佳系统性能。完成ADC转换后,额外延迟是因为ADC数据通过DMA传输至数据存储器,并最终由中断请求服务将数据帧准备就绪,供主应用程序使用。因此,在应用中,从触发(例如,PWM SYNC脉冲)到数据可用的总时间为:
tCONV_TOTAL = tCONV_ADC + tDMA + tIRQ
tDMA是DMA传输的平均时间。
tIRQ是中断请求服务的平均时间。
图9. 单次事件同步采样的转换时间
典型时序设置见表2。表中还列出了对时序的一些约束条件。获得正确ADC性能的绝对约束条件是,允许的ADC采样和转换周期(tCONV_ADC/3)必须至少为380 ns。单个同步采样事件的时序结果如图10所示,该结果与电机绕组电流的采样有关(注意,该图为了突出示例而略为夸大)。
图10. 采样延迟时间
采用这些设置时,在所需的电流波形采样点与实际采样点之间存在450 ns失调。该值等于一个片选脉宽(200 ns + 25 ns + 0 ns)加两次片选之间的脉宽(225 ns)。 该结果造成平均电机绕组电流和实际采样电流之间的ΔiSAMP产生差异,在时序调度中需加以考虑,虽然在1 kHz的典型电流控制环路带宽环境中,这表示不超过0.2°的相移。此外,对于10 kHz的典型PWM频率,ADC数据从产生PWM SYNC脉冲(表2中的设置)起,在不足2%的可用PWM周期时间内可供应用程序使用。如果在事件发生时ADC处于空闲状态,则4至5个SYSCLK周期的额外延迟将存在于事件激活的时刻与ADC开始工作的时刻之间。
图11. 采样时刻调整的实现
表2. 典型ADC设置的时序设定
采样时刻调整
可能需要进一步提高电机电流采样时刻的精度并消除所需采样时刻和实际采样时刻之间的450 ns失调。精度提高后对低电感伺服电机等应用案例或者采用较高开关频率的情况特别有益。要消除这一较小的时间偏移量,一种方法是使用通用(GP)定时器在PWM sync脉冲前一个ADCC片选脉宽处创建触发。这可以通过从前一PWM sync脉冲触发GP定时器来实现,如图11所示。使用此方法时,在PWM周期结束前安排任何采样事件时必须谨慎。所有采样事件必须在下一周期开始前一个片选脉宽处完成(图11中的EVT0标记)。
示例实验结果
“示例代码”部分提供的电流采样代码部分已在闭环永磁同步电机控制应用电路中进行了测试。应用电路采用通用交流线输入以及-6.8 A至+6.8 A的受控电机电流范围,并利用了电流传感器;该电流传感器参数图4中的电流调整数据。图20至图23还显示了应用电路的采样结果。
图20显示了参考速度为1500 rpm且电机空载时测得的电机相位电流。电机电流水平极低,并且高度不连续。
图21显示采用正确同步采样方法的平均效应,由图中可见电机相位电流具有平滑的正弦平均波形,即便电流水平低于最大值的2%时亦是如此。图21和图22(即跟踪IQ参考电流的控制环路工作曲线)均通过ADSP-CM408F产生的数据流获得,该产品通过RS-232连接MATLAB(R)接口。
在图23中,PWM sync脉冲位置以及后续的采样触发显示在相位电流PWM周期的中央,该处电流等于瞬时平均值。为便于说明,该图显示的是较高的负载。
图20. 测量电机相位电流
图21. ADC采样电机相位电流:上图为调整至真实值;下图为数字字输出
图22. Q轴参考电流和实际电流
最后,在图22中,PWM SYNC脉冲位置以及后续的采样触发显示在相位电流PWM周期的中央,该处电流等于瞬时平均值。为便于说明,该图显示的是较高的负载。
图23. 与相位电流有关的采样
注释
I2C指最初由Philips Semiconductors(现为NXP Semiconductors)开发的一种通信协议。
相关推荐
- CentOS、Nginx、PHP、MySQL的安装和配置记录
-
安装LNMP安装wget工具(可选) yuminstall-ywget下载Nginx wgethttp://www.atomicorp.com/installers/ato...
- phpstudy安装及简单使用教程(phpstudy pro怎么安装)
-
phpstudy前不久爆出有后门,我的看法是,去看下是哪个版本有后门,为啥会有后门,怎么解决掉这个后门,而不是听到后门就弃用了。毕竟phpstudy绿色安装,配置简单,多版本融合,真香。前言:关于开发...
- PHP 语法详解(php方法大全)
-
PHP脚本在服务器上执行,然后向浏览器发送回纯HTML结果。基础PHP语法PHP脚本可放置于文档中的任何位置。PHP脚本以<?php开头,以?>结尾:<?php...
- 简单一点 全网页截图不难(网页截图如何截完整的)
-
很多人看到好的网页想要截图,比如看到一个全屏幕网页很好,想要截取下来保存,无论如何都是快捷键或者Windows自带的截图工具无法实现的,通常方法都是安装专用的截图软件,占用系统空间不说,专业的软件操作...
- PHP分享(php分享IPTV单播步骤详解和注意事项)
-
第一次接触PHP,这是我做的输出和符不符合条件,第三个我忘记叫什么了,对这个还不太熟悉,要勤加练习。左边是代码,右边是效果图。我在做的时候出现最多的错误就是符号,写代码一定要切记是在英文状态下写不是在...
- PHP站点要这样配置服务器才安全(php 服务器配置)
-
主机(站点)配置一个站点的2个核心信息为:主机名(服务器名/站点名):ServerName服务器名站点位置(站点目录路径):DocumentRoot“实际物理路径”默认情况下,apache安装...
- 从零学习php之php语法——课程1(php教程200课程)
-
以后将会每天更新一篇电脑编程教程有需要的朋友记得订阅转发哟怎么学习php?对于想学php还没入门的朋友很多都在纠结怎么开始第一步。我很了解php初学者的心理,因为我也是从那个阶段过来的,也是自学。那...
- 为什么使用PHP制作网站?(php为什么可以开发动态网页)
-
现在网站制作可以使用多种语言。为什么我们选择PHP进行网站制作?北京东浩联创科技有限公司.是一家高端网站制作公司,在业界处于领先地位。本文东浩联创的小编告诉大家我们为什么使用PHP进行网站制作?它的...
- 更新:PHP 8.2.11(64位)(更新:PHP 8.2.11(64位破解)
-
最新版本:PHP8.2.11(64位)最新消息:WindowsXP64/Vista64/Windows764/Windows864/Windows1064/Wind...
- 常见的PHP五大运行模式详解(php运行需要哪些核心程序)
-
1)CGI(通用网关接口/CommonGatewayInterface)2)FastCGI(常驻型CGI/Long-LiveCGI)3)CLI(命令行运行/CommandLineI...
- 常见36种WEB渗透测试漏洞描述及解决方法---phpinfo信息泄露
-
漏洞描述:测试页面可能会使用到PHP的phpinfo()函数输出服务器重要信息,造成信息泄露,为后续攻击提供可能。解决方法:删除相关PHP文件。...
- 跨境电商独立站必做!隐藏PHP版本的小秘密
-
你知道吗?黑客攻击独立站的第一步,往往是“侦察”。就像小偷会先踩点一样,他们会扫描你的服务器信息,而暴露的PHP版本就是最显眼的“漏洞地图”。有个卖家居的跨境卖家曾跟我吐槽:“网站莫名其妙被注入恶意代...
- 对不起,您访问的页面不存在!(出错啦!你访问的页面不存在...)
-
可能因为:网址有错误>请检查地址是否完整或存在多余字符网址已失效>可能页面已删除,活动已下线等...
- php搭建小型部门网站(php建一个网站步骤)
-
熟悉前端html,js,css,后端熟悉php,python,java只能称得上一般,还有很多坑待踩。鉴于所学很杂,决定利用对业务的熟悉来搞一个部门网站来简化大家的工作流程。初步设计方案后端用p...
- 如何知道网站是否用PHP语言编写的
-
最近一段时间,有好多朋友问我,这个商城是不是用的PHP程序,那个网站用的是不是PHP程序,特别是刚入行的新人,那么如何判断一个网站是不是用语言写的,这还真是个问题,那么今天我就以我的经验写一下通过网...
- 一周热门
- 最近发表
- 标签列表
-
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- oracle两个表 (20)
- oracle 数据库 字符集 (20)
- oracle安装补丁 (19)
- matlab化简多项式 (20)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- css class选择器用法 (25)
- css样式引入 (30)
- css教程文字移动 (33)
- php简单源码 (36)
- php个人中心源码 (25)
- php小说爬取源码 (23)
- 云电脑app源码 (22)
- html画折线图 (24)
- docker好玩的应用 (28)
- linux有没有pe工具 (34)
- mysql数据库源码 (21)