設(shè)計(jì)DSP常見(jiàn)的問(wèn)題集
DSP的C語(yǔ)言同主機(jī)C語(yǔ)言的主要區(qū)別?
1)DSP的C語(yǔ)言是標(biāo)準(zhǔn)的ANSI C,它不包括同外設(shè)聯(lián)系的擴(kuò)展部分,如屏幕繪圖等。但在CCS中,為了方便調(diào)試,可以將數(shù)據(jù)通過(guò)prinf命令虛擬輸出到主機(jī)的屏幕上。
2)DSP的C語(yǔ)言的編譯過(guò)程為,C編譯為ASM,再由ASM編譯為OBJ。因此C和ASM的對(duì)應(yīng)關(guān)系非常明確,非常便于人工優(yōu)化。
3)DSP的代碼需要絕對(duì)定位;主機(jī)的C的代碼有操作系統(tǒng)定位。
4)DSP的C的效率較高,非常適合于嵌入系統(tǒng)。
三.DSP發(fā)展動(dòng)態(tài)
1.TMS320C2000 TMS320C2000系列包括C24x和C28x系列。C24x系列建議使用LF24xx系列替代C24x系列,LF24xx系列的價(jià)格比C24x便宜,性能高于C24x,而且LF24xxA具有加密功能。 C28x系列主要用于大存儲(chǔ)設(shè)備管理,高性能的控制場(chǎng)合。
2.TMS320C3x TMS320C3x系列包括C3x和VC33,主要推薦使用VC33。C3x系列是TI浮點(diǎn)DSP的基礎(chǔ),不可能停產(chǎn),但價(jià)格不會(huì)進(jìn)一步下調(diào)。
3.TMS320C5x TMS320C5x系列已不推薦使用,建議使用C24x或C5000系列替代。
4.TMS320C5000 TMS320C5000系列包括C54x和C55x系列。 其中VC54xx還不斷有新的器件出現(xiàn),如:TMS320VC5471(DSP+ARM7)。 C55x系列是TI的第三代DSP,功耗為VC54xx的1/6,性能為VC54xx的5倍,是一個(gè)正在發(fā)展的系列。 C5000系列是目前TI DSP的主流DSP,它涵蓋了從低檔到中高檔的應(yīng)用領(lǐng)域,目前也是用戶最多的系列。
5.TMS320C6000 TMS320C6000系列包括C62xx、C67xx和C64xx。此系列是TI的高檔DSP系列。 其中C62xx系列是定點(diǎn)的DSP,系列芯片種類(lèi)較豐富,是主要的應(yīng)用系列。 C67xx系列是浮點(diǎn)的DSP,用于需要高速浮點(diǎn)處理的領(lǐng)域。 C64xx系列是新發(fā)展,性能是C62xx的10倍。
6.OMAP系列 是TI專(zhuān)門(mén)用于多媒體領(lǐng)域的芯片,它是C55+ARM9,性能卓越,非常適合于手持設(shè)備、Internet終端等多媒體應(yīng)用。
四.5V/3.3V如何混接?
TI DSP的發(fā)展同集成電路的發(fā)展一樣,新的DSP都是3.3V的,但目前還有許多外圍電路是5V的,因此在DSP系統(tǒng)中,經(jīng)常有5V和3.3V的DSP混接問(wèn)題。在這些系統(tǒng)中,應(yīng)注意: 1)DSP輸出給5V的電路(如D/A),無(wú)需加任何緩沖電路,可以直接連接。 2)DSP輸入5V的信號(hào)(如A/D),由于輸入信號(hào)的電壓>4V,超過(guò)了DSP的電源電壓,DSP的外部信號(hào)沒(méi)有保護(hù)電路,需要加緩沖,如74LVC245等,將5V信號(hào)變換成3.3V的信號(hào)。 3)仿真器的JTAG口的信號(hào)也必須為3.3V,否則有可能損壞DSP。
五.為什么要片內(nèi)RAM大的DSP效率高?
目前DSP發(fā)展的片內(nèi)存儲(chǔ)器RAM越來(lái)越大,要設(shè)計(jì)高效的DSP系統(tǒng),就應(yīng)該選擇片內(nèi)RAM較大的DSP。片內(nèi)RAM同片外存儲(chǔ)器相比,有以下優(yōu)點(diǎn): 1)片內(nèi)RAM的速度較快,可以保證DSP無(wú)等待運(yùn)行。 2)對(duì)于C2000/C3x/C5000系列,部分片內(nèi)存儲(chǔ)器可以在一個(gè)指令周期內(nèi)訪問(wèn)兩次,使得指令可以更加高效。 3)片內(nèi)RAM運(yùn)行穩(wěn)定,不受外部的干擾影響,也不會(huì)干擾外部。 4)DSP片內(nèi)多總線,在訪問(wèn)片內(nèi)RAM時(shí),不會(huì)影響其它總線的訪問(wèn),效率較高。
六.為什么DSP從5V發(fā)展成3.3V?
超大規(guī)模集成電路的發(fā)展從1um,發(fā)展到目前的0.1um,芯片的電源電壓也隨之降低,功耗也隨之降低。DSP也同樣從5V發(fā)展到目前的3.3V,核心電壓發(fā)展到1V。目前主流的DSP的外圍均已發(fā)展為3.3V,5V的DSP的價(jià)格和功耗都價(jià)格,以逐漸被3.3V的DSP取代。
七如何選擇DSP的電源芯片?
TMS320LF24xx:TPS7333QD,5V變3.3V,最大500mA。
TMS320VC33: TPS73HD318PWP,5V變3.3V和1.8V,最大750mA。
TMS320VC54xx:TPS73HD318PWP,5V變3.3V和1.8V,最大750mA; TPS73HD301PWP,5V變3.3V和可調(diào),最大750mA。
TMS320VC55xx:TPS73HD301PWP,5V變3.3V和可調(diào),最大750mA。
TMS320C6000: PT6931,TPS56000,最大3A。
八.軟件等待的如何使用?
DSP的指令周期較快,訪問(wèn)慢速存儲(chǔ)器或外設(shè)時(shí)需加入等待。等待分硬件等待和軟件等待,每一個(gè)系列的等待不完全相同。
1)對(duì)于C2000系列: 硬件等待信號(hào)為READY,高電平時(shí)不等待。 軟件等待由WSGR寄存器決定,可以加入最多7個(gè)等待。其中程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器及I/O可以分別設(shè)置。
2)對(duì)于C3x系列: 硬件等待信號(hào)為/RDY,低電平是不等待。 軟件等待由總線控制寄存器中的SWW和WTCNY決定,可以加入最多7個(gè)等待,但等待是不分段的,除了片內(nèi)之外全空間有效。
3)對(duì)于C5000系列: 硬件等待信號(hào)為READY,高電平時(shí)不等待。 軟件等待由SWWCR和SWWSR寄存器決定,可以加入最多14個(gè)等待。其中程序存儲(chǔ)器、控制程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器及I/O可以分別設(shè)置。
4)對(duì)于C6000系列(只限于非同步存儲(chǔ)器或外設(shè)): 硬件等待信號(hào)為ARDY,高電平時(shí)不等待。 軟件等待由外部存儲(chǔ)器接口控制寄存器決定,總線訪問(wèn)外部存儲(chǔ)器或設(shè)備的時(shí)序可以設(shè)置,可以方便的同異步的存儲(chǔ)器或外設(shè)接口。
九.中斷向量為什么要重定位?
為了方便DSP存儲(chǔ)器的配置,一般DSP的中斷向量可以重新定位,即可以通過(guò)設(shè)置寄存器放在存儲(chǔ)器空間的任何地方。 注意:C2000的中斷向量不能重定位。
十.DSP的最高主頻能從芯片型號(hào)中獲得嗎?
TI的DSP最高主頻可以從芯片的型號(hào)中獲得,但每一個(gè)系列不一定相同。
1)TMS320C2000系列:
TMS320F206-最高主頻20MHz。
TMS320C203/C206-最高主頻40MHz。
TMS320F24x-最高主頻20MHz。
TMS320LF24xx-最高主頻30MHz。
TMS320LF24xxA-最高主頻40MHz。
TMS320LF28xx-最高主頻150MHz。
2)TMS320C3x系列:
TMS320C30:最高主頻25MHz。
TMS320C31PQL80:最高主頻40MHz。
TMS320C32PCM60:最高主頻30MHz。
TMS320VC33PGE150:最高主頻75MHz。
3)TMS320C5000系列:
TMS320VC54xx:最高主頻160MHz。
TMS320VC55xx:最高主頻300MHz。
4)TMS320C6000系列:
TMS320C62xx:最高主頻300MHz。
TMS320C67xx:最高主頻230MHz。
TMS320C64xx:最高主頻720MHz。
十一.DSP可以降頻使用嗎?
可以,DSP的主頻均有一定的工作范圍,因此DSP均可以降頻使用。
十二.如何選擇外部時(shí)鐘?
DSP的內(nèi)部指令周期較高,外部晶振的主頻不夠,因此DSP大多數(shù)片內(nèi)均有PLL。但每個(gè)系列不盡相同。
1)TMS320C2000系列:
TMS320C20x:PLL可以÷2,×1,×2和×4,因此外部時(shí)鐘可以為5MHz-40MHz。
TMS320F240:PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部時(shí)鐘可以為2.22MHz-40MHz。
TMS320F241/C242/F243:PLL可以×4,因此外部時(shí)鐘為5MHz。 TMS320LF24xx:PLL可以由RC調(diào)節(jié),因此外部時(shí)鐘為4MHz-20MHz。
TMS320LF24xxA:PLL可以由RC調(diào)節(jié),因此外部時(shí)鐘為4MHz-20MHz。
2)TMS320C3x系列:
TMS320C3x:沒(méi)有PLL,因此外部主頻為工作頻率的2倍。
TMS320VC33:PLL可以÷2,×1,×5,因此外部主頻可以為12MHz-100MHz。
3)TMS320C5000系列:
TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主頻可以為0.625MHz-50MHz。
TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主頻可以為6.25MHz-300MHz。
4)TMS320C6000系列:
TMS320C62xx:PLL可以×1,×4,×6,×7,×8,×9,×10和×11,因此外部主頻可以為11.8MHz-300MHz。
TMS320C67xx:PLL可以×1和×4,因此外部主頻可以為12.5MHz-230MHz。
TMS320C64xx:PLL可以×1,×6和×12,因此外部主頻可以為30MHz-720MHz
十三.如何選擇DSP的外部存儲(chǔ)器?
DSP的速度較快,為了保證DSP的運(yùn)行速度,外部存儲(chǔ)器需要具有一定的速度,否則DSP訪問(wèn)外部存儲(chǔ)器時(shí)需要加入等待周期。
1)對(duì)于C2000系列: C2000系列只能同異步的存儲(chǔ)器直接相接。 C2000系列的DSP目前的最高速度為150MHz。建議可以用的存儲(chǔ)器有:
CY7C199-15:32K×8,15ns,5V;
CY7C1021-12:64K×16,15ns,5V; CY7C1021V33-12:64K×16,15ns,3.3V。
2)對(duì)于C3x系列: C3x系列只能同異步的存儲(chǔ)器直接相接。 C3x系列的DSP的最高速度,5V的為40MHz,3.3V的為75MHz,為保證DSP無(wú)等待運(yùn)行,分別需要外部存儲(chǔ)器的速度<25ns和<12ns。建議可以用的存儲(chǔ)器有:
ROM: AM29F400-70:256K×16,70ns,5V,加入一個(gè)等待;
AM29LV400-55(SST39VF400):256K×16,55ns,3.3V,加入兩個(gè)等待(目前沒(méi)有更快的Flash)。
SRAM: CY7C199-15:32K×8,15ns,5V;
CY7C1021-15:64K×16,15ns,5V;
CY7C1009-15:128K×8,15ns,5V;
CY7C1049-15:512K×8,15ns,5V;
CY7C1021V33-15:64K×16,15ns,3.3V;
CY7C1009V33-15:128K×8,15ns,3.3V;
CY7C1041V33-15:256k×16,15ns,3.3V。
3)對(duì)于C54x系列: C54x系列只能同異步的存儲(chǔ)器直接相接。 C54x系列的DSP的速度為100MHz或160MHz,為保證DSP無(wú)等待運(yùn)行,需要外部存儲(chǔ)器的速度<10ns或<6ns。建議可以用的存儲(chǔ)器有:
ROM: AM29LV400-55(SST39VF400):256K×16,55ns,3.3V,加入5或9個(gè)等待(目前沒(méi)有更快的Flash)。
SRAM: CY7C1021V33-12:64K×16,12ns,3.3V,加入一個(gè)等待;
CY7C1009V33-12:128K×8,12ns,3.3V,加入一個(gè)等待。
4)對(duì)于C55x和C6000系列: TI的DSP中只有C55x和C6000可以同同步的存儲(chǔ)器相連,同步存儲(chǔ)器可以保證系統(tǒng)的數(shù)據(jù)交換效率更高。
ROM: AM29LV400-55(SST39VF400):256K×16,55ns,3.3V。
SDRAM: HY57V651620BTC-10S:64M,10ns。
SBSRAM: CY7C1329-133AC,64k×32;
CY7C1339-133AC,128k×32。
FIFO:CY7C42x5V-10ASC,32k/64k×18。
十四.DSP芯片有多大的驅(qū)動(dòng)能力?
DSP的驅(qū)動(dòng)能力較強(qiáng),可以不加驅(qū)動(dòng),連接8個(gè)以上標(biāo)準(zhǔn)TTL門(mén)。
十五.調(diào)試TMS320C2000系列的常見(jiàn)問(wèn)題?
1)單步可以運(yùn)行,連續(xù)運(yùn)行時(shí)總回0地址: Watchdog沒(méi)有關(guān),連續(xù)運(yùn)行復(fù)位DSP回到0地址。
2)OUT文件不能load到片內(nèi)flash中: Flash不是RAM,不能用簡(jiǎn)單的寫(xiě)指令寫(xiě)入,需要專(zhuān)門(mén)的程序?qū)懭搿CS和C Source Debugger中的load命令,不能對(duì)flash寫(xiě)入。 OUT文件只能load到片內(nèi)RAM,或片外RAM中。
3)在flash中如何加入斷點(diǎn): 在flash中可以用單步調(diào)試,也可以用硬件斷點(diǎn)的方法在flash中加入斷點(diǎn),軟件斷點(diǎn)是不能加在ROM中的。硬件斷點(diǎn),設(shè)置存儲(chǔ)器的地址,當(dāng)訪問(wèn)該地址時(shí)產(chǎn)生中斷。
4)中斷向量: C2000的中斷向量不可重定位,因此中斷向量必須放在0地址開(kāi)始的flash內(nèi)。在調(diào)試系統(tǒng)時(shí),代碼放在RAM中,中斷向量也必須放在flash內(nèi)。
十六.調(diào)試TMS320C3x系列的常見(jiàn)問(wèn)題?
1)TMS320C32的存儲(chǔ)器配置: TMS320C32的程序存儲(chǔ)器可以配置為16位或32位;數(shù)據(jù)存儲(chǔ)器可以配置為8位、16位或32位。
2)TMS320VC33的PLL控制: TMS320VC33的PLL控制端只能接1.8V,不能接3.3V或5V。
十七.如何調(diào)試多片DSP?
對(duì)于有MPSD仿真口的DSP(TMS320C30/C31/C32),不能用一套仿真器同時(shí)調(diào)試,每次只能調(diào)試其中的一個(gè)DSP; 對(duì)于有JTAG仿真口的DSP,可以將JTAG串接在一起,用一套仿真器同時(shí)調(diào)試多個(gè)DSP,每個(gè)DSP可以用不同的名字,在不同的窗口中調(diào)試。 注意:如果在JTAG和DSP間加入驅(qū)動(dòng),一定要用快速的門(mén)電路,不能使用如LS的慢速門(mén)電路。
十八.在DSP系統(tǒng)中為什么要使用CPLD?
DSP的速度較快,要求譯碼的速度也必須較快。利用小規(guī)模邏輯器件譯碼的方式,已不能滿足DSP系統(tǒng)的要求。 同時(shí),DSP系統(tǒng)中也經(jīng)常需要外部快速部件的配合,這些部件往往是專(zhuān)門(mén)的電路,有可編程器件實(shí)現(xiàn)。 CPLD的時(shí)序嚴(yán)格,速度較快,可編程性好,非常適合于實(shí)現(xiàn)譯碼和專(zhuān)門(mén)電路。
十九.DSP系統(tǒng)構(gòu)成的常用芯片有哪些?
1)電源: TPS73HD3xx,TPS7333,TPS56100,PT64xx...
2)Flash: AM29F400,AM29LV400,SST39VF400...
3)SRAM: CY7C1021,CY7C1009,CY7C1049...
4)FIF CY7C425,CY7C42x5...
5)Dual port: CY7C136,CY7C133,CY7C1342...
6)SBSRAM: CY7C1329,CY7C1339...
7)SDRAM: HY57V651620BTC...
8)CPLD: CY37000系列,CY38000系列,CY39000系列...
9)PCI: PCI2040,CY7C09449...
10)USB: AN21xx,CY7C68xxx...
11)Codec:TLV320AIC23,TLV320AIC10...
12)A/D,D/A:ADS7805,TLV2543...
具體資料見(jiàn)www.ti.com,www.cypress.com
二十.什么是boot loader?
DSP的速度盡快,EPROM或flash的速度較慢,而DSP片內(nèi)的RAM很快,片外的RAM也較快。為了使DSP充分發(fā)揮它的能力,必須將程序代碼放在RAM中運(yùn)行。為了方便的將代碼從ROM中搬到RAM中,在不帶flash的DSP中,TI在出廠時(shí)固化了一段程序,在上電后完成從ROM或外設(shè)將代碼搬到用戶指定的RAM中。此段程序稱(chēng)為"boot loader"。
二十一.TMS320C3x如何boot?
在MC/MP管腳為高時(shí),C3x進(jìn)入boot狀態(tài)。C3x的boot loader在reset時(shí),判斷外部中斷管腳的電平。根據(jù)中斷配置決定boot的方式為存儲(chǔ)器加載還是串口加載,其中ROM的地址可以為三個(gè)中的一個(gè),ROM可以為8位。
二十二.Boot有問(wèn)題如何解決?
1)仔細(xì)檢查boot的控制字是否正確。
2)仔細(xì)檢查外部管腳設(shè)置是否正確。
3)仔細(xì)檢查hex文件是否轉(zhuǎn)換正確。
4)用仿真器跟蹤boot過(guò)程,分析錯(cuò)誤原因。
二十三.DSP為什么要初始化?
DSP在RESET后,許多的寄存器的初值一般同用戶的要求不一致,例如:等待寄存器,SP,中斷定位寄存器等,需要通過(guò)初始化程序設(shè)置為用戶要求的數(shù)值。 初始化程序的主要作用: 1)設(shè)置寄存器初值。 2)建立中斷向量表。 3)外圍部件初始化。
二十四.DSP有哪些數(shù)學(xué)庫(kù)及其它應(yīng)用軟件?
TI公司為了方便客戶開(kāi)發(fā)DSP,在它的網(wǎng)站上提供了許多程序的示例和應(yīng)用程序,如MATH庫(kù),F(xiàn)FT,F(xiàn)IR/IIR等,可以在TI的網(wǎng)頁(yè)免費(fèi)下載。
二十五.如何獲得DSP專(zhuān)用算法?
TI有許多的Third Party可以通過(guò)DSP上的多種算法軟件??梢酝ㄟ^(guò)TI的網(wǎng)頁(yè)搜索你所需的算法,找到通過(guò)算法的公司,同相應(yīng)的公司聯(lián)系。注意這些算法都是要付費(fèi)的。
二十六.eXpressDSP是什么?
eXpressDSP是一種實(shí)時(shí)DSP軟件技術(shù),它是一種DSP編程的標(biāo)準(zhǔn),利用它可以加快你開(kāi)發(fā)DSP軟件的速度。 以往DSP軟件的開(kāi)發(fā)沒(méi)有任何標(biāo)準(zhǔn),不同的人寫(xiě)的程序一般無(wú)法連接在一起。DSP軟件的調(diào)試工具也非常不方便。使得DSP軟件的開(kāi)發(fā)往往滯后于硬件的開(kāi)發(fā)。 eXpressDSP集成了CCS(Code Composer Studio)開(kāi)發(fā)平臺(tái),DSP BIOS實(shí)時(shí)軟件平臺(tái),DSP算法標(biāo)準(zhǔn)和第三方支持四部分。利用該技術(shù),可以使你的軟件調(diào)試,軟件進(jìn)程管理,軟件的互通及算法的獲得,都便的容易。這樣就可以加快你的軟件開(kāi)發(fā)進(jìn)程。
1)CCS是eXpressDSP的基礎(chǔ),因此你必須首先擁有CCS軟件。
2)DSP BIOS是eXpressDSP的基本平臺(tái),你必須學(xué)會(huì)所有DSP BIOS。
3)DSP算法標(biāo)準(zhǔn)可以保證你的程序可以方便的同其它利用eXpressDSP技術(shù)的程序連接在一起。同時(shí)也保證你的程序的延續(xù)性。
二十七.為什么要用DSP?
3G技術(shù)和internate的發(fā)展,要求處理器的速度越來(lái)越高,體積越來(lái)越小,DSP的發(fā)展正好能滿足這一發(fā)展的要求。因?yàn)?,傳統(tǒng)的其它處理器都有不同的缺陷。MCU的速度較慢;CPU體積較大,功耗較高;嵌入CPU的成本較高。 DSP的發(fā)展,使得在許多速度要求較高,算法較復(fù)雜的場(chǎng)合,取代MCU或其它處理器,而成本有可能更低。
二十八.如何選擇DSP?
選擇DSP可以根據(jù)以下幾方面決定:
1)速度: DSP速度一般用MIPS或FLOPS表示,即百萬(wàn)次/秒鐘。根據(jù)您對(duì)處理速度的要求選擇適合的器件。一般選擇處理速度不要過(guò)高,速度高的DSP,系統(tǒng)實(shí)現(xiàn)也較困難。
2)精度: DSP芯片分為定點(diǎn)、浮點(diǎn)處理器,對(duì)于運(yùn)算精度要求很高的處理,可選擇浮點(diǎn)處理器。定點(diǎn)處理器也可完成浮點(diǎn)運(yùn)算,但精度和速度會(huì)有影響。
3)尋址空間: 不同系列DSP程序、數(shù)據(jù)、I/O空間大小不一,與普通MCU不同,DSP在一個(gè)指令周期內(nèi)能完成多個(gè)操作,所以DSP的指令效率很高,程序空間一般不會(huì)有問(wèn)題,關(guān)鍵是數(shù)據(jù)空間是否滿足。數(shù)據(jù)空間的大小可以通過(guò)DMA的幫助,借助程序空間擴(kuò)大。
4)成本: 一般定點(diǎn)DSP的成本會(huì)比浮點(diǎn)DSP的要低,速度也較快。要獲得低成本的DSP系統(tǒng),盡量用定點(diǎn)算法,用定點(diǎn)DSP。
5)實(shí)現(xiàn)方便: 浮點(diǎn)DSP的結(jié)構(gòu)實(shí)現(xiàn)DSP系統(tǒng)較容易,不用考慮尋址空間的問(wèn)題,指令對(duì)C語(yǔ)言支持的效率也較高。
6)內(nèi)部部件:根據(jù)應(yīng)用要求,選擇具有特殊部件的DSP。如:C2000適合于電機(jī)控制;OMAP適合于多媒體等。 [!--empirenews.page--]
二十九.DSP同MCU相比的特點(diǎn)?
1)DSP的速度比MCU快,主頻較高。
2)DSP適合于數(shù)據(jù)處理,數(shù)據(jù)處理的指令效率較高。
3)DSP均為16位以上的處理器,不適合于低檔的場(chǎng)合。
4)DSP可以同時(shí)處理的事件較多,系統(tǒng)級(jí)成本有可能較低。
5)DSP的靈活性較好,大多數(shù)算法都可以軟件實(shí)現(xiàn)。
6)DSP的集成度較高,可靠性較好。
三十.DSP同嵌入CPU相比的特點(diǎn)?
1)DSP是單片機(jī),構(gòu)成系統(tǒng)簡(jiǎn)單。 2)DSP的速度快。 3)DSP的成本較低。 4)DSP的性能高,可以處理較多的任務(wù)。
三十一.如何編寫(xiě)C2000片內(nèi)Flash?
DSP中的Flash的編寫(xiě)方法有三中:
1.通過(guò)仿真器編寫(xiě):在我們的網(wǎng)頁(yè)上有相關(guān)的軟件,在銷(xiāo)售仿真器時(shí)我們也提供相關(guān)軟件。其中LF240x的編寫(xiě)可以在CCS中加入一個(gè)插件,F(xiàn)24x的編寫(xiě)需要在windows98下的DOS窗中進(jìn)行。具體步驟見(jiàn)軟件中的readme。有幾點(diǎn)需要注意: a.必須為MC方式; b.F206的工作頻率必須為20MHz; c.F240需要根據(jù)PLL修改C240_CFG.I文件。建議外部時(shí)鐘為20MHz。 d.LF240x也需要根據(jù)PLL修改文件。 d.如果編寫(xiě)有問(wèn)題,可以用BFLWx.BAT修復(fù)。
2.提供串口編寫(xiě):TI的網(wǎng)頁(yè)上有相關(guān)軟件。注意只能編寫(xiě)一次,因?yàn)榫帉?xiě)程序會(huì)破壞串口通信程序。
3.在你的程序中編寫(xiě):TI的網(wǎng)頁(yè)上有相關(guān)資料。
三十二.如何編寫(xiě)DSP外部的Flash?
DSP的外部Flash編寫(xiě)方法:
1.通過(guò)編程器編寫(xiě):將OUT文件通過(guò)HEX轉(zhuǎn)換程序轉(zhuǎn)換為編程器可以接受的格式,再由編程器編寫(xiě)。
2.通過(guò)DSP軟件編寫(xiě):您需要根據(jù)Flash的說(shuō)明,編寫(xiě)Flash的編寫(xiě)程序,將應(yīng)用程序和編寫(xiě)Flash的程序分別load到RAM中,運(yùn)行編寫(xiě)程序編寫(xiě)。
三十三.對(duì)于C5000,大于48K的程序如何BOOT?
對(duì)于C5000,片內(nèi)的BOOT程序在上電后將數(shù)據(jù)區(qū)的內(nèi)容,搬移到程序區(qū)的RAM中,因此FLASH必須在RESET后放在數(shù)據(jù)區(qū)。由于C5000,數(shù)據(jù)區(qū)的空間有限,一次BOOT的程序不能對(duì)于48K。解決的方法如下:
1.在RESET后,將FLASH譯碼在數(shù)據(jù)區(qū),RAM放在程序區(qū),片內(nèi)BOOT程序?qū)⒊绦駼OOT到RAM中。
2.用戶初試化程序發(fā)出一個(gè)I/O命令(如XF),將FLASH譯碼到程序區(qū)的高地址。開(kāi)放數(shù)據(jù)區(qū)用于其它的RAM。
3.用戶初試化程序中包括第二次BOOT程序(此程序必須用戶自己編寫(xiě)),將FLASH中沒(méi)有BOOT的其它代碼搬移到RAM中。
4.開(kāi)始運(yùn)行用戶處理程序。
三十四.DSP外接存儲(chǔ)器的控制方式
對(duì)于一般的存儲(chǔ)器具有RD、WR和CS等控制信號(hào),許多DSP(C3x、C5000)都沒(méi)有控制信號(hào)直接連接存儲(chǔ)器,一般采用的方式如下:
1.CS有地址線和PS、DS或STRB譯碼產(chǎn)生;
2./RD=/STRB+/R/W; 3./WR=/STRB+R/W。
三十五.GEL文件的功能?
GEL文件的功能同emuinit.cmd的功能基本相同,用于初始化DSP。但它的功能比emuinit的功能有所增強(qiáng),GEL在CCS下有一個(gè)菜單,可以根據(jù)DSP的對(duì)象不同,設(shè)置不同的初始化程序。以TMS320LF2407為例:
#define SCSR1 0x7018 ;定義scsr1寄存器
#define SCSR2 0X7019 ;定義scsr2寄存器
#define WDKEY 0x7025 ;定義wdkey寄存器
#define WDNTR 0x7029 ;定義wdntr寄存器
StartUp() ; 開(kāi)始函數(shù)
{
GEL_MapReset(); ; 存儲(chǔ)空間復(fù)位 GEL_MapAdd(0x0000,0,0x7fff,1,1); 定義程序空間從0000-7fff 可讀寫(xiě)
GEL_MapAdd(0x8000,0,0x7000,1,1); 定義程序空間從8000-f000 可讀寫(xiě)
GEL_MapAdd(0x0000,1,0x10000,1,1); 定義數(shù)據(jù)空間從0000-10000可讀寫(xiě)
GEL_MapAdd(0xffff,2,1,1,1); 定義i/o 空間0xffff可讀寫(xiě)
GEL_MapOn(); 存儲(chǔ)空間打開(kāi)
GEL_MemoryFill(0xffff,2,1,0x40); 在i/o空間添入數(shù)值40h
*(int *)SCSR1=0x0200; 給scsr1寄存器賦值
*(int *)SCSR2=0x000C; 給scsr2寄存器賦值,在這里可以進(jìn)行mp/mc方式的轉(zhuǎn)換
*(int *)WDNTR=0x006f; 給wdntr寄存器賦值
*(int *)WDKEY=0x055; 給wdkey寄存器賦值
*(int *)WDKEY=0x0AA; 給wdkey寄存器賦值
}
三十六.使用TI公司模擬器件與DSP結(jié)合使用的好處。
1)在使用TI公司的DSP的同時(shí),使用TI公司的模擬可以和DSP進(jìn)行無(wú)縫連接。器件與器件之間不需要任何的連接或轉(zhuǎn)接器件。這樣即減少了板卡的尺寸,也降低了開(kāi)發(fā)難度。
2)同為T(mén)I公司的產(chǎn)品,很多器件可以固定搭配使用。少了器件選型的煩惱
3)TI在CCS中提供插件,可以用于DSP和模擬器件的開(kāi)發(fā),非常方便。
三十七.C語(yǔ)言中可以嵌套匯編語(yǔ)言?
可以。在ANSI C標(biāo)準(zhǔn)中的標(biāo)準(zhǔn)用法就是用C語(yǔ)言編寫(xiě)主程序,用匯編語(yǔ)言編寫(xiě)子程序,中斷服務(wù)程序,一些算法,然后用C語(yǔ)言調(diào)用這些匯編程序,這樣效率會(huì)相對(duì)比較高
三十八.在定點(diǎn)DSP系統(tǒng)中可否實(shí)現(xiàn)浮點(diǎn)運(yùn)算?
當(dāng)然可以,因?yàn)镈SP都可以用C,只要是可以使用c語(yǔ)言的場(chǎng)合都可以實(shí)現(xiàn)浮點(diǎn)運(yùn)算。
三十九.JTAG頭的使用會(huì)遇到哪些情況?
1)DSP的CLKOUT沒(méi)有輸出,工作不正常。
2)Emu0,Emu1需要上拉。
3)TCK的頻率應(yīng)該為10M。
4)在3.3V DSP中,PD腳為3.3V 供電,但是仿真器上需要5V電壓供電,所以PP仿真器盒上需要單獨(dú)供電。
4)仿真多片DSP。在使用菊花鏈的時(shí)候,第一片DSP的TDO接到第二片DSP的TDI即可。注意當(dāng)串聯(lián)DSP比較多的時(shí)候,信號(hào)線要適當(dāng)?shù)脑黾域?qū)動(dòng)。
四十.include頭文件(.h)的主要作用
頭文件,一般用于定義程序中的函數(shù)、參數(shù)、變量和一些宏單元,同庫(kù)函數(shù)配合使用。因此,在使用庫(kù)時(shí),必須用相應(yīng)的頭文件說(shuō)明。
四十一.DSP中斷向量的位置
1)2000系列dsp的中斷向量只能從0000H處開(kāi)始。所以在我們調(diào)試程序的時(shí)候,要把DSP選擇為MP(微處理器方式),把片內(nèi)的Flash屏蔽掉,免去每次更改程序都要重新燒寫(xiě)Flash工作。
2)3x系列dsp的中斷向量也只能在固定的地址。
3)5000,6000系列dsp的中斷向量可以重新定位。但是它只能被重新定位到Page0范圍內(nèi)的任何空間。
四十二.有源晶振與晶體的區(qū)別,應(yīng)用范圍及用法
1)晶體需要用DSP片內(nèi)的振蕩器,在datasheet上有建議的連接方法。晶體沒(méi)有電壓的問(wèn)題,可以適應(yīng)于任何DSP,建議用晶體。
2)有源晶振不需要DSP的內(nèi)部振蕩器,信號(hào)比較穩(wěn)定。有源晶振用法:一腳懸空,二腳接地,三腳接輸出,四腳接電壓。
四十三.程序經(jīng)常跑飛的原因
1)程序沒(méi)有結(jié)尾或不是循環(huán)的程序。
2)nmi管腳沒(méi)有上拉。
3)在看門(mén)狗動(dòng)作的時(shí)候程序會(huì)經(jīng)常跑飛。
4)程序編制不當(dāng)也會(huì)引起程序跑飛。
5)硬件系統(tǒng)有問(wèn)題。
四十四.并行FLASH引導(dǎo)的一點(diǎn)經(jīng)驗(yàn)
最近BBS上關(guān)于FLASH和BOOT的討論很活躍,我也多次來(lái)此請(qǐng)教。前幾天自制的DSP板引導(dǎo)成功,早就打算寫(xiě)寫(xiě)這方面的東西。我用的DSP是5416,以其為核心,做了一個(gè)相對(duì)獨(dú)立的子系統(tǒng)(硬件、軟件、算法),目前都已基本做好。 下面把在FLASH引導(dǎo)方面做的工作向大家匯報(bào)一下,希望能對(duì)大家有所幫助。本人經(jīng)驗(yàn)和文筆都有限,寫(xiě)的不好請(qǐng)大家諒解。
硬件環(huán)境:
DSP:TMS320VC5416PGE160
FLASH:SST39VF400A-70-4C-EK 都是貼片的,F(xiàn)LASH映射在DSP數(shù)據(jù)空間的0x8000-0xFFFF
軟件環(huán)境: CCS v2.12.01
主程序(要燒入FLASH的程序): DEBUG版,程序占用空間0x28000-0x2FFFF(片內(nèi)SARAM),中斷向量表在0x0080-0x00FF(片內(nèi)DARAM),數(shù)據(jù)空間使用0x0100-0x7FFF(片內(nèi)DARAM)。 因?yàn)镕LASH是貼片的,所以需要自己編一個(gè)數(shù)據(jù)搬移程序,把要主程序搬移到FLASH中。在寫(xiě)入FLASH數(shù)據(jù)時(shí),還應(yīng)寫(xiě)入引導(dǎo)表的格式數(shù)據(jù)。最后在數(shù)據(jù)空間的0xFFFF處寫(xiě)入引導(dǎo)表的起始地址(這里為0x8000)。
搬移程序: DEBUG版,程序空間0x38000-0x3FFFF(片內(nèi)SARAM),中斷向量表在0x7800-0x78FF(片內(nèi)DARAM),數(shù)據(jù)空間使用0x5000-0x77FF(片內(nèi)DARAM)。 搬移程序不能使用與主程序的程序空間和中斷向量表重合的物理空間,以免覆蓋。 燒寫(xiě)時(shí),同時(shí)打開(kāi)主程序和搬移程序的PROJECT,先LOAD主程序,再LOAD搬移程序,然后執(zhí)行搬移程序,燒寫(xiě)OK! 附:搬移程序(僅供參考)
volatile unsigned int *pTemp=(unsigned int *)0x7e00; unsigned int iFlashAddr;
int iLoop; /* 在引導(dǎo)表頭存放并行引導(dǎo)關(guān)鍵字 */
iFlashAddr=0x8000;
WriteFlash(iFlashAddr,0x10aa);
iFlashAddr++; /* 初始化SWWSR值 */
WriteFlash(iFlashAddr,0x7e00);
iFlashAddr++; /* 初始化BSCR值 */
WriteFlash(iFlashAddr,0x8006);
iFlashAddr++; /* 程序執(zhí)行的入口地址 */
WriteFlash(iFlashAddr,0x0002);
iFlashAddr++;
WriteFlash(iFlashAddr,0x8085);
iFlashAddr++; /* 程序長(zhǎng)度 */
WriteFlash(iFlashAddr,0x7f00);
iFlashAddr++; /* 程序要裝載到的地址 */
WriteFlash(iFlashAddr,0x0002);
iFlashAddr++;
WriteFlash(iFlashAddr,0x8000);
iFlashAddr++;
for (iLoop=0;iLoop<0x7f00;iLoop++)
{ /* 從程序空間讀數(shù)據(jù),放到暫存單元 */
asm(" pshm al");
asm(" pshm ah");
asm(" rsbx cpl");
asm(" ld #00fch,dp");
asm(" stm #0000h, ah");
asm(" MVDM _iLoop, al");
asm(" add #2800h,4,a");
asm(" reada 0h");
asm(" popm ah");
asm(" popm al");
asm(" ssbx cpl"); /* 把暫存單元內(nèi)容寫(xiě)入FLASH */
WriteFlash(iFlashAddr,*pTemp);
iFlashAddr++; } /* 中斷向量表長(zhǎng)度 */
WriteFlash(iFlashAddr,0x0080);
iFlashAddr++; /* 中斷向量表裝載地址 */
WriteFlash(iFlashAddr,0x0000);
iFlashAddr++;
WriteFlash(iFlashAddr,0x0080);
iFlashAddr++;
for (iLoop=0;iLoop<0x0080;iLoop++) { /* 從程序空間讀數(shù)據(jù),放到暫存單元 */
asm(" pshm al");
asm(" pshm ah");
asm(" rsbx cpl");
asm(" ld #00fch,dp");
asm(" stm #0000h, ah");
asm(" MVDM _iLoop, al");
asm(" add #0080h,0,a");
asm(" reada 0h");
asm(" popm ah");
asm(" popm al");
asm(" ssbx cpl"); /* 把暫存單元內(nèi)容寫(xiě)入FLASH */
WriteFlash(iFlashAddr,*pTemp);
iFlashAddr++;
} /* 寫(xiě)入引導(dǎo)表結(jié)束標(biāo)志 */
WriteFlash(iFlashAddr,0x0000);
iFlashAddr++;
WriteFlash(iFlashAddr,0x0000); /* 在數(shù)據(jù)空間的0xFFFF寫(xiě)入引導(dǎo)表起始地址 */
iFlashAddr=0xffff;
WriteFlash(iFlashAddr,0x8000);
四十五.關(guān)于LF2407A的FLASH燒寫(xiě)問(wèn)題的幾點(diǎn)說(shuō)明
TI現(xiàn)在關(guān)于LF24x寫(xiě)入FLASH的工具最新為c2000flashprogsw_v112??梢灾С諰F2407、LF2407a、LF2401及相關(guān)的LF240x系列。建議使用此版本。在http://focus.ti.com/docs/tool/toolf...燦寫(xiě)松招闖絳頡?/a> 在使用這個(gè)工具時(shí)注意:
一,先解壓,再執(zhí)行setup.exe。
二、進(jìn)入cc中,在tools圖標(biāo)下有燒寫(xiě)工具;
1、關(guān)于FLASH時(shí)鐘的選擇,此燒寫(xiě)工具默認(rèn)最高頻率進(jìn)行FLASH的操作。根據(jù)目標(biāo)系統(tǒng)的工作主頻重新要進(jìn)行PLL設(shè)置。方法:先在advance options下面的View Config file中修改倍頻。存盤(pán)后,在相應(yīng)的目錄下(tic2xx\algos\相應(yīng)目錄)運(yùn)行buildall.bat就可以完成修改了。再進(jìn)行相應(yīng)的操作即可。
2、若是你所選的頻率不是最高頻率,還需要設(shè)定你自已的timings.xx來(lái)代替系統(tǒng)默認(rèn)的最高頻率的timings.xx。例如LF2407a的默認(rèn)文件是timings.40。Timings.xx可以利用include\timings.xls的excel工作表來(lái)生成。然后在advance options下面的View Config file中修改相應(yīng)的位置。存盤(pán)后,在相應(yīng)的目錄下運(yùn)行buildall.bat就可以完成修改了。
3、對(duì)于TMS320LF240XA系列,還要注意:由于這些DSP的FLASH具有加密功能,加密地址為程序空間的0x40-0X43H,程序禁止寫(xiě)入此空間,如果寫(xiě)了,此空間的數(shù)據(jù)被認(rèn)為是加密位,斷電后進(jìn)入保護(hù)FLASH狀態(tài),使FLASH不可重新操作,從而使DSP報(bào)廢,燒寫(xiě)完畢后一定要進(jìn)行Program passwords的操作,如果不做加密操作就默認(rèn)最后一次寫(xiě)入加密位的數(shù)據(jù)作為密碼。
4、2407A不能用DOS下的燒寫(xiě)軟件燒寫(xiě),必須用c2000flashprogsw_v112軟件燒寫(xiě);
5、建議如下:
1)、一般調(diào)試時(shí),在RAM中進(jìn)行;
2)、程序燒寫(xiě)時(shí),避開(kāi)程序空間0x40-0x43H加密區(qū),程序最好小于32k;
3)、每次程序燒寫(xiě)完后,將word0,word1,word2,word3分別輸入自己的密碼,再點(diǎn)擊 Program password,如果加密成功,提示Program is arrayed,如果0x40-0x43h中寫(xiě)入的是ffff,認(rèn)為處于調(diào)試狀態(tài),flash不會(huì)加密;
4)、斷電后,下次重新燒寫(xiě)時(shí)需要往word0~word3輸入已設(shè)的密碼,再u(mài)nlock,成功后可以重新燒寫(xiě)了;
6、VCPP管腳接在+5V上,是應(yīng)直接接的,中間不要加電阻。
7、具體事宜請(qǐng)閱讀相應(yīng)目錄下的readme1,readme2幫助文件。
8.注意*.cmd文件的編寫(xiě)時(shí)應(yīng)該避開(kāi)40-43H單元,好多客戶由于沒(méi)有注意到這里而把FALSH加密。
四十六.如何設(shè)置硬件斷點(diǎn)?
在profiler ->profile point -> break point
四十七.c54x的外部中斷是電平響應(yīng)還是沿響應(yīng)?
是沿響應(yīng),準(zhǔn)確的說(shuō),它要檢測(cè)到100(一個(gè)clk的高和兩個(gè)clk的低)的變化才可以。
[!--empirenews.page--]
四十八。參考程序,里面好象都要 disable wachdog,不知道為什么?
watchdog是一個(gè)計(jì)數(shù)器,溢出時(shí)會(huì)復(fù)位你的DSP,不disable的話,你的系統(tǒng)會(huì)動(dòng)不動(dòng)就reset。
四十九。DSP系統(tǒng)設(shè)計(jì)100問(wèn)
一、時(shí)鐘和電源
問(wèn):DSP的電源設(shè)計(jì)和時(shí)鐘設(shè)計(jì)應(yīng)該特別注意哪些方面?外接晶振選用有源的好還是無(wú)源的好?
答:時(shí)鐘一般使用晶體,電源可用TI的配套電源。外接晶振用無(wú)源的好。
問(wèn):TMS320LF2407的A/D轉(zhuǎn)換精度保證措施。
答:參考電源和模擬電源要求干凈。
問(wèn):系統(tǒng)調(diào)試時(shí)發(fā)現(xiàn)紋波太大,主要是哪方面的問(wèn)題?
答:如果是電源紋波大,加大電容濾波。
問(wèn):請(qǐng)問(wèn)我用5V供電的有源晶振為DSP提供時(shí)鐘,是否可以將其用兩個(gè)電阻進(jìn)行分壓后再接到DSP的時(shí)鐘輸入端,這樣做的話,時(shí)鐘工作是否穩(wěn)定?
答:這樣做不好,建議使用晶體。
問(wèn):一個(gè)多DSP電路板的時(shí)鐘,如何選擇比較好?DSP電路板的硬件設(shè)計(jì)和系統(tǒng)調(diào)試時(shí)的時(shí)序問(wèn)題?
答:建議使用時(shí)鐘芯片,以保證同步。硬件設(shè)計(jì)要根據(jù)DSP芯片的時(shí)序,選擇外圍芯片,根據(jù)時(shí)序設(shè)定等待和硬件邏輯。
二.干擾與板的布局
問(wèn):器件布局應(yīng)重點(diǎn)考慮哪些因素?例如在集中抄表系統(tǒng)中?
答:可用TMS320VC5402,成本不是很高。器件布局重點(diǎn)應(yīng)是存貯器與DSP的接口。
問(wèn):在設(shè)計(jì)DSP的PCB板時(shí)應(yīng)注意哪些問(wèn)題?
答:1.電源的布置;2.時(shí)鐘的布置;3.電容的布置;4.終端電路;5.數(shù)字同模擬的布置。
問(wèn):請(qǐng)問(wèn)DSP在與前向通道(比如說(shuō)AD)接口的時(shí)候,布線過(guò)程中要注意哪些問(wèn)題,以保證AD采樣的穩(wěn)定性?
答:模擬地和數(shù)字地分開(kāi),但在一點(diǎn)接地。
問(wèn):DSP主板設(shè)計(jì)的一般步驟是什么?需要特別注意的問(wèn)題有哪些?
答:1.選擇芯片;2.設(shè)計(jì)時(shí)序;3.設(shè)計(jì)PCB。最重要的是時(shí)序和布線。
問(wèn):在硬件設(shè)計(jì)階段如何消除信號(hào)干擾(包括模擬信號(hào)及高頻信號(hào))?應(yīng)該從那些方面著
手?
答:1.模擬和數(shù)字分開(kāi);2.多層板;3.電容濾波。
問(wèn):在電路板的設(shè)計(jì)上,如何很好的解決靜電干擾問(wèn)題。
答:一般情況下,機(jī)殼接大地,即能滿足要求。特殊情況下,電源輸入、數(shù)字量輸入串接
專(zhuān)用的防靜電器件。
問(wèn):DSP板的電磁兼容(EMC)設(shè)計(jì)應(yīng)特別注意哪些問(wèn)題?
答:正確處理電源、地平面,高速的、關(guān)鍵的信號(hào)在源端串接端接電阻,避免信號(hào)反射。
問(wèn):用電感來(lái)隔離模擬電源和數(shù)字電源,其電感量如何決定?是由供電電流或噪音要求來(lái)
決定嗎?有沒(méi)有計(jì)算公式?
答:電感或磁珠相當(dāng)于一個(gè)低通濾波器,直流電源可以通過(guò),而高頻噪聲被濾除。所以電
感的選擇主要決定于電源中高頻噪聲的成分。
問(wèn):講座上的材料多是電源干擾問(wèn)題,能否介紹板上高頻信號(hào)布局(Layout)時(shí)要注意的
問(wèn)題以及數(shù)字信號(hào)對(duì)模擬信號(hào)的影響問(wèn)題?
答:數(shù)字信號(hào)對(duì)模擬信號(hào)的干擾主要是串?dāng)_,在布局時(shí)模擬器件應(yīng)盡量遠(yuǎn)離高速數(shù)字器件,高速數(shù)字信號(hào)盡量遠(yuǎn)離模擬部分,并且應(yīng)保證它們不穿越模擬地平面。
問(wèn):能否介紹PCB布線對(duì)模擬信號(hào)失真和串音的影響,如何降低和克服?
答:有2個(gè)方面,1. 模擬信號(hào)與模擬信號(hào)之間的干擾:布線時(shí)模擬信號(hào)盡量走粗一些,如果有條件,2個(gè)模擬信號(hào)之間用地線間隔。2. 數(shù)字信號(hào)對(duì)模擬信號(hào)的干擾:數(shù)字信號(hào)盡量遠(yuǎn)離模擬信號(hào),數(shù)字信號(hào)不能穿越模擬地。
三.DSP性能
問(wèn):1.我要設(shè)計(jì)生物圖像處理系統(tǒng),選用那種型號(hào)較好(高性能和低價(jià)格)?2.如果選定
TI DSP,需要什么開(kāi)發(fā)工具?
答:1.你可采用C54x 或 C55x平臺(tái),如果你需要更高性能的,可采用C6x系列。2.需要EVM
s和XDS510仿真器。
問(wèn):請(qǐng)介紹一種專(zhuān)門(mén)用于快速富利葉變換(FFT), 數(shù)字濾波,卷積,相關(guān)等算法的DSP,
最好集成12bit以上的ADC功能。
答:如果你的系統(tǒng)是馬達(dá)/能量控制的,我建議你用TMS320LF240x。
問(wèn):有些資料說(shuō)DSP比單片機(jī)好,但單片機(jī)用的比DSP廣。請(qǐng)問(wèn)這兩個(gè)在使用上有何區(qū)別?
答:?jiǎn)纹瑱C(jī)一般用于要求低的場(chǎng)合,如4/8位的單片機(jī)。DSP適合于要求較高的場(chǎng)合。
問(wèn):我想了解在信號(hào)處理方面DSP比FPGA的優(yōu)點(diǎn)。
答:DSP是通用的信號(hào)處理器,用軟件實(shí)現(xiàn)數(shù)據(jù)處理;FPGA用硬件實(shí)現(xiàn)數(shù)據(jù)處理。DSP的成本便宜,算法靈活,功能強(qiáng);FPGA的實(shí)時(shí)性好,成本較高。
問(wèn):請(qǐng)問(wèn)減小電路功耗的主要途徑有哪些?
答:1.選擇低功耗的芯片;2.減少芯片的數(shù)量;3.盡量使用IDLE。
問(wèn):用C55設(shè)計(jì)一個(gè)低功耗圖像壓縮/解壓和無(wú)線傳輸?shù)漠a(chǎn)品,同時(shí)雙向傳輸遙控指令和其
他信息,要求圖像30幀/秒,TFT顯示320*240,不知道能否實(shí)現(xiàn)?若能,怎樣確定性能?選擇周邊元器件?確定最小的傳輸速率?能否提供開(kāi)發(fā)的解決方案?軟件核?
答:1.有可能,要看你的算法。2.建議先在模擬器上模擬。
問(wèn):用DSP開(kāi)發(fā)MP3,比較專(zhuān)用MP3解碼芯片如何,比如成本、難度、周期?謝謝。
答:1.DSP的功能強(qiáng),可以實(shí)現(xiàn)附加的功能,如ebook等;2.DSP的性能價(jià)格比高;3.難度較大,需要算法,因此周期較長(zhǎng),但TI有現(xiàn)成的方案。
問(wèn):用DSP開(kāi)發(fā)的系統(tǒng)跟用普通單片機(jī)開(kāi)發(fā)的系統(tǒng)相比,有何優(yōu)勢(shì)?DSP一般適用于開(kāi)發(fā)什么樣的系統(tǒng)?其開(kāi)發(fā)周期、資金投入、開(kāi)發(fā)成本如何?與DSP的接口電路是否還得用專(zhuān)門(mén)的芯片?
答:1.性能高;2.適合于速度要求高的場(chǎng)合;3.開(kāi)發(fā)周期一般6個(gè)月,投入一般要一萬(wàn)元左
右;4.不一定,但需要速度較高的芯片。
問(wèn):DSP會(huì)對(duì)原來(lái)的模擬電路產(chǎn)生什么樣的影響?
答:一方面DSP用數(shù)字處理的方法可以代替原來(lái)用模擬電路實(shí)現(xiàn)的一些功能;另一方面,DSP的高速性對(duì)模擬電路產(chǎn)生較大的干擾,設(shè)計(jì)時(shí)應(yīng)盡量使DSP遠(yuǎn)離模擬電路部分。
問(wèn):請(qǐng)問(wèn)支持MPEG-4芯片型號(hào)是什么?
答:C55x或 C6000 或DSC2x
問(wèn):DSP內(nèi)的計(jì)算速度是快的,但是它的I/O口的交換速度有多快呢?
答:主頻的1/4左右。
四.技術(shù)性問(wèn)題
問(wèn):我有二個(gè)關(guān)于C2000的問(wèn)題:1、C240或C2407的RS復(fù)位引腳既可輸入,也可輸出,直接用CMOS門(mén)電路(如74ACT04)驅(qū)動(dòng)是否合適,還是應(yīng)該用OC門(mén)(集電極開(kāi)路)驅(qū)動(dòng)?2、大程序有時(shí)運(yùn)行異常,但加一兩條空指令就正常,是何原因?
答:1、OC門(mén)(集電極開(kāi)路)驅(qū)動(dòng)。2、是流水線的問(wèn)題。
問(wèn):1.DSP芯片內(nèi)是否有單個(gè)的隨機(jī)函數(shù)指令?2.DSP內(nèi)的計(jì)算速度是快的,但是它的I/O
口的交換速度有多快呢?SP如何配合EPLD或FPGA工作呢?
答:1.沒(méi)有。2.取決于你所用的I/O。對(duì)于HPI,傳輸速率(字節(jié))大約為CPU的1/4,對(duì)McBSP,位速率(kbps)大約為CPU的1/2。3.你可以級(jí)聯(lián)仿真接口和一個(gè)EPLD/FPGA在一起。
問(wèn):設(shè)計(jì)DSP系統(tǒng)時(shí),我用C6000系列。DSP引腳的要上拉,或者下拉的原則是怎樣的?我經(jīng)常在設(shè)計(jì)時(shí)為某一管腳是否要設(shè)置上/下拉電阻而猶豫不定。
答:C6000系列的輸入引腳內(nèi)部一般都有弱的上拉或者下拉電阻,一般不需要考慮外部加上
拉或者下拉電阻,特殊情況根據(jù)需要配置。
問(wèn):我正在使用TMS320VC5402,通過(guò)HPI下載代碼,但C5402的內(nèi)部只提供16K字的存儲(chǔ)區(qū),請(qǐng)問(wèn)我能通過(guò)HPI把代碼下載到它的外部擴(kuò)展存儲(chǔ)區(qū)運(yùn)行嗎?
答:不行,只能下載到片內(nèi)。
問(wèn):電路中用到DSP,有時(shí)當(dāng)復(fù)位信號(hào)為低時(shí),電壓也屬于正常范圍,但DSP加載程序不成功。電流也偏大,有時(shí)時(shí)鐘也有輸出。不知為什么?
答:復(fù)位時(shí)無(wú)法加載程序。
問(wèn):DSP和單片機(jī)相連組成主從系統(tǒng)時(shí),需要注意哪些問(wèn)題?
答:建議使用HPI接口,或者通過(guò)DPRAM連接。
問(wèn):原來(lái)的DSP的程序需放在EPROM中,但EPROM的速度難以和DSP匹配?,F(xiàn)在是如何解決此問(wèn)題的?
答:用BootLoad方法解決。
問(wèn):我在使用5402DSK時(shí),一上電,不接MIC,只接耳機(jī),不運(yùn)行任何程序,耳機(jī)中有比較明顯的一定頻率的噪聲出現(xiàn)。有時(shí)上電后沒(méi)有出現(xiàn),但接MIC,運(yùn)行范例中的CODEC程序時(shí),又會(huì)出現(xiàn)這種噪聲。上述情況通常都在DSK工作一段時(shí)間后自動(dòng)消失。我在DSP論壇上發(fā)現(xiàn)別人用DSK時(shí)也碰到過(guò)這種情況,我自己參照5402DSK做了一塊板,所用器件基本一樣,也是這現(xiàn)象,請(qǐng)問(wèn)怎么回事?如何解決?
答:開(kāi)始時(shí)沒(méi)有有效的程序代碼,所以上電后是隨機(jī)狀態(tài),出現(xiàn)這種情況是正常的。
問(wèn):我使用的是TMS320LF2407,但是仿真時(shí)不能保證每次都能GO MAIN。我想詳細(xì)咨詢一下,CMD文件的設(shè)置用法,還有VECTOR的定義。
答:可能看門(mén)狗有問(wèn)題,關(guān)掉看門(mén)狗。有關(guān)CMD文件配置請(qǐng)參考《匯編語(yǔ)言工具》第二章。
問(wèn):我設(shè)計(jì)的TMS320VC5402板子在調(diào)試軟件時(shí)會(huì)經(jīng)常出現(xiàn)存儲(chǔ)器錯(cuò)誤報(bào)告,排除是映射的問(wèn)題,是不是板子不穩(wěn)定的因素?還是DSP工作不正常的問(wèn)題?如何判別?
答:你可以利用Memoryfill功能,填入一些數(shù)值,然后刷新一下,看是不是在變,如果是
在變化,則Memory 是有問(wèn)題。
問(wèn):如何解決Flash編程的問(wèn)題:可不可以先用仿真器下載到外程序存儲(chǔ)RAM中,然后程序代碼將程序代碼自己從外程序存儲(chǔ)RAM寫(xiě)到F240的內(nèi)部Flash ROM中,如何寫(xiě)?
答:如果你用F240,你可以用下載TI做的工具。其它的可以這樣做。
問(wèn):C5510芯片如何接入E1信號(hào)?在接入時(shí)有什么需要注意的地方?
答:通過(guò)McBSP同步串口接入。注意信號(hào)電平必須滿足要求。
問(wèn):請(qǐng)問(wèn)如何通過(guò)仿真器把.HEX程序直接燒到FLASH中去?所用DSP為5402是否需要自己另外編寫(xiě)一個(gè)燒寫(xiě)程序, 如何實(shí)現(xiàn)?謝謝!!
答:直接寫(xiě).OUT。是DSP中寫(xiě)一段程序,把主程序?qū)懙紽LASH中。
問(wèn):DSP的硬件設(shè)計(jì)和其他的電路板有什么不同的地方?
答:1.要考慮時(shí)序要求;2.要考慮EMI的要求;3.要考慮高速的要求;4.要考慮電源的要求。
問(wèn):ADS7811,ADS7815,ADS8320,ADS8325,ADS8341,ADS8343,ADS8344,ADS8345中,哪個(gè)可以較方便地與VC33連接,完成10個(gè)模擬信號(hào)的AD轉(zhuǎn)換(要求16bit,1毫秒內(nèi)完成10個(gè)信號(hào)的采樣,當(dāng)然也要考慮價(jià)格)?
答:作選擇有下列幾點(diǎn)需要考慮1. 總的采樣率:1ms、10個(gè)通道,總采樣率為100K ,所有A/D均能滿足要求。2. A/D與VC33的接口類(lèi)型:并行、串行。前2種A/D為并行接口,后幾種均為串行接口。3. 接口電平的匹配。前2種A/D為5V電平,與VC33不能接口;后幾種均可為3.3V電平,可與VC33直接接口。
問(wèn):DSP的電路板有時(shí)調(diào)試成功率低于50%,連接和底板均無(wú)問(wèn)題,如何解決?有時(shí)DSP同CPLD產(chǎn)生不明原因的沖突,如何避免?
答:看來(lái)你的硬件設(shè)計(jì)可能有問(wèn)題,不應(yīng)該這么小的成功率。我們的板的成功率為95%以上。
問(wèn):我們的工程有兩人參與開(kāi)發(fā),由于事先沒(méi)有考慮周全,一人使用的是助記符方式編寫(xiě)
匯編代碼,另一人使用的是代數(shù)符號(hào)方式編寫(xiě)匯編代碼,請(qǐng)問(wèn)CCS5000中這二種編寫(xiě)方式如何嵌在一起調(diào)試?
答:我沒(méi)有這樣用過(guò),我想可以用下面的辦法解決:將一種方式的程序先單獨(dú)編譯為.obj
文件,在創(chuàng)建工程時(shí),將這些.obj文件和另一種方式的程序一起加進(jìn)工程中,二者即可一
起編譯調(diào)試了。
問(wèn):DSP數(shù)據(jù)緩沖,能否用SDRAM代替FIFO?
答:不行
問(wèn):ADC或DAC和DSP相連接時(shí),要注意什么問(wèn)題?比如匹配問(wèn)題,以保證A/D采樣穩(wěn)定或D/A碼不丟失。
答:1. 接口方式:并行/串行;2. 接口電平,必須保證二者一致。
問(wèn):用F240經(jīng)常發(fā)生外部中斷丟失現(xiàn)象,甚至在實(shí)際環(huán)境中只有在程序剛開(kāi)始時(shí)能產(chǎn)生中
斷,幾分鐘后就不能產(chǎn)生中斷。有時(shí)只能采取查詢的方式,請(qǐng)問(wèn)有何有效的解決方法?改
為F2407是不是要好些?
答:應(yīng)該同DSP無(wú)關(guān)。建議你將中斷服務(wù)程序簡(jiǎn)化看一下。
四十九.時(shí)鐘電路選擇原則
1,系統(tǒng)中要求多個(gè)不同頻率的時(shí)鐘信號(hào)時(shí),首選可編程時(shí)鐘芯片;
2,單一時(shí)鐘信號(hào)時(shí),選擇晶體時(shí)鐘電路;
3,多個(gè)同頻時(shí)鐘信號(hào)時(shí),選擇晶振;
4,盡量使用DSP片內(nèi)的PLL,降低片外時(shí)鐘頻率,提高系統(tǒng)的穩(wěn)定性;
5,C6000、C5510、C5409A、C5416、C5420、C5421和C5441等DSP片內(nèi)無(wú)振蕩電路,不能用晶體時(shí)鐘電路;
6,VC5401、VC5402、VC5409和F281x等DSP時(shí)鐘信號(hào)的電平為1.8V,建議采用晶體時(shí)鐘電路
五十.C程序的代碼和數(shù)據(jù)如何定位
1,系統(tǒng)定義:
.cinit 存放C程序中的變量初值和常量;
.const 存放C程序中的字符常量、浮點(diǎn)常量和用const聲明的常量;
tch 存放C程序tch語(yǔ)句的跳針表;
.text 存放C程序的代碼;
.bss 為C程序中的全局和靜態(tài)變量保留存儲(chǔ)空間;
.far 為C程序中用far聲明的全局和靜態(tài)變量保留空間;
.stack 為C程序系統(tǒng)堆棧保留存儲(chǔ)空間,用于保存返回地址、函數(shù)間的參數(shù)傳遞、存儲(chǔ)局部變量和保存中間結(jié)果;
.sysmem 用于C程序中malloc、calloc和realloc函數(shù)動(dòng)態(tài)分配存儲(chǔ)空間
2,用戶定義:
#pragma CODE_SECTION (symbol, "section name");
#pragma DATA_SECTION (symbol, "section name")
五十一.cmd文件
由3部分組成:
1)輸入/輸出定義:.obj文件:鏈接器要鏈接的目標(biāo)文件;.lib文件:鏈接器要鏈接的庫(kù)文件;.map文件:鏈接器生成的交叉索引文件;.out文件:鏈接器生成的可執(zhí)行代碼;鏈接器選項(xiàng)
2)MEMORY命令:描述系統(tǒng)實(shí)際的硬件資源
3)SECTIONS命令:描述"段"如何定位
五十二.為什么要設(shè)計(jì)CSL?
1,DSP片上外設(shè)種類(lèi)及其應(yīng)用日趨復(fù)雜
2,提供一組標(biāo)準(zhǔn)的方法用于訪問(wèn)和控制片上外設(shè)
3,免除用戶編寫(xiě)配置和控制片上外設(shè)所必需的定義和代碼
五十三.什么是CSL?
1,用于配置、控制和管理DSP片上外設(shè)
2,已為C6000和C5000系列DSP設(shè)計(jì)了各自的CSL庫(kù)
3,CSL庫(kù)函數(shù)大多數(shù)是用C語(yǔ)言編寫(xiě)的,并已對(duì)代碼的大小和速度進(jìn)行了優(yōu)化
4,CSL庫(kù)是可裁剪的:即只有被使用的CSL模塊才會(huì)包含進(jìn)應(yīng)用程序中
5,CSL庫(kù)是可擴(kuò)展的:每個(gè)片上外設(shè)的API相互獨(dú)立,增加新的API,對(duì)其他片上外設(shè)沒(méi)有影響
五十四.CSL的特點(diǎn)
1,片上外設(shè)編程的標(biāo)準(zhǔn)協(xié)議:定義一組標(biāo)準(zhǔn)的APIs:函數(shù)、數(shù)據(jù)類(lèi)型、宏;
2,對(duì)硬件進(jìn)行抽象,提取符號(hào)化的片上外設(shè)描述:定義一組宏,用于訪問(wèn)和建立寄存器及其域值
3,基本的資源管理:對(duì)多資源的片上外設(shè)進(jìn)行管理;
4,已集成到DSP/BIOS中:通過(guò)圖形用戶接口GUI對(duì)CSL進(jìn)行配置;
5,使片上外設(shè)容易使用:縮短開(kāi)發(fā)時(shí)間,增加可移植.
五十五.為什么需要電平變換?
1)DSP系統(tǒng)中難免存在5V/3.3V混合供電現(xiàn)象;
2)I/O為3.3V供電的DSP,其輸入信號(hào)電平不允許超過(guò)電源電壓3.3V;
3)5V器件輸出信號(hào)高電平可達(dá)4.4V;
4)長(zhǎng)時(shí)間超常工作會(huì)損壞DSP器件;
5)輸出信號(hào)電平一般無(wú)需變換
五十六.電平變換的方法
1,總線收發(fā)器(Bus Transceiver):
常用器件: SN74LVTH245A(8位)、SN74LVTH16245A(16位)
特點(diǎn):3.3V供電,需進(jìn)行方向控制,
延遲:3.5ns,驅(qū)動(dòng):-32/64mA,
輸入容限:5V
應(yīng)用:數(shù)據(jù)、地址和控制總線的驅(qū)動(dòng)
2,總線開(kāi)關(guān)(Bustch)
常用器件:SN74CBTD3384(10位)、SN74CBTD16210(20位)
特點(diǎn):5V供電,無(wú)需方向控制
延遲:0.25ns,驅(qū)動(dòng)能力不增加
應(yīng)用:適用于信號(hào)方向靈活、且負(fù)載單一的應(yīng)用,如McBSP等外設(shè)信號(hào)的電平變換
3,2選1切換器(1 of 2 Multiplexer)
常用器件:SN74CBT3257(4位)、SN74CBT16292(12位)
特點(diǎn):實(shí)現(xiàn)2選1,5V供電,無(wú)需方向控制
延遲:0.25ns,驅(qū)動(dòng)能力不增加
應(yīng)用:適用于多路切換信號(hào)、且要進(jìn)行電平變換的應(yīng)用,如雙路復(fù)用的McBSP
4,CPLD
3.3V供電,但輸入容限為5V,并且延遲較大:>7ns,適用于少量的對(duì)延遲要求不高的輸入信號(hào)
5,電阻分壓
10KΩ和20KΩ串聯(lián)分壓,5V×20÷(10+20)≈3.3V
五十七.未用的輸入/輸出引腳的處理
1,未用的輸入引腳不能懸空不接,而應(yīng)將它們上拉活下拉為固定的電平
1)關(guān)鍵的控制輸入引腳,如Ready、Hold等,應(yīng)固定接為適當(dāng)?shù)臓顟B(tài),Ready引腳應(yīng)固定接為有效狀態(tài),Hold引腳應(yīng)固定接為無(wú)效狀態(tài)
2)無(wú)連接(NC)和保留(RSV)引腳,NC 引腳:除非特殊說(shuō)明,這些引腳懸空不接,RSV引腳:應(yīng)根據(jù)數(shù)據(jù)手冊(cè)具體決定接還是不接
3)非關(guān)鍵的輸入引腳,將它們上拉或下拉為固定的電平,以降低功耗
2,未用的輸出引腳可以懸空不接
3,未用的I/O引腳:如果確省狀態(tài)為輸入引腳,則作為非關(guān)鍵的輸入引腳處理,上拉或下拉為固定的電平;如果確省狀態(tài)為輸出引腳,則可以懸空不接