你的位置:首页 > 测试测量 > 正文

ADSP-CM403 Sinc—太阳能应用中的隔离测量

发布时间:2020-08-19 来源:Martin Murnane 责任编辑:wenwei

【导读】太阳能应用中的电压和电流测量需采用隔离测量技术。 DSP Sinc输入以及ADIAD7401A隔离式ADC恰好提供ADI 信号链的一个示例,实现这种隔离测量。
 
本文介绍采用ADSP-CM403xy和AD7401A器件,并由 ADI设计的测量应用典型信号链。
 
太阳能光伏逆变器系统
 
太阳能光伏逆变器转换来自太阳能面板的电能并高效地 将其部署到公用电网中。来自太阳能面板的电能基本上 属于直流源,它会被转换成交流,并与电网频率成一定的相位关系,馈送至公用电网上,且效率极高。转换可 以采用单级,也可以采用多级(见图1)。第1级通常为 DC-DC转换,其中太阳能面板的低电压与高电流输出转 换为高电压与低电流。这样做的目的是为了将电压提升 至与电网峰值电压兼容的水平。第2级通常将直流电压 和电流转换为交流电压和电流,一般使用H-电桥拓扑。
 
ADSP-CM403 Sinc—太阳能应用中的隔离测量
图1. 太阳能光伏逆变器信号链(ADI公司)
 
ADC理论—AD7401A
 
AD7401A是一款二阶Σ-Δ调制器,片上的数字隔离采用 ADI公司的iCoupler® 技术,能将模拟输入信号转换为高 速1位数据流。AD7401A采用5 V电源供电,可输入±250 mV 的差分信号(满量程±320 mV)。模拟调制器对模拟输入信 号连续采样,因而无需外部采样保持电路。输入信息以 数据流密度的形式包含在输出数据流内,该数据流的最 高数据速率可到20 MHz。通过适当的数字滤波器(称为 Sinc滤波器)可重构原始信息。处理器侧(非隔离)可采用 5 V或3 V电源 (VDD2)。
 
示例电路 – 描述
 
ADSP-CM403 Sinc—太阳能应用中的隔离测量
图2. 隔离式电压电路
 
Σ-Δ 调制器的交流输入是一个交流正弦波,表示单相电网 发出的220 V rms信号。电阻分频器将输入范围缩小到ADC 的额定输入范围。输入滤波器可降低输入端的噪声。
 
Σ-Δ 调制器输出包含两个信号:来自ADSP-CM403xy DSP处理器的高速时钟输入,以及保持调制数据的数据 信号。该数据可直接输入Sinc3滤波器,直接将数据转 换为ADC结果。下文显示该数据的一个示例。
 
ADSP-CM403 Sinc—太阳能应用中的隔离测量
图3. 调制器示例数据
 
在ADC的下限范围内,输入信号具有窄脉冲宽度,而在 上限范围内脉冲宽度几乎达到其最大值。输出数据通过 Sinc滤波器后,便如对角线所示。AD7401A工作电压高 达891 V单极性范围,或565 V双极性范围,并横跨隔离 栅:20μm聚酰亚胺。更多有关这些内容的信息以及各 种认证可在相关数据手册中找到。
 
ADSP-CM403XY SINC3外设模块
 
ADSP-CM403 Sinc—太阳能应用中的隔离测量
图4. ADSP-CM403 Sinc外设框图
 
框图显示4对Sinc滤波器(Sinc0至Sinc3)、2个调制器时钟 源和2组控制寄存器(单元)。模块接受4路来自GPIO输 入引脚的Σ-Δ 位流,并将2个调制器时钟源导入GPIO输 出引脚。脉冲宽度调制(PWM)信号使调制器时钟同 步,以获得最佳的系统性能。每个Sinc滤波器对均包含 初级滤波器、次级滤波器、DMA接口和过载限值检测 功能。初级Sinc滤波器通过DMA将其数据传输至存储 器。次级Sinc滤波器产生过载信号,可通过触发路由单 元(TRU)路由该信号,使PWM调制器产生跳变,生成 中断。
 
使用AD7401A时,器件额定抽取速率(DR)为256,但也 可在其他抽取速率下使用该器件。
 
对于DR=256的情况而言,Sinc3滤波器的响应见下文中 的图5a和5b。
 
ADSP-CM403 Sinc—太阳能应用中的隔离测量
图5. (a) Sinc3抽取速率=256 (b)模块噪底
 
数字滤波器
 
Sinc滤波器的传递函数使其能用在数字逻辑中(使用一系 列求和与抽取函数)。使用滤波器移除调制器采样时 钟,恢复采样信号的数字值。滤波器设计匹配双极性Σ-Δ 调制器,0 V输入下具有50%脉冲密度,正输入时超 过50%,而负输入时不足50%,如图6所示。
 
ADSP-CM403 Sinc—太阳能应用中的隔离测量
图6. ADSP-CM403 Sinc滤波器框图
 
数字滤波器是一组累加器,由调制器时钟(M_CLK)驱 动,后接一组由抽取时钟(D_CLK)驱动的微分器。 输入 累加器将输入位流转换为多字节字,而输出微分器获取 位流的均值1密度。
 
累加器和微分器的级数可以为3或4,具体取决于滤波器 阶数。滤波器的直流增益和带宽为滤波器阶数(O)和抽 取速率(D)的函数,即调制器时钟与抽取时钟的比值。 Sinc滤波器传递函数由累加器与微分器的传递函数之积 确定,Z域内的表达式为:
 
ADSP-CM403 Sinc—太阳能应用中的隔离测量
 
PWM和SINC数据对齐
 
Sinc外设时钟和PWM本质上运行在同样的ADSP-CM403 系统时钟下,典型值为100 MHz。PWM和Sinc可以同步 以便提供数据,并且时间与速率恰好和控制算法一致。 通常与PWM电平波形对齐。下图显示使用Sinc输入进行电网同步所需时序的示例。当PWM运行在20 kHz (50 μs) 时,PWM_SYNC信号(同步不同DSP的PWM模块或外部 PWM时需要用到该信号)位于PWM波形中央,几乎不 发生切换。若要对齐Sinc数据,则AD7401A的时钟速率 应设为10.24 MHz,并且抽取速率为256(见AD7401A数据 手册)。这将产生40 KHz (50μs)的16位字速率,两倍于PWM 频率。由于Sinc还可设为与PWM_SYNC输出对齐(如下 框图所示),Sinc现在能在每个PWM周期内产生两个数 据输出。输出字在SRAM中可用, 位置在下一个 PWM_SYNC信号位置处。显然,它说明Sinc数据可用 于电网同步算法控制中。
 
ADSP-CM403 Sinc—太阳能应用中的隔离测量
图7. PWM与Sinc外设对齐(ADSP-CM403)
 
编程示例
 
/* SPECIFY DECIMATION RATE OPTIONS */
 
/* 256 */
// RESULT = ADI_SINC_SETRATECONTROL (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_PRIMARY,DECRATE_256, 0);
// RESULT = ADI_SINC_SETLEVELCONTROL (DEV, ADI_SINC_GROUP_0, 0, 0, SAMPLECOUNT_INTRATE, PSCALE_256);          // PCINT INT RATE
 
/* 128 */
RESULT = ADI_SINC_SETLEVELCONTROL (DEV, ADI_SINC_GROUP_0, 0, 0, SAMPLECOUNT_INTRATE, PSCALE_128);          // PCINT INT RATE
RESULT = ADI_SINC_SETRATECONTROL (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_PRIMARY,DECRATE_128, 0); 
 
/* 64 */
RESULT = ADI_SINC_SETLEVELCONTROL (DEV, ADI_SINC_GROUP_0, 0, 0, SAMPLECOUNT_INTRATE, PSCALE_64);          // PCINT INT RATE
RESULT = ADI_SINC_SETRATECONTROL (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_PRIMARY,DECRATE_64, 0);
 
 
/* SET SECONDARY RATE CONTROL “/
RESULT = ADI_SINC_SETRATECONTROL (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_SECONDARY, 8, 0);
RESULT = ADI_SINC_SETFILTERORDER (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_THIRD_ORDER, ADI_SINC_FILTER_THIRD_ORDER); RESULT = ADI_SINC_SETCIRCBUFFER(DEV, ADI_SINC_GROUP_0, SINC_CIRCBUFFER, CIRC_BUF_SIZE);
 
/* SET OVERLOAD AMPLITUDE DETECTION LIMITS TO 0 – FULLSCALE */
RESULT = ADI_SINC_SETAMPLITUDELIMIT (DEV, ADI_SINC_PAIR_0, 0X0000, 0XFFFF);
RESULT = ADI_SINC_SETAMPLITUDELIMIT (DEV, ADI_SINC_PAIR_1, 0X0000, 0XFFFF);
RESULT = ADI_SINC_SETAMPLITUDELIMIT (DEV, ADI_SINC_PAIR_2, 0X0000, 0XFFFF);
RESULT = ADI_SINC_SETAMPLITUDELIMIT (DEV, ADI_SINC_PAIR_3, 0X0000, 0XFFFF);
 
/* SPECIFY MODULATOR CLOCK FREQUENCY, PHASE & STARTUP SYNCHRONIZATION */
RESULT = ADI_SINC_CONFIGMODCLOCK (DEV, ADI_SINC_GROUP_0, FSYSCLK, MODCLK, 0, FALSE);          // UP TO 20MHZ
 
/* IT’S THE SAME CLOCK AS THE PWM – SO PWM AND SINC ARE SYNCHRONOUS */
RESULT = ADI_SINC_ENABLEMODCLOCK (DEV, ADI_SINC_GROUP_0, ADI_SINC_MOD_CLK_IMMEDIATE );
 
/* ASSIGN BUFFERS TO RECEIVE SINC DATA-AUTOMATICALLY DMA’D INTO SRAM IN THE ADSP-CM403*/
RESULT = ADI_SINC_SUBMITBUFFER(DEV, ADI_SINC_GROUP_0, SINCDATA0, NUM_SAMPLES);
 
/* ROUTE THE TRU INTERRUPT */
RESULT = ADI_SINC_ENABLEDATAINTERRUPT (DEV, ADI_SINC_GROUP_0, ADI_SINC_DATA_INT_0, TRUE);
 
/* ENABLE & ASSIGN USED SINC FILTER PAIR, AND SPECIFY INTERRUPT MASKS */
RESULT = ADI_SINC_SETCONTROLINTMASK (DEV, ADI_SINC_INT_EPCNT0|ADI_SINC_INT_EFOVF0|ADI_SINC_INT_EPCNT1|ADI_SINC_INT_EFOVF1);
RESULT = ADI_SINC_ENABLEPAIR(DEV, ADI_SINC_PAIR_0, ADI_SINC_GROUP_0, TRUE);               // ACV_EXTERNAL
RESULT = ADI_SINC_ENABLEPAIR(DEV, ADI_SINC_PAIR_1, ADI_SINC_GROUP_0, TRUE);               // ACV_INTERNAL
RESULT = ADI_SINC_ENABLEPAIR(DEV, ADI_SINC_PAIR_2, ADI_SINC_GROUP_0, TRUE);               // DC LINK
RESULT = ADI_SINC_ENABLEPAIR(DEV, ADI_SINC_PAIR_3, ADI_SINC_GROUP_0, TRUE);               // AC_CURRENT
 
/* WAIT AND READ FULL SINE WAVE INTO SRAM – START NEAR AC CROSSOVER. */
DO
{
     PWM_SINC_LOOP=0;
     GET_ADC_DATA_PWM();
}
WHILE ((SINC_VEXT_DATA[0] > 50) || (SINC_VEXT_DATA[0] < -50)) ; // START SINC AT 0 V MEASUREMENT-ALIGNS WITH SINEWAVE.
 
 
推荐阅读:
 
无数的拍摄,只为成就一个完美回忆
贸泽推出Silicon Labs和TE Connectivity智能家居解决方案网站
监控你的生命体征?还是让专业的来吧~
设计用于物联网的以太网供电受电设备(PoE-PD)
安装率近100%、2亿+的汽车ETC基础资源,如何撑起智慧交通与智慧城市的想象?
要采购滤波器么,点这里了解一下价格!
特别推荐
技术文章更多>>
技术白皮书下载更多>>
热门搜索
 

关闭

 

关闭