工具/软件:
要查看电路板是否正确操作、配置的初始步骤是什么? 基于软件
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
嘿、所以它可以工作、默认为5V、但我不能像5.9V 那样过、即使我输入最大输出、所以将所有位切换为1、我在开路时总是得到6V (无负载连接、只有万用表)。 降压模式有点正常、可能我的代码不正确?
#include
// TPS55288 I2C 地址
#define TPS55288_ADDR 0x74
//寄存器地址
#define MODE_REG 0x06
#define VOUT_MSB_REG 0x00 // DAC 的 MSB (0x00)
#define VOUT_LSB_REG 0x01 // DAC 的 LSB (0x01)、在 MSB 之后作为第二个字节发送
void setup(){
//在 ESP32上初始化 I2C
Wire.begin(22、18);// SDA = GPIO22、SCL = GPIO18
Serial.begin(115200);
延迟(1000);
}
void enable_output (){
//读取模式寄存器
Wire.beginTransmission(TPS55288_ADDR);
WIRE.WRITE (MODE_REG);
wire.endTransmission (false);//重复启动
Wire.requestFrom (TPS55288_ADDR、1);
uint8_t modeVal = 0;
如果(Wire.Available()){
modeVal = Wire.read ();
serial.print ("当前模式值:0x");
serial.println (modeVal、hex);
}其他{
serial.println ("读取模式寄存器失败");
}
//设置 OE (位7)
modeVal || 0b10000000;
//写回 MODE 寄存器
Wire.beginTransmission(TPS55288_ADDR);
WIRE.WRITE (MODE_REG);
wire.write (modeVal);
如果(Wire.endTransmission()==0){
serial.println ("成功启用 OE (输出已启用)");
}其他{
serial.println ("启用 OE"失败);
}
}
void SET_OUTPUT_VOLTAGE_max (){
//将 DAC 设置为0x03FF (最大10位值)
uint16_t reg_value = 0x03FF << 6;//左对齐10位 DAC 值
uint8_t MSB =(reg_value >> 8)& 0xFF;//应为0xFF
uint8_t lsb = reg_value 和0xFF;//应为0xC0
//写入 VOUT 寄存器(MSB、然后是 LSB)
Wire.beginTransmission(TPS55288_ADDR);
WIRE.WRITE (VOUT_MSB_REG);//从寄存器0x00开始
wire.write (msb);
wire.write (lsb);
如果(Wire.endTransmission()==0){
serial.println ("VREF 设置为最大值(≈1200mV VOUT)");
}其他{
serial.println ("设置 VOUT 失败");
}
}
void loop(){
enable_output ();//将 OE 设为1
SET_OUTPUT_VOLTAGE_max ();//将 VREF 设置为最大值(1200mV)
delay(2000);//每2秒重复一次
}