
ATtiny85 充电保护器
简介
国外开源平台搬运工程:ATtiny85 充电保护器,SB Phone Charge Guard 控制和监控手机和其他设备的充电,以延长电池寿命。
简介:国外开源平台搬运工程:ATtiny85 充电保护器,SB Phone Charge Guard 控制和监控手机和其他设备的充电,以延长电池寿命。开源协议
:CC-BY-SA 3.0
描述
开源协议
本作品已根据知识共享署名-相同方式共享 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微控制器手柄上的用户界面,所述测量值的电源连接和的计算和显示的控制。
软件说明
说明
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”进行编译,烧毁保险丝并上传固件。
操作说明
- 将设备连接到电源和电话(或其他消费者)之间。
- 使用 SELECT/INCREASE/DECREASE 按钮设置充电限制。
- 使用 START 按钮开始充电过程。
- 在充电期间使用 SELECT 按钮在显示值之间切换。
- 当达到设定的限值时,充电过程自动停止。
按键功能:
按钮 | 功能 |
---|---|
RESET | 重置所有值 |
SELECT | 在暂停模式下选择限制类型/在充电模式下更改显示参数 |
INCREASE | 增加限制值 |
DECREASE | 降低限制值 |
START | 开始/暂停充电 |
可选择的充电限制
限制类型 | 功能 |
---|---|
mAh | 当电量达到选定值时停止充电 |
mWh | 当提供的能量达到选定值时停止充电 |
mA | 当电流低于选定值时停止充电(这通常与电池的充电状态相关) |
min | 在选定的时间(以分钟为单位)后停止充电 |
特性
范围 | 最大值 |
---|---|
电压 | 3V - 12V |
电流 | 5A MAX |
电压测量率 | 4mV |
电流测量率 | 1mA |
参考
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | 100n | C1,C3 | 0603 | 2 |
2 | 47u | C2 | 1206 | 1 |
3 | 10u | C4,C5 | 0603 | 2 |
4 | OLED 0.91 | OLED1 | I2C OLED 0.91 | 1 |
5 | AS3621 | Q1 | SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR | 1 |

评论