GD32F103,ADC采样端口对电压的影响问题,未解决!!!(已解决!!!)

2023-10-29

  1. 设计采集卡,使用了ADC1、ADC2、ADC3,发现ADC采样的通道电压不对,模拟量输入端未0V,输出采用LM358跟随,在ADC采集过程中,发现LM358的输出电压并不为0V,而是为0.2V。
  2. 开始以为线路短路或是LM358的问题。后来停止采集(此时ADC1通道切换了),发现LM358的输出为0V,如果停在此采样通道(调试),发现电压还在缓慢上升,判定LM358没有问题,是GD32模拟采集的问题。
  3. 使用显微镜,发现引脚并没有短路的情况,继续查找原因。通过单步调试发现,在ADC初始化过程中,在使端口变成模拟量(PA-PA7)的时候,输入采样端口的电压会变化,而且变化的一定是ADC1所在通道(此时ADC并没有初始化,当然其默认通道为0通道,测试的是PA0引脚电压),此时PA0电压为0.6V左右,此时LM358的输入为0V,其输出理论也为0V(当然xmV电压忽略)。
  4. 初始化ADC123,此时PA0电压还是为0.6V左右,切换ADC1采样通道到PA1(CH1),此时PA0上的电压变为0.2V左右,切换ADC3通道为7通道(PA7),PA0电压还是为0.2V。
  5. ADC1通道切换到PA6通道,发现PA0通道变为0V(10mV以内),PA6通道电压为0V(10mV以内)。
  6. 问题还未解决,有知道的小伙伴告知一声。.

问题发现及解决:

  1. 使用了另一款板,焊接的同一批次GD32,问题依旧。发出去的那么多东西改怎么办!
  2. 我做了很多通道的ADC采集,大约30个通道的数据,用了芯片的8路ADC输入接口。电路设计上,凡是不接传感器的输出都是0V,唯独有2路位移信号(3.3V供电)做了开路通过LM358 跟随后给GD的ADC采集。没有下拉,在没有接传暗器的时候,LM358输出的电压会很高,LM358供电电压为5V,其最大输出不会超过3.6V,芯片引脚FT。我想着没事。
  3. 在测试过程中,我发现把位移传感器连接上后,发现其他通道数据正常了,想着有没有可能是LM358输出电压过高导致GD32模拟开关漏电流增加了(GD32的IO为3.3V供电,超过了电压,FT虽然可以保护,但是其漏电流变大),于是果断在传感器接口处下拉了1Mohm的电阻(没有找到10M的),问题没有出现了。
  4. 为什么STM32没有出现此问题,待会我还会继续测试,有一个可能是其IO设计较GD耐压高一些,图1是STM32中的数据手册说明的IO输入电压,由图3可以看出,STM32的ADC实际上输入的模拟电压可以到3.9V(3.3V供电,参考3.3V)。图4为GD32的IO参数特性,图5为GD32的ADC参数,手册内并没有ADC结构的说明。图1 通用IO图1 通用IO
    图2 STM32ADC参数图2 STM32ADC参数

图3 STM32ADC输入引脚图图3 STM32ADC输入引脚图

在这里插入图片描述
图4 GD32F103的输入输出电压

在这里插入图片描述图5 GD32F103 ADC参数

从用户手册可以看出,STM32的模拟配置结构图如图6所示,GD32的模拟配置的结构图如图7所示。从这些资料分析,估计STM32 针对模拟输入一样的做了保护,其中二极管导通电压为0.6V左右,这样如果我的输入不超过3.9V,对模拟开关应该没有运行。而按照图示,GD32如果模拟量超过了3.3V,他将运行模拟开关,这将导致如果在ADC1模拟开关内,有一个通道的电压超过了3.3V,超过的电压产生的电流将通过模拟开关流入到采样的IO中,这样的电流有点大(如果跟随输出的信号到GD之间没有电阻的话,中间几乎没有负载),这也将导致前面的问题,使得被采样的端口电压抬升,(可以想象,LM358跟随的电流足够大了,这个都被影响了,幸好我连接了10R电阻)。

此为个人猜想观点。
在这里插入图片描述图6 STM32 ADC输入用户手册给出的结构图
在这里插入图片描述图7 GD32 ADC模拟量时用户手册给出的结构图

5

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GD32F103,ADC采样端口对电压的影响问题,未解决!!!(已解决!!!) 的相关文章

  • STM32在Debug时程序运行时间不对,Debug时定时器中断每次进入断点时间不对,定时器一开启就进入中断的解决办法

    一 Debug时程序时间不对解决办法 1 点击魔术棒 2 点击Debug 点击Settings 3 点击Trace 在Core Clock里修改为你的系统时钟 二 Debug时定时器中断每次进入断点时间不对 在Debug时 程序停下来 定时
  • c项目makefile多重定义错误

    这个问题是一个对应于创建的repexthis问题 在我的嵌入式 C 项目中 我有两个独立的板 我想为每个板创建两个 c 文件 master c 和 Slave c 其中包含自己的特定main 功能 我使用 stm32cumbemx 生成带有
  • 在没有 IDE 的情况下如何使用 CMSIS?

    我正在使用 STM32F103C8T6 并想使用 CMSIS 这本质上只是寄存器定义 没有代码 让我的生活更轻松 同时仍保持在较低水平 问题是我不知道如何安装该库以便在命令行上使用 Makefile 使用 所有文档似乎都与特定于供应商的 I
  • 以字符串形式接收数字(uart)

    我正在尝试通过 uart 接收一个包装为字符串的数字 我发送数字 1000 所以我得到 4 个字节 空字符 但是 当我使用 atoi 将数组转换为数字并将整数与 1000 进行比较时 我并不总是得到正确的数字 这是我用于接收号码的中断处理函
  • 如何让printf在STM32F103上工作?

    我是 STM32F103 世界的新手 我有一个STM32F103的演示代码 我正在使用arm none eabi来编译它 我尝试了在谷歌上可以找到的内容 但到目前为止没有任何效果 我已经花了三天时间来解决这个问题 任何人都可以给我一个运行良
  • STM32 F072上的软件如何跳转到bootloader(DFU模式)?

    STM32应用笔记2606对此进行了讨论 但没有简单的代码示例 该答案已使用 IAR EWARM 在 STM32F072 Nucleo 板上进行了测试 这个答案使用 STM32标准外设库 仅此而已 请注意 验证您是否成功进入引导加载程序模式
  • 139-基于stm32单片机老人居家监护报警系统Proteus仿真+源程序

    资料编号 139 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 MQ4传感器 电位器模拟 MQ2传感器 电位器模拟 蜂鸣器 电机 制作一个基于stm32单片机老人居家监护报警系统Proteus仿真 2 通过MQ2传
  • STM32用一个定时器执行多任务写法

    文章目录 main c include stm32f4xx h uint32 t Power check times 电量检测周期 uint32 t RFID Init Check times RFID检测周期 int main Timer
  • STM32超声波——HC_SR04

    文章目录 一 超声波图片 二 时序图 三 超声波流程 四 单位换算 五 取余计算 六 换算距离 七 超声波代码 一 超声波图片 测量距离 2cm 400cm 二 时序图 1 以下时序图要先提供一个至少10us的脉冲触发信号 告诉单片机我准备
  • 毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

    基于STM32的智能温室控制蓝牙声光报警APP系统设计 1 项目简介 1 1 系统构成 1 2 系统功能 2 部分电路设计 2 1 stm32f103c8t6单片机最小系统电路设计 2 2 LCD1602液晶显示电路设计 2 2 风
  • VS Code 有没有办法导入 Makefile 项目?

    正如标题所说 我可以从现有的 Makefile 自动填充 c cpp properties json 吗 Edit 对于其他尝试导入 makefile 的人 我找到了一组脚本 它们完全可以实现我想要实现的目标 即通过 VS Code 管理
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • 无法使用 OpenOCD 找到脚本文件

    我正在尝试按照本教程将 OpenOCD 与我的 ST 发现板一起使用 https japaric github io discovery README html https japaric github io discovery READM
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧 说起来很简单 就是几行代码的事 但楞是折腾了我大半天时间才搞定 原因后面说 先看代码吧 读操作 读操作很简单 以32位方式读取的时候是这样的 data IO uint32 t 0x0800F000 需要注意的是 当以32位方式读
  • 特殊寄存器

    特殊寄存器 文章目录 前言 一 背景 二 2 1 2 2 总结 前言 前期疑问 STM32特殊寄存器到底是什么 特殊寄存器怎么查看和调试代码 本文目标 记录和理解特殊寄存器 一 背景 最近在看ucosIII文章是 里面提到特殊寄存器 这就进
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • 通过JTAG恢复STM32 MCU磨掉的标记

    我有一块可能带有 STM32 MCU 的板 我想为该板制作定制固件 因为库存板有很多问题 不幸的是 电路板制造商很友善地磨掉了所有标记 有没有办法通过 jtag 获取设备 系列 ID 并将其交叉引用到型号 我能找到的一切都是关于获取芯片的唯
  • STM32内部时钟

    我对 STM32F7 设备 意法半导体的 Cortex M7 微控制器 上的时钟系统感到困惑 参考手册没有充分阐明这些时钟之间的差异 SYSCLK HCLK FCLK 参考手册中阅读章节 gt RCC 为 Cortex 系统定时器 SysT
  • 当端点和 PMA 地址均更改时,CubeMX 生成的 USB HID 设备发送错误数据

    我正在调试我正在创建的复合设备的问题 并在新生成的仅 CubeMX 代码中重新创建了该问题 以使其更容易解决 我添加了少量代码main 让我发送 USB HID 鼠标点击 并在按下蓝色按钮时使 LED 闪烁 uint8 t click re
  • STM32 传输结束时,循环 DMA 外设到存储器的行为如何?

    我想问一下 在以下情况下 STM32 中的 DMA SPI rx 会如何表现 我有一个指定的 例如 96 字节数组 名为 A 用于存储从 SPI 接收到的数据 我打开循环 SPI DMA 它对每个字节进行操作 配置为 96 字节 是否有可能

随机推荐

  • Ubuntu中火狐浏览器Firefox打不开网页

    浏览器地址栏输入 about config 搜索 general useragent override 无则新建 输入字符串 Mozilla 5 0 X11 Linux x86 64 AppleWebKit 537 36 KHTML lik
  • 2021-09-02防火墙和CDN、Ajax跨域

    欢迎大家一起来Hacking水友攻防实验室学习 渗透测试 代码审计 免杀逆向 实战分享 靶场靶机 求关注 CDN 内容分发网络 Content Delivery Network 简称CDN 是建立并覆盖在承载网之上 由分布在不同区域的边缘节
  • 如何查看mac系统是32位还是64位的操作系统

    一 点击工具栏左上角点击 苹果Logo 标志 关于本机 gt 更多信息 gt 系统报告 gt 左侧栏中 软件 二 打开终端 输入命令 uname a 回车 x86 64 表示系统为64位 i686 表示系统32位的 比如我的 三 在终端输入
  • js实现模糊搜索

    功能一 关键字搜索 总结 1 搜索出的结果 前台先要清空原有表格 tbody empty 2 后台返回的json格式字符串 js eval 专成对象var stus eval msg 在循环进行字符串拼接到表格上 tbody html st
  • Ubuntu上vsftpd安装与多用户目录配置

    vsftpd安装与多用户目录配置 文章配置使用Ubuntu进行配置 CentOS系统的配置也是大同小异 主要理解虚拟用户的加载方式和权限目录的配置 配置目标 在 home vsftpd 目录下有3个子目录分别为folder1 folder2
  • 二叉搜索树的建立和排序

    二叉搜索树的建立和排序 今天面了一家自研 有一道二叉搜索树的题目 但是自己做的不好 就是有几个学生和成绩 使用树来存储 左子树大于等于root 右节点小于root package org example public class Main
  • 《Apache MINA 2.0 用户指南》第二章:基础知识

    最近准备将Apache MINA 2 0 用户指南英文文档翻译给大家 但是我偶然一次百度 发现 Defonds 这位大牛已经翻译大部分文档 原文链接 http mina apache org mina project userguide c
  • LAN9252芯片控制资料

    一 整个ethercat项目开发流程 通过STM32相关学习板 理解EtherCAT协议栈和通信步骤 根据项目需求构建XML 该XML将会由TwinCAT2解析 将相关特STM32程序烧写 修改应用层协议的程序 STM32作为SPI主模式与
  • Faiss流程与原理分析

    1 Faiss简介 Faiss是Facebook AI团队开源的针对聚类和相似性搜索库 为稠密向量提供高效相似度搜索和聚类 支持十亿级别向量的搜索 是目前最为成熟的近似近邻搜索库 它包含多种搜索任意大小向量集 备注 向量集大小由RAM内存决
  • 华为机试题--坐标移动

    题目描述 开发一个坐标计算工具 A表示向左移动 D表示向右移动 W表示向上移动 S表示向下移动 从 0 0 点开始移动 从输入字符串里面读取一些坐标 并将最终输入结果输出到输出文件里面 输入 合法坐标为A 或者D或者W或者S 数字 两位以内
  • 机器学习——从0开始构建自己的GAN网络

    目录 一 前言 二 生成式对抗网络GAN 三 GAN的训练思路 四 数据集 Chinese MNIST 五 代码 python 1 文件展示 2 代码 一 数据预处理 3 代码 二 生成器的构建 4 代码 三 判别器的构建 5 代码 四 图
  • Python 模块手动制作发布压缩包_安装

    1 创建setup py from distutils core import setup setup name my msg version 1 0 description 发送信息和接受信息 long description hlx 完
  • 【CubeMX配置STM32驱动MPU6050】

    CubeMX配置STM32驱动MPU6050 包含DMP 并且在0 96寸OLED上显示 一 使用CubeMX进行相关配置 1 配置OLED的IIC接口 OLED的具体使用方法我就不细说了 我前面的文章里面有讲OLED的 如果有需要可以去看
  • Sql server 期末知识点复习

    数据库基础概念 提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 数据库复习知识 数据库基本概念 一 第一章概念知识复习 二 数据库创建 数据库及数据库对象 数据库基本概念 一 第一章概念知识复习 1 数据库 数据库 DB
  • 旋转的加载动画 css3,CSS3 Loaders

    css webkit keyframes rotate 0 webkit transform rotate 0deg transform rotate 0deg 50 webkit transform rotate 180deg trans
  • Java学习:使用MyBatis Plus的分页插件和QueryWrapper结合自定义mapper xml实现多表关联查询

    Vo 用来返回给前端展示列表的数据实体 Data public class CourseVo implements Serializable private static final long serialVersionUID 1L pri
  • 双目视觉原理(万字总结,包含Halcon代码)

    双目视觉原理 1 双目视觉的视差与深度 1 1 总览 2 视差原理 2 双目相机的坐标系 2 1 针孔相机的模型 2 2 四大坐标系 1 像素坐标系 单位 像素 pixel 2 图像坐标系 单位 mm 3 相机坐标系 单位 mm 4 世界坐
  • NUC980开源项目35-系统自动挂载驱动

    上面是我的微信和QQ群 欢迎新朋友的加入 在上一节的基础上 创建makefile和kconfig makefile LED Core obj CONFIG RUNLED runled o obj CONFIG CANLED canled o
  • 解决The valid characters are defined in RFC 7230 and RFC 3986

    解决方法 一 更换低版本的Tomcat 我选的方案 二 参考 https blog csdn net qq 32365919 article details 82055800
  • GD32F103,ADC采样端口对电压的影响问题,未解决!!!(已解决!!!)

    设计采集卡 使用了ADC1 ADC2 ADC3 发现ADC采样的通道电压不对 模拟量输入端未0V 输出采用LM358跟随 在ADC采集过程中 发现LM358的输出电压并不为0V 而是为0 2V 开始以为线路短路或是LM358的问题 后来停止