電阻頻率響應(yīng)測試實驗
設(shè)備:電阻,面包板,STM32F103VE 試驗板 , 示波器。
方法:將100R,1K,10K,1M電阻,分別以不同形式接入頻率為1K,10K,1M,10M,的方波,觀察其波形和區(qū)別。
電路圖:各種接發(fā)詳見下文。
編譯環(huán)境:iar
程序方面:采用定時器pwm模式,生成需要的頻率以及占空比
#include "stm32f10x.h"
//#include
#include "key.h"
#include "SYSTICK.h"
//#include
#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復用推挽輸出
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; //預分頻設(shè)置
TIM5->CCMR1 &=~ ((3<<8)|(3<<0));////設(shè)置為ch1 ch2為輸出模式
TIM5->CCMR1 |= (7<<12)|(1<<11)|(7<<4)|(1<<3); //pwm模式和輸出比較預裝載使能
TIM5->CCMR2 &=~ ((3<<8)|(3<<0));//設(shè)置為ch4 ch3為輸出模式
TIM5->CCMR2 |= (7<<12)|(1<<11)|(7<<4)|(1<<3); //pwm模式和輸出比較預裝載使能
TIM5->CCER |= (1<<12)|(1<<8)|(1<<4)|(1<<0);//開啟ch4輸出
TIM5->CR1|=(1<<0);
TIM5->CCR1 = 10;
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復用推挽輸出
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; //預分頻設(shè)置
TIM5->CCMR1 &=~ ((3<<8)|(3<<0));////設(shè)置為ch1 ch2為輸出模式
TIM5->CCMR1 |= (7<<12)|(1<<11)|(7<<4)|(1<<3); //pwm模式和輸出比較預裝載使能
TIM5->CCMR2 &=~ ((3<<8)|(3<<0));//設(shè)置為ch4 ch3為輸出模式
TIM5->CCMR2 |= (7<<12)|(1<<11)|(7<<4)|(1<<3); //pwm模式和輸出比較預裝載使能
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)速度可以達到36M,但基本上是嚴重變形了的
這是接了一般的導線,測量的波形
從上面的波形可以看出,導線的分布電容,和分布電阻對波形的影響還是挺大的。
估計要是產(chǎn)生36M的標準方波是沒戲了,這也是我為啥要測試這些波形的原因。測試這些,可以對高頻波形的預知,好對生成更好的更標準的波形做基礎(chǔ)。
進入主題,開始測試,首先是電路圖,最簡單的
這是1HZ的,測試電阻,用1個10K和100K,波形,基本保持不變。
這是100HZ的波形,其測試電阻為100K,如果不仔細看,是看不到方波的右下角已經(jīng)開始有一些小的變化了。
關(guān)鍵詞:
電阻頻率響應(yīng)測試實驗STM32F103V
評論