MAX195和MAX194模數轉換器(ADC)與TMS320C3X評估模塊接口的應用筆記。給出了示例演示代碼。演示軟件配置 TMS320C30,使 FSR1 和 DR1 為輸入,CLKR1 和 XF1 為輸出。為了讀取MAX194/MAX195,軟件將XF1輸出短暫驅動為低電平。演示軟件輪詢串行接收器,直到收到完整的幀。由于這只是一個接口演示,軟件只需將接收到的數據字寫入 EVM 主機數據端口即可。
概述
MAX195 16位ADC可通過串行接口連接至德州儀器TMS320C30 DSP。該接口使用四根電線加接地。本應用筆記說明如何將MAX194/MAX195評估板連接至TMS320C3X評估模塊。
示例程序是使用 TMS320C3X/4X COFF 匯編程序版本 4.50 和 TMS320C3X/4F COFF 鏈接器版本 4.50(1987 年至 1992 年版權歸德州儀器公司所有)組裝的。
MAX194/MAX195評估板與TMS320C3X EVM接口
Maxim的MAX194/MAX195評估板可與德州儀器TMS320C3X評估模塊接口,如下所示:
根據表1設置MAX194/MAX195評估板跳線。
將2 x-5引腳伯格條焊接到MAX194/MAX195評估板J3區域。這 PC 板已接線,如表 2 所示。
將+5V電源連接至MAX194/MAX195評估板。
連接 TMS320C3X EVM 和 MAX194/MAX195 之間的 10 針帶狀電纜 評估板。
運行演示軟件。
| 跳線 | 位置 | 功能 |
| JU1 | Closed | 將MAX195 SCLK接地 |
| JU3 | EXT | TMS320 CLKR1驅動MAX195轉換時鐘。 |
| JU4 | CS = 接地 | 將MAX195/CS接地 |
| JU5 | QSPI | TMS320 XF1 驅動 MAX195 CONV。 |
| JU6 | Open | MAX195復位/校準命令 |
| JU7 | UNI 或 OPEN | 選擇單極或雙極傳遞函數 |
| Pin | MAX195 | TMS320 | Pin | MAX195 | TMS320 |
| 1 | DGND | GND | 2 | Active-Low EOC | FSR1 |
| 3 | Not used | 4 | DOUT | DR1 | |
| 5 | Not used | 6 | Not used | ||
| 7 | Not used | 8 | Active-Low CONV | XF1 | |
| 9 | CONCLK | CLKR1 | 10 | DGND | GND |
演示軟件(請參閱下面的程序代碼列表)配置 TMS320C30,以便 FSR1 和 DR1 為輸入,CLKR1 和 XF1 為輸出。該軟件使用 XF1 輸出來啟動轉換。XF1脈沖驅動MAX194/MAX195轉換啟動輸入。CLKR1輸出為MAX194/MAX195提供轉換時鐘。MAX194/MAX195的數據輸出由DR1輸入端接收。FSR1幀啟動信號由MAX194/MAX195 EOC(轉換結束)信號驅動,該信號標志著串行幀的開始。
為了讀取MAX194/MAX195,軟件將XF1輸出短暫驅動為低電平。演示軟件輪詢串行接收器,直到收到完整的幀。由于這只是一個接口演示,軟件只需將接收到的數據字寫入 EVM 主機數據端口即可。
TMS320C3x/4x COFF 匯編程序,版本 4.50
版權所有 (c) 1987-1992,德州儀器公司
TMS320C30 串行端口初始化
項目:MAX195 評估板與 TMS320C3X EVM
項目文件接口 = MAX195I
文件名 = MAX195I。ASM
命令文件 = MAX195I。CMD
使用以下命令進行編譯:
asm30 MAX195I -l
lnk30 MAX195I.CMD
引腳分配:

注意:跳線 JU8 必須打開
,CS 必須連接到 GND
時序圖:

最快時鐘 1MHz = (1 / 1000 nsec)
最小接收器定時器周期 = 4H
接收計時器周期 = 4 = 0.9375MHz
(系統時鐘頻率 = 30MHz)
字圖:

.sect "vectors"
reset .word init
int0 .word init
int1 .word init
int2 .word init
int3 .word init
xint0 .word init
rint0 .word init
xint1 .word init
rint1 .word init
tint0 .word init
tint1 .word init
dint .word init
.data
STCK .word 0809F00H ; initial stack pointer
CTRL .word 0808000H ; peripheral interface base address
HOST_DATA .word 0804000H ; host data port address
IOF_AMASK .set 0000EH ; clear all XF1 bits in IOF register
IOF_SET_XF1 .set 00060H ; make XF1 pin an output; value = 1
IOF_RESET_XF1 .set 00020H ; make XF1 pin an output; value = 0
IOF_INPUT_XF1 .set 00080H ; make XF1 pin an input; read its value
FS_AMASK .set 0F0FFH ; mask for an FS pin
SET_FS .set 00600H ; make FS a high output
RESET_FS .set 00200H ; make FS a low output
GET_FS .set 00800H ; input mask for FS pin
D_AMASK .set 0FF0FH ; mask for a Data pin
SET_D .set 00060H ; make D a high output
RESET_D .set 00020H ; make D a low output
GET_D .set 00080H ; input mask for D pin
CLK_AMASK .set 0FFF0H ; mask for a CLK pin
SET_CLK .set 00006H ; make CLK a high output
RESET_CLK .set 00002H ; make CLK a low output
GET_CLK .set 00008H ; input mask for CLK pin
Serial Port Global Control Register
SerGlob1 .word 08100280H
08000000H: RRESET - reset / enable the receiver
0080H: RCLKSRCE - use internal receive clock (CLKR pin is an output)
0200H:
RVAREN - Receiver Variable Data Rate
00100000H: RLEN = 2 bytes (16 bits)
Pin Assignment Register for FSX, CLKX, DX
SerPrtX1 .word 00H
assign CLKX pin to general I/O
make CLKX an input
assign DX pin to general I/O
make DX an input
assign FSX pin to general I/O
make FSX an input
Pin Assignment Register for FSR, CLKR, DR
SerPrtR1 .word 0111H
0001H: assign CLKR pin to serial port clock
0010H: assign DR pin to serial port receive data
0100H: assign FSR pin to serial port frame start
Serial Port Timer Global Control Register
SerTim1 .word 03C0H
XHLD 0=hold transmit timer
XC/P 0=pulse mode
XCLKSRC 0=CLKX pin increments the counter
0040H: RGO=1 -- start the receive timer
0080H: RHLD 1=run receive timer
0100H: RC/P 1=clock (50% duty cycle)
0200H: RCLKSRC 1=use 7.5MHz time base (30MHz system clock/4)
Serial Port Timer Period Register
SerTim1Val .word 040000H
0 H: Transmit Counter Period
4 H: Receive Counter Period
Receive Timer Period = 4 = 0.9375MHz
.text
init
LDI 0,ST ; initialize status register
LDI 0,DP ; point data page pointer into rom
LDI @STCK,SP ; initialize stack pointer
; start with XF1 high
;
LDI IOF,R1 ; get XF1 settings
AND IOF_AMASK,R1 ; don't touch XF0 settings
OR IOF_SET_XF1,R1 ; make XF1 output a high value
LDI R1,IOF ; write new XF1 settings
; initialize serial port
;
LDI @CTRL,AR0 ; peripheral interface address
LDI @HOST_DATA,AR1 ; host interface address
LDI @SerTim1Val,R0
STI R0,*+AR0(86) ; serial ch1 timer period
LDI @SerGlob1,R0
STI R0,*+AR0(80) ; serial global register
LDI @SerPrtX1,R0
STI R0,*+AR0(82) ; serial transmit control register
LDI @SerPrtR1,R0
STI R0,*+AR0(83) ; serial receive control register
LDI @SerTim1,R0
STI R0,*+AR0(84) ; serial ch1 timer register
XF1 signal is named Active-Low CONV to MAX195 EVKIT
This is how we set XF1:
LDI IOF,R1 ; get XF1 settings
AND IOF_AMASK,R1 ; don't touch XF0 settings
OR IOF_SET_XF1,R1 ; make XF1 output a high value
LDI R1,IOF ; write new XF1 settings
This is how we clear XF1:
LDI IOF,R1 ; get XF1 settings
AND IOF_AMASK,R1 ; don't touch XF0 settings
OR IOF_RESET_XF1,R1 ; make XF1 output a low value
LDI R1,IOF ; write new XF1 settings
next_sample:
generate conversion start pulse
LDI IOF,R1 ; get XF1 settings
AND IOF_AMASK,R1 ; don't touch XF0 settings
OR IOF_RESET_XF1,R1 ; make XF1 output a low value
LDI R1,IOF ; write new XF1 settings
AND IOF_AMASK,R1 ; don't touch XF0 settings
OR IOF_SET_XF1,R1 ; make XF1 output a high value
LDI R1,IOF ; write new XF1 settings
wait until serial receive is complete
loop
LDI *+AR0(80),R2 ; read global control register
AND 01H,R2 ; test the receiver ready bit
BZ loop ; loop until data is received
get the received data
LDI *+AR0(92),R3 ; copy received data into R3
this demo application does no processing --
it just makes the value available to the
TMS320C3X EVM's host.
STI R3,*+AR1(0) ; send R3 to host
LDI 100,R0 ; delay
wait_loop:
SUBI 1,R0
BNZ wait_loop
BR @next_sample ; this program runs forever
.end

圖1.圖解的。

圖2.定時。
審核編輯:郭婷
-
接收器
+關注
關注
15文章
2644瀏覽量
77118 -
德州儀器
+關注
關注
123文章
1970瀏覽量
145125 -
adc
+關注
關注
100文章
7511瀏覽量
555921
發布評論請先 登錄
在TMS320C3x Users Guide中的Table 5-2的Case 4中,為什么符號位sIEEE由1變為0?
TMS320VC33 pdf,TMS320VC33 data
TMS320C3x的C和匯編語言混合編程及中斷的C語言實現
TMS320C3x DSP的C和匯編語言混合編程及中斷的C語
浮點除法運算在TMS320C3X DSP中的實現
Interfacing the MAX195 ADC to
TMS320C3x DSP和PC機的異步串行通信設計
單片機89C51與A/D轉換器MAX195的接口設計
TMS320C54x評估板(EVM)操作的詳細描述
ADC TLC5540/10與DSP入門套件TMS320C54x的接口
MAX195 ADC與TMS320C3X評估模塊的接口
評論