实验干货|电流型霍尔传感器采样设计03-信号调理

在前两篇博客中,将霍尔输出的电流信号转换成了有正有负的电压信号,但是DSP需要采集0~3V的电压信号,因此需要对信号缩放并抬升至全部为正的信号。

常见的方法是,通过比例放大(缩小)电路对信号进行放缩,通过加法电路抬升基准电平。这里分为两步,首先设计基准电平。

设计基准电平

DSP的ADC能够采集的电压范围是0~3V,为了合理使用ADC的采样范围,选择基准电平为1.5V。常见的方法有通过运放产生一个基准电压或者通过电压基准芯片产生基准电压。

本篇博客选用TL432作为可调基准电压源,需要特别注意的是,不同的芯片厂家虽然都称为TL432,但是产生的基准电压并不一致。例如下图的UMW公司和ST公司的TL432分别产生的电压参考是1.25V和2.5V。在选型时需要格外注意。

电压基准电路的设计原理比较简单,参考电阻分压原理设计即可。下图所示为UMW对应的测试电路。VKA即为期望的输出电压。

本篇博客中期望设置为1.5V,R1和R2即为分压电压,Vref的电压为固定1.25V,因此为了产生1.5V的输出电压,(R1+R2)/R2=1.5/1.25,即R1/R2=0.2。芯片手册中提到Iref的典型值为1.5uA,所以在计算中忽略了Iref。

当计算完R1/R2之比后,则可以在常见的1%阻值表中选取电阻。我选取的是20k和4.02k。验算输出的基准电压为VKA=1.25*(20k+4.02k)/20k=1.50125V。(实际上我测试出来的只有1.485V左右,具体原因未知,可能是因为买到的电阻精度有些问题,但是基本与理论一致,不影响后续的使用)

注意事项!

① 注意不同厂家的TL432虽然名称和封装相同,但是基准电压不相同。

②注意Cathode Current,最大不超过100mA,最小不低于0.1mA,推荐10mA。因此需要在输入和输出之间串联电阻进行限流,同时还要注意限流电阻的功率。例如设计输入电压为15V,输出电压为1.5V,则限流电阻的阻值至少为(15-1.5)/10e-3=1.35k,可以选择两个2.7k的电阻并联

同相加法器设计

在完成了基准电压设计后,需要设计加法电路,将正负的输入电压抬升至仅含有正电压。

首先,同相加法器的输入信号有两个,分别是①有正有负的采样电压(前两篇博客提到的±11.55V);②基准电压1.5V。需要通过设计使得±11.55V转换至0.1~2.9V(这里为了不让ADC引脚输入的电压饱和,留0.1V的裕量)

站内有关于常见运放电路的介绍,大家可以参考。

九种运放电路(同向放大,反向放大,同向加法,反向加法,减法,积分,微分,差分,跟随器)-CSDN博客

同相加法器如下图所示

重点是配置R1、R2、R3和R4。其中常见的作法是令R1//R2 = R3//R4,便于计算比例系数。在此基础上,令R1/R2=k,则可以计算出输出电压

提供一个用MATLAB写的代码,便于计算出电阻之间的关系,方便配置电阻。通过调整k的值即可在代码的最后观察到输出电压是否在设计的范围内

%% 采样电路35mA对应 35mA*330ohm=±11.55V
V11 = 11.55;
V12 = -11.55;

%% 同相加法电路 不同输入信号的输入电阻之比
k = 8.2

a = 1
b = k*a
%% 直流偏置 (基准)TL432基准是1.25  1.25/(20e3)*(20e3+4.02e3)
V2 = 1.25/(20e3)*(20e3+4.02e3)

R1 = b
R2 = a

%% 同相放大系数 k2  与输入端 输入电阻相等
k2 = (k+1)/k
Rtotal = R1+R2
%% 加法器输出电压
Vo1 = k2*(V11*(R2/Rtotal)+V2*(R1/Rtotal))
Vo2 = k2*(V12*(R2/Rtotal)+V2*(R1/Rtotal))

上面的代码运行结果如下

k=8.2时,输入+11.55V对应的输出电压为2.9098V,输入-11.55V对应的输出电压为0.0927V。满足设计要求。R1和R2可以分别选择为8.2k和1k的电阻。

这里的代码没有设计成根据要求直接计算出k是因为我们要根据常见阻值去配置这个系数k,也许能够计算出最符合要求的k,但是找不到对应的电阻,这样反而将选择电阻变得更加麻烦。通过上面的代码进行试凑也不困难,嘻嘻~

Multisim仿真验证

下图所示为根据上面的设计得到的结果

从图中可以看出,经过调理,+35mA的电流输入对应输出电压为0.086V,-35mA的电流输入对应书输出电压为2.904V,与设计的基本一致。

以上便完成了电流型霍尔传感器调理电路的全部设计了,不足之处请指正,希望对你有所帮助,我是ManTou!

### STM32开发板连接闭环霍尔电压传感器实现电压采集 #### 连接硬件电路 要使用STM32开发板与闭环霍尔电压传感器进行电压采集,首先需确保两者之间的正确电气连接。通常情况下,闭环霍尔电压传感器会提供一组差分输出信号以及供电端子。对于STM32而言,应将这些信号适配到相应的GPIO引脚上,并注意匹配电平标准[^3]。 - **电源供应**:确认给定的霍尔传感器工作电压范围(如±15V),并据此选择合适的稳压源为设备供电; - **信号接入**:把来自传感器的正负极输出分别接到MCU支持高阻抗输入特性的模拟通道上;如果存在共模干扰,则考虑加入RC滤波网络改善信噪比性能; - **接地处理**:保证良好公共参考点的一致性,即让所有涉及测量部分共享同一地平面以减少误差来源。 #### 软件编程准备 完成物理层面上的准备工作之后,在软件方面需要借助于官方提供的集成开发环境——STM32CubeIDE来进行程序编写和调试操作[^2]。具体来说: - 添加必要的外设库文件,比如用于管理ADC转换过程的标准函数集; - 编写初始化代码片段,配置所选通道的工作模式及时钟分配策略等细节事项。 ```c // 初始化 ADC 模块 void MX_ADC_Init(void){ __HAL_RCC_ADC_CLK_ENABLE(); // 开启 ADC 时钟 hadc.Instance = ADC1; hadc.Init.ScanConvMode = DISABLE; // 单次转换模式 hadc.Init.ContinuousConvMode = ENABLE; // 连续转换模式开启 hadc.Init.DiscontinuousConvMode = DISABLE; hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc.Init.NbrOfConversion = 1; HAL_ADC_Init(&hadc); } ``` #### 实现数据读取逻辑 当一切就绪后就可以着手构建核心算法了。考虑到实时性和精度的要求,建议采用DMA方式自动搬运采样得到的结果值回内存缓冲区等待后续分析计算。下面给出一段简单的例子展示如何启动一次完整的AD变换流程并获取最终数值[^5]。 ```c uint32_t adc_value; if (HAL_OK == HAL_ADC_Start_DMA(&hadc, &adc_value, 1)){ while (__HAL_DMA_GET_FLAG(DMA1_Stream0,DMA_FLAG_TCIF0)== RESET); // 等待 DMA 传输完成标志位置位 printf("The voltage is %lu mV\n", ((float)adc_value / 4096 * VREF)); // 假设满量程对应3.3V } else { Error_Handler(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值