实验干货|电流型霍尔传感器采样设计01-I/V转换

在做逆变器实验时,需要测量逆变器输出电压以及电流。作为初学者,因为缺乏经验也踩过不少坑,写一篇博客记录下来希望能帮到跟我一样的初学者。

踩坑回顾

用什么采样?片内ADC还是片外ADC?

早前,在用RTLAB做硬件在环实验时,RTLAB的模拟量输出为±16V,由于DSP的片内ADC采样只能0-3V,所以当时直接选择了片外的ADC,用的是AD7606。最近做实物实验,换成了片内的ADC进行采样,改成了霍尔采样,需要将霍尔输出信号经过调理得到0~3V。

选择什么样的传感器?

最早选用的是单电源供电的电压和电流霍尔,输出的也是单极性的电压信号。市面上类似型号的霍尔传感器并不多,当时觉得这样的霍尔传感器比较省事,且不需要调理。但是最终测试下来,采样结果含有比较大的噪声。怀疑存在的问题可能有:① 霍尔本身的质量比较差;②没有加调理电路。③霍尔输出的是电压信号,在传输过程中容易引入干扰,可以换成输出电流信号的。

最后呢,选择了南京茶花(南京奇霍)的霍尔传感器,双电源供电,输出电流信号,然后经过调理电路将电流信号调理成输出0-3V的电压信号,经过ADC采样。

这篇博客主要记录如何设计调理电路。

调理电路的组成

电流/电压转换

该部分主要将霍尔输出的电流信号转换成电压信号,便于后面的滤波与调理。

B站有视频可以看

无源IV转换和有源IV转换电路实现电流的测量icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1cv4y1t7RT?buvid=XU733487B6875AA263748933BEC30256FBF27&from_spmid=default-value&is_story_h5=false&mid=SHcXIwezZUUa3wLP86O4pQ%3D%3D&plat_id=114&share_from=ugc&share_medium=android&share_plat=android&share_session_id=731222db-eb39-4500-87b3-1d9ed3e7aa64&share_source=WEIXIN&share_tag=s_i&spmid=united.player-video-detail.0.0×tamp=1728747804&unique_k=GjIEVRC&up_id=549102014&vd_source=328ccf4cb335eb0a8ee1dd38573bbca9CSDN有博客进行了介绍(好啊,博主给别的博主引流)

IV转换电路 IV放大 跨阻放大器 光电信号放大器 原理图及PCB设计分析-CSDN博客文章浏览阅读5.9w次,点赞87次,收藏623次。IV转换电路 IV放大 跨阻放大器 光电信号放大器 原理图及PCB设计分析目录IV转换电路 IV放大 跨阻放大器 光电信号放大器 原理图及PCB设计分析基本原理芯片选型原理图&3D-PCB具体讲解模块原理图-PDF、原理图库、PCB库下载基本原理I-V转换最简单的方式就是串一个电阻,如图a,一般大电流的时候使用采样电阻R即可实现IV转换,再加上运放放大或者射随就可以ADC模块直接采集..._iv转换电路https://blog.csdn.net/kvdz_taobao_com/article/details/103509473可以看到,常见的方案有两种:(1) 直接串接电阻转换成电压;(2)运放搭建跨阻放大器(TIA)。

浅问一手GPT,两者的优缺点。

当初设计的时候,我也是觉得有源的方案(TIA)好像是比无源的方案(直接串联电阻)要更好一些。但是回过头来想,似乎并没有明显的优势,且由于我经验不足,踩进了深坑。

TIA方案的注意事项

(1) 运放需要双电源供电

交流电流乘以采样电阻得到的电压是双极性的。

(2)运放工作电压需要不小于转换得到的电压

例如:霍尔传感最大输出±35mA的电流,经过330Ω的采样电阻,对应的电压为±11.55V,那么运放的工作电压建议为±15V。

(3)运放的Sink和Source能力需要满足霍尔输出电流的要求

特别注意!这是我踩过的坑。下图绿色电压即为TIA输出电压波形。可以看出,正半周的电流被保护了,超过限值之后,输出电流被箝位。

选用的运放是TI的OPA2188,Short-circuit current只有±18mA,而选用的霍尔输出电流可以达到±35mA,不满足需求。

至于为什么只有正半周出现缺口波形,解释如下:下图所示为OPA2188的Souce和Sink电流能力曲线。

从上图可以看出,室温环境下Sink能力不如Source能力,所以会出现Sink先保护,当霍尔输出的电流进一步增加时,Source能力也会不满足需求。为此换了TI的OPA2197,从数据手册可以看出,Short-circuit current达到±65mA。

更换运放后,得到TIA输出电压波形如下图所示

从上图可以看出,TIA的输出电压不再出现缺口,满足需求。

Multisim仿真验证

TIA电路如下图所示,注意运放改成了OPA2197,采样电阻为330Ω,仿真电路如下图所示

下图所示为输入电流和输出电压波形,从图中可以看出,输出电压和输出电流反相,35mA的电流输入对应-11.55V的输出电压。

低通滤波

后续更新哦~

直流偏置与比例缩小

后续更新哦~

### 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、付费专栏及课程。

余额充值