INA226功率检测模块

Seasky协议现在已经更新,因此此模块不兼容最新上位机,需要自行修改协议以适配当前最新的协议。

项目开源

参数说明

  • 输入限制 <= 40V
  • 模块限制分流电压 81.92mV
  •  使用5mR采样电阻,则最大可测量电流为16.384A,最大功率为640W(理论值)
  • 实际测试 输入电压24V 输入电流6A 功率144W 没有问题,我感觉跑15A应该是没有问题的,限于测试条件,直流源最大输出6.1A,因此更大电流无法测试。

实物

INA226功率检测模块

协议

  1. USART
  • 通信要求
    • 配置为波特率 115200,8 位数据位,1 位停止位,无硬件流控,无校验位,发送频率100Hz
  • 接口协议说明
    • Seasky串口通信协议-详情见`Seasky串口协议`
  •  INA226模块数据(float数据长度- 4)
  • 数据说明
数据 说明
INA226_USART_ID 0X0002
ina226_flag CAL(INA226设定校准值)
float_data[0]Power_Val
float_data[1]voltageVal
float_data[2]Shunt_Current
float_data[3]Shunt_voltage
  • 函数发送接口
void ina226_uart_send(void)
{
    static float tx_data[4];
    static uint8_t tx_buf[50];
    static uint16_t tx_buf_len;
    static uint16_t tx_len;
    tx_data[0] = ina226_data.Power;			//功率mW
    tx_data[1] = ina226_data.voltageVal;	//mV
    tx_data[2] = ina226_data.Shunt_Current;	//mA
    tx_data[3] = ina226_data.Shunt_voltage;	//uV
    get_protocol_send_data
    (INA226_USART_ID,	 	  		//信号id
        CAL,  //16位寄存器
        &tx_data[0],	  		//待发送的float数据
        4,   			  		//float的数据长度
        &tx_buf[0],		  		//待发送的数据帧
        &tx_buf_len);	  		//待发送的数据帧长度
    for(uint16_t i=0; i<tx_buf_len; i++)
    {
        while((USART1->SR&USART_FLAG_TC)==0);//发送完成
        USART_SendData(USART1,tx_buf[i]);
    }
}
  1. CAN
  • CAN波特率1MHZ、发送频率100Hz
  • 协议部分
  • 协议说明(单次发送-单个ID)
    • 信号数据
IDunionuint16_tu8
0X311功率Power_Valdata_u8[2]
 电压voltageValdata_u8[2]
 电流Shunt_Currentdata_u8[2]
 分流电压Shunt_voltagedata_u8[2]
void can_send_msg(s16 mt1,s16 mt2,s16 mt3,s16 mt4)
{
    CanTxMsg TxMessage;
    TxMessage.StdId= CAN_Tx_Msg ;	    // 标准标识符 
    TxMessage.ExtId= 0;			    // 设置扩展标示符 
    TxMessage.IDE=CAN_Id_Standard; 	// 标准帧
    TxMessage.RTR=CAN_RTR_Data;		// 数据帧
    TxMessage.DLC=8;				    // 要发送的数据长度
    TxMessage.Data[0] = mt1 >> 8;
    TxMessage.Data[1] = mt1;
    TxMessage.Data[2] = mt2 >> 8;
    TxMessage.Data[3] = mt2;
    TxMessage.Data[4] = mt3 >> 8;
    TxMessage.Data[5] = mt3;
    TxMessage.Data[6] = mt4 >> 8;
    TxMessage.Data[7] = mt4;		          
    CAN_Transmit(CAN1, &TxMessage);   
}

void ina226_can_send(void)
{
    s16 tx_data[4];
    tx_data[0] = ina226_data.Power;			//功率mW
    tx_data[1] = ina226_data.voltageVal;	//mV
    tx_data[2] = ina226_data.Shunt_Current;	//mA
    tx_data[3] = ina226_data.Shunt_voltage;	//uV
    can_send_msg(tx_data[0],tx_data[1],tx_data[2],tx_data[3]);
}
  1. INA226配置说明
    更多的介绍你可以查询手册获得
  1. 串口协议说明
INA226功率检测模块
@版权声明 1 本站名称:Liuwei's Blog
2 本站网址:https://www.liuwei.vin
3 本站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
5 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
6 本站所有内容,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
个人网站群晖

群晖安装LskyPro企业版图床

2023-1-5 18:10:31

软件

DMA+PWM驱动彩色RGB灯

2022-10-30 19:59:56

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索