嵌入式硬件:可调电阻/数字电位器MAX5401

背景

在放大电路中,我们需要增益可调,因此引入可变电阻。这里以MAX5401为例,介绍可变电阻驱动。

电路图

在这里插入图片描述

如上电路图所示,通过更改R1阻值,则可以更改电路放大倍数。

芯片驱动

在这里插入图片描述
在这里插入图片描述

MAX5401共有8个引脚,其中DIN和SCLK是控制引脚,其控制时序图如下:
在这里插入图片描述
其中控制的阻值变化是W到L的阻值,而W到H的阻值是100K减去控制的阻值。
在这里插入图片描述

驱动代码

void MyMAX5401::SendData(uint8_t Data)
{
    
    
    digitalWrite(pin_SCLK,0);    
    digitalWrite(pin_CS,1);
    delayMicroseconds(1);

    digitalWrite(pin_CS,0);
    delayMicroseconds(1);
    //完成了片选

    uint8_t DataCopy = Data;

    for(uint8_t i = 0; i < 8; ++ i)
    {
    
    
        if((DataCopy & 0X80) != 0)
        {
    
    
            digitalWrite(pin_DIN,1);
            digitalWrite(pin_SCLK,0);
            delayMicroseconds(1);
            digitalWrite(pin_SCLK,1);
            delayMicroseconds(1);
        }
        else
        {
    
    
            digitalWrite(pin_DIN,0);
            digitalWrite(pin_SCLK,0);
            delayMicroseconds(1);
            digitalWrite(pin_SCLK,1);
            delayMicroseconds(1);
        }
        DataCopy <<= 1;
    }

    digitalWrite(pin_CS,1);
    digitalWrite(pin_SCLK,0);
    delayMicroseconds(1);
    //取消片选
}

猜你喜欢

转载自blog.csdn.net/wcc243588569/article/details/130718268