Power INA226 技术手册#

备注

本手册为最早 V1.0 协议产品,与当前上位机不兼容。

项目开源#

power-ina226

实物#

ina226.jpg

参数说明#

  • 输入限制 ≤ 40V

  • 模块限制分流电压 81.92mV

  • 使用5mR采样电阻,则最大可测量电流为16.384A,最大功率为640W(理论值)

  • 实际测试 输入电压24V 输入电流6A 功率144W 没有问题,我感觉跑15A应该是没有问题的,限于测试条件,直流源最大输出6.1A,因此更大电流无法测试。

协议#

模块源码已开源,当前为只输出、不可通信控制;修改输出协议请直接改源码。

USART#

配置为波特率 115200,8 位数据位,1 位停止位,无硬件流控,无校验位,发送频率100Hz

  • 接口:Seasky 串口通信协议,详见 Sailor 通信协议

  • INA226 模块数据(float 长度 4):

函数发送接口(USART)#

void ina226_uart_send(void)
{
    static float tx_data[4];
    static uint8_t tx_buf[50];
    static uint16_t tx_buf_len;

    tx_data[0] = ina226_data.Power;
    tx_data[1] = ina226_data.voltageVal;
    tx_data[2] = ina226_data.Shunt_Current;
    tx_data[3] = ina226_data.Shunt_voltage;
    get_protocol_send_data(INA226_USART_ID, CAL, &tx_data[0], 4,
                           &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]);
    }
}

CAN#

  • 波特率 1Mbps,发送频率 100Hz。

  • 协议说明(单次发送、单 ID):

    • 信号数据:

功率测量模块发送接口(CAN)#

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;
    tx_data[1] = ina226_data.voltageVal;
    tx_data[2] = ina226_data.Shunt_Current;
    tx_data[3] = ina226_data.Shunt_voltage;
    can_send_msg(tx_data[0], tx_data[1], tx_data[2], tx_data[3]);
}

INA226 配置说明#

更多说明见芯片手册。

ina226_cfg.jpg

串口协议说明#

ina226_vseasky.png