專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

電阻頻率響應(yīng)測試實驗

作者:劉溫電   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年11月23日   【字體:
試驗2
目的:測試,電阻,接入不同的頻率方波,都會變成什么樣子。
設(shè)備:電阻,面包板,STM32F103VE 試驗板 , 示波器。
方法:將100R,1K,10K,1M電阻,分別以不同形式接入頻率為1K,10K,1M,10M,的方波,觀察其波形和區(qū)別。
電路圖:各種接發(fā)詳見下文。
編譯環(huán)境:iar
 
 
程序方面:采用定時器pwm模式,生成需要的頻率以及占空比
#include "stm32f10x.h"
//#include <stdio.h>
#include "key.h"
#include "SYSTICK.h"
void scan(void);
void init(void);
void main()
{
  
      init();
  
      GPIOC->CRL &=~ (0xff<<0);
      GPIOC->CRL |= (3<<0)|(3<<4);
      GPIOC->ODR |= 0;
      TIM5->ARR = 500 ; 
      TIM5->CCR1 = 250;
      while(1)
      {
              scan();
 
       }
}
void init()
{
      SystemInit();
      SYSTICK_Init(72);
      RCC->APB2ENR |= (1<<11) | (1<<4) | (1<<2) | (1<<0);  //打開pc pa和t1時鐘
      GPIOC->CRL &=~ (0xff<<0);
      GPIOC->CRL |= (1<<3)|(1<<7);
      GPIOC->ODR |= (1<<0)|(1<<1);  //按鈕io初始化
      GPIOA->CRH |= (11<<0)|(11<<4)|(11<<8)| (11<<12);    //設(shè)置PA口為50M復(fù)用推挽輸出 
      RCC->APB1ENR |= (1<<3); //開啟t5的時鐘  led
      RCC->APB2ENR |= (1<<2)|(1<<0);
      TIM5->CR1 |= (0<<4)|(1<<7);//向上計數(shù),使能重裝載寄存器
      TIM5->ARR = 20;//周期設(shè)置
      TIM5->PSC = 0;  //預(yù)分頻設(shè)置
      TIM5->CCMR1 &=~ ((3<<8)|(3<<0));////設(shè)置為ch1 ch2為輸出模式
      TIM5->CCMR1 |= (7<<12)|(1<<11)|(7<<4)|(1<<3); //pwm模式和輸出比較預(yù)裝載使能
      TIM5->CCMR2 &=~ ((3<<8)|(3<<0));//設(shè)置為ch4 ch3為輸出模式
      TIM5->CCMR2 |= (7<<12)|(1<<11)|(7<<4)|(1<<3); //pwm模式和輸出比較預(yù)裝載使能
      TIM5->CCER  |= (1<<12)|(1<<8)|(1<<4)|(1<<0);//開啟ch4輸出
      TIM5->CR1|=(1<<0);  
      TIM5->CCR1 = 10;

      GPIOA->CRL &=~ (0xf<<0);
      GPIOA->CRL |= (2<<2)|(3<<0);
      GPIOA->CRL &=~ (0xf<<4);
      GPIOA->CRL |= (2<<6)|(3<<4);
      GPIOA->CRL &=~ (0xf<<8);
      GPIOA->CRL |= (2<<10)|(3<<8);
      GPIOA->CRL &=~ (0xf<<12);
      GPIOA->CRL |= (2<<14)|(3<<12);
}

void scan()
{
       if(Scan_Mode())
      {
           TIM5->ARR = TIM5->ARR+100 ; 
           TIM5->CCR1 = TIM5->CCR1+50 ; 
           TIM5->EGR = 1;
     }
     if(Scan_Add())
     {
           TIM5->ARR = TIM5->ARR-50 ; 
           TIM5->CCR1 = TIM5->CCR1-25 ; 
           TIM5->EGR = 1;
     }
}
 
 
而且根據(jù)以上程序發(fā)現(xiàn),IO的翻轉(zhuǎn)速度可以達(dá)到36M,但基本上是嚴(yán)重變形了的

 

 

這是直接測量管角上的波形

 

 

 這是接了一塊非常不好的導(dǎo)線,測量的波形

 

 

 

這是接了一般的導(dǎo)線,測量的波形
從上面的波形可以看出,導(dǎo)線的分布電容,和分布電阻對波形的影響還是挺大的。
估計要是產(chǎn)生36M的標(biāo)準(zhǔn)方波是沒戲了,這也是我為啥要測試這些波形的原因。測試這些,可以對高頻波形的預(yù)知,好對生成更好的更標(biāo)準(zhǔn)的波形做基礎(chǔ)。
 
進(jìn)入主題,開始測試,首先是電路圖,最簡單的

 

 

 

 

 

 

這是1HZ的,測試電阻,用1個10K和100K,波形,基本保持不變。

 

 

這是100HZ的波形,其測試電阻為100K,如果不仔細(xì)看,是看不到方波的右下角已經(jīng)開始有一些小的變化了。

 

 

 

這是1KHZ的方波,第一幅圖電阻為1K,而第二副圖電阻為100K,可以明顯的看到,波形開始扭曲。

 

 

100KHZ方波,測試電阻0歐,方方正正的,很好看 

 

 

當(dāng)測試電阻為10K時,波形已經(jīng)變成這個鳥樣子了,可以看到,圖中的最大電壓也從3.6V降到了3.28V

 

 

這是30K的樣子,最大電壓和最小電壓都變了。 

 

 

這是50K的樣子,已經(jīng)看不出原來波形的樣子了,直接變成了很短的三角波了。看來這小小的電阻還是真厲害啊。

 

 

 

1MHZ 測試電阻為0歐,貌似還湊合

 

 

1K測試電阻,我怎么看,怎么想鋸條,鋸鋸齒,鋸鋸齒的 

 

 

這是10K的測試電阻,已經(jīng)快變成1條線了

 

 

這是10MHZ的頻率,測試電阻為0歐,啥也沒加,就已經(jīng)變形了

 

 

這個是10MHZ,1k測試電阻,就已經(jīng)啥也沒有了

 

從上面這個這些圖可以看出,在低頻情況下,長距離傳輸數(shù)據(jù),信號畸變是小的,電阻的大小,對波形不構(gòu)成太大影響

而超過1K頻率時,電阻的增加是波形產(chǎn)生扭曲,而且信號頻率越大,或者電阻越大,情況就越嚴(yán)重,而超過10Mhz的時候,1K的電阻就已經(jīng)會使信號面目全非了。

 

方案二:采用上拉電阻的形式,看看能不能矯正扭曲的波形呢?

 

在開漏模式下,試了一下10K上拉電阻,650K左右的頻率,樣子也蠻奇怪的,呵呵

 

 

 

這種圖形,基本上不會給波形帶來任何效果,試了一下,不好用。

只是電阻的話,估計不會給波形帶來啥效果,要不,就不用那么復(fù)雜的電路了,其他的接入方法,就不試了,也沒想出來還有啥方法,明天測試電容的。

關(guān)閉窗口

相關(guān)文章