**作者:**[Stefan Wagner](https://oshwlab.com/wagiminator)
**原工程:**[https://oshwlab.com/wagiminator/attiny85-phone-charge-guard](https://oshwlab.com/wagiminator/attiny85-phone-charge-guard) # 概述 基于 ATtiny25/45/85 和 INA219 的简单 USB 电源测试仪。该器件测量电压、电流、功率、能量、容量,并在OLED屏幕上显示值。您可以通过按SET按钮在不同屏幕之间切换。 * 项目视频(YouTube):[https://youtu.be/QKx8Vn_IfjU](https://youtu.be/QKx8Vn_IfjU) * 固件 (Github): [https://github.com/wagiminator/ATtiny85-USB-Tester](https://github.com/wagiminator/ATtiny85-USB-Tester) ![pic6.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic6.jpg) # 硬件 ## USB 连接器 该设备配有用于输入的USB-A插头和用于输出的USB-A插座,因此可以在电源和消费者之间插入。D+和D-通过,以便消费者可以协商充电协议。 ## 电压和电流测量 [INA219](https://www.ti.com/lit/ds/symlink/ina219.pdf) 用于测量电压和电流。INA219是一款分流和功率监控器,具有I²C兼容接口。该器件可监控并联压降和总线电源电压,并具有可编程的转换时间和滤波功能。可编程校准值与内部乘法器相结合,可实现电流的直接读出(以安培为单位)。所选的 8mΩ 分流电阻既能对电路产生非常小的影响,又能实现分辨率为 1mA 的测量。为了获得准确的测量,应选择具有低容差(1%或更高)的分流电阻。 ## 用户界面 用户界面采用两个按钮和一个 [128x64 像素的 OLED 显示屏](http://aliexpress.com/wholesale?SearchText=128+64+0.96+oled+new+4pin)。[ATtiny24/45/85](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf)微控制器处理用户界面以及值的计算和显示。 ![pic2.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic2.jpg) ![pic3.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic3.jpg) # 软件 ## 基本原理 INA219连续测量电流和电压,并通过I²C将值传输到ATtiny。由此,ATtiny计算其他值并将其显示在OLED屏幕上。 ## I²C OLED实现 I²C协议的实现基于粗略的位移方法。它是专门为ATtiny10和ATtiny13的有限资源而设计的,但它也可以与其他一些AVR(包括ATtiny25/ 45 / 85)一起使用。OLED的功能适用于SSD1306 OLED模块,但可以轻松修改以用于其他模块。为了节省资源,仅实现此应用程序所需的基本功能。有关I²C OLED实现的工作原理的详细信息,请访问[TinyOLEDdemo](https://github.com/wagiminator/attiny13-tinyoleddemo)。 ## 时间和容量测定的准确性 ATtiny的内部振荡器用于确定能量和容量。内部振荡器的精度在出厂校准时为+/-10%。这可以通过[手动校准](https://github.com/wagiminator/ATtiny84-TinyCalibrator)提高到+/-2%或更好。以这种方式确定的校准值可以在源代码中设置。 ## 编译和上传 由于电路板上没有 ICSP 接头,因此在使用 [SOP 适配器](https://aliexpress.com/wholesale?SearchText=sop-8+150mil+adapter)进行焊接之前,或使用 [EEPROM 夹进行](https://aliexpress.com/wholesale?SearchText=sop8+eeprom+programming+clip)焊接后,必须对 ATtiny 进行编程。[AVR 编程器适配器](https://github.com/wagiminator/AVR-Programmer/tree/master/AVR_Programmer_Adapter)可以对此有所帮助。 ### 如果使用 Arduino IDE * 确保您已安装 [ATtinyCore](https://github.com/SpenceKonde/ATTinyCore)。 * 转到 **Tools -> Board -> ATtinyCore**,然后选择 **ATtiny25/45/85(无引导加载程序)。**。 * 转到**“工具”**,然后选择以下主板选项: * **芯片:**ATtiny25 或 45 或 85(取决于您的芯片) * **时钟:**1兆赫(内部) * **B.O.D.级别:**B.O.D. 使能 (2.7V) * 将其余部分保留为默认设置 * 将您的编程器连接到您的PC和ATtiny。 * 转到**“工具”->程序员**“,然后选择您的 ISP 程序员(例如 [USBasp](https://aliexpress.com/wholesale?SearchText=usbasp))。 * 转到**工具 ->刻录引导加载程序**以刻录保险丝。 * 打开草图USB_Tester,然后单击**上传**。 ### 如果使用预编译的十六进制文件 * 确保您已安装 [avrdude](https://learn.adafruit.com/usbtinyisp/avrdude)。 * 将您的编程器连接到您的PC和ATtiny。 * 打开终端。 * 导航到包含十六进制文件的文件夹。 * 执行以下命令(如有必要,请将“usbasp”替换为您使用的程序员): ``` avrdude -c usbasp -p t85 -U lfuse:w:0x62:m -U hfuse:w:0xd5:m -U efuse:w:0xff:m -U flash:w:usb_tester.hex ``` ### 如果使用生成文件(Linux/Mac) * 确保您已经安装了 [avr-gcc 工具链和 avrdude](http://maxembedded.com/2015/06/setting-up-avr-gcc-toolchain-on-linux-and-mac-os-x/)。 * 将您的编程器连接到您的PC和ATtiny。 * 如果您没有使用ATtiny85,请打开makefile并更改芯片,如果您没有使用usbasp,请更改编程器。 * 打开终端。 * 导航到包含 makefile 和 Arduino 草图的文件夹。 * 运行“进行安装”以编译,烧毁保险丝并上传固件。 # 操作说明 1. 在电源和消费者之间连接设备。 2. 使用“设置”按钮在不同屏幕之间切换。 3. 使用“重置”按钮重置所有值。 ![pic5.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic5.jpg) # 特性 | 参数 | 价值 | | --- | --- | | 电压 | 3V - 12V | | 当前 | 最大 5A | | 电压测量分辨率 | 4毫伏 | | 电流测量分辨率 | 1毫安 | # 参考文献、链接和注释 1. [瑞银-C版](https://github.com/wagiminator/ATtiny85-USB-C-Tester) 2. [ATtiny25/45/85 数据表](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf) 3. [INA219 数据表](https://www.ti.com/lit/ds/symlink/ina219.pdf) 4. [SSD1306 数据](https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf)手册 ![pic4.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic4.jpg) # 许可证 ![许可证.png](https://i.creativecommons.org/l/by-sa/3.0/88x31.png) 本作品采用知识共享署名-相同方式共享 3.0 未移植许可协议授权。([http://creativecommons.org/licenses/by-sa/3.0/](http://creativecommons.org/licenses/by-sa/3.0/))
**原工程:**[https://oshwlab.com/wagiminator/attiny85-phone-charge-guard](https://oshwlab.com/wagiminator/attiny85-phone-charge-guard) # 概述 基于 ATtiny25/45/85 和 INA219 的简单 USB 电源测试仪。该器件测量电压、电流、功率、能量、容量,并在OLED屏幕上显示值。您可以通过按SET按钮在不同屏幕之间切换。 * 项目视频(YouTube):[https://youtu.be/QKx8Vn_IfjU](https://youtu.be/QKx8Vn_IfjU) * 固件 (Github): [https://github.com/wagiminator/ATtiny85-USB-Tester](https://github.com/wagiminator/ATtiny85-USB-Tester) ![pic6.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic6.jpg) # 硬件 ## USB 连接器 该设备配有用于输入的USB-A插头和用于输出的USB-A插座,因此可以在电源和消费者之间插入。D+和D-通过,以便消费者可以协商充电协议。 ## 电压和电流测量 [INA219](https://www.ti.com/lit/ds/symlink/ina219.pdf) 用于测量电压和电流。INA219是一款分流和功率监控器,具有I²C兼容接口。该器件可监控并联压降和总线电源电压,并具有可编程的转换时间和滤波功能。可编程校准值与内部乘法器相结合,可实现电流的直接读出(以安培为单位)。所选的 8mΩ 分流电阻既能对电路产生非常小的影响,又能实现分辨率为 1mA 的测量。为了获得准确的测量,应选择具有低容差(1%或更高)的分流电阻。 ## 用户界面 用户界面采用两个按钮和一个 [128x64 像素的 OLED 显示屏](http://aliexpress.com/wholesale?SearchText=128+64+0.96+oled+new+4pin)。[ATtiny24/45/85](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf)微控制器处理用户界面以及值的计算和显示。 ![pic2.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic2.jpg) ![pic3.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic3.jpg) # 软件 ## 基本原理 INA219连续测量电流和电压,并通过I²C将值传输到ATtiny。由此,ATtiny计算其他值并将其显示在OLED屏幕上。 ## I²C OLED实现 I²C协议的实现基于粗略的位移方法。它是专门为ATtiny10和ATtiny13的有限资源而设计的,但它也可以与其他一些AVR(包括ATtiny25/ 45 / 85)一起使用。OLED的功能适用于SSD1306 OLED模块,但可以轻松修改以用于其他模块。为了节省资源,仅实现此应用程序所需的基本功能。有关I²C OLED实现的工作原理的详细信息,请访问[TinyOLEDdemo](https://github.com/wagiminator/attiny13-tinyoleddemo)。 ## 时间和容量测定的准确性 ATtiny的内部振荡器用于确定能量和容量。内部振荡器的精度在出厂校准时为+/-10%。这可以通过[手动校准](https://github.com/wagiminator/ATtiny84-TinyCalibrator)提高到+/-2%或更好。以这种方式确定的校准值可以在源代码中设置。 ## 编译和上传 由于电路板上没有 ICSP 接头,因此在使用 [SOP 适配器](https://aliexpress.com/wholesale?SearchText=sop-8+150mil+adapter)进行焊接之前,或使用 [EEPROM 夹进行](https://aliexpress.com/wholesale?SearchText=sop8+eeprom+programming+clip)焊接后,必须对 ATtiny 进行编程。[AVR 编程器适配器](https://github.com/wagiminator/AVR-Programmer/tree/master/AVR_Programmer_Adapter)可以对此有所帮助。 ### 如果使用 Arduino IDE * 确保您已安装 [ATtinyCore](https://github.com/SpenceKonde/ATTinyCore)。 * 转到 **Tools -> Board -> ATtinyCore**,然后选择 **ATtiny25/45/85(无引导加载程序)。**。 * 转到**“工具”**,然后选择以下主板选项: * **芯片:**ATtiny25 或 45 或 85(取决于您的芯片) * **时钟:**1兆赫(内部) * **B.O.D.级别:**B.O.D. 使能 (2.7V) * 将其余部分保留为默认设置 * 将您的编程器连接到您的PC和ATtiny。 * 转到**“工具”->程序员**“,然后选择您的 ISP 程序员(例如 [USBasp](https://aliexpress.com/wholesale?SearchText=usbasp))。 * 转到**工具 ->刻录引导加载程序**以刻录保险丝。 * 打开草图USB_Tester,然后单击**上传**。 ### 如果使用预编译的十六进制文件 * 确保您已安装 [avrdude](https://learn.adafruit.com/usbtinyisp/avrdude)。 * 将您的编程器连接到您的PC和ATtiny。 * 打开终端。 * 导航到包含十六进制文件的文件夹。 * 执行以下命令(如有必要,请将“usbasp”替换为您使用的程序员): ``` avrdude -c usbasp -p t85 -U lfuse:w:0x62:m -U hfuse:w:0xd5:m -U efuse:w:0xff:m -U flash:w:usb_tester.hex ``` ### 如果使用生成文件(Linux/Mac) * 确保您已经安装了 [avr-gcc 工具链和 avrdude](http://maxembedded.com/2015/06/setting-up-avr-gcc-toolchain-on-linux-and-mac-os-x/)。 * 将您的编程器连接到您的PC和ATtiny。 * 如果您没有使用ATtiny85,请打开makefile并更改芯片,如果您没有使用usbasp,请更改编程器。 * 打开终端。 * 导航到包含 makefile 和 Arduino 草图的文件夹。 * 运行“进行安装”以编译,烧毁保险丝并上传固件。 # 操作说明 1. 在电源和消费者之间连接设备。 2. 使用“设置”按钮在不同屏幕之间切换。 3. 使用“重置”按钮重置所有值。 ![pic5.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic5.jpg) # 特性 | 参数 | 价值 | | --- | --- | | 电压 | 3V - 12V | | 当前 | 最大 5A | | 电压测量分辨率 | 4毫伏 | | 电流测量分辨率 | 1毫安 | # 参考文献、链接和注释 1. [瑞银-C版](https://github.com/wagiminator/ATtiny85-USB-C-Tester) 2. [ATtiny25/45/85 数据表](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf) 3. [INA219 数据表](https://www.ti.com/lit/ds/symlink/ina219.pdf) 4. [SSD1306 数据](https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf)手册 ![pic4.jpg](https://raw.githubusercontent.com/wagiminator/ATtiny85-PhoneChargeGuard/master/documentation/PhoneChargeGuard_pic4.jpg) # 许可证 ![许可证.png](https://i.creativecommons.org/l/by-sa/3.0/88x31.png) 本作品采用知识共享署名-相同方式共享 3.0 未移植许可协议授权。([http://creativecommons.org/licenses/by-sa/3.0/](http://creativecommons.org/licenses/by-sa/3.0/))
参考设计下载
群聊设计,与管理员及时沟通
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld1”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeword1”及时沟通。
网友评论
相关项目
电路图
更多>
下载中心
更多>
大学堂
更多>
论坛推荐
更多>