当前位置: 移动技术网 > 科技>人工智能>人脸 > 简易特性测试仪实验方案策划

简易特性测试仪实验方案策划

2020年08月12日  | 移动技术网科技  | 我要评论
一.设计要求:电路特性测试仪输出 1kHz 正弦波信号,自动测量并显示该放大器的输入电阻。输入电阻测量范围 1kΩ~50kΩ,相对误差的绝对值不超过10%电路特性测试仪输出 1kHz 正弦波信号,自动测量并显示该放大器的输出电阻。输出电阻测量范围 500Ω~5kΩ,相对误差的绝对值不超过10%。自动测量并显示该放大器在输入 1kHz 频率时的增益。相对误差的绝对值不超过 10%。自动测量并显示该放大器的频幅特性曲线。显示上限频率值,相对误差的绝对值不超过 25%。二.系统框图详述::按键

一.设计要求:

  1. 电路特性测试仪输出 1kHz 正弦波信号,自动测量并显示该放大器的输入电阻。输入电阻测量范围 1kΩ~50kΩ,相对误差的绝对值不超过10%
  2. 电路特性测试仪输出 1kHz 正弦波信号,自动测量并显示该放大器的输出电阻。输出电阻测量范围 500Ω~5kΩ,相对误差的绝对值不超过10%。
  3. 自动测量并显示该放大器在输入 1kHz 频率时的增益。相对误差的绝对值不超过 10%。
  4. 自动测量并显示该放大器的频幅特性曲线。显示上限频率值,相对误
    差的绝对值不超过 25%。

二.系统框图详述::

在这里插入图片描述

按键控制单片机输出正弦波数组到PCF8591模块产生正弦波,经过比例运放电路放大信号,输入待测电路。

输入电阻测量方法: 使用两个峰值检测模块分别采集待测电路J25(Ui)和J15(Uii)端口电压值 Ri=Uii*R30/(Uii-Ui)

输出电阻测量方法:使用继电器控制模块连接待测电路的J28端口,先空载测的输出电压值Uk,在带负载R19测得输出电压值Uo Ro=R19*(Uk-Uo)/Uo。

电路增益测量方法: A=-Uo/Ui。

频幅特性曲线测量方法:单片机控制正弦波频率从0HZ安照50hz的步进依次增大,并依次测的输出电压Uo。当Uo随频率增大而变小时,该电压对应的频率为上限截止频率。

三.PCF8951DA电路模块详述:

在这里插入图片描述

J2端口用于设定PCF8951模块的地址,J4端口用于连接单片机的I2C接口。

功能1:将单片机里的正弦波数组通过I2C接口发送给PCF8951芯片,PCF8951的J6端口会产生正弦波信号。

功能2:将模拟电压值输入J3端口,通过单片机的I2C总线读取J4端口可采集到J3端口的模拟电压值。

仿真结果:

在这里插入图片描述

四.比例运算放大模块详述:

在这里插入图片描述

此电路为4路输入输出运算放大电路,其中J1和J8为反向输出,J9和J10为同向输出,Jx_IN为输入端口,Jx_OUT为输出端口。

功能:根据虚短虚断反向输出部分的U0=-Rf/R*Ui 调节R7/R5(R8/R6)可调节输出信号的放大倍数,

同向输出部分的U0=(1+Rf/R)*Ui 调节R9/R10(R11/R12)可调节输出信号的放大倍数。

五.待测放大电路模块详述:

在这里插入图片描述

J26为正弦信号输入端口,J27为输出端口,J28为带负载和空负载控制端口,J29为VCC和GND的输入端口,其他的为晶体管各级的电阻电容短路和各级断路控制端口,也可用于采集各级电压值。

六.继电器控制电路模块详述:

在这里插入图片描述

Q2和K1构成高电平驱动继电器导通电路,Q3和K2构成低电平驱动继电器导通电路,而有常开常闭两种状态。

功能1:当J1中的H_pin引脚接受到单片机产生的高电平时,J2的两个K1_OUT为短路状态,否则为断路状态。

功能2:当J1中的L_pin引脚接受到单片机产生的低电平时,J2的K2_Com和K2_Close为短路状态,K2_Com和K2_Open为断路状态。否者J2的K2_Com和K2_Close为断路状态,K2_Com和K2_Open为短路状态。

七.峰值检测电路模块详述:

在这里插入图片描述

上半部分采用AD637芯片实现峰值采集,适用于对精度要求较高的场景,但成本较高,RSM_IN输入正弦信号,RMS_OUT输出正弦信号的有效值。

下半部分采用两个运放实现峰值采集,适用于对精度要求不高的场景,成本较低。

要求较高的场景,但成本较高,RSM_IN输入正弦信号,RMS_OUT输出正弦信号的有效值。

下半部分采用两个运放实现峰值采集,适用于对精度要求不高的场景,成本较低。

八.单片机控制PCF8951产生正弦波程序:

(相关外设驱动代码下方链接自行下载)

// An highlighted block
#include "stm32f10x.h"
#include "SysTick.h"
#include "led.h"
#include "PCF8591.h"
#include "iic.h"
#include "time.h"
#include "key.h"
u8 i=0;
u8 Autoreload_val=31;
u8 sintab[]={
128,152,176,198,217,233,245,252,
255,252,245,233,217,198,176,152,
127,103,79,57,38,22,10,3,
1,3,10,22,38,57,79,103,
};


int main(void)
{  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	SysTick_Init(72);
	LED_Init();	
	PCF8591_Init();
	TIM3_Init(Autoreload_val,71);
	KEY_Init();
	while(1)
	{
		if(KEY_Scan(0)==KEY0_PRESS)
		{
			Autoreload_val++;
			TIM_SetAutoreload(TIM3,Autoreload_val);
		}
			
		if(KEY_Scan(0)==KEY1_PRESS&&Autoreload_val>1)
		{
			Autoreload_val--;
			TIM_SetAutoreload(TIM3,Autoreload_val);
		}	
		
	}
}

/*******************************************************************************
* 函 数 名         : TIM4_IRQHandler
* 函数功能		   : TIM4中断函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void TIM3_IRQHandler(void)
{
	if(TIM_GetITStatus(TIM3,TIM_IT_Update))
	{
		i++;
		pcf8591_da_write(sintab[i%32]);
	}
	TIM_ClearITPendingBit(TIM3,TIM_IT_Update);	
}


九.相关链接:

链接:https://pan.baidu.com/s/1lBrm5jho1_NQCXTo7b6Lsw
提取码:vewp

本文地址:https://blog.csdn.net/weixin_45907936/article/details/107921276

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网