应用笔记 4298

为DS1845/DS1855数字电位器构建按键接口


摘要 : 本应用笔记介绍如何使用简单的微控制器构建一个与DS1845/DS1855非易失数字电位器连接的简单接口。按键按下的操作被转换成I²C命令,向上或向下调节数字电位器的抽头位置。

引言

本应用笔记介绍了一种DS1845DS1855非易失数字电位器的简单接口方案,利用Microchip®的PIC12F509实现。

硬件设置

图1所示原理图描述了按键与微控制器的连接,也说明了I²C接口的实现方案。

三个瞬态按键开关分别用于递增(UP)、递减(DWN)和中间值(MID)设置。按下按键时,开关迫使对应的微控制器通用I/O (GP0、GP1和GP3)口置低。因为微控制器内部有上拉电阻(可选),可以确切选择这些I/O口。如果微控制器工作在低电流休眠模式,IO口的电平变化也能产生唤醒中断信号。另一输入开关为单刀双掷开关,连接到微控制器的GP2引脚,通过软件编程选择POT0和POT1。

SDA、SCL和LED连接到GP5、GP4和GP0。SDA和SCL具有4.7kΩ上拉电阻,直接与数字电位器的通信接口连接。LED和MID瞬态开关共用GP0引脚。大部分时间段,GP0作为输入引脚,按下MID按键时将GP0拉低。然而,如果按下其它开关的任何一个或两个同时按下,PIC®输出低电平,点亮LED。这种情况下,LED将在MID按下时被点亮,其它按键按下时,LED由PIC驱动。R1、R2、R3可选,使用PIC12F509时并不需要这些电阻。

图2给出了评估DS1845/DS1855时的特定连接方式。跳线器用来选择地址总线,隔离开所使用的电源VCC (VDD)以及SDA和SCL。

图1. PIC12F509接口电路
图1. PIC12F509接口电路

图2. DS1845/DS1855数字电位器与PIC控制器的连接
图2. DS1845/DS1855数字电位器与PIC控制器的连接

固件说明

这个项目的固件采用汇编语言编写,由MPLAB IDE (7.31版)进行编译。该编译软件可以从Microchip免费获得。整个软件占用的指令空间低于512字节(闪存),数据空间低于14字节(RAM)。

指令分为5个模块:初始化、读操作、递增调节、递减调节、中间值设置。固件简单地以连续轮询检测输入引脚进行循环。因为软件的固有延迟和软件处理逻辑限制,采用了开关去抖,减少噪声引起开关的误操作。

一旦PIC电源上电或从休眠状态唤醒(如果休眠状态使能),将运行初始化模块。初始化模块运行后,为相应的寄存器、标志位及变量赋值。执行这些指令后,从循环中调用读操作或写操作,通过I²C接口与数字电位器通信。

数字电位器的I²C读操作仅发生在RD_FLAG标志置位时。初始化期间标志位被置位,此后,任何按键操作将改写数字电位器的数值。数字电位器的电阻值改变后或器件开启后,执行一次I²C读操作;如果没有按下UP、DWN或MID按键,总线上不会发生通信操作。例如:如果数字电位器用来控制电源校准,这时接通按键控制器可实现在线编程。当前的数字电位器抽头位置将在执行I²C写命令之前读取。I²C写指令完成后,RD_FLAG将重新置位,通过I²C读取新的数字电位器数值。

运行UP、DWN和MID模块后将执行读操作。运行这些模块时,对应的引脚被拉至低电平;一旦检测到引脚的高电平状态,将立即退出相应的程序模块,不会产生任何I²C通信。如果检测到低电平状态,软件将按照逻辑流程执行相应的程序模块。

可以从Maxim的FTP网站下载程序源代码(.asm文件)。

功能说明

该项目固件和硬件提供几种不同操作,对DS1845/DS1855数字电位器的抽头位置进行编程。开关和LED的功能如下:

POT0/1 (选择触发开关) 该开关选择下一个循环需要控制的数字电位器。改变开关S4的状态选择POT0或POT1,这将产生I²C读操作,不会影响LED。
点击MID、UP或DWN按键(< 400ms) 按下其中一个按键,所选择的数字电位器的抽头位置将递增(UP)、递减(DWN)或设置为中间值(MID)。执行I²C写操作时,LED将马上点亮;I²C读操作将在下一循环产生。
按下并保持UP或DWN按键(> 400ms) 按下并保持UP或DWN按键时,所选择的数字电位器将进入快速递增或递减模式。数字电位器的抽头位置将连续变化,直到释放按键或达到最大/最小值。执行I²C写操作时,LED将点亮,并在释放按键之前保持点亮状态。释放按键后,将在下一循环执行I²C读操作。
按下并保持UP按键,然后点击DWN按键 按下并保持UP按键,所选择的数字电位器的抽头位置将开始递增。然后,在UP按键仍处于按下状态时,点击DWN按键,抽头位置将直接置于最大电阻位置。LED始终处于点亮状态,直到释放按键。释放按键后,将在下一循环执行I²C读操作。
按下并保持DWN按键,然后点击UP按键 按下并保持DWN按键,所选择的数字电位器的抽头位置开始递减。在DWN按键按下的同时,点击UP按键,所选择电位器抽头位置将直接置于最小电阻值0x00。LED始终处于点亮状态,直到释放按键。释放按键后,将在下一循环执行I²C读操作。
LED闪烁3次 PIC上电初始化或当看门狗定时器(使能情况下)引起系统复位时,LED将闪烁3次。
LED连续快速闪烁 发生I²C通信故障时,LED将连续闪烁。故障解除后,LED将恢复正常状态。通过检测器件地址是否正确、是否连接了I²C总线进行故障排查。

结论

本应用笔记介绍了一种DS1845/DS1855接口方案,利用简单的高性价比控制器实现。按键输入将被转化成I²C命令,无需主机控制,即可实现数字电位器的递增、递减调节,或将其设置在数字电位器的中间值。

关于该应用笔记的任何问题/建议/意见,请发送邮件至: (English only)。
下一步
EE-Mail 订阅EE-Mail,接收关于您感兴趣的新文档的自动通知。
© , Maxim Integrated Products, Inc.
The content on this webpage is protected by copyright laws of the United States and of foreign countries. For requests to copy this content, contact us.
APP 4298:
应用笔记 4298,AN4298, AN 4298, APP4298, Appnote4298, Appnote 4298