1、简单易用,可快速上手
2、流畅支持300个器件或1000个焊盘以下的设计规模
3、支持简单的电路仿真
4、面向学生、老师、创客
1、全新的交互和界面
2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计
3、更严谨的设计约束,更规范的流程
4、面向企业、更专业的用户
专业版 【星火计划】USB可编程电源/功率监测
简介:【星火计划】USB可编程电源/功耗监测,小程序控制, 支持USB PD3.0,BC1.2协议,支持5V~20V输入, 宽范围的输出电压,从2.7V ~ 20V可调,3A的带载能力
开源协议: GPL 3.0
(未经作者授权,禁止转载)
已参加:星火计划2024
——————————————————————————————————————————————————————————————
这几天有很多小伙伴在反馈:找不到V1.0的资料,下面是原V1.0的项目地址
USB可编程电源/功率监测仪-V1.0 - 嘉立创EDA开源硬件平台 (oshwhub.com)
本设计支持USB PD3.0,BC1.2协议, 可通过PD/BC1.2协议使支持PD/BC1.2协议的USB电源适配器输出5V,9V,12V,15V,20V
电源给系统供电;
宽范围的输出电压,从2.7V ~ 20V可调,3A的带载能力;
输入电压电流,输出电压电流实时监测,通过320X240的TFT屏或者上位机反馈给用户;
可通过一个多功能按键或者上位机对输出电压,输入电压进行调整;
(点击图片看大图)
上位机微信小程序
(点击图片看大图)
小程序上线了,可以扫描打开小程序:
——————————————————————————————————————————————————————————————
时经常会用到一些比如12V,3.3V,5V或者模拟电池电压变化的过程等的这些电压源,又不想花那个钱去买一台可调电源,心想“我
可不可以搞一台方便携带,小巧,不依赖特定的电压源,可以满足日常大部分需求的可调电源呢”;我首先想到的是,“我是不是
可以利用现有的电源适配器(USB 适配器),外挂一个DC to DC芯片,实现升降压是不是就可以实现了?”。
10V以上的输入电压源(这不是很鸡肋吗,我为了使用你这个电压源,我还得另外再搞个专用的适配器,这不符合我的设计需求);
要不就是电路复杂,整机做的比较大,不方便携带,不方便DIY;
——————————————————————————————————————————————————————————————
SPI,USB和IO控制等,未使用的IO口都有引出。
——————————————————————————————————————————————————————————————
(点击图片看大图)
(点击图片看大图)
(点击图片看大图)
在这里重点解释一下为何本设计选用了如图所示的输出接线端子座,其实目的就一个,方便,不依赖于特定的接线插头,随便身边一条普通
的线就可以使用;而且无需其他额外的工具就可以操作(有手就行)。
我在开源社区有看到一些类似的开源项目,使用的都是一些专用的插座,有一定的局限性,不符合便携方便的需求。
U10,U11两个接线端子接入DC电源。
(点击图片看大图)
(点击图片看大图)
PD协议芯片,完成BC1.2的协议交互;当不不需要协议信息交互时,可用做MCU的对外通信USB接口,另外MCU的固件
也是通过这个USB口下载的。
(点击图片看大图)
(点击图片看大图)
小电压变化的模拟信号,如电流检测,它的ADC是16位的,有一位是符号位,实际的数值表示位为15位,LSB:
是40uV,满量程为163.8mV;bus端输入可以用来测量分辨率要求不高的模拟信号,如系统输入/输出电压检测,
LSB:是8mV,满量程为32.76V。
本设计使用IN-1端检测VBUS端的输入电压,IN+1,IN-1检测VBUS的输入电流;IN-2端检测输出电压,NI+2,IN-2
检测输出电流;IN-3端为简易电压表的电压检测端。
(点击图片看大图)
为用电设备提供电源。输出电压和限流可通过I2C接口配置。
(点击图片看大图)
{BOOT1,BOOT0}=01 ,这样才能保证CODE从启动程序存储器启动;
(点击图片看大图)
BLE芯片可通过跳线冒与MCU的UART进行物理连接,通过UART口实现数据的交互;在下载BLE芯片固件时,需取消跳
线冒,如下USB0 DP,DM用于BLE芯片固件下载口或者在正常模式下时的UART TX、RX与MCU进行通信。
(点击图片看大图)
(点击图片看大图)
(点击图片看大图)
——————————————————————————————————————————————————————————————
(点击图片看大图)
电源适配器请求的允许最大受电电压;2. 是实时显示输入源的电压与电流信息
(点击图片看大图)
电流和功率信息
(点击图片看大图)
(点击图片看大图)
如下是本设计使用到的多功能按键,它有三个方向的自由度,分别是逆时针旋转,顺时针旋转和中间向下按下,
它们分别代表了3个不同的按键。本项目中把逆时针旋转定义为CCW,顺时针旋转定义为CW,
中间按键定义为中间键(CENTER)。
下表是本项目中使用到的按键事件
按键事件 | 描述 |
DOWN | 按键按下 |
UP | 按键抬起 |
SINGLE_CLICK | 单击 |
MULTI_CLICK
|
多击,如:双击,三击,四击等 |
LP | 长按 |
VLP | 长长按 |
VVLP | 超长按 |
HOLD | 按下不放 |
CW | 顺时针旋转 |
CCW | 逆时针旋转 |
按键功能描述
按键名称 |
前提条件 |
按键事件 |
触发功能 |
备注 |
CENTER |
开机状态 |
MULTI_CLICK=2 |
使能输出电压、输出限流的设定 |
当此功能触发后,对应可调节的选项会闪烁 |
CENTER |
输出电压/限定流设定使能 |
MULTI_CLICK=2 |
切换选定输出电压和电流 |
|
CENTER |
开机状态 |
MULTI_CLICK=3 |
循环设定PD协议/或者BC1.2协议的请求受电电压 |
5V->9V->12V->15V->20->5V...... |
CENTER |
开机状态 |
MULTI_CLICK=4 |
循环地打开/关闭电压和电流检测记录表功能 |
开机为打开状态,在打开状态,系统将实时采集最近250个点的电压和电流信息,并输出到LCD屏幕 |
CENTER |
开机状态 |
LP | 循环地打开/关闭电压表测量界面 |
|
CCW |
输出电压使能 |
逆时针旋转 |
减少输出电压 |
|
CCW | 限定电流设定使能 | 逆时针旋转 | 减少输出限流 | |
CW |
输出电压使能 |
顺时针旋转 |
增加输出电压 |
|
CW |
限定电流设定使能 |
顺时针旋转 |
增加输出限流 |
|
CENTER | 开机状态 | SINGLE_CLICK | 循环地打开/关闭电源输出 | |
CENTER | 开机状态 |
MULTI_CLICK=5 |
循环地打开/关闭小程序二维码 | |
——————————————————————————————————————————————————————————————
本项目使用的软件架构为本人自行开发,此软件架构的核心是所有的功能模块被独立分开,模块与模块之间以消息的方式进行
信息交互,各个模块维护各自的状态;本着以功能内聚大,以数据耦合为主,尽量不使用逻辑耦合,或者直接修改对方数据的方式。
如下是程序框架图,下面对部分模块进行简要说明,详细的大家可以看看源代码,如有不明白的地方欢迎大家留言讨论:
(点击图片看大图)
mcu_os:
核心是mcu_os部分,这部分实现了消息处理,任务调度,内存管理等功能,本项目中的usr_main_app、usr_input_task、
usr_display_task几个功能任务模块就是居于此基础之上进行消息传递,实现系统UI的各个功能需求。
usr_display_task:
负责接收来自usr_main_app发来的一些状态信息,在LCD屏幕上实现各种界面显示。
usr_main_app:
负责接收来自usr_input_task发出的用户输入事件,对用户输入事件进行响应,并把一些状态信息发送给usr_display_task
usr_input_task:
负责调用驱动层的io_key,读取io_key状态信息,生成按键事件并把按键事件发送给usr_main_app
主要API函数介绍:
——————————————————————————————————————————————————————————————
自行下载安装,也可以在代码仓库里的这个目录里找到我下载好的“docs\tools\ARTRY_ISP”,同时还需要安装USB DFU驱动
(Artery_DFU_DriverInstall.exe),通常在下载工具的目录里面有。
按下状态;BOOT0有一个接线端子,将两头短接到一起就可以,PCB板子上有丝印,下载程序过程中一定要保持短接状态,因为这端
子还有另外一个功能,就是切换USB接口到MCU这边。
一步直到图2,选择需要下载的固件,软后点击下一步完成关机下载;断电,恢复{BOOT1,BOOT0}=00/10;上电,这时设备应该
能正常跑起来了。
硬件设置
软件操作
(点击图片看大图)
1. 按如下方式接好USB线到板子,如果芯片是空片,这里就不需要杰里的强制升级的开发工具了,这里我们只需准备一条如下图的USB数据线就可以;
后面更新程序时就不用数据线了(因为本项目的源码是打开了OTA功能的),我们可以通过杰里的OTA升级小程序更新软件,(可以在微信端搜索
“杰里OTA”)。
点击图片看大图
接上USB线到电脑后,电脑端“设备管理器”中应该可以看到如下的USB设备
点击图片看大图
2. 用VS CODE打开SDK源代码,按如下图操作,编译并下载程序(如果你的VS CODE没有安装Task Explorer插件的话自己需按装一下)。
点击图片看大图
你最终应该会看到如下的提示信息,说明程序下载完成。
点击图片看大图
如果你电脑上没有安装VS CODE,也不关心源代码如何实现的话,你可以下载下面的附件“uart2ble_tools.7z”,解压后点击“download.bat”
批处理文件,也可以快速下载BLE的固件到蓝牙芯片内。
点击图片看大图
启动下载后一定要有如下的提示才算下载成功,
点击图片看大图
1. 如果需要OTA的话OTA文件在如下的目录里。
点击图片看大图
——————————————————————————————————————————————————————————————
1. 铜柱双通:M2*6 4颗
2. 铜柱单通:M2*11+3 4颗
3. 螺丝:M2*6 8颗
——————————————————————————————————————————————————————————————
注意!!
SC8721经过大部分小伙伴的多次验证,
这颗芯片很怕长时间的高温吹,如果长时间用风枪吹,很大概率会损坏!!
建议大家如果有铁板烧的,尽量用铁板烧焊接,测边的引脚如果没有焊接好的,尽量用烙铁补焊!!!
如果您觉得本项目不错,帮忙点个赞。
同时如果您觉得本项目有实用价值,也欢迎您点击收藏一下。
——————————————————————————————————————————————————————————————
https://gitee.com/Bryan_He/open_usb_power_supply.git
点击图片看大图
https://www.bilibili.com/video/BV1pT421273o/
——————————————————————————————————————————————————————————————
2024-1-3
起草,构思这个项目的需求;
1. 可以将USB电源适配器通过一个DC-DC可调升降压电源芯片转换后输出一个从1.0V~30V的可调DC电源
2. 支持PD3.0协议,当使用支持PD3.0的USB电源适配器时,可以通过协议沟通,使其输出5V,9V,12V,15V,20V的电压
2. 输入电压,电流的实时检测和显示
2. 输出电压,电流的实时检测和显示
3. 输出电流可设定,超过设定输出电流关断输出
4. 一个比较友好的人机交互界面
2024-1-5
根据项目需求,选择DC-DC升降压电源芯片和其他的一些外围器件,初步选定硬件方案:
1. DC-DC Buck-Boost: 南芯SC8721QFER,Vin:2.7 V to 22V;Vout:2.7 V to 22V
2. MCU:打算使用雅特力AT32F415KCU7
3. 电流检测:打算选TI的INA3221AIRGVR
4. LCD:待定
5. PD芯片:CH224K,4V 至 22V 输入电压,支持 PD3.0/2.0,BC1.2 快充协议
2024-1-10
完成原理图,完成部分元器件布局
2024-01-24 17:50:39
完成pcb所有布线,下单PCB和SMT,整理资料,申请PCB耗材免单
2024-01-31 19:39
等了几天,终于等到你了!!今天板子已经SMT贴好,寄到深圳,一回家就拆快递咯,下面展示一下贴好的板子,免单贴了2片,终于不用手贴了,
太爽了!!有两颗芯片由于立创商城没有,所有只能手焊了。
2024-02-01
今天将未贴的物料焊接上去了,准备上电,测量供电是否正常;可以上电后发现MCU和其他的IC的3.3V供电不正常,只有1.1V左右,哎真是折腾不止啊。。
经过排查后发现电源的RC滤波电路的电阻贴错物料了。
2024-02-02
完成in3221的驱动和输入/输出电压/电流的检测。开始调试SC8721的驱动,在调试过程中我反复控制CE引脚,很不幸的事情还是发生了,
一片板子的SC8721冒烟了,很不能解释,我并没有加任何负载,为何会这样呢?
看来年前就只能到这里了,明天就回老家了,这个问题只能年后处理,不知道是硬件问题还是软件控制逻辑问题。
2024-02-20
SC8721驱动完成,可实时调节输出电压。
2024-02-26 晚上23:38
完成部分LCD的显示,并且可实时刷新监测的电压电流。还不错!!
2024-02-28 晚上23:48
完成部分LCD的全部布局显示!
2024-03-01 晚
完成全部的LCD显示及数据检测刷新功能
2024-03-02 晚 21:47
撰写开发文档,为发布项目整理开源相关的文件
2024-03-10 早上 10:38
这几天在调试蓝牙部分,因之前没有使用过这颗蓝牙芯片,在调试过程中遇到了不少问题,在此记录分享一下:
1. 芯片的供电不能超过3.5V,不然芯片可能会损坏,在这里为啥会提这个呢,是因为本人在调试过程中芯片因为这供电坏了不少;这主要是杰里的
下载工具输出的供电是5V的。这里需要想办法避免;在下载时我是这样给芯片供电的,这样就可以避免烧坏芯片了。
点击图片看大图
2. 在第一次下载程序时需确保PA9口没有外部的下拉电路,如果有需暂时先断开。因为芯片默认这个口是有低电平持续4S后有复位芯片的功能,
影响下载程序。
点击图片看大图
3. 晶振的偏差不能太大,太大将导致无法搜索到蓝牙,这个问题困扰了我大部分的调试时间,因为程序运行一切正常,就是找不到蓝牙,后面
经过排查才发现是晶振的问题。
4. 这里有个小技巧与大家分享,就是杰里的大部分芯片,如果是空片,里面没有任何程序的时候,第一次下载程序是不需要使用任何工具的,只
需要一条普通的USB数据线就可以下载了!!后续如果需要更新程序的话可以使用OTA的方式(前提是程序内部需配置打开BLE OTA的功能),然后
微信端搜索“杰里OTA”就可以找到这个小程序,通过这个小程序进行OTA升级,非常方便,这点对于只是想玩玩,不愿意花钱买工具(80多RMB)
的朋友还是一个不错的方案。
2024-03-10 晚上 21:01
今天收到了亚克力板,第一时间组装了一台,还好这次很顺利,没有出现其他的意外,下面展示一下成果吧!嗯。。。瞬间档次就上来了。
点击图片看大图
2024-03-17 晚上
微信小程序的UI界面和蓝牙通信部分基本功能已经调通。
点击图片看大图
2024-03-23 早上
完成微信小程序的全部功能。
点击图片看大图
2024-03-31 晚上
2.0版本开始布局PCB器件
2024-04-01 晚上
2.0版本线路基本全部走通,再有一轮的优化走线和排版就可以发出去了。
2024-04-06 晚上
2.0版本PCB板发出制板,准备采购一些关键物料
2024-04-07
有很多小伙伴申请了小程序体验,但是体验版本的数量只有15个体验成员,为了不辜负大家的支持,我决定上线小程序。之前没有接触过小程序,
这几天查阅了相关资料“如何上线小程序”,今天提交了相关的备案资料等待审核,审核通过后会第一时间分享出来给大家,谢谢大家的支持!!
2024-04-14 晚
部分元器件焊接完,首次使用铁板烧,没经验,被烫伤了,小伙伴们在使用过程中得注意高温啊。
——————————————————————————————————————————————————————————————
——————————————————————————————————————————————————————————————
——————————————————————————————————————————————————————————————
加载中...
是否需要添加此工程到专辑?