本文主要講述基于MSP430F149運算元字電位器ISL23425WFVZ,包含引腳功能、資料結構分析、撰寫代碼、測驗驗證結果,
一、硬體連接
1.數字電位器ISL23425WFVZ的引腳功能如表1所示;
Table 1 ISL23425WFVZ的引腳功能表 
2.根據資料手冊中的引腳功能描述表,連接該電位器與MCU,連接示意圖如圖1所示;

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
本文到此結束,若有不當之處,歡迎各位看官指正,
聯系方式:
QQ:1925973299
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/176473.html
標籤:其他
