TMS320C6678上电配置和FPGA复位DSP
生活随笔
收集整理的這篇文章主要介紹了
TMS320C6678上电配置和FPGA复位DSP
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考手冊:TMS320C6678用戶手冊。 https://blog.csdn.net/u014404875/article/details/79771589
1. DSP上電復位配置什么?
DSP的大、小端,自啟動(boot)模式,PCIe模式,網絡協處理器時鐘選擇需要在上電復位的時候選擇,怎么選擇? 依靠上電時候鎖定DSP Device Configuration pins(設備配置管腳)的邏輯電平。 配置管腳的邏輯電平怎么設置? 一般采用兩種方式:
- 第一種是把DSP的配置管腳全部和FPGA的IO連接,由FPGA上電控制(文末附FPGA復位DSP程序)
- 第二種是通過外部上拉/下拉電阻。
2. TMS320C6678設備配置管腳
(1) LENDIAN :決定DSP的大小端。 (2) BOOTMODE[12:0] :決定DSP的自啟動模式(詳情見BootLoader for the C66x DSP User Guide)。 (3) PCIESSMODE : 決定PCIe子系統處于EP、legacy EP還是RC。 (4) PCIESSEN : 決定是否使能PICe 子系統,默認是不使能。 (5) PACKSEL: 決定網絡協處理器的輸入時鐘是核時鐘還是PASSCLK時鐘。
3. DSP上電時序 DSP的上電時序,就是上電復位的時序。 設備初始化分為兩個階段: (1) 所有的供電電源穩定,不同的電源有供電時序,可見下面時序圖。 (2) RESET、POR、RESERFULL按時序拉高,當然還包括時鐘輸入穩定。
上電時序圖 注意: (1) 在電源穩定期間,POR要保持低電平,所以復位前拉低。 (2) DDRCLK、REFCLK應該在POR拉高前觸發。 (3) 一旦獲得DVDD18供電,RESETSTAT拉低。 在DVDD18供電前,所有的LVCMOS輸入和雙向管腳不能驅動為低電平或拉高。 (4) 在DVDD18有效后,RESETSTAT可以在任何時刻被拉高。在POR控制boot下,RESET必須在POR拉高前拉高。 (5) 在電源穩定后,POR必須持續保持低電平至少100us。至此,電源穩定階段結束。 (6) 在電源穩定階段后設備初始化需要500個REFCLK時鐘周期。最大時鐘周期是33.33nsec,所以在POR上升沿前延遲16us是必要的。在整個16us期間,時鐘必須是激活的。 (7) 在POR穩定在高電平之后,RESETFULL必須要保持低電平24個REFCLK時鐘周期。 (8) 在RESETFULL上升沿,設備鎖定GPIO 配置管腳的電平,然后進行配置,到復位狀態位RESETSTAT信號拉高延遲大約10000到50000個時鐘周期。 (9) GPIO配置必須在RESETFULL上升沿前保持至少12個REFCLK時鐘周期(transitions)。 (10) GPIO配置必須在RESETFULL上升沿后保持至少12個REFCLK時鐘周期(transitions)。 總的來說: 在各個電源供電正常后,DSP的時鐘穩定后,驅動RESET、POR、RESETFULL依次拉高,在RESETFULL的上升沿鎖定DSP復位配置的GPIO電平,然后RESETSTAT拉高,則DSP上電復位完成。
4. DSP的復位模式 總共四種復位模式,前三種復位模式都會觸發RESETSTAT,局部復位不會觸發RESETSTAT. (1) 上電復位 (2) 硬件復位 (3) 軟件復位 詳見手冊。 (4) 局部復位
局部復位時序圖 上電復位后,可以進行局部復位,即對每個核單獨復位。 局部復位可以被以下方式觸發:
- LRESET pin
- Watchdog timer、CORESEL[3:0] and RSTCFG register
- LPSC MMRs(memory-mapped registers)??
一般我們不使用局部復位,如果上電復位后,發現某些核處于復位狀態,而其他核可以連接使用,多半是局部復位造成的,應該把LRESETNMIEN 設置為1,則可以避免這個問題。
5. FPGA控制DSP上電復位程序。 module DSP_RST(input clk_25m,input RESETSTAT, //DSP復位狀態 0表示復位態 1表示工作態input LOCKED, //時鐘模塊是否正常output ref LRESETNMIENz = 1'b0, //局部復位管腳output reg PORz=1'b0, //Power-on Resetoutput reg RESETFULL=1'b0, //Full Resetoutput reg RESET=1'b0 );reg [2:0] RES_STATE=2'b00;reg [15:0] por_counter=16'b0,resetfull_counter=16'b0,reset_counter=16'b0;parameter IDLE=2'b00,PULL_RESET=2'b01,PULL_POR=2'b10,PULL_RESETFULL=2'b11;always @(posedge clk_25m)if(LOCKED==1)begincase(RES_STATE)IDLE: RES_STATE<=PULL_RESET ;PULL_RESET: if(reset_counter<25000)beginreset_counter<=reset_counter+16'b1;RES_STATE<=RES_STATE;RESET<=1'b0;PORz<=1'b0;RESETFULL<=1'b0;endelsebeginRESET<=1'b1;LRESETNMIENz<=1`b1; //禁止局部復位。RES_STATE<=PULL_POR;endPULL_POR: if(por_counter<25000) beginpor_counter<=por_counter+16'b1;RES_STATE<=RES_STATE;PORz<=1'b0;endelsebeginPORz<=1'b1;RES_STATE<=PULL_RESETFULL;endPULL_RESETFULL:if(resetfull_counter<25000)beginresetfull_counter<=resetfull_counter+16'b1;RES_STATE<=RES_STATE;RESETFULL<=1'b0;endelsebeginRESETFULL<=1'b1;RES_STATE<=RES_STATE;endendcase endelsebeginreset_counter<=16'b0;resetfull_counter<=16'b0;por_counter<=16'b0;RES_STATE<=IDLE;RESET<=1'b0;PORz<=1'b0;RESETFULL<=1'b0;endendmodule`
總結
以上是生活随笔為你收集整理的TMS320C6678上电配置和FPGA复位DSP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测视力距离5米还是3米_7岁男孩近视猛涨
- 下一篇: mysql异常关闭7034,SQL IS