视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MBI5026使用说明
2025-10-02 19:17:14 责编:小OO
文档
MBI5026恒流驱动源的使用

1.MBI5026功能说明

    这次做一个配电控制器,其中用到了MBI5026GF,用于控制连通电路的继电器。MBI5026将16位的串行数据变换为并行数据,16路I/O为取反的恒定电流输出,最大输出为90mA。这意味着串行数据中某一位为1对应的输出低电平。为0对应输出高电平。MBI5026默认最先接受的字节为高字节,每字节最先接收到的位为高位,所以在进行SPI初始设置时最好设置字节发送方式为MSB,这样就可以将发送的字节和5026的输出对应起来。比如发送字节的0位就是5026状态的0位。

2.MBI5026接线原理图

3.MBI5026注意事项

电源电压范围比较宽,我试过5V和3.3V都可以,但是有一点必须注意,MBI5026接受的高电平为0.8VDD—VDD,也就是说当VDD为5V的时候,SPI信号必须大于0.8*5V=4V才能认为是高电平。

R_EXT引脚要对地接一个下拉电阻,用途是调整输出电流的大小,这个外部电阻不能太大,手册中给出的最大值为3.5K欧姆。

在使用时LE必须输入高电平,否则数据不能进入锁存寄存器(虎风认为如果你在某个时候不想让MBI5026的状态再改变,则可以把LE引脚拉低,这样发送数据就不会影响片子的输出状态)。

在使用时OE必须输入低电平,这样输入的数据状态才能反映到片子的引脚上。如果OE为高电平,5026的引脚输出将关闭,引脚上没有输出(虎风认为之所以有这样一个功能是因为MBI5026时为LED显示屏所设计的芯片,当一个屏幕输出完毕切换下一个屏幕的时候关闭当前状态可以使显示效果更加清晰)。

LE应该对地接下拉电阻,作用是当没有输入的时候LE可以保持稳定的低电平,拒绝数据输入。

OE应该对VDD接上拉电阻,作用是当没有输入的时候OE可以保持稳定的高电平,拒绝引脚输出。

上面两个电阻的阻值标准为500K欧姆(手册上说的)。

SDO引脚输出上次输入的数据,可以用于级联。

4.MBI5026例程

#define M5026_OE (1<<10)    //P0.10,MBI5026输出使能管脚,为高时MBI5026没有输出,所有输出管脚关闭,为低时将锁存寄存器状态输出到各个端口

#define M5026_LE (1<<24) //P1.24,MBI5026数据锁存管脚,为高时数据可以写入锁存寄存器,为低时锁存寄存器锁定,数据不能输入

int main (void)

{// add user source code 

    uint8 i=0;

    //SPI发送数组,作用是将MBI5026输出端口0-9依次点亮

    uint8 arr[20]={0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00};

    

    //ARM管脚功能设置

    PINSEL0 = 0x00000000;

    PINSEL1 = 0x00000000;

    PINSEL2 = 0x00000004;

    

    //ARM管脚方向和状态设置

    IO0DIR = 0xFFFFFFFF;

    IO1DIR = 0xFFFFFFFF;    

    IO0CLR = 0xFFFFFFFF;

    IO1CLR = 0xFFFFFFFF;

    

    //设置OE为低,这样给入的数据才能从5026管脚反映出来

    IO0CLR = M5026_OE;

    //设置LE为高,这样数据才能给入

    IO1SET = M5026_LE;    

    

    SPI_Init();

    DelayNS(2000);

    

    while(1)

    {

     for(i=0; i<20; i++)

        {

            SPI_SendData(arr[i]);

            i++;

            SPI_SendData(arr[i]);

            //设置一段长的延时,以便观察结果

            DelayNS(10000);

        }

    }

    return 0;

}

5.MBI5026总结

感觉还是自己太菜了,弄这么一个简单的功能居然搞了三天。嘎嘎……下载本文

显示全文
专题