日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TMS320C6678上电配置和FPGA复位DSP

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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程序)
  • 第二種是通過外部上拉/下拉電阻。
提示: 合理的板載設計應該確保所有的設備輸入引腳都在一個有效電平而不能懸空,可以通過上拉/下拉電阻實現,當然可以內部上拉或外部上拉。 設備通過評估需求,一般內部實現上拉/下拉。但是一些管腳需要外部上拉/下拉。 (1) 設備配置管腳:這些管腳同時需要輸出(C6678的配置管腳和GPIO是公用管腳)且沒有驅動(高阻態),即使內部上拉/下拉電阻也許滿足需求電平, 但是外部上拉/下拉也是必須,目的是為了確保配置有效,也方便切換模式。 (2) 其他輸入管腳:如果內部上拉/下拉沒有滿足需求電平,則需要外部上拉/下拉。
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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。