0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >新能源 > 基于ADSP-CM403 Sinc(ADI AD7401A二阶Σ-Δ调制器)实现太阳能隔离测量应用设计方案

基于ADSP-CM403 Sinc(ADI AD7401A二阶Σ-Δ调制器)实现太阳能隔离测量应用设计方案

来源: analog
2024-01-26
类别:新能源
eye 50
文章创建人 拍明芯城

  太阳能应用中的电压和电流测量需采用隔离测量技术。 DSP Sinc输入以及ADIAD7401A隔离式ADC恰好提供ADI 信号链的一个示例,实现这种隔离测量。

  本文介绍采用ADSP-CM403xy和AD7401A器件,并由 ADI设计的测量应用典型信号链。

  太阳能光伏逆变器系统

  太阳能光伏逆变器转换来自太阳能面板的电能并高效地 将其部署到公用电网中。来自太阳能面板的电能基本上 属于直流源,它会被转换成交流,并与电网频率成一定的相位关系,馈送至公用电网上,且效率极高。转换可 以采用单级,也可以采用多级(见图1)。第1级通常为 DC-DC转换,其中太阳能面板的低电压与高电流输出转 换为高电压与低电流。这样做的目的是为了将电压提升 至与电网峰值电压兼容的水平。第2级通常将直流电压 和电流转换为交流电压和电流,一般使用H-电桥拓扑。

  

image.png


  图1. 太阳能光伏逆变器信号链(ADI公司)

  ADC理论—AD7401A

  AD7401A是一款二阶Σ-Δ调制器,片上的数字隔离采用 ADI公司的iCoupler® 技术,能将模拟输入信号转换为高 速1位数据流。AD7401A采用5 V电源供电,可输入±250 mV 的差分信号(满量程±320 mV)。模拟调制器对模拟输入信 号连续采样,因而无需外部采样保持电路。输入信息以 数据流密度的形式包含在输出数据流内,该数据流的最 高数据速率可到20 MHz。通过适当的数字滤波器(称为 Sinc滤波器)可重构原始信息。处理器侧(非隔离)可采用 5 V或3 V电源 (VDD2)。

  示例电路 – 描述

  

image.png


  图2. 隔离式电压电路

  Σ-Δ 调制器的交流输入是一个交流正弦波,表示单相电网 发出的220 V rms信号。电阻分频器将输入范围缩小到ADC 的额定输入范围。输入滤波器可降低输入端的噪声。

  Σ-Δ 调制器输出包含两个信号:来自ADSP-CM403xy DSP处理器的高速时钟输入,以及保持调制数据的数据 信号。该数据可直接输入Sinc3滤波器,直接将数据转 换为ADC结果。下文显示该数据的一个示例。

  

image.pngimage.png


  图3. 调制器示例数据

  在ADC的下限范围内,输入信号具有窄脉冲宽度,而在 上限范围内脉冲宽度几乎达到其最大值。输出数据通过 Sinc滤波器后,便如对角线所示。AD7401A工作电压高 达891 V单极性范围,或565 V双极性范围,并横跨隔离 栅:20μm聚酰亚胺。更多有关这些内容的信息以及各 种认证可在相关数据手册中找到。

  ADSP-CM403XY SINC3外设模块

  

image.png


  图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。

  

image.png


  图5. (a) Sinc3抽取速率=256 (b)模块噪底

  数字滤波器

  Sinc滤波器的传递函数使其能用在数字逻辑中(使用一系 列求和与抽取函数)。使用滤波器移除调制器采样时 钟,恢复采样信号的数字值。滤波器设计匹配双极性Σ-Δ 调制器,0 V输入下具有50%脉冲密度,正输入时超 过50%,而负输入时不足50%,如图6所示。

  

image.png


  图6. ADSP-CM403 Sinc滤波器框图

  数字滤波器是一组累加器,由调制器时钟(M_CLK)驱 动,后接一组由抽取时钟(D_CLK)驱动的微分器。 输入 累加器将输入位流转换为多字节字,而输出微分器获取 位流的均值1密度。

  累加器和微分器的级数可以为3或4,具体取决于滤波器 阶数。滤波器的直流增益和带宽为滤波器阶数(O)和抽 取速率(D)的函数,即调制器时钟与抽取时钟的比值。 Sinc滤波器传递函数由累加器与微分器的传递函数之积 确定,Z域内的表达式为:

  

image.png


  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数据可用 于电网同步算法控制中。

  

image.png


  图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.

  作者

  

image.png


  Martin Murnane

  Martin Murnane是爱尔兰利默里克市ADI公司太阳能光伏团队成员,之前曾任职于ADI公司汽车团队。加入ADI公司之前,他曾从事过能源循环利用系统的应用开发 (Schaffner Systems)、基于Windows的应用软件/数据库开发 (Dell Computers) 以及采用应变片技术的产品开发 (BMS) 等领域的工作。他毕业于利默里克大学,获电子工程学士学位和工商管理硕士学位。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯