发作品签到
标准版

ATtiny85 充电保护器

工程标签

4.4k
0
0
3

简介

国外开源平台搬运工程:ATtiny85 充电保护器,SB Phone Charge Guard 控制和监控手机和其他设备的充电,以延长电池寿命。

简介:国外开源平台搬运工程:ATtiny85 充电保护器,SB Phone Charge Guard 控制和监控手机和其他设备的充电,以延长电池寿命。

开源协议

CC-BY-SA 3.0

创建时间:2021-01-06 07:26:41更新时间:2022-06-17 07:29:08

描述

开源协议

本作品已根据知识共享署名-相同方式共享 3.0 未移植许可证获得许可。( http://creativecommons.org/licenses/by-sa/3.0/ )

简介

ATtiny45/85 USB Phone Charge Guard 控制和监控电话和其他设备的充电。通过 INA219 不断测量电压、电流、功率和能量,并与用户限制值进行比较。当达到用户选择的条件时,它会通过 MOSFET 切断电源。这样可以控制手机锂离子电池的充电状态,从而延长其使用寿命。用户设置保存在 EEPROM 中。


作者: Stefan Wagner

原工程链接:https://oshwlab.com/wagiminator/attiny85-phone-charge-guard

项目视频(YouTube): https://youtu.be/9DHBoqHImcM

固件(Github): https://github.com/wagiminator/ATtiny85-PhoneChargeGuard


电路说明


USB

该设备配备了一个USB-A插头为输入和一个USB-A插座为输出,以便它可以插入电源和手机(或其他消费者)之间。D+ 和 D- 通过,以便手机可以协商充电协议。


电压和电流测量

一个INA219用于测量电压和电流。INA219 是一款具有 I²C 兼容接口的电流分流器和功率监视器。该器件通过可编程转换时间和滤波来监控分流压降和总线电源电压。可编程校准值与内部乘法器相结合,能够以安培为单位直接读取电流。选定的 8 毫欧分流电阻既能对电路产生非常小的影响,又能以 1 毫安的分辨率进行测量。为了精确测量,应选择具有低容差(1% 或更好)的分流电阻器


稳压

该器件通过HT7333 LDO 稳压器提供 3.3V电压,该稳压器从 USB 总线电源中抽取高达 12V 的输入电压。


MOSFET

电源和电话之间的连接通过AS3621 P 沟道 MOSFET开启和关闭。尽管体积小,但它可以连续切换到 30V 和 6A。其内部导通电阻仅为 20 毫欧左右。


操作界面

用户界面使用五个按钮和一个128x64 像素的 OLED 显示屏。一个ATtiny45 / 85微控制器手柄上的用户界面,所述测量值的电源连接和的计算和显示的控制。


image

image


软件说明

说明


INA219 连续测量电流和电压,并通过 I²C 将值传输到 ATtiny。由此,ATtiny 计算其他值并将它们显示在 OLED 屏幕上。它根据用户选择的设置通过 MOSFET 控制电源和电话之间的连接。用户设置保存在 EEPROM 中,下次使用时会自动加载。


I²C OLED 实现

I²C 协议实现基于一种粗略的 bitbanging 方法。它是专门为 ATtiny10 和 ATtiny13 的有限资源而设计的,但它也适用于其他一些 AVR(包括 ATtiny45/85)。OLED 的功能适用于 SSD1306 OLED 模块,但可以轻松修改以用于其他模块。为了节省资源,仅实现了此应用程序所需的基本功能。有关 I²C OLED 实现工作原理的详细信息,请访问TinyOLEDdemo


时间和容量确定的准确性

ATtiny 的内部振荡器用于确定能量和容量。出厂校准时,内部振荡器的精度为 +/-10%。这可以通过手动校准提高到 +/-2% 或更好。通过这种方式确定的校准值可以在源代码中设置。


编译和上传

由于板上没有 ICSP 接头,您必须在使用SOP适配器,在焊接之前或使用EEPROM烧录夹子焊接之后对 ATtiny 进行编程。该AVR编程适配器可以在这方面帮助。


如果使用 Arduino IDE

  • 确保您已安装ATtinyCore
  • 转到Tools -> Board -> ATtinyCore并选择ATtiny25/45/85 (No bootloader)。
  • 转到工具并选择以下板选项:
  • 芯片: ATtiny45 或 85(取决于你的芯片)
  • 时钟: 8 MHz(内部)
  • Millis/Micros: 禁用
  • BODLevel: BOD 启用 (2.7V)
  • 其余保留默认设置
  • 将您的编程器连接到您的 PC 和 ATtiny。
  • 转到工具 -> 编程器并选择您的 ISP 编程器(例如USBasp)。
  • 转到Tools -> Burn Bootloader来烧掉保险丝。
  • 打开 PhonChargeGuard 草图并单击Upload

如果使用预编译的十六进制文件

  • 确保您已安装avrdude。
  • 将您的编程器连接到您的 PC 和 ATtiny。
  • 打开一个终端。
  • 导航到包含 hex 文件的文件夹。
  • 执行以下命令(如有必要,将“usbasp”替换为您使用的编程器):
  • avrdude -c usbasp -p t85 -U lfuse:w:0xe2:m -U hfuse:w:0xd5:m -U efuse:w:0xff:m -U flash:w:phonechargeguard.hex

如果使用 makefile (Linux/Mac)

确保您已安装avr-gcc 工具链和 avrdude。
将您的编程器连接到您的 PC 和 ATtiny。
如果你没有使用 ATtiny85,打开 makefile 并更改芯片,如果你没有使用 usbasp,则更改编程器。
打开一个终端。
导航到包含 makefile 和 Arduino 草图的文件夹。
运行“make install”进行编译,烧毁保险丝并上传固件。


操作说明

  1. 将设备连接到电源和电话(或其他消费者)之间。
  2. 使用 SELECT/INCREASE/DECREASE 按钮设置充电限制。
  3. 使用 START 按钮开始充电过程。
  4. 在充电期间使用 SELECT 按钮在显示值之间切换。
  5. 当达到设定的限值时,充电过程自动停止。

image


按键功能:

按钮功能
RESET重置所有值
SELECT在暂停模式下选择限制类型/在充电模式下更改显示参数
INCREASE增加限制值
DECREASE降低限制值
START开始/暂停充电

可选择的充电限制


限制类型功能
mAh当电量达到选定值时停止充电
mWh当提供的能量达到选定值时停止充电
mA当电流低于选定值时停止充电(这通常与电池的充电状态相关)
min在选定的时间(以分钟为单位)后停止充电

特性

范围最大值
电压3V - 12V
电流5A MAX
电压测量率4mV
电流测量率1mA

参考


  1. ATtiny45/85 数据表
  2. INA219 数据表
  3. SSD1306 数据表
  4. HT7333 数据表
  5. AS3621 数据表

image




设计图

原理图
PCB

BOM

IDNameDesignatorFootprintQuantity
1100nC1,C306032
247uC212061
310uC4,C506032
4OLED 0.91OLED1I2C OLED 0.911
5AS3621Q1SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR1

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航