你的位置:首頁 > 測試測量 > 正文

                                        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基礎資源,如何撐起智慧交通與智慧城市的想象?
                                        要采購濾波器么,點這里了解一下價格!
                                        特別推薦
                                        技術文章更多>>
                                        技術白皮書下載更多>>
                                        熱門搜索
                                        ?

                                        關閉

                                        ?

                                        關閉

                                        国产精品亚洲АV无码播放|久久青青|老熟妇仑乱视频一区二区|国产精品经典三级一区|亚洲 校园 春色 另类 激情