a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > TMS320VC5410的McBSP串行接口技術與程序設計

TMS320VC5410的McBSP串行接口技術與程序設計

作者: 時間:2006-05-07 來源:網絡 收藏

摘要:介紹TMS320VC5410的多功能串行接口(McBSP),并結合McBSP與高精度,高速率串行數據轉換器MAX5410之間的串行通信,從硬件和軟件兩個方面具體討論McBSP的設計方法。

本文引用地址:http://www.j9360.com/article/242261.htm

關鍵詞: McBSP SPI 模數轉換器

一、的串行接口技術

當今,嵌入式系統正迅速向低功耗、低成本、小體積、高性能、高速率方向發展。隨著串行接口技術的不斷成熟,逐步達到了以上設計要求,成為重要的接口方案。尤其在器方面,串行口的重要性體現得更加突出,幾乎所有的器都提供了一個或多個串行接口,并且隨著器的更新換代,其相應的串行接口,在功能上不斷強化,性能上不斷提升。

與并行接口相比,串行接口的最大優點就是減少了的引腳數目,降低了接口設計的復雜性。通常,串行接口提供全雙工同步操作,輸入和輸出數據以位為單位的串行方式進行處理。目前,世界各主要半導體制造商提交了許多不同的串行協議,其中一些已經成為工業標準。典型的串行協議包括:MOTOROLA(Austin,TX)的串行外圍設備接口SPI和隊列SPI(QSPI)、PHILIPS(Sunnyvale,CA)、National Semiconductor的微總線(microwire)。

圖1是典型的SPI協議。SPI協議采用主從設置,相互連接的設備中一個作為主設備,其他的設備作為從設備。接口連線主要包括以下4條信號線:

(1)串行數據輸入信號線,即MISO(Master InSlave Out);

(2)串行數據輸出信號線,即MOSI(Master Out-Slave In);

(3)移位時鐘信號線,即SCK;

(4)從設備片選信號線,即SS。

二、TMS320VC5410的多通道緩存串行口——McBSP

1.McBSP的功能特點

TMS320V5410是TI生產的第二代低功耗TMS320C5000系列定點數字信號處理器,提供了3個高速、全雙工、多通道緩存串行口McBSP,每個串行口可以支持128通道,速度達100Mbit/s。McBSP是在標準串行接口的基礎之上對功能進行擴展,因此,具有與標準串行接口相同的基本功能:

(1)全雙工通信;

(2)擁有兩級緩沖發送和三級緩沖接收數據寄存器,允許連續數據流傳輸;

(3)為數據發送和接收提供獨立的幀同步脈沖和時鐘信號;

(4)能夠與工業標準的解碼器、模擬接口芯片(AICs)和其他串行A/D和D/A設備直接連接;

(5)支持外部移位時鐘或內部頻率可編程移位時鐘。

此外,McBSP還具有以下特殊功能:

(1)可以與IOM-2、SPI、AC97等兼容設備直接連接;

(2)支持多通道發送和接收,每個串行口最多支持128通道;

(3)串行字長度可選,包括8、12、16、20、24和32位;

(4)支持μ-Law和A-Law數據壓縮擴展;

(5)進行8位數據傳輸時,可以選擇LSB或MSB為起始位;

(6)幀同步脈沖和時鐘信號的極性可編程;

(7)內部時鐘和幀同步脈沖的產生可編程,具有相當大的靈活性。

2.McBSP寄存器的訪問

TMS320VC5410包含3組多通道緩存串行口,每組多通道緩存串行口有23個寄存器與之相關,除RBR[1,2]、RSR[1,2]、XSR[1,2]之外,其中15個寄存器是可尋址寄存器。由于數據頁0的存儲空間限制,有些寄存器必須通過子地址尋址方式來訪問。SPSA_x是子地址寄存器,欲訪問指定的寄存器,只要把相應的子地址寫入SPSA_x就可以了。表1列出了McBSP的子地址寄存器。

表1 McBSP子地址寄存器

16進制地址 子地址 簡 稱 寄存器名稱
McBSP 0 McBSP 1 McBSP 2
0038 0048 0034 - SPSA_x 子地址寄存器
0039 0049 0035 0x0000 SPCR1_x 串行端口控制寄存器1
0039 0049 0035 0x0001 SPCR2_x 串行端口控制寄存器2
0039 0049 0035 0x0002 RCR1_x 接收控制寄存器1
0039 0049 0035 0x0003 RCR2_x 接收控制寄存器2
0039 0049 0035 0x0004 XCR1_1 發送控制寄存器1
0039 0049 0035 0x0005 XCR2_x 發送控制寄存器2
0039 0049 0035 0x0006 SRGR1_x 采樣率發生寄存器1
0039 0049 0035 0x0007 SRGR2_x 采樣率發生寄存器2
0039 0049 0035 0x0008 MCR_x 多通道寄存器1
0039 0049 0035 0x0009 MCR2_x 多通道寄存器2
0039 0049 0035 0x000A RCERA_x 接收通道使能寄存器A
0039 0049 0035 0x000B RCERB_x 接收通道使能寄存器B
0039 0049 0035 0x000C XCERA_x 發送通道使能寄存器A
0039 0049 0035 0x000D XCERB_x 發送通道使能寄存器B
0039 0049 0035 0x000E PCR_x 引腳控制寄存器

假如要對McBSP1的發送控制寄存器2(XCR2_1)進行設置。首先,將子地址0x0005寫入子地址寄存器(SPSA_1),與此同時,存儲單元0x0049就映射為發送控制寄存器2(XCR2_1)。然后,對存儲單元0x0049的讀寫操作,就相當于對發送控制寄存器2(XCR2_1)進行操作。

例:設置McBSP1的發送控制寄存器2(XCR2_1)。

XCR2_1.set 05h;發送控制寄存器2的子地址

SPSA_1.set 48h; 串行口1的子地址寄存器地址

REG_1 .set 49h; 存儲單元0x0049,在此被映射為發送控;制寄存器2

;將發送控制寄存器2的子地址寫入子地址寄存器

(SPSA_1)

STM #XCR2_1,SPSA_1

;將控制字0041h寫入存儲單元0x0049

STM #0041h,REG_1

3.McBST的SPI接口設計

McBSP的時鐘停止模式與SPI協議兼容。當McBSP處于時鐘停止模式時,發送器和接收器是內部同步時,因此可以將McBSP作為SPI主設備或從設備。當設置McBSP為主設備時,發送端輸出信號(BDX)就作為SPI協議的MOSI信號,接收端輸入信號(BDR)就作為SPI協議的MISO信號。發送幀同步脈沖信號(BFSX)作為從設備片選信號(SS),而發送時鐘信號(BCLKX)就與SPI協議的串行時鐘信號(SCK)相對應。由于接收時鐘信號(BCLKR)和接收幀同步脈沖信號(BFSR)與發送端的相應部分(BCLKX和BFSX)在內部相互連接,因此這些信號不用于時鐘停止模式。McBSP設置為主設備時,SPI協議連接如圖2所示。

三、McBSP接口舉例

1.高精度數模轉換器MAX541

MAX541是16位串行輸入、電壓輸出數模轉換器,+5V單電源供電。DAC輸出非緩沖,因此只有0.3mA的低供電電流和1LSB的低漂移誤差。DAC輸出范圍為0V至VREF。MAX541采用3線串行接口,兼容于SPITM/QSPITM/MICROWIRETM等串行通信協議。MAX541最高可以獲得500×10 3采樣點/秒的通過率,基本上滿足大多數應用的要求。MAX541采用8引腳DIP或SO封裝。MAX541各引腳描述如表2所列。

表2 MAX541引腳說明

引 腳 名 稱 功 能
1 OUT DAC輸出電壓
2 AGND 模擬地
3 REF 參考電壓輸入,與外部+2.5V參考電壓連接
4 CS 片選輸入
5 SCLK 串行時鐘輸入,占空比必須在40%與60%之間
6 DIN 串行數據輸出
7 DGND 數字地
8 VDD +5V供電電壓

2.McBSP與MAX541的接口電路

TMS320VC5410與MAX541的接口電路如圖3所示。

為使MAX541獲得高分辨率和高精度,可以由MAX873提供高精度的+2.5V低阻抗基準電壓源。為了消除高頻和低頻干擾,必須在REF引腳與模擬地之間接入退耦電容。由于AX541的數字輸入DIN與TTL/CMOS邏輯電平兼容,因此,可以與TMS320VC5410的串行輸出BDX直接連接。此外,必須嚴格隔離模擬地AGND和數字地DGND,最后在MAX541的AGND引腳上將模擬地和數字地連接在國起,構成星形的地線系統。在MAX541的輸出端接入電壓跟隨型運算放大器MAX495。表3是數字輸入代碼與模擬輸出電壓之間的對應關系。

表3 MAX541單極性接口

DAC數字輸入

模擬輸出VOUT

MSB LSB  
1111 1111 1111 1111 VREF·(65 635/65 536)
1000 0000 0000 0000 VREF·(32 768/65 536)=(1/2)VREF
0000 0000 0000 0000 VREF·(1/65 536)
0000 0000 0000 0000 0V

DSP的發送幀同步脈沖信號(BFSX)作為MAX541的片選信號(CS),而發送時鐘信號(BCLKX)作為MAX541的串行時鐘輸入。MAX541的三線接口電路時序如圖4所示。

圖4所示,在片選信號CS由高電平轉變為低電平的同時,串行數據按照從最高有效位到最低有效位的順序,在串行時鐘的每個上升沿逐位移入片內的輸入寄存器。

3.軟件設計

下面通過產生國個鋸齒波的例子來說明TMS320VC5410與MAX541之間的軟件設計。

當McBSP作為SPI通信的主設備,由它為從設備提供時鐘信號,并控制數據的傳輸過程。CLKX引腳上的時鐘信號必須在數據包傳輸期間使能,當沒有數據包傳輸時,時鐘信號根據所采用的極性保持高電平或者低電平。通常,通過McBSP的采樣率發生器產生10MHz時鐘信號,由BCLKX引腳輸出,作為MAX541的串行時鐘輸入信號。McBSP利用BFSX引腳為MAX541提供片選信號,因此必須正確設置幀脈沖發生器,使之在每個數據包傳輸期間產生幀同步脈沖,即在數據包傳輸的第一位轉變為有效狀態(在本例中為低電平有效,取決于MAX541的片選信號CS),然后維持有效狀態直到數據包發送完畢。此外,根據SPI傳輸協議,必須正確設置數據發送延遲時間(XDATDLY=01b),由圖4可知,在幀同步脈沖有效之后,大約延遲了一個時鐘周期才進行串行數據的發送。根據圖4所示的時序圖,為McBSP選擇一種合適的時鐘方案,即設置McBSP的時鐘停止模式。在本例中采用時鐘停止模式3(CLKSTP=10b、CLKXP=1),其時鐘方案如圖5所示。

表4列出了一些與SPI設置相關的寄存器位。

表4 與SPI設置相關的些寄存器位

寄存器位允許值描 述寄存器
CLKXM1設置BCLKX引腳為輸出PCR
CLKSM1采樣率發生器時鐘源至CPU時鐘SRGR2
CLKGDV1255定義采樣率發生器時鐘的降頻因子SRGR1
FSCM1設置BFSX引腳為輸出PCR
FSGM0在每個串行數據包傳輸期間BFSX信號有效SRGR2
FSXP1設置BFSX引腳為低電平有效PCR
XDATDLY01b提供正確BFSX信號啟動時間XCR2
RDATDLY01b提供正確的BFSX信號啟動時間RCR2

4.程序清單

程序首次初始化TMS320VC5410,使數據頁指針(DP)為0,并且禁止中斷。由于TMS320VC5410外接10Hz的時鐘頻率發生器,通過鎖相環電路倍頻至100MHz。接著初始化TMS320VC5410的多通道緩存串行口McBSP。最后,響應XRDY中斷發送數據。

.width 80

.length 100

.title transmit.asm

.mmregs

.defSTART

.def BSPR0

.def BSPX0

.include periphral.asm

.text

START:

;初始化DSP

STM#00E0h,PMST ;IPTR=000000001b,MP/MC=1,

;OVLY=1,DROM=0

LD #0,DP

LD #0,ARP

SSBX INTM ;禁止所有可屏蔽中斷

STM #0FFFFh,IFR ;清除所有中斷標志

STM #0020h,IMR ;允許BSPX0中斷

STM #0010h,TCR ;關閉DSP計時器,以便降低

;功耗鎖相環(PLL)倍頻*10->CLKOUT:100MHz

STM#1001000110000111b,CLKMD

Tststatus:

LDM CLKMD,A

AND #01h,A

BC Tststatus,AEQ

STM #1001000110000111b,CLKMD

;初始化McBSP

STM SPCR1_1,SPSA_1

STM #1000h,REG_1 ;CLKSTP=10(選擇SPI時鐘停

;止模式3)

STM SPCR2_1,SPSA_1

STM #0000h,REG_1 ;置McBSP于復位態時,以便

;對控制寄存器進行設置

STM PCR_1,SPSA_1

STM #0A0Fh,REG_1 ;CLKX->CLKR,FSX->FSR,

;DX->DR,FSXM=1(輸出),

;CLKXM=1(輸出),FSXP=1(低

;電平有效),CLKXP=1(在CLKX

;的下降沿發送數據)

STM RCR1_1,SPSA_1

STM #0040h,REG_1 ;每幀1個字,每個字16位

STM RCR2_1,SPSA_1

STM #0041h,REG_1 ;單幀,RFIG=0,RDATDLY=01

;(1位數據延遲)

STM XCR1_1,SPSA_1

STM #0040h,REG_1 ;每幀1個字,每個字16位

STM XCR2)1,SPSA_1

STM #0041h,REG_1 ;單幀XFIG=0,XDATDLY=01

;(1位數據延遲)

STM SRGR1_1,SPSA_1

STM #0009h,REG_1 ;CLKGDV=9,CLKG=(CLKOUT)/

;(1+CLKGDV)=10MHz

STM SRGR2_1,SPSA_1

STM #2313h,REG_1;GSYNC=0,CLKSP=0,

;CLKSM=1,FSGM=0

RPT #2 ;等待2個CLKSRG周期(CLKSRG=100MHz)

NOP

STM SPCR2_1,SPSA_1

STM #0040h,REG_1 ;啟動McBSP0采樣率發生

;器,/GRST=1

RPT #20 ;等待2個CLKG周期(CLKG)=10MHz)

NOP

STM SPCR2_1,SPSA_1

STM #0041h,REG_1 ;啟動McBSP0發送端,/XRST=1

STM SPCR2_1,SPSA_1

STM #00C1h,REG_1 ;啟動幀同步脈沖,/FRST=1

RPT #80

NOP

STM #08000h,AR1

RSBX INTM ;打開可屏蔽中斷

MVMD AR1,DXR1_1 ;向DXR送數

WAIT:IDLE1

B WAIT

BSPX0:

STM #0h,IFR

AMR AR1

MVDM AR1,DXR1_1

RETE

.end

結束語

本文介紹了TMS320VC5410的多通道緩存串行口(McBSP)的功能特點,并結合實例子著重討論了如何利用SPI接口協議實現McBSP與其他串行器件之間相互通信。



評論


相關推薦

技術專區

關閉