主题中讨论的其他器件: LP5861
工具/软件:
您好:
我尝试将 LP5861T 与 USB-I2C 桥接芯片 (MCP2221) 连接、但初始化序列似乎有问题、是否有人 可以查看以下源代码、并告诉我初始化功能是否正常?
//将单个字节写入 LP5861T 寄存器
void LP5861_Write(uint8_t i2cTargetAddress、uint16_t startRegAddress、uint8_t 数据)
{
uint8_t payload[2]={0};
i2cTargetAddress =(i2cTargetAddress << 2)|((uint8_t)(startRegAddress >> 8));//获得 startRegAddress 的最高 2 位、以构建具有 5 位器件地址的 i2c 从器件地址
PAYLOD[0]=(uint8_t) startRegAddress;//获取 startRegAddress 的低 8 位
PAYLOAD [1]=数据;//要发送的数据
qDebug ()<< Qt::hex << i2cTargetAddress << Qt::hex << payload[0]<< Qt:hex << payload[1];
FLAG = Mcp2221_I2cWrite(handle、2、i2cTargetAddress、I2cAddr7bit,有效载荷);
}
//初始化 LP5861 器件
void LP5861_init ()//(uint8_t i2cTargetAddress、uint16_t startRegAddress)
{
// GP0 - VSYNC 信号、仅限数据刷新模式 2 和 3
//OutValues[0]= MCP2221_GPVAL_HIGH;//设置 GP0(输出高电平)- VSYNC 引脚
//Mcp2221_SetGpioValues (handle、OutValues);//现在设置 DIO 引脚值
LP5861_Write (I2C_TARGET_ADDRESS_独立、reset_reg、0xff);//复位器件
QThread::uSleep (500);//等待 t_POR(最大 500us)以进入正常模式
LP5861_Write (I2C_TARGET_ADDRESS_独立、chip_en_reg、0x01);//启用器件
QThread::usleep (150);//等待 t_chip_en(最大 100us)以进入正常模式
/*初始化器件*/
LP5861_Write (I2C_TARGET_ADDRESS_独立、dev_initial、0x00);//数据刷新模式= Mode_1、PWM 频率= 125KHz (Mode_1 不需要 VSYNC)
LP5861_Write (I2C_TARGET_ADDRESS_独立、DEV_CONFIG1、0x00);//线性调光标度、PWM 相移关闭
LP5861_Write (I2C_TARGET_ADDRESS_独立、DEV_config2、0x00);//所有组的低亮度补偿时钟移位编号设置 (1、2、3) 关闭
LP5861_Write (I2C_TARGET_ADDRESS_独立、DEV_config3、0x0E);//最大电流 125mA
}
//通过 dc0-DC17 寄存器为所有通道 (0-255) 设置电流
void LP5861_SetCurrentAll (uint8_t CurrentValue)
{
对于 (I = 0;I <= 17;I++)
{
LP5861_Write (I2C_TARGET_ADDRESS_独立、dcReg[i]、CurrentValue);
}
}
谢谢、
Karim

