新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > msp430AD采集數據記錄及分析

        msp430AD采集數據記錄及分析

        作者: 時間:2016-11-13 來源:網絡 收藏
        1、利用先鋒脈沖數據采集模擬程序對實現板進行測試,

        其中測試管腳的信號為:周期為2.4S 高電平時間為0.3s
        設置AD時:P6SEL |= 0x08;
        ADC12CTL0 = ADC12ON+MSC+REFON+REF2_5V + SHT0_8;
        ADC12CTL1 = SHP + CONSEQ_2 + ADC12SSEL_3 +ADC12DIV_7;
        ADC12MCTL0 = SREF_1 + INCH_3;
        ADC12IE = 0X01;
        ADC12CTL0 |= ENC;
        ADC12CTL0 |= ADC12SC;
        即采用第3通道,選用SMCLK(DCO) 并對其進行8分頻,SHT0_8(256)選用內部參考電壓2.5v

        本文引用地址:http://www.104case.com/article/201611/316556.htm


        測試1,基于DCO進行的測試

        經過實際測試:
        周期:869 高電平:108 占空比:108/869 = 0.124
        周期:870 高電平:109 占空比:109/870 = 0.125
        標準:300/2400 = 0.125

        理論分析:初始DCO為800K,8分頻為:100K,周期為:10us
        而轉換一個數需要的周期數據為256+13+3=272個ADC12CLK ,
        SO 轉換一個數的時間為2.72ms
        綜上,2.4s內能完成2400/2.72=882.35個數的轉換,與實測的870基本吻合。

        若不考慮Tsync:則轉換一個數需要的周期數據為256+13=269個ADC12CLK ,
        SO 轉換一個數的時間為2690ms
        從而2.4S內能完成2400/2.69 = 892 (與實測的相差大)



        測試2,基于外部8MHz晶體進行的測試

        設置AD時:
        BCSCTL1 &= ~XT2OFF; // 打開XT2高頻晶體振蕩器

        do
        {
        IFG1 &= ~OFIFG; //清除晶振失敗標志
        for (i = 0xFF; i > 0; i--); // 等待8MHz晶體起振
        }
        while ((IFG1 & OFIFG)); // 晶振失效標志仍然存在?

        BCSCTL2 = SELM_2+DIVM_3; //select XT2,并對其進行8分頻,然后供給MCLK;
        ADC12CTL0 = ADC12ON+MSC+REFON+REF2_5V + SHT0_8; // Turn on ADC12, extend sampling timeSHT0_8

        ADC12CTL1 = SHP + CONSEQ_2 + ADC12SSEL_2 +ADC12DIV_7;// Use sampling timer, repeated sequence,并對ADC時鐘進行8分頻

        ADC12MCTL0 = SREF_1 + INCH_3;
        ADC12IE = 0X01;
        ADC12CTL0 |= ENC; // Enable conversions
        ADC12CTL0 |= ADC12SC; // Start conversion

        理論分析:
        初始XT2為8MHz 8分頻為1MHz ,再對其進行8分頻為125KHz 所以ADC12CLK的周期為8us
        so 轉換一個數的時間為:(256+3+13)* 8 = 2.176ms
        SO 2.4S的周期能轉換2400/2.176=1102.9 也即1102個數

        若不考慮Tsync 則轉換一個數的時間為:(256+13)* 8 = 2.152ms
        SO 2.4S的周期能轉換2400/2.152=1115.2 也即1115個,與實際測試僅差一個數。

        實際測試:
        周期:1114 高電平:139 占空比:139/1114 = 0.12477
        標準:300/2400 = 0.125

        2、把周期為2.4ms 高電平為300ms的脈沖信號加到另一塊板子上

        另一塊板子采用DCO800k ,其余設置參數同上 其測試結果是:
        周期:801 高電平:100 占空比:100/801 =0.1248
        周期:799 高電平:99 占空比:99/799 = 0.1239
        標準:300/2400 = 0.125

        另一塊板子采用XT2=6MHz時的測試結果:
        周期:836 高電平: 104 占空比:104/836 = 0.1244
        周期:836 高電平: 104 占空比:104/836 = 0.1244 可以看出(利用外部晶體重復性好)
        標準:300/2400 = 0.125


        理論分析:
        初始XT2為6MHz 8分頻為750KHz ,再對其進行8分頻為93.75KHz 所以ADC12CLK的周期為10.7us
        so 轉換一個數的時間為:(256+3+13)* 10.7 = 2.91ms
        SO 2.4S的周期能轉換2400/2.91=824.7 也即824個數 {與實際測試的836基本相符}

        若不考慮Tsync 則 2.4S的周期能轉換2400/(269*10.67)=836.2 也即836 與實際測試完全相符


        總結:就以上測試分析,可知,基本達到要求,但對DCO來說,稍有偏移,
        根據DATASHEET:采樣的總時間為Tsample +Tsync 但如果,不考慮Tsync,則對上面的采用外部晶體采集數據時
        理論與實際完全相符。
        但對DCO就不同,并且DCO,對不同的板子,雖然占空比相同,但采集數據個數也有很大的差別。這可能與DCO本身,所以為了把2.4S內的數據都采集到,應該取較大的采樣數據。
        隨溫度及環境而變化有關。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 金昌市| 滦平县| 宿松县| 磐石市| 桦甸市| 安龙县| 巴林左旗| 大兴区| 阿勒泰市| 凤翔县| 镇沅| 勃利县| 大冶市| 平武县| 永吉县| 法库县| 南京市| 扬州市| 射阳县| 交口县| 繁峙县| 长岛县| 孝义市| 策勒县| 佛冈县| 利辛县| 明星| 宁南县| 北安市| 西乡县| 呼和浩特市| 道孚县| 慈溪市| 疏附县| 本溪市| 靖江市| 潢川县| 宣汉县| 台东县| 达拉特旗| 盐城市|