发作品签到
专业版

CW带标定功能的电流电压表

工程标签

58
0
0
0

简介

使用立创·地文星-CW32F030C8T6开发板做为主控的电压电流表,带有标定的功能。

简介:使用立创·地文星-CW32F030C8T6开发板做为主控的电压电流表,带有标定的功能。
电压电流表训练营【立创开发板&CW32】

开源协议

GPL 3.0

创建时间:2024-07-17 06:48:10更新时间:2024-08-22 03:58:40

描述

描述

CW32在本项目中的重要优势

  • 宽工作温度:-40~105℃的温度范围
  • 宽工作电压:1.65V~5.5V (STM32仅支持3.3V系统)

1、供电电路

image.png

LDO(低压差线性稳压器)选型
本项目使用LDO作为电源,考虑到实际的电压表头产品多在24V或36V供电的工业场景中应用,本项目选择了最高输入电压高达40V的SE8550K2作为电源。本项目没有使用DCDC降压电路来应对大压差的主要原因为避免设计过程中引入DCDC的纹波干扰,次要原因为降低项目成本。

2、电压采样电路

电压共有两个档位:0-3Vdc,0-30Vdc

在本项目中,额外增加了一组电压采样电路,因此,我们可以探讨一下换挡对于提高测量精度的意义。万用表想要测的更准确,往往设置了多个档位。通过对不同档位的调整,获得被测点位在相应量程下的最佳的测量精度。

本项目实现此功能需要实现软硬件结合。当我们首先使用前文所讲的ADC_IN11通道测量30V以内电压时。若所测得电压在0~3V以内,则使用ADC_IN9通道测量。此时,由于分压比减小,测量精度大大提高。

3、电流采样电路

本项目采用低侧电流采样电路进行电流检测,采样电路的低侧与开发板表头接口共地

image.png

 

5、数码管显示

本项目采用了数码管作为显示单元。

image.png

在本项目中使用了两颗0.28寸的三位共阴数码管作为显示器件,相较于显示屏,数码管在复杂环境中拥有更好的识别度,可以根据实际使用环境的需求,改为更小的限流电阻实现更高的数码管亮度;

在另一方面,数码管拥有较好的机械性能,不会像显示屏一样容易被外力损坏。在工业等有稳定可靠性应用中,多被采用。从开发版学习的角度来看,更易有目的的学习电子测量原理相关开发。

6、LED指示灯

LD_PWR为电源工作指示灯

image.png

7、用于电压测量校准的TL431电路设计

本项目额外增加了一个TL431电路用来提供一个2.5V的基准电压,可用于给芯片一个用于校准AD的外部电压基准,从产品设计角度来讲,由于CW32本身的ADC性能优势,可以不需要此电路。在开发板上设计此电路,用于学习相关应用原理。

image.png

 

定义5个工作模式,K1键用于切换显示模式。K2键设置对应模式下的参数值,并保存到FLASH。K3键返回到模式0。

模式0: 显示正常的电压电流值(上一排数码管显示电压值*.V或.*V自动切换,下一排显示电流值,_.**A)

模式1: 电压5V标定值设置。(可短接JP1使用内置电压源设置)上一排数码管显示5.05. 。下一排显示当前电压值_.V或._V。在该模式下,应将万用表测量被测位,调到5.00V。 按下K2键后,将当前值标定为5V电压值。

模式2: 电压15V标定值设置。(不能短接JP1)上一排数码管显示5.15. 。下一排显示当前电压值_.V或._V。在该模式下,应将万用表测量被测位,调到15.0V。 按下K2键后,将当前值标定为15V电压值。

模式3: 电流0.5A标定值设置。(可短接JP2使用内置电流源设置)上一排数码管显示A.0.5 。下一排显示当前电流值_.**A。按下K2键后,将当前值标定为0.5A电流值。

模式4: 电流1.5A标定值设置。(可短接JP2使用内置电流源设置)上一排数码管显示A.1.5 。下一排显示当前电流值*.**A。按下K2键后,将当前值标定为1.5A电流值。

8、系统时钟开启

void RCC_Configuration(void)
{
  /* 0. HSI使能并校准 */
  RCC_HSI_Enable(RCC_HSIOSC_DIV6);
 
  /* 1. 设置HCLK和PCLK的分频系数 */
  RCC_HCLKPRS_Config(RCC_HCLK_DIV1);
  RCC_PCLKPRS_Config(RCC_PCLK_DIV1);
  
  /* 2. 使能PLL,通过PLL倍频到64MHz */
  RCC_PLL_Enable(RCC_PLLSOURCE_HSI, 8000000, 6);     // HSI 默认输出频率8MHz
 // RCC_PLL_OUT();  //PC13脚输出PLL时钟
  
  ///< 当使用的时钟源HCLK大于24M,小于等于48MHz:设置FLASH 读等待周期为2 cycle
  ///< 当使用的时钟源HCLK大于48MHz:设置FLASH 读等待周期为3 cycle
  __RCC_FLASH_CLK_ENABLE();
  FLASH_SetLatency(FLASH_Latency_3);   
    
  /* 3. 时钟切换到PLL */
  RCC_SysClk_Switch(RCC_SYSCLKSRC_PLL);
  RCC_SystemCoreClockUpdate(48000000);
RCC_PCLKPRS_Config(RCC_PCLK_DIV8); //配置HCLK 到 PCLK的分频系数  6MHz
}

9、定时器配置

void Btim1_Init(void)
{
    BTIM_TimeBaseInitTypeDef BTIM_TimeBaseInitStruct;
    __RCC_BTIM_CLK_ENABLE();

    /* NVIC Configuration */
    NVIC_EnableIRQ(BTIM1_IRQn);

    BTIM_TimeBaseInitStruct.BTIM_Mode      = BTIM_Mode_TIMER;
    BTIM_TimeBaseInitStruct.BTIM_Period    = 6000 - 1;      // 1ms采集1次
    BTIM_TimeBaseInitStruct.BTIM_Prescaler = BTIM_PRS_DIV1; // 6MHZ
    BTIM_TimeBaseInitStruct.BTIM_OPMode    = BTIM_OPMode_Repetitive;

    BTIM_TimeBaseInit(CW_BTIM1, &BTIM_TimeBaseInitStruct);
    BTIM_ITConfig(CW_BTIM1, BTIM_IT_OV, ENABLE);
    BTIM_Cmd(CW_BTIM1, ENABLE);
}

注:由于未接上R0电阻,视频的电流显示不对

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
电压电流建模.zip
3
2
实验九+带有标定功能的数字电压电流表.rar
3
3
实验八+电压电流同时采集显示.rar
3
4
VID_20240821_192241_0_COMPRESSED.mp4
0
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航