<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>INA226 :: 标签 :: yafeng 的博客</title>
    <link>https://yafengabc.github.io/tags/ina226/index.html</link>
    <description></description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 19 Sep 2026 16:30:07 +0800</lastBuildDate>
    <atom:link href="https://yafengabc.github.io/tags/ina226/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>INA226折腾笔记（二）</title>
      <link>https://yafengabc.github.io/cnblogs/p18622825/index.html</link>
      <pubDate>Mon, 23 Dec 2024 00:09:00 +0800</pubDate>
      <guid>https://yafengabc.github.io/cnblogs/p18622825/index.html</guid>
      <description>接上文，接个500欧的电阻作为负载：&#xA;&gt;&gt;&gt; i2c.readfrom_mem(64,1,2).hex() &#39;005a&#39; &gt;&gt;&gt; int(0x5a) 90 按照模块上采样电阻0.01欧来算：&#xA;90*81.92mV/32768=0.225mV&#xA;0.225mV/0.01Ω=22.5mA&#xA;但是，5V，500欧，应该是10mA，所以……&#xA;电阻大了一倍有余，放大系数为2.25……&#xA;电阻换成100欧&#xA;&gt;&gt;&gt; i2c.readfrom_mem(64,1,2).hex() &#39;01ba&#39; &gt;&gt;&gt; int(0x1ba) 442 442*81.92mV/32768 = 1.105mV&#xA;1.105/0.01 = 110.05mA&#xA;实际应该是50ma，放大系数为2.21&#xA;继续改变电阻，为200欧&#xA;&gt;&gt;&gt; i2c.readfrom_mem(64,1,2).hex() &#39;00dd&#39; &gt;&gt;&gt; int(0xdd) 221 系数2.21&#xA;改编为50欧：&#xA;&gt;&gt;&gt; i2c.readfrom_mem(64,1,2).hex() &#39;0367&#39; &gt;&gt;&gt; int(0x367) 871 系数为2.177&#xA;因为负载也有精度问题。经多次测量，系数大约2.2左右。&#xA;所以程序如下：&#xA;import micropython i2c = I2C(0, scl=Pin(8), sda=Pin(9), freq=1000000) i2c.writeto_mem(64,0,b&#34;\x41\x27&#34;) @micropython.native def read_ina226(): while True: ret1 = i2c.readfrom_mem(64,1,2) ret2 = i2c.readfrom_mem(64,2,2) current = struct.unpack(&#34;&gt;h&#34;,ret1)[0]*0.113 voltage = struct.unpack(&#34;&gt;h&#34;,ret2)[0]*1.25/1000 print(&#34;voltage={0}V,current={1}mA,power={2}mW,R={3}&#34;.format(voltage,current,voltage*current,1000*voltage/current)) time.sleep(1) read_ina226() MPY: soft reboot&#xA;voltage=5.07125V,current=25.086mA,power=127.2174mW,R=202.1546&#xA;voltage=5.07125V,current=24.973mA,power=126.6443mW,R=203.0693&#xA;voltage=5.07125V,current=24.973mA,power=126.6443mW,R=203.0693&#xA;voltage=5.0725V,current=25.086mA,power=127.2487mW,R=202.2044&#xA;voltage=5.07125V,current=24.973mA,power=126.6443mW,R=203.0693&#xA;voltage=5.07125V,current=24.973mA,power=126.6443mW,R=203.0693&#xA;voltage=5.07125V,current=24.973mA,power=126.6443mW,R=203.0693&#xA;voltage=5.07125V,current=24.86mA,power=126.0713mW,R=203.9924&#xA;voltage=5.07125V,current=24.86mA,power=126.0713mW,R=203.9924</description>
    </item>
    <item>
      <title>INA226折腾笔记（一）</title>
      <link>https://yafengabc.github.io/cnblogs/p18573281/index.html</link>
      <pubDate>Sun, 22 Dec 2024 23:02:00 +0800</pubDate>
      <guid>https://yafengabc.github.io/cnblogs/p18573281/index.html</guid>
      <description>其实也算不上折腾，这个模块很简单就一个简单的I2C模块。随便搞个单片机就能读写，之所以玩这个，主要还是对手上的USB表不满意（换句话说就是达不到我的需求）&#xA;我手上有几个USB表&#xA;左边那个高仿版FNB58，右边那个是科维斯的CC表型号为KWS-1902C，平时就是测测手机充电功率之类的，也够用，FNB58还带了个客户端，如下图：&#xA;平时用绝对够用了，并且精度还可以（特别小的负载下精度不是很理想）。&#xA;最所以自己折腾INA226，主要是我最近玩耳机测小尾巴的功耗（20mw-1W）那两个U表精度不够，寨板FNB58精度还算可以，但是因为不是直通表，插上小尾巴（USB声卡）会有严重的噪音。另外一个CC表低功耗下（&lt;50mw）直接显示0，网上虽然有一堆堆的U表卖，但具体什么情况还未可知，所以嘛，自己动手搞起。&#xA;淘宝上INA226的模块巨便宜，几块钱&#xA;一共16块钱，为了标定板子，我还买了块电阻板，如下：&#xA;然后画了块电路板，去淘宝5块钱打印了5块，最后一顿焊，成品如下：&#xA;INA226买的时候，注意那个采样电阻，上边两个板子一个是R100（0.1欧），一个是R010（0.01欧），理论上说，这个电阻越大，精度越高，代价就是量程变小。INA226通过测量电阻两边的电压来测量电流。最大电压是81.92mv，所以可以简单地通过电压/电阻来确定最大量程，0.08192/0.1=0.8192A 0.08192/0.01=8.192A。也就是这两个板子一个量程是0.8A，一个是8A。&#xA;但是我上边的板子设计失误了，为啥呢？可以看到我的红圈处的那两个接线柱是没有供电的。&#xA;我一开始的想法是：反正我也不测量大电流，所以没必要从这两个点取电，所以就从右上角的IN+ IN-代替了这两个大焊盘。但是我忽略了电路也是有电阻的！因为电路板的铜层很薄，电阻相对0.01欧来说不可忽略。&#xA;结果就是导致：采样电阻阻值改变了。0.1欧版本还好，0.01欧版本直接量程减半（标定为0.0226欧左右）所以我现在这两个板子，一个量程是0.73A，一个是3.6A左右（虽然变相提高了精度）。&#xA;关于INA226的寄存器：&#xA;寄存器0 配置寄存器，默认1次采样，采样周期1.1ms，连续采样（0x4127）。通常情况下，这个配置已经可以用了&#xA;寄存器1 采样电压，也就是采样电阻两端的电压，电阻足够精确的话，这个值*0.08192/采样电阻/32768就是电流值了。&#xA;寄存器2 VBUS电压，也就是电源电压，比如5V，10V，读出值*0.0025就是电压。&#xA;寄存器3 功率，如果标定寄存器不设置，这个值默认是0</description>
    </item>
  </channel>
</rss>