1引言
通過串口總線可以對(duì)TMS320LF2407A FLASH進(jìn)行編程。串口編程可以對(duì)DSP系統(tǒng)編程,同時(shí)本文給出了一種可編程的應(yīng)用方法。
該DSP擁有一個(gè)片內(nèi)串口,可以通過一個(gè)外部的電平轉(zhuǎn)換器件與標(biāo)準(zhǔn)RS232器件通訊。該串口不僅僅用于編程,在編程結(jié)束后可以配置成標(biāo)準(zhǔn)的串口使用。
Bootloader是一個(gè)讓用戶方便對(duì)片內(nèi)FLASH或RAM進(jìn)行重新編程升級(jí)的工具。Bootloader本身不包含某些編程算法,嵌入在片內(nèi)的Bootloader只具有一些基本的代碼下載指令,并在片內(nèi)RAM運(yùn)行。Bootloader一般都提供一些編程片內(nèi)程序存儲(chǔ)器的ISP和IAP的接口。
ISP(In-System Programming):使用片內(nèi)的Bootloader軟件和通訊接口,對(duì)片內(nèi)存儲(chǔ)器進(jìn)行編程和重編程。IAP(In Application Programming):IAP對(duì)片內(nèi)存儲(chǔ)器執(zhí)行擦除和寫操作,可以由用戶代碼來執(zhí)行。
2工作過程
2.1DSP初始化
上電以后,程序首先從地址0x0000開始執(zhí)行,然后立即跳轉(zhuǎn)到bootloade程序。
.sect vectors
RESET: B _bootloader ; 地址0x0000
……。。
_bootloader :
Bootloade首先對(duì)串口進(jìn)行配置,8位數(shù)據(jù)位,一位停止位,無校驗(yàn)位,建立與 計(jì)算 機(jī)的通訊。在此過程中,計(jì)算機(jī)始終向DSP發(fā)送檢測(cè)字符,0x0D. Bootloade一直通過串口監(jiān)聽計(jì)算機(jī)通訊,如果連續(xù)接受到三個(gè)字符與0X0D不相符合,則改為下一個(gè)波特率進(jìn)行監(jiān)聽。當(dāng)波特率匹配成功后,Bootloade就準(zhǔn)備接收9個(gè)相同的字符。一旦9個(gè)字符接收成功后,Bootloade將發(fā)送一個(gè)應(yīng)答信號(hào)0XAA,表示通訊建立,從此開始,Bootloade接收到的每一個(gè)字符都將發(fā)送給計(jì)算機(jī),以驗(yàn)證通訊是否正確。
2.2內(nèi)核傳輸
內(nèi)核通過通訊接口,以字節(jié)為單位進(jìn)行傳輸。首先發(fā)送的是低字節(jié),后面是高字節(jié)。數(shù)據(jù)包格式如下:
計(jì)算機(jī)發(fā)送:
①啟動(dòng)地址:一個(gè)字(16 bits),每次傳輸一個(gè)字節(jié),低字節(jié)優(yōu)先。
②數(shù)據(jù)包容量(要傳輸?shù)淖值臄?shù)目):一個(gè)字(16 bits),每次傳輸一個(gè)字節(jié),低字節(jié)優(yōu)先。
③內(nèi)核代碼:每次傳輸一個(gè)字節(jié),低字節(jié)優(yōu)先。一旦內(nèi)核傳輸?shù)絉am,內(nèi)核會(huì)發(fā)送狀態(tài)字節(jié)來表示初始化的狀態(tài)。0X0表示發(fā)送成功,其它 內(nèi)容 表示發(fā)送失敗,計(jì)算機(jī)會(huì)終止傳輸。
2.3內(nèi)核操作
內(nèi)核只要成功傳輸,則內(nèi)核程序?qū)⒔庸芸刂乒δ堋?duì)于TMS320LF2407A,內(nèi)核程序算法必須滿足以下要求:
①內(nèi)核必須小于0X100字,并且必須在程序空間0Xfe00-0Xfeff安裝和執(zhí)行,程序起始點(diǎn)必須是0Xfe00。
②內(nèi)核必須返回程序的狀態(tài)。
③內(nèi)核程序必須能夠?qū)⒖刂乒δ芊祷兀粫?huì)破壞程序使用的變量。
④內(nèi)核等待擦除,置1和編程的算法。
⑤內(nèi)核必須裝載到有效的地址內(nèi)存空間內(nèi)。
2.4擦除算法
擦除算法是第一個(gè)被下載到目標(biāo)芯片內(nèi)的算法。它將FLASH第一扇區(qū)和第二扇區(qū)的內(nèi)容清0,為FLASH置位作準(zhǔn)備。成功擦除后,返回0x0,不然就返回一個(gè)非零值。
2.5置位
下載置位算法,它可以置位FLASH。成功置位后,返回0x0,不然就返回一個(gè)非零值。
2.6編程
下載編程算法,但編程算法并不立即執(zhí)行,而是下載第一組編程數(shù)據(jù)。一旦得到編程數(shù)據(jù),將會(huì)調(diào)用編程算法,將下載的編程數(shù)據(jù)燒寫到FLASH里。圖2是編程步驟的流程圖。
對(duì)FLASH第一扇區(qū)的編程操作結(jié)束以后,編程算法將向 計(jì)算 機(jī)返回狀態(tài)。并一直等待下一組編程數(shù)據(jù),一直到接收到最后一組數(shù)據(jù)標(biāo)志為止。將編程數(shù)據(jù)燒寫到FLASH后,編程算法將控制權(quán)交給工作程序。
3使用 方法
為了使用該軟件將程序下載到FLASH里,首先要通過編譯器將程序編譯、調(diào)試通過,一般編譯器生成的文件格式為COFF格式,該文件包含程序二進(jìn)制代碼,但不包含要燒寫到FLASH里的二進(jìn)制文件。需要使用工具將該文件格式轉(zhuǎn)換為可下載的文件格式。
在芯片內(nèi)有四個(gè)字的密碼,在下載程序時(shí)要注意。如果下載程序里的密碼是0X0000 或0X0FFFF,則不用關(guān)心,但如果其它的密碼,則需要記錄下來,以備下次下載時(shí)使用,將密碼設(shè)置到要下載的程序里,解密原來的芯片。
Password1:set 0000h ;在地址0x0040中的密碼
Password2:set 0000h ;在地址0x0041中的密碼
Password3:set 0000h ;在地址0x0042中的密碼
Password4:set 0000h ;在地址0x0043中的密碼
4結(jié)果
使用該方法可以方便的對(duì)芯片進(jìn)行程序下載,成本低、操作方便。本方法已經(jīng)在北京瑞泰公司的DSP開發(fā)板上調(diào)試通過,穩(wěn)定可靠。
參考文獻(xiàn)
[1]劉和平。 TMS320LF240x DSP結(jié)構(gòu)原理及 應(yīng)用 。 北京:北京航空航天大學(xué)出版社,2002.
[2]張雄偉等。 DSP芯片的原理與開發(fā)應(yīng)用(第3版)[M]。 北京:北京 電子 工業(yè) 出版社,2003.
[3]TMS320LF2407A DSP controller. TI 2000.
[4]潭浩強(qiáng)。 C 程序設(shè)計(jì)[M]。 北京:清華大學(xué)出版社,2003.
編輯:jq
-
dsp
+關(guān)注
關(guān)注
561文章
8244瀏覽量
366635 -
FlaSh
+關(guān)注
關(guān)注
10文章
1748瀏覽量
155522 -
串口
+關(guān)注
關(guān)注
15文章
1619瀏覽量
82822
發(fā)布評(píng)論請(qǐng)先 登錄
TPS65178/TPS65178A:全可編程LCD偏置IC的深度解析
TLA431與TLA432:全電容穩(wěn)定精密可編程基準(zhǔn)源的深度剖析
TPS65177/A:全 I2C 可編程 6 通道 LCD 偏置 IC 的詳細(xì)解析
TMP709電阻可編程溫度開關(guān):設(shè)計(jì)與應(yīng)用全解析
高低溫試驗(yàn)箱試驗(yàn)功能全解析:恒溫 / 循環(huán) / 可編程怎么選?
探索LTC6373:36V全差分可編程增益儀表放大器的卓越性能
音頻應(yīng)用的利器:DS4420 I2C可編程增益放大器
Zynq全可編程片上系統(tǒng)詳解
YXC高精度的石英可編程壓控溫補(bǔ)振蕩器:YSV531PT系列
源儀電子S7220交直流可編程電源產(chǎn)品介紹
用于 DOCSIS 3.0 上行路徑的可編程增益放大器 skyworksinc
LP5560可編程單LED驅(qū)動(dòng)器數(shù)據(jù)手冊(cè)總結(jié)
PGA855可編程增益儀表放大器技術(shù)解析與應(yīng)用指南
可編程SLIC語音芯片哪家好?
可編程電子負(fù)載的原理及主要應(yīng)用
超全使用串口對(duì)DSP進(jìn)行應(yīng)用可編程的方法
評(píng)論