打印

请教AD5293数字电位器使用

[复制链接]
1815|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chest20090909|  楼主 | 2018-10-20 21:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
tyw| | 2018-10-21 08:37 | 只看该作者
本帖最后由 tyw 于 2018-10-21 08:47 编辑

AD5293.pdf (734.71 KB)
AN-1291:数字电位计:常见问题解答 (Rev. A).pdf (1.09 MB)
ExampleCode_DAC_AD5293.zip (79.43 KB)
AD5293数字电位器阻值调节问题.pdf (933.49 KB)

使用特权

评论回复
板凳
877049204| | 2018-10-21 12:27 | 只看该作者
数字电位器不能用万用表测阻值

使用特权

评论回复
地板
Prry| | 2018-10-21 21:15 | 只看该作者
//spi bus device
static struct spi_dev_device        ad5290_spi_dev[3];
extern struct spi_bus_device        spi_bus1;
static void ad5290_spi_cs0(unsigned char state)
{
        if (state)
                GPIO_SetBits(GPIOC, GPIO_Pin_7);
    else
                GPIO_ResetBits(GPIOC, GPIO_Pin_7);
}
static void ad5290_spi_cs1(unsigned char state)
{
        if (state)
                GPIO_SetBits(GPIOC, GPIO_Pin_9);
    else
                GPIO_ResetBits(GPIOC, GPIO_Pin_9);
}
static void ad5290_spi_cs2(unsigned char state)
{
        if (state)
                GPIO_SetBits(GPIOA, GPIO_Pin_12);
    else
                GPIO_ResetBits(GPIOA, GPIO_Pin_12);
}

//init
void ad5290_init(void)
{       
        GPIO_InitTypeDef GPIO_InitStructure;
       
        //spi cs
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
        GPIO_SetBits(GPIOC,GPIO_Pin_7);
        GPIO_SetBits(GPIOC,GPIO_Pin_9);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        GPIO_SetBits(GPIOA,GPIO_Pin_12);
                /*device init*/
        stm32f1xx_spi_init(0,0,&spi_bus1,8);        /*spi bus init*/
                //device 0
        ad5290_spi_dev[0].spi_cs = ad5290_spi_cs0;
        ad5290_spi_dev[0].spi_bus = &spi_bus1;
                //device 1
        ad5290_spi_dev[1].spi_cs = ad5290_spi_cs1;
        ad5290_spi_dev[1].spi_bus = &spi_bus1;
                        //device 2
        ad5290_spi_dev[2].spi_cs = ad5290_spi_cs2;
        ad5290_spi_dev[2].spi_bus = &spi_bus1;
}

/**
  * [url=home.php?mod=space&uid=247401]@brief[/url]  set resistance out
  * @param  \set_value limits from 0x00 to 0xff
  *                        \index sensor num,1 or 2 or 3
  * @retval None
  */
void ad5290_set_out(u8 set_value,u8 index)
{
        if(index < 1 || index > 3)
                return;
        spi_send(&ad5290_spi_dev[index-1],&set_value,1);
}       


AD5290 代码,接了3片,用的是以下spi封装代码,参考。
https://blog.csdn.net/qq_20553613/article/details/78998617

使用特权

评论回复
5
chest20090909|  楼主 | 2018-10-21 22:34 | 只看该作者
877049204 发表于 2018-10-21 12:27
数字电位器不能用万用表测阻值

请问怎么验证数字电位器驱动正确呢,是给数字电位器输入电压然后看抽头电压吗

使用特权

评论回复
评论
877049204 2018-10-22 16:03 回复TA
可以分压测电压。数字电位器本来就是带电的,万用表测电阻不能带电测 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

632

帖子

4

粉丝