SC8721驱动

SC8721芯片简介
  • 输入电压:2.7V~22V
  • 输出电压:2.7V~22V
  • 控制方式:外部电阻或IIC
  • 电路方便:内置mos,外围电路简单

详细信息可自行查看数据手册

外围电路

image-20240205151721620

电路注意事项,根据手册描述,连接单片机共需要4个管脚,SCL,SDA,CE,CSO,需注意CSO管脚为ADC输入管脚,用于检测电流输出大小。

IIC控制
设备地址

image-20240205152216114

寄存器信息

image-20240205152103363

详细信息可自行查看数据手册

详细信息可自行查看数据手册

详细信息可自行查看数据手册

控制代码
#include "sc8721.h"
#include "delay.h"
#include "myiic.h"

#define SC8721_IIC_DEVICE_ADDR_8BIT 0xC4

#define SC8721_REG_CSO 0x01
#define SC8721_REG_SLOPE_COMP 0x02
#define SC8721_REG_VOUT_SET_MSB 0x03
#define SC8721_REG_VOUT_SET_LSB 0x04
#define SC8721_REG_GLOBAL_CTRL 0x05
#define SC8721_REG_SYS_SET 0x06
#define SC8721_REG_RESERVED 0x07
#define SC8721_REG_FREQ_SET 0x08
#define SC8721_REG_STATUS_1 0x09
#define SC8721_REG_STATUS_2 0x0A

u8 SC8721_ReadReg(u8 reg) {
    u8 temp = 0;
    IIC_Start();
    IIC_Send_Byte(SC8721_IIC_DEVICE_ADDR_8BIT);
    IIC_Wait_Ack();
    IIC_Send_Byte(reg);
    IIC_Wait_Ack();
    IIC_Start();
    IIC_Send_Byte(SC8721_IIC_DEVICE_ADDR_8BIT + 1);
    IIC_Wait_Ack();
    temp = IIC_Read_Byte(0);
    IIC_Stop();
    return temp;
}

static void SC8721_WriteReg(u8 reg, u8 dataa) {
    IIC_Start();
    IIC_Send_Byte(SC8721_IIC_DEVICE_ADDR_8BIT);
    IIC_Wait_Ack();
    IIC_Send_Byte(reg);
    IIC_Wait_Ack();
    IIC_Send_Byte(dataa);
    IIC_Wait_Ack();
    IIC_Stop();
}

void SC8721_SetVoltage(uint16_t mv) {
    uint16_t temp_20mv = 0;
    uint8_t fb_dir = 0;

    if (mv >= 5000) {
        temp_20mv = (mv - 5000) / 20;
    } else {
        fb_dir = 1;
        temp_20mv = (5000 - mv) / 20;
    }

    delay_ms(2);
    SC8721_WriteReg(SC8721_REG_VOUT_SET_MSB, (temp_20mv >> 2));
    delay_ms(2);
    if (0 == fb_dir) {
        SC8721_WriteReg(SC8721_REG_VOUT_SET_LSB, (temp_20mv & 0x03) | 0x18);
    } else {
        SC8721_WriteReg(SC8721_REG_VOUT_SET_LSB, (temp_20mv & 0x03) | 0x1C);
    }
    // delay_ms(2);
    // SC8721_WriteReg(SC8721_REG_GLOBAL_CTRL, 0x02);
    // delay_ms(2);
}

void SC8721_LoadVoltage(void) {
    delay_ms(2);
    SC8721_WriteReg(SC8721_REG_GLOBAL_CTRL, 0x02);
    delay_ms(2);
}

测试板效果图
image-20240205152606796

使用STM32F103C8T6+SC8721+CH224K做了一个升降压测试模块,在测试过程中发现,输出电压只要超过10以上,有几率电源会保护,或者直接烧SC8721,一直没发现到底是什么原因,若有同学完成测试,欢迎留言评论指正。

总结

该芯片带有电流保护,且控制方便,非常适合做成一个小的电源模块使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值