歡迎您光臨本站 登入註冊首頁

DSP 5402時鐘與定時器中斷FAQ

admin @ 2014-03-25 , reply:0

概述

時鐘 VC5402的核電壓為1。8V,從DATASHEET上了解到,外部時鐘的電平不能超過1。8V,而一般的4腳有源晶振都是5V,請問高人有何解決辦法?1。一般四腳的卧室有源晶振在3。3V可……
時鐘
 

VC5402的核電壓為1。8V,從DATASHEET上了解到,外部時鐘的電平不能超過1。8V,而一般的4腳有源晶振都是5V,請問高人有何解決辦法?

1。一般四腳的卧室有源晶振在3。3V可以工作,還可以在輸出腳串一100左右的電阻。
2.請用CMOS工藝的晶振(3。3V),市面上常見的晶振為TTL工藝(3。3V)和晶振廠家聯繫。

 

我的設計中有C51和5402,如何能公用一個晶振嗎?

公用一塊晶陣,頻率選擇以C51為準,5402利用片內PLL倍頻到100MHZ。5402外設中有時鐘生成器,通過設置時鐘模式寄存器clkmd,可以將dsp時鐘倍頻到100MHz。

 

不太明白5402的clkout是輸出怎樣信號,由那些控制決定的?

5402的CLKOUT引腳輸出的是DSP的機器時鐘。X1和X2的外部輸入時鐘經過倍頻后得到100M的機器時鐘,並可以通過CLKOUT腳輸出。

 

1) C3X userguide 上寫TMS320C30-40 是"40MFLOPS,20MIPS,50 ns single-cycle
instruction execution time",40MFLOPS好理解,為什麼是20MIPS,浮點和整數為什麼有兩倍的關係?為什麼single-cycle instruction execution time是50 ns,
而不是25 ns? 1/40M應該是25ns 啊?

2) 請問C3X的速度最快可以到多快?(指國內市場上晶元支持)我好象看到最快的C3X用的是40M的晶振,還有更快的嗎?

C3X的機器時鐘為H1/H3,為輸入外部時鐘的一半。所以一條指令的時間為50ns。 一條浮點運算指令也是1個機器時鐘,即50ns。C33有-150的,13ns一條指令。

 

一塊晶振是不是帶得動四塊DSP,若不行,加一個緩衝電路如74F244行不行。

1.加一個74F244或245都可以,我曾經用一個晶振同時驅動過3個晶元,更多則有困難。不過加驅動是注意應該給晶振單獨使用一個驅動器。不要和其他信號混用。
2.理論上講就晶振的負載可以帶動15個IC.我剛查的.
3.加一個act244應該可以
4.為保險起見,用專用的時鐘驅動器,IDT有,好象是805和806。

 

1. 如果dsp的但周期指令時間是50ns,那麼dsp的外部時鐘晶振是否應該是根據單周期指令時間來計算,應該是 20MHz

2.dsp的外部時鐘電路一般怎麼接,c32隻有一個CLKIN腳。

3.c32提供了兩個外部時鐘H1和H2,他們的輸出頻率是CLKIN的一半。

如果外部一些器件需要時鐘源,是否應該接dsp的H1和H2,如果H1和H2的頻率不符合外部器件,那麼外部器件是否應該再單獨接另外的時鐘源

1。DSP器件上標著的時鐘頻率與機器周期頻率或指令周期頻率不一定一樣。你需要具體查閱器件手冊。例如‘C32 -40,雖然需要輸入40MHZ時鐘,但C32內部使用的是H1或H3,為CLKIN的一半,這時C32的指令周期只有50ns。又如 C542-40,表示542的指令周期為25ns,由於542片內有PLL電路,外部輸入可以不是40MHZ,可以為10MHZ。

2。一般TI DSP時鐘輸入腳有CLKIN和X1,X2兩種。若使用CLKIN,必須在外部產生時鐘信號,通常使用有源的卧式晶陣。若使用X1和X2,可以使用兩個腳的晶體。

3。 一般DSP都將內部使用的機器周期頻率輸出的外部,如C32的H1,H2腳,你可以使用他們作為時鐘源。

 

定時器中斷
 

請問:如果用'5402的定時器進行定時,如何計算延時時間。

設置PRD寄存器和TCR中的TDDR(bit3-bit0)共20個bit對5402的10ns的機器時鐘計數。

 

如何設置定時器?

簡單地講,定時器實際上可以有20個比特的周期寄存器。它對CLKOUT信號計數,先將PSC(TCR中的D6- D9位)減1,直到PSC為0,然後用TDDR(TCR中的低4位)重新裝入PSC,同時將TIM減1,直到TIM減為0。這時CPU發出TINT中斷,同時在TOUT引腳輸出一個脈衝信號,脈衝寬度為CLKOUT一致。然後用PRD重新裝入TIM,重複下去直到系統或定時器複位。計算公式:

TINT的頻率=1/(tc*(TDDR+1)*(PRD+1)), tc為CLKOUT的周期。

定時器初始化步驟:

1.對TCR的TSS位寫一以停止定時器。
2.裝載PRD。
3.初始化TCR中的TDDR,並對TCR中的TSS置0,啟動定時器。

設置定時器中斷:(INTM=1)

1.對IFR中的TINT寫1以清除待決的定時器中斷。
2.對IMR中的TINT置1,使能定時器中斷。
3.使能全部中斷,INTM置0.

在RESET后,TIM和PRD被設置為最大值(FFFFh)。TCR中的TDDR置0。定時器啟動。

 

F240中中斷向量表中只有一個中斷向量是定時器中斷,但並沒有指明是哪個定時器的中斷。。。 如何使用?

1.進入定時器中斷後,讀一個寄存器來判斷是哪個定時器。我記不清是哪個寄存器了。

2.There are 12 interrupt flags in EVIFRA and EVIFRB for the three GP timers,EVIFRC is another one. You can find what you needed in those two Registers. But what I know is just as these, Timer interrupts of Group A generate interrupt requests to the core on INT2, Group B and C generate interrupt requests to the core on INT3 and 4. You can mask them by using mask registers, EVIMRA,EVIMRB and EVIMRC. Good Luck


[admin via 研發互助社區 ] DSP 5402時鐘與定時器中斷FAQ已經有4890次圍觀

http://cocdig.com/docs/show-post-42939.html