首页 > 其他分享 >SC8721驱动

SC8721驱动

时间:2024-02-06 10:11:27浏览次数:30  
标签:delay temp SC8721 IIC 驱动 REG define

目录

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,一直没发现到底是什么原因,若有同学完成测试,欢迎留言评论指正。

总结

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

标签:delay,temp,SC8721,IIC,驱动,REG,define
From: https://www.cnblogs.com/c951/p/18009218

相关文章

  • 事件驱动架构
    事件(event)是状态发生变化时,软件发出的通知。事件驱动架构(event-drivenarchitecture)就是通过事件进行通信的软件架构。它分成四个部分。 事件队列(eventqueue):接收事件的入口分发器(eventmediator):将不同的事件分发到不同的业务逻辑单元事件通道(eventchannel):分发器与处理......
  • 领域驱动系列(6)--在线订餐系统的微服务设计
       最后,将以上的设计最终落实到微服务之间的调用、领域事件的通知,以及前端微服务的设计。如下图所示: 整洁架构       ......
  • dbeaver如何配置离线驱动
    前提:DBeaver已经下载安装好,一台机器可以联网并下载好了驱动,一台机器不能联网。一、联网机器1.1 方法一找驱动路径操作步骤如下:窗口--首选项--连接--驱动--找到驱动位置本地文件夹位置1.2方法二找驱动如下操作步骤如下:1.2.1打开已经下载过DBeaver驱动的软件,点击【数据库】-【驱......
  • RK3568驱动指南|驱动基础进阶篇-进阶7 向系统中添加一个系统调用
      瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和MaliG522EE图形处理器。RK3568支持4K解码和1080P编码,支持SATA/PCIE/USB3.0外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568支持安卓11和linux系统,主......
  • 【驱动】块设备驱动(二)-通用块层
    前言通用块层是一个内核组件,处理来自系统其他组件发出的块设备请求。换句话说,通用块层包含了块设备操作的一些通用函数和数据结构,如通用磁盘结构gendisk,请求队列结构request_queue、请求结构request、块设备I/O操作结构bio和块设备操作结构block_device_operations等。关键数据......
  • 【驱动】块设备驱(三)-IO调度层
    前言每个块设备驱动程序都维持着自己的请求队列,它包含设备待处理的请求链表。如果磁盘控制器正在处理几个磁盘,那么通常每个物理块设备都有一个请求队列。在每个请求队列上单独执行1/O调度,这样可以提高磁盘的性能。关键APIstructrequest_queue请求队列是由一个大的数据结构req......
  • 【驱动】块设备驱动(四)-块设备驱动层
    前言块设备驱动程序是Liux块子系统中的最底层组件。它们从IO调度程序中获得请求,然后按要求处理这些请求。一个块设备驱动程序可能处理几个块设备。例如,IDE设备驱动程序可以处理几个IDE磁盘,其中的每个都是一个单独的块设备。而且,每个磁盘通常是被分区的,每个分区又可以被看作是一个......
  • 【驱动】块设备驱动(一)-驱动框架
    块设备的定义块设备是针对存储设备的,比如SD卡、EMMC、NANDFlash、NorFlash、SPIFlash、机械硬盘、固态硬盘等。因此块设备驱动其实就是这些存储设备驱动,块设备驱动相比字符设备相比,块设备有以下几个特殊之处:块设备可以从数据的任何位置进行访问块数据总是以固定长度进行......
  • Drvsetup.dll 是 Windows 操作系统中的一个动态链接库文件,用于设备驱动程序的安装和配
     Drvsetup.dll是Windows操作系统中的一个动态链接库文件,用于设备驱动程序的安装和配置过程中。该文件通常位于C:\Windows\System32文件夹下。Drvsetup.dll主要负责设备驱动程序的安装和配置过程中的一些核心功能,包括驱动程序的复制、注册、配置和卸载等。在设备驱动程序......
  • 在PowerShell中管理Windows映像主要涉及到DISM模块的Cmdlets。这些Cmdlets提供了一系
    在PowerShell中管理Windows映像主要涉及到DISM模块的Cmdlets。这些Cmdlets提供了一系列功能,包括挂载(加载)、卸载(卸下)映像,添加或删除驱动程序,应用更新等。以下是一些常用的Cmdlets和它们的参数,以及相应的实例。常用CmdletsMount-WindowsImage-ImagePath:指定WIM文件的路径。-I......