0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用软件编程实现高分辨率数字电位器的解决方法

电子设计 来源:今日电子 作者:曾英平 2020-09-18 16:33 次阅读

巧妙的利用软件编程,将X9241内部的四个64抽头数字电位器组成一个高分辨率低成本的数字电位器

数字电位器DCP)是专为替代传统机械电位器、可变电阻器而设计的新型集成电路。其通过I2C、SPI以及CS,U/D,INC三线方式与MCU接口,可实现应用程控调节,也有按钮控制方式,从而实现与传统机械电位器或可变电阻器相同的电位、电阻调节功能的特殊集成电路。与传统机械电位器相比,数字电位器具有数字调节、长寿命、易于装配、节省空间、不受振动影响等突出优点,已被广泛应用于医用设备、仪器仪表工业控制、计算机、家用电器、手机数码产品等各个领域。

在有些应用中,如激光二极管的动态偏置调节,使用数字电位器或者微调DAC来控制电压,就受到了分辨率、接口、成本的限制。为了解决这类问题,我们将在这里介绍使用低分辨率(64抽头)、低成本的IntersilXicor公司I2C总线控制数字电位器X9241组成一个高分辨率(8001抽头)的数字电位器的解决方法。

实现高分辨率的原理

我们假设有三个数字电位器,POT1和POT2为64抽头DCP,POT3为128抽头DCP,其中POT1和POT2用作POT3的VH和VL的设置,并且必须保证POT1和POT2始终为“1”个位置间隔,那么就有63种不同的电压间隔施加到POT3上。理论上,当POT3在特殊电压抽头127和下一个电压间隔的抽头0之间跳动时,应该还有一个多余的抽头位置,但是这些抽头不是多余的,它们的作用可以改善输出的线性度,因为在相邻的两个电压间隔中的抽头0和抽头127的电压是一样的。对于63个不同间隔的每一个,又借助127个不同的输出,就会有8001(63×127=8001)个不同的Vw输出可以在VH和VL之间获得。图1就是说明的这个概念。

如何使用X9241实现高分辨率(8001抽头)

Intersil(Xicor)公司的X9241把四个非易失性数字电位器集成在一个单片CMOS微电路中,它的功能框图如图2。X9241包含四个电阻阵列,每个阵列包含63个电阻单元。在每个单元之间和两个端点都有可以被滑动单元访问的抽头点。滑动单元在阵列中的位子由用户通过I2C总线控制。每个电阻阵列与一个滑动端计数寄存器(WCR)和四个8位数据寄存器联系在一起,四个数据寄存器和滑动端计数寄存可以由用户直接写入和读出。滑动端计数寄存器的内容控制滑动端在电阻阵列中的位置。数据寄存器的内容可以传输到滑动端计数寄存器以设置滑动端位置,当前滑动端的位置也可以传输到任何与之联系的数据寄存器中。滑动端计数寄存器是易失性的,器件上电时,滑动端计数寄存器自动的装入数据寄存器0(R0)中的值。四个数据寄存器是非易失性的,如果在应用中不需要对电位器有多种设置保存时,可以用作通用存储单元,用来保存系统参数或用户数据。

X9241内部有一个特殊的机制,可以把相邻的数字电位器逐个串联。允许多达253个不同抽头位置(当把全部DCP逐个串联的时候)。如图3所示,我们将POT1和POT2(X9241内部相邻的两个DCP)串连起来,用POT0为其提供VH(可以调节的),用POT3提供VL(可以调节的)。那么我们就得到了如前面所述原理一样的电路图。

POT0和POT3为POT1-2(POT1和POT2串连以后的叫法)设置端电压。也必须保证POT1和POT3始终为“1”个位置间隔,那么就有63种不同的电压间隔施加到POT1-2上。随着POT1-2的滑动端位置向上或者向下移动到端点时,POT0和POT3的位置也要在必要时进行调整。如果POT1-2的滑动端增加到超过127时,那么POT0和POT3将增加“1”,而POT1-2的滑动端将返回到抽头0。同样,POT1-2的滑动端减低到抽头0以下时,POT0和POT3的滑动端将减小“1”,并将POT1-2的抽头设置到127。这一点,请读者在理解后面所附的程序清单时注意。

X9241极适用于这个任务,因为其内部正好有四个独立的DCP,并且有相邻DCP串联的机制,而且其采用I2C总线控制接口,抽头位置可以在软件中直接改变而不需要通过每个中间位置转换。

图4是使用X9241U(49.37K、49.38K、49.32K、49.24K)器件对电路进行测试得到的相邻抽头之间的典型结果。大图表示每个抽头的滑动端电压占所加总电压的百分比,其中插图为相邻抽头之间的分辨率占所加总电压的百分比。

使用X9241实现高分辨率的软件代码

为了方便理解实现控制的细节,我们提供了C语言源代码(代码由Xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的I2C硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现DCP的高分辨率控制。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电位器
    +关注

    关注

    14

    文章

    1013

    浏览量

    66920
  • 软件
    +关注

    关注

    69

    文章

    5001

    浏览量

    87914
  • 分辨率
    +关注

    关注

    2

    文章

    1071

    浏览量

    41993
收藏 人收藏

    评论

    相关推荐

    如何利用单片机内置ADC实现高分辨率采样

    相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现高分辨率时,第一时间会想到采用一个较高位数的外置ADC去实现。可是高分辨率
    发表于 01-28 07:37

    怎么实现通用型线性数字电位器在音响系统中的应用?

    如何利用单片机对普通低分辨率线性数字电位器进行指数化及高分辨率的改造,使通用型数字
    发表于 04-08 06:28

    怎么实现高分辩率数字电位器的设计?

    本文提出了一种软件、硬件结合的方法,可使电位器的中间抽头数达到8 001个,分辨率达到O.008%。
    发表于 04-25 06:27

    如何实现DCP的高分辨率控制?

    实现高分辨率的原理是什么如何使用X9241实现高分辨率
    发表于 04-27 06:54

    如何实现连续脉冲信号的高分辨率延迟?

    如何实现连续脉冲信号的高分辨率延迟?
    发表于 04-30 06:07

    如何利用先进的热电偶和高分辨率Δ-ΣADC实现高精度温度测量?

    如何利用先进的热电偶和高分辨率Δ-ΣADC实现高精度温度测量?
    发表于 05-12 07:01

    单片机内置ADC实现高分辨率采样的方法

    关注、星标嵌入式客栈,精彩及时送达[导读] 相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现高分辨率时,第一时间会想到采用一个较高位数的外置ADC去实现。可是
    发表于 12-08 07:03

    高分辨率数字电位器软件实现

    高分辨率数字电位器软件实现 引言 与机械电位器相比,
    发表于 01-25 11:00 1740次阅读
    <b class='flag-5'>高分辨率</b><b class='flag-5'>数字</b><b class='flag-5'>电位器</b>的<b class='flag-5'>软件</b><b class='flag-5'>实现</b>

    高分辨率指数式数字电位器在音响系统中的应用

      利用单片机对普通低分辨率线性数字电位器进行指数化及高分辨率的改造,使通用型数字
    发表于 10-26 11:26 2526次阅读
    <b class='flag-5'>高分辨率</b>指数式<b class='flag-5'>数字</b><b class='flag-5'>电位器</b>在音响系统中的应用

    利用单片机设计的高分辨率指数式数字电位器

    数字电位器的扩展系统中,主控单元可选用常见的8位或16位成熟单片机。这里我们主要针对InterSIL公司的低分辨率线性数字电位器X9313
    发表于 08-01 09:30 1770次阅读
    <b class='flag-5'>利用</b>单片机设计的<b class='flag-5'>高分辨率</b>指数式<b class='flag-5'>数字</b><b class='flag-5'>电位器</b>

    驱动高分辨率 SAR ADC

    就怎样利用低功率放大器来驱动高分辨率 SAR ADC 提供了额外的深入信息。 本视频探究了驱动高分辨率 ADC 时的一些权衡折衷方案,并讨论了解决这些问题的方法。 Speaker
    的头像 发表于 06-07 01:46 4524次阅读
    驱动<b class='flag-5'>高分辨率</b> SAR ADC

    提高数字电位器 (POT) 应用的分辨率

    提高数字电位器 (POT) 应用的分辨率
    发表于 11-14 21:08 1次下载
    提高<b class='flag-5'>数字</b><b class='flag-5'>电位器</b> (POT) 应用的<b class='flag-5'>分辨率</b>

    高分辨率数字调光器

    高分辨率数字调光器
    发表于 11-15 19:36 3次下载
    <b class='flag-5'>高分辨率</b><b class='flag-5'>数字调光器</b>

    AN4507_使用STM32定时通过抖动技术实现高分辨率PWM输出方法介绍

    AN4507_使用STM32定时通过抖动技术实现高分辨率PWM输出方法介绍
    发表于 11-21 08:11 9次下载
    AN4507_使用STM32定时<b class='flag-5'>器</b>通过抖动技术<b class='flag-5'>实现</b><b class='flag-5'>高分辨率</b>PWM输出<b class='flag-5'>方法</b>介绍

    高管洞察:高分辨率音乐需要高分辨率扬声

    所有关于高分辨率音乐传输和无损音频或空间音频格式的讨论都为时过早。很少有人能分辨出其中的区别——除非他们通过高分辨率、固态扬声聆听。 作者: MIKE HOUSHOLDER,xMEM
    发表于 03-21 14:57 920次阅读
    高管洞察:<b class='flag-5'>高分辨率</b>音乐需要<b class='flag-5'>高分辨率</b>扬声<b class='flag-5'>器</b>