我使用MSP430G2553的SPI控制TLV5618A的DAC
我嘗試了以下程式,但DAC的OUT一直沒有數值
SCLK和DIN都有波型
不知道是什麼原因
;=================================================================================
#include "msp430G2553.h" ;載入MSP430定義檔
;=================================================================================
; 中斷向量表
;=================================================================================
ORG 0FFFEh ;RESET中斷向量
DW START ;主程式位址
ORG 0FFECh ;USCI_TX_ISR
DW USCIA0_TX_USCIB0_TX_ISR ;
;=================================================================================
; 主程式
;=================================================================================
ORG 0C000h
START: MOV #0400h,SP ;初始堆疊位址
MOV #WDTPW+WDTHOLD,&WDTCTL ;關閉WDT
CLR.B &DCOCTL ; Select lowest DCOx and MODx settings
MOV.B &CALBC1_1MHZ,&BCSCTL1 ; Set range
MOV.B &CALDCO_1MHZ,&DCOCTL ; Set DCO step + modulation,DCO=16MHz
BIS.B #UCSWRST+UCSSEL_2,&UCA0CTL1 ;Enabled.USCI logic held in reset state.
;Use SMCLK to be BRCLK
BIS.B #UCMSB+UCMST+UCSYNC+UCMODE_0,&UCA0CTL0 ;第一個傳送位元為MSB
;設定為SPI的主設備
;設定為同步模式
;使用4線式SPI,當UCxSTE=0時從設備啟動
BIS.B #00000001b,P1DIR
BIS.B #00010100b,&P1SEL ;P1.2,4使用週邊模組(USCI)
BIS.B #00010100b,&P1SEL2 ;P1.2,4使用週邊模組(USCI)
MOV.B #2,&UCA0BR0 ;傳輸速度/2
MOV.B #0,&UCA0BR1
BIC.B #UCSWRST,&UCA0CTL1 ;Disabled.USCI reset released for operation.
BIS.B #UCA0TXIE,&IE2 ;致能UCA0TXIE
BIS.B #00000001b,P1OUT
BIS.B #GIE+CPUOFF,SR ;致能中斷功能+等待中斷
NOP
;=================================================================================
; USCIA0_TX_USCIB0_TX_ISR(R4,R5,R6,R7,R8,R9)
;=================================================================================
USCIA0_TX_USCIB0_TX_ISR:
BIC.B #00000001b,P1OUT ;高無效
BIC.B #UCA0TXIE+UCB0TXIE,&IE2 ;禁能UCA0TXIE、UCB0TXIE
BIT.B #UCA0TXIFG,&IFG2 ;USCI_A0 Transmit Interrupt?
JNZ USCIA0_TX_ISR
USCIB0_TX_ISR:
RETI
USCIA0_TX_ISR:
MOV.B #11111111b,&UCA0TXBUF ;高端位元傳送
BIC.B #00000001b,P1OUT ;低有效
WAITSPI_H: BIT.B #UCA0TXIFG,&IFG2 ;高8位發送完畢
JZ WAITSPI_H
MOV.B #11111111b,&UCA0TXBUF ;發送低8位
BIS.B #00000001b,P1OUT
BIS.B #UCA0TXIFG,&IFG2 ;清除UCA0TXIFG中斷旗號
BIS.B #UCA0TXIE,&IE2 ;致能UCA0TXIE
RETI
;===============================================================================
END