历史上的今天
返回首页

历史上的今天

今天是:2025年02月01日(星期六)

2021年02月01日 | 基于MSP430F149操作数字电位器ISL23425WFVZ

2021-02-01 来源:eefocus

本文主要讲述基于MSP430F149操作数字电位器ISL23425WFVZ,包含引脚功能、数据结构分析、编写代码、测试验证结果。

一、硬件连接

1.数字电位器ISL23425WFVZ的引脚功能如表1所示;
Table 1 ISL23425WFVZ的引脚功能表在这里插入图片描述

2.根据数据手册中的引脚功能描述表,连接该电位器与MCU,连接示意图如图1所示;
Figure 1 电位器ISL23425WFVZ与MCU连接示意图

Figure 1 电位器ISL23425WFVZ与MCU连接示意图

二、数据结构分析

1.根据该数字电位器的数据手册可知,该电位器与MCU的通信方式为:SPI。

2.根据该数字电位器的数据手册可知,该电位器内部寄存器的结构如表2所示。
Table 2 ISL234525WFVZ内部寄存器的结构在这里插入图片描述
3.ISL23425WFVZ内部寄存器功能解析

①指令Instruction部分

Table 3 Instruction中I2~I0组合值的功能说明
在这里插入图片描述
Table 4 Instruction中R4~R0组合值的功能说明
在这里插入图片描述
②地址Address部分
Table 5 Address中A4~A0组合值的功能说明
在这里插入图片描述
③数据Data Byte部分
Data Byte:控制输出电阻值,Data Byte的值为0-255,对应十六进制为00H-FFH;输出电阻值范围是0~10KΩ。输出的正向、反向阻值与滑片位置的对应关系如图2所示。
在这里插入图片描述
Figure 2 正向、反向电阻值与滑片位置的对应关系

4.ISL23425WFVZ的SPI数据处理

ISL23425WFVZ的2Bytes写操作时序如图3所示。

在这里插入图片描述Figure 3 ISL23425WFVZ的2Bytes写操作时序图

①根据ISL23425WFVZ的2Bytes写操作时序图,将其数据从低位到高位进行分组:每16位一组,分为2个大组,共32位。不足32位时,往高位补0。

②发送数据时,从高位到低位、按8位一组进行发送。

三、基于MSP430F149,根据第二部分的数据结构分析,用C语言编写代码,令WR0输出10KΩ

#include "msp430f149.h"

unsigned int pointer;                       // 16-bit value to write

static unsigned int DAT[2] ={0X001B,0XE0F4};//实际上,① DAT[1]为0XE0FF,即DATA BYTE为0XFF=255时,阻值为10.9K;

                                                    //② DAT[1]为0XE0F4,即DATA BYTE为0XF4=244时,阻值为10K;

                                                    //③ DAT[1]为0XE000,即DATA BYTE为0X00=0时,阻值为125Ω.

void main( void )

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;

  P3SEL |= 0x0A;                            // P3.1,3 SPI option select: P3.1-MOSI,P3.3-CLK

  P3DIR |= 0x0E;                            // P3.1,2,3 output direction: P3.2-CS

  P3OUT &= ~0x04;                           // CS Reset

  ME1 |= USPIE0;                            // Enable USART0 SPI

  UCTL0 |= CHAR + SYNC + MM;                // 8-bit SPI Master **SWRST**

  UTCTL0 = CKPH + CKPL + SSEL1 + STC;       // Inv. delayed, SMCLK, 3-pin

  UBR00 = 0x02;                             // ACLK/2 for baud rate

  UBR10 = 0x0;                              // ACLK/2 for baud rate

  UMCTL0 = 0x0;                             // Clear modulation

  UCTL0 &= ~SWRST;                          // Initialize USART state machine

  pointer = 0;                              // Clear pointer

  CCTL0 = CCIE;                             // CCR0 interrupt enabled

  CCR0 = 64-1;                              // ~ 390Hz Clock period

  TACTL = TASSEL_2 + MC_1;                  // SMCLK, Up-mode

  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt

}

// Timer A0 interrupt service routine

#pragma vector=TIMERA0_VECTOR

__interrupt void Timer_A(void)

{

  P3OUT |= 0x04;                             // CS set

  P3OUT &= ~0x04;                            // CS reset

  TXBUF0 = DAT[pointer] >> 8;

  TXBUF0 = DAT[pointer];

  pointer++;

  pointer &= 0x01;

}

四、测试验证输出的阻值

1.将万用表的旋钮旋转至电阻档,如图4所示;

在这里插入图片描述Figure 4 万用表挡位旋钮位置

2.万用表的两支表笔分别连接至ISL23425WFVZ的RL0(13引脚)与RW0(12引脚);

3.读取万用表显示的数值。

在这里插入图片描述Figure 5 万用表测试ISL23425WFVZ输出的设定阻值

数字电位器ISL23425的数据手册链接:https://pdf1.alldatasheet.com/datasheet-pdf/view/421238/INTERSIL/ISL23425WFRUZ-TK.html

本文到此结束,若有不当之处,欢迎各位看官指正。


推荐阅读

史海拾趣

问答坊 | AI 解惑

【急求】现金5000RMB急求pci转8串口TTL设计

【急求】现金5000RMB急求pci转8串口TTL设计 要求:    制作一块pci板卡,可以在“设备管理器”里面扩展出8个串口,对应控制8路TTL电平收发设备。速率要求低。19200波特率。    目前市面上有很多公司生产pci转串口的多用户卡 ...…

查看全部问答>

急!evc下串口同步采集的数据有时候多有时候少有时候正确

如提: evc环境 串口通信, 同步。 方法:单片机中已经采集的48000直接的数据,存在一个rom中,上位机从中读取。 在release版本下,数据一般正确,有时候不正确 在debug版本下,数据一直不正确 代码执行过程: 先发送一个字符0x03,然后开始 ...…

查看全部问答>

磁卡开发套件

哪位兄台有磁卡开发套件资料,能否给小弟我一份,我现在正在寻找这方面的资料,又找不到购买渠道,只好烦劳各位大哥大姐了,,有的话请一定发来给我,付钱都可以的。或是知道有哪个厂家卖磁卡开发套件,也可以告诉我一声,小弟我将不胜感激!我的Em ...…

查看全部问答>

是用纯汇编做固件有前途还是用C做嵌入式驱动有前途啊?

现在有两个选择哦 一个用汇编做U盘MP3类的固件 一个是做嵌入式系统的底层(通讯类),不知道哪个更有前途 给点意见…

查看全部问答>

关于FPGA

请高手指教一下: 用FPGA怎么实现伪随机序列发生器的设计…

查看全部问答>

wifi无委测试软件

硬件:PXA310+sido8686:系统wince6.0wifi已经调试通过了,可以正常联网。现在整个终端去无委过认证。wifi需要测试传导杂散等参数,需要终端上有一个小软件配合测试。软件要求可以控制ch power rate等。有人做过这个认证吗?如果有做过同样认证的前 ...…

查看全部问答>

请教各位一个问题啊

各位电子行业大虾们,我想请教大家一个问题,还望得到大家的解惑啊,请问电子行业的未来10年是硬件的发展空间大还是软件的前景广阔呢?现在个人的感觉是硬件的前景没有软件好啊………

查看全部问答>

其实我想说我们的launchpad可以有很多的扩展板

发一些launchpad的boosterpack,都不是官方的扩展板,供大家来开拓下思路:1、实时时钟和EEPROM扩展板2、红外扩展板3、LED显示扩展板4、以太网扩展板(调试中的)5、LCD扩展板是不是特别多…

查看全部问答>

课后练习二十二之 UCOS 简单信号量

课后练习二十二之 UCOS 简单信号量     1.信号量(摘自任哲老师的书) 信号量是一类事件。使用信号量最初目的,是为了给共享资源设立一个标志,该标志表示该共享资源被占用情况。这样,当一个任务在访问共享资源之前,就可以先对这个 ...…

查看全部问答>

求指导:近距离控制LED指示灯的亮灭

我参与的项目里面需要实现一个功能,近距离无线控制LED灯的开和关,具体需求如下: 在一个房间里,有很多盒子,每个盒子一个编号,且每个盒子上都有两个灯,红灯和绿灯。 1。随便拿一个盒子到指定地点,能够采集到该盒子的编号。 2。能够控制指 ...…

查看全部问答>