一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: 老弹弓
收起左侧

[其他DIY] INA226 做的电流表,

[复制链接]
发表于 2016-4-21 09:08 | 显示全部楼层
这个不错
头像被屏蔽
发表于 2016-5-2 17:19 | 显示全部楼层
不错 支持楼主
发表于 2016-8-11 09:52 | 显示全部楼层
楼主能不能共享一下ina226的驱动程序啊~~~ 最近调试出来的数据仲是零~
发表于 2016-8-26 21:16 来自手机 | 显示全部楼层
226多少钱
发表于 2016-8-26 21:16 来自手机 | 显示全部楼层
226多少钱
 楼主| 发表于 2016-9-2 15:00 | 显示全部楼层
本帖最后由 老弹弓 于 2016-9-2 18:00 编辑
haiyu 发表于 2016-8-11 09:52
楼主能不能共享一下ina226的驱动程序啊~~~ 最近调试出来的数据仲是零~

没问题  是汇编的  主要驱动部分都在这。




MAIN1:         
               LCALL    INT_INA226_A                  ; 初始化


               LCALL    READ_A_V                      ; 读取压降

               LCALL    A16TO10_2                     ; 两字节 16 转bcd 码 (ad值转换为10进制显示)
               LCALL    PLAY_A_V                      ; 写压降电压值       

               lcall  DELAY400ms
               JMP       MAIN1

;--------------------------------------------------------------------------------------
;功能  读取分流压降 02H
;流程:开始---器件地址---检查应答----寄存器地址(8位)--检查应答-------数据高八位--检查应答-----数据低八位--检查应答 ----停止。
;入口:读出的高低字节在 A_V_H ,A_V_L
;--------------------------------------------------------------------------------------
READ_A_V:      LCALL      SEND_address_W               ;-发送器件地址-- 表明要写入一个寄存器地址。

               MOV       A,  #01H                      ; 放入要读取的寄存器地址
               LCALL     SEND_AX_Addres                ; 写入要读取的地址。发送完就完事了,下面接着开始读的流程。

               LCALL     SEND_address_R               ; 发送器件地址 这次表明接下来是要读。 至于要读的地址,刚才已经写入了
               LCALL     RADBAT_INA226
               MOV       A_V_H, A                     ; 读到的高字节暂存。
               LCALL     SACK_INA226                   ; 发送应答

               LCALL     RADBAT_INA226
               MOV       A_V_L, A                      ; 暂存低字节
               LCALL     STOP_INA226

               MOV       21H,  A_V_H                  ; 高位送入21H 用来判断 是正数还是负数
               JNB       0FH,  READ_A_V2              ; 0FH (也就是最高位)为0 则跳到 main2 直接计算并显示 为1 则进行下面的取反
               LCALL     PLAY_FH_2416
               LCALL     QIU_BU                       ; 是负数的话调用求补码程序。
               JMP       READ_A_V3
READ_A_V2:     LCALL     PLAY_KB_2416                 ; 擦 负号子程序
READ_A_V3:     RET


;--------------------------------------------------------------------------------------
INT_INA226_A:
               LCALL     SEND_address_W               ;-发送器件地址-- 表明要写入一个寄存器地址。
               MOV       A,  #00H                     ; 放入要写入的寄存器地址
               LCALL     SEDBAT_INA226                              
               LCALL       CACK_INA226                ; 检查应答
               JB       F0, INT_INA226_A               ; 不行重来
;------------------------------------------------------发送器件地址和 要初始化的地址
INT_226_0:               
               MOV       A,  #43H                     ; 00H 默认初始化值为4127  现在初始化为 4327 默认是采集一个数 4327 是采集4个数然后平均。
               LCALL     SEDBAT_INA226                              
               LCALL     CACK_INA226                   ; 检查应答
               JB        F0, INT_226_0                      ; 不行重来

               MOV       A,  #27H                      ;
               LCALL     SEDBAT_INA226                              
               LCALL     CACK_INA226                   ; 检查应答
               JB        F0, INT_226_0                 ; 不行重来
               LCALL     STOP_INA226


ITN_2:         LCALL     SEND_address_W               ;-发送器件地址-- 表明要写入一个寄存器地址。
               MOV       A,  #05H                     ; 05H 寄存器是设定电流和功率的,就是一个系数。
               LCALL     SEDBAT_INA226                              
               LCALL       CACK_INA226                ; 检查应答
               JB        F0, ITN_2                    ; 不行重来

INT_226_5:               
               MOV       A,  #00H                      ; 05H 默认初始化值为0 这样算出来的电流 功率都为0
               LCALL     SEDBAT_INA226                              
               LCALL     CACK_INA226                   ; 检查应答
               JB        F0, INT_226_5                 ; 不行重来

               MOV       A,  #01H                      ;
               LCALL     SEDBAT_INA226                              
               LCALL     CACK_INA226                   ; 检查应答
               JB        F0, INT_226_5                 ; 不行重来
               LCALL     STOP_INA226

               RET

;--------------------------------------------------------------------------------------
;发送寄存器地址  
;--------------------------------------------------------------------------------------
SEND_AX_Addres:
              ; MOV     A,  #01H                       ; 放入要读取的寄存器地址     
               LCALL       SEDBAT_INA226               ; 发送器件地址
               LCALL       CACK_INA226                 ; 检查应答
               JB      F0, SEND_AX_Addres              ; 不行重来
               RET
;--------------------------------------------------------------------------------------
;发送器件地址
;
;
;--------------------------------------------------------------------------------------
SEND_address_W:
               LCALL      STAR_INA226               
               MOV     A,  #80H                         ; 放入要发送的控制字 器件地址+0     
               LCALL       SEDBAT_INA226                ; 发送器件地址
               LCALL       CACK_INA226                  ; 检查应答
               JB      F0, SEND_address_W                 ; 不行重来
               RET

;--------------------------------------------------------------------------------------
;读取寄存器前发送器件地址
;--------------------------------------------------------------------------------------
SEND_address_R:
               LCALL      STAR_INA226               
               MOV     A,  #81H                         ; 放入要发送的控制字 器件地址+0     
               LCALL       SEDBAT_INA226                ; 发送器件地址
               LCALL       CACK_INA226                  ; 检查应答
               JB      F0, SEND_address_R                ; 不行重来
               RET


发表于 2016-11-18 21:14 | 显示全部楼层
ina226这集成的参数是什么呀, 怎么在网上查不到,要怎么玩的呢。
 楼主| 发表于 2016-11-19 08:35 | 显示全部楼层
能查到,
发表于 2016-11-19 09:22 | 显示全部楼层
这片子好贵,一块就要10元了。
发表于 2016-11-19 10:03 | 显示全部楼层
1.png

具有 I2C 介面的單晶片解決方案支持電流、電壓以及電源測量,

無需外部多路複用器或 ADC 即可簡化電路板設計




本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-7 06:44 , Processed in 0.052471 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表