首页 > 其他分享 >电压电流表设计文档

电压电流表设计文档

时间:2024-08-20 14:48:49浏览次数:10  
标签:供电 测量 CW32 ESP32S3 电流表 文档 电压 使用

摘要

本工程基于立创开发板的电压电流表训练营,在原项目基础上增加了1.8寸TFT屏幕,ESP32蓝牙芯片,USB接口,3.7V锂电池接口及其充电电流、SD卡接口,W25Q64芯片。

设想

alt text

设计概述

本工程基于立创CW32地文星开发板实现,需要能够实现0-3V,0-5V,0-10V,0-30V,0-3A的量程进行电压电流测量。同时使用1.8寸TFT屏幕进行数据显示,如果可以的话进行数据实时波形显示。能够使用3.7V锂电池供电,同时锂电池供电、USB供电、被测电源供电三种供电方式能够自由切换。能够使用蜂鸣器进行超量程报警,使用按键进行量程切换等功能,同时能够使用ESP32S3芯片进行数据无线上传。

系统组成及功能说明

系统组成大致如图1所示:

alt text
图1 系统组成

核心开发板:使用立创CW32地文星进行开发,主要实现ADC读取、数据处理、数据保存、屏幕显示处理功能。

测量电路:电压测量使用不同的电阻进行分压以测量,电流使用低侧电流采样进行电流采集。

测量方案:使用多路ADC引脚同时测量同一测量端口,通过程序切换使用最优量程。

测量端口:使用ADC引脚进行测量,通过USB转鳄鱼夹和2mm的香蕉插头实现外界测量端口。

通信模块:使用第二个串口与ESP32S3芯片进行通信。

调试端口:使用USB母头与CW32的串口1进行通信。

电源:3.7V锂电池使用AMS1117-3.3降压芯片获得3.3V电压给整个系统供电,USB接口使用SE8550芯片供电,被测电源与UBS接口共同使用SE8550芯片供电

显示:分两种方案,一种为使用7针OLED屏幕,使用SPI协议进行通信。另一种为使用1.8寸TFT屏幕,使用SPI协议进行通信。

额外存储:分两部分,一部分为SD卡,使用SPI协议进行通信,与显示部分挂载在同一SPI总线。另一部分为W25Q64SPIFlash,使用SPI协议进行通信,与显示部分挂载在同一SPI总线。

控制方案:使用4个6*6的轻触按键作为程序输入。

蜂鸣器:用于超量程报警,或者整花活。

LED:用于状态指示

理论成立,开始实现

alt text

原理图绘制以及器件选型

原理图由于所需的器件比较多,所以分了2P。1P为开发板及外部模块,如图2所示,包含MCU、电源输入、按键开关、LED指示灯、3.7V锂电池充电电路、3.7V转3.3V电路、电源选择电路、CH340N转USB电路、外设电路、ESP32及其外围电路、总电源开关电路。2P为测量及校准电路,如图3所示,包括0-3V测量接口、0-5V测量接口、0-10V测量接口、0-30V测量接口、0-3A测量接口、2mm香蕉座端口、USB测量端口、电流校准电路、TL431稳定2.5V电路、3.7V锂电池测量电路。

alt text
图2 开发板及外部模块原理图

alt text
图3 测量及校准原理图

软件设计

软件部分,我的设想是系统整体基于CW32官方提供的固件库去写,系统资源调控通过FreeRtos操作系统实现(https://github.com/FreeRTOS/FreeRTOS-LTS),界面通过uGUI实现(https://github.com/achimdoebler/UGUI),上位机部分使用python进行设计。设备与上位机直接通过蓝牙进行连接。文件系统使用FatFs15实现(http://elm-chan.org/fsw/ff/00index_e.html)。

实现中遇到的问题

然而,幻想是美好的,现实是残酷的。在进行软件编程和硬件调试的时候遇到了太多难以解决的问题,不过好在最基础的电压电流测量还是实现了。

alt text

设计问题

如图4所示,由于ESP32S3开机需要至少500mA的电流,而SE8550仅能输出250mA的电流,因此需要换个LDO才能支撑ESP32S3。好了,第一个问题出现了,能供应大电流的LDO不能承受过高的被测电压,能承受过高被测电压的LDO不能供应大电流。没办法,鱼和熊掌不能兼得,最终我放弃了被测电源供电,仅采用USB供电与3.7V锂电池供电,共用一块AMS1117-3.3V芯片为整个系统提供3.3V电压,供电方式通过开关选择。

alt text
图4 ESP32S3建议电源条件

硬件问题

芯片封装选择问题:如果上天能够给我一个再来一次的机会,我会对TL431那个芯片说,“我 ** 你 **,这他么SOT-23真是给人焊的的吗?”。

LayOut问题:给大家看下我的PCB走线,如图5所示:
alt text
图5 PCB走线

有眼尖的应该已经看到了,ESP32S3在PCB的右侧,而CW32在PCB的最左侧而他俩之间需要通过RX,TX两条线进行连接,这两条线上的数据可以说是跨越了千山万水,从CW32传输到ESP32S3,然后ESP32S3直接不认这个信号了。没错,就是直接不认这个信号了,但是如果飞从CW32飞一条线过去,ESP32S3就能接收到数据,我没有虚焊!没有虚焊!没有虚焊!用电流表检测两端是导通的 !就挺离谱,目前我的猜测是中间跨越的信号线有点多,导致RX,TX信号干扰严重。好了,蓝牙功能也寄了。

软件问题

软件问题有亿点点多。

首先是FreeRtos,CW32只有8K的RAM,8K啊,我从来没有打过这么穷的帐
text
在我移植完FreeRtos后,CW32甚至死机了,没错,我给FreeRtos分配的内存太大,导致死机了。后续更改了FreeRtos的configTOTAL_HEAP_SIZE为5*1024才能够正常开机,但是请看VCR图6:
alt text
图6 程序内存占用

这个工具名叫keil5_disp_size_bar,作者已在Gitee开源(https://gitee.com/nikolan/keil5_disp_size_bar)

然后问题又来了,使用的1.8寸屏幕分辨率为128*160,反映到程序里就是显示线程会占用极大的内存才能正常显示GUI。如图7所示:
alt text
图7 FreeRtos线程占用

然后FreeRtos内部就仅剩76*4byte的内存了,好了,还没能实验的FatFs15已经似了。

text

最终已实现功能

目前已经实现了0-3V,0-5V,0-10V,0-30V,0-3A的电压电流测量以及量程切换,同时测量数据能够在1.8寸TFT屏幕进行数据显示。

正面丑照:
alt text

开机运行:
alt text

电压测量
alt text

电流测量 看起来是电压,实际是电流,只是V忘了改成A
alt text

彩色丝印 由于这一版有BUG,所以只能重新打板了,55555555
alt text

后续

后续有机会的话会把其余的功能补全,希望能给个结营证书。

标签:供电,测量,CW32,ESP32S3,电流表,文档,电压,使用
From: https://www.cnblogs.com/tqht7h/p/18369428

相关文章

  • 【数据库干货汇总】2024年上半年墨天轮最受欢迎的40篇技术文章+文档
    作为数据库领域的专业社区,墨天轮社区上汇聚了众多优秀的技术专家与一线从业者,他们积极参与社区共建,通过文章、文档分享了自己的工作实践与学习经验。小编综合阅读量、点赞量、收藏数、下载数等指标,从2024年1月1日-6月30日众多的内容中筛选出20篇优质文章、20篇优质文档,涵盖Oracle......
  • Docker 入门文档阅读笔记
    Docker的架构图片来自Docker官网教程Docker采用CS架构,可以通过CLI和API与Dockerdaemon进行交互。DockerObjectsImages(镜像)Animageisaread-onlytemplatewithinstructionsforcreatingaDockercontainer.Often,animageisbasedonanotherima......
  • 文档版本控制:顶级工具软件盘点
    国内外主流的10款文档版本管理软件对比:1.PingCode;2.Worktile;3.Bazaar;4.语雀;5.AdobeAcrobat;6.Seismic;7.GoogleDocs;8.QT9QMS;9.石墨文档;10.飞书文档。在处理文档的日常工作中,版本管理常常成为一大挑战。错误的版本覆盖、找不到历史记录或是协作混乱——这些问题你是否也经常遇......
  • SQL中的索引知识点复习文档
    SQL中的索引知识点复习文档此文档是数据分析课程入门篇关于索引知识点的复习文档,本次课程目标是回顾索引的分类、特点及常用操作,此课程代码练习较少,主要为理论知识的快速复习复习时间:2024年8月18日文档总结:2024年8月18日学习时长:视频课程1小时+文档总结1小时课程环境......
  • SpringBoot文档之Profiles的阅读笔记
    ReferenceCoreFeaturesProfiles类似Maven的Profile特性,限定配置项取值的生效场景。在代码中,对于使用注解@Component、@Configuration、@ConfigurationProperties标记的类,可以增加@Profile,限定前述类的生效场景。类似如下样例代码,当启动时指定Profile为production时生......
  • helm3培训文档
    helm介绍1.传统服务部署到k8s集群的流程拉取代码——>打包编译——>构建镜像——>准备一堆相关部署的yaml文件(如:deployment、service、ingress等)——>kubectlapply部署到k8s集群2.传统方式部署引发的问题1).随着引用的增多,需要维护大量的yaml文件2).不能根据一套yaml文件来......
  • 黑马毕设分享《基于springboot4S店车辆管理系统》(源码+lw+部署文档+讲解等)
    文章目录1.前言黑马设计——专注大学生的项目实战开发,免费讲解,毕业答疑辅导黑马设计工作室简介:黑马设计是一家专注大学生的项目实战开发,免费讲解,毕业答疑辅导的工作室✅,创始人是硕士毕业于华南理工大学,工科专业,目前团队成员全职+兼职上百余人,运营线上店铺2家,与B站(IT实战,......
  • 黑马毕设分享《基于springboot就业信息管理系统》(源码+lw+部署文档+讲解等)
    文章目录1.前言黑马设计——专注大学生的项目实战开发,免费讲解,毕业答疑辅导黑马设计工作室简介:黑马设计是一家专注大学生的项目实战开发,免费讲解,毕业答疑辅导的工作室✅,创始人是硕士毕业于华南理工大学,工科专业,目前团队成员全职+兼职上百余人,运营线上店铺2家,与B站(IT实战,黑......
  • 黑马毕设分享《基于vue的地方美食分享网站》(源码+lw+部署文档+讲解等)
    文章目录1.前言黑马设计——专注大学生的项目实战开发,免费讲解,毕业答疑辅导黑马设计工作室简介:黑马设计是一家专注大学生的项目实战开发,免费讲解,毕业答疑辅导的工作室✅,创始人是硕士毕业于华南理工大学,工科专业,目前团队成员全职+兼职上百余人,运营线上店铺2家,与B站(IT实战,黑......
  • springboot基于微信小程序的4S店试驾平台(源码+文档+调试+讲解)
    收藏关注不迷路!!......