等待狀態發生器可程式為指定的片外空間(數據、程式或I/O)產生一個等待狀態,而與READY信號的狀態無關。為了控制等待狀態發生器,就必須對映射到I/O空間的等待狀態控制暫存器(WSGR,地址為FFFFh)訪問。
基本介紹
- 中文名:等待狀態控制暫存器
- 外文名:WSGR
- 指定:片外空間
- 映射:空間的等待狀態控制暫存器
- 含義:保留,讀出的值永遠為0
各個位的含義,網友經驗,
各個位的含義
等待狀態控制暫存器的格式如下:
位15-11:保留,讀出的值永遠為0
位10-9:BVIS,匯流排可視模式。提供了一種跟蹤內部匯流排活動的方式。當運行片內的程式或者數據存儲器時,位10-9允許各種匯流排的可視模式。
00:匯流排可視模式關(降低功耗和噪聲)
01:匯流排可視模式開(降低功耗和噪聲)、
10:數據到地址匯流排輸出到外部地址匯流排
數據到數據匯流排輸出到外部數據匯流排
11:程式到地址匯流排輸出到外部地址匯流排
程式到程式匯流排輸出到外部數據匯流排
位8-6:ISWS,I/O空間等待狀態位。這三位決定了片外I/O空間等待狀態(0-7)的數目。復位時,這三位為111。為片外I/O空間的讀寫設定了7個等待狀態。
位5-3:DSWS,數據空間等待狀態位。這三位決定了片外數據空間等待狀態(0-7)的數目。復位時,這三位為111,為片外數據空間的讀寫設定了7個等待狀態。
位2-0:PSWS,程式空間等待狀態位。這三位決定了片外程式空間等待狀態(0-7)的數目。復位時,這三位置為111,為片外程式空間的讀寫設定了7個等待狀態。
總之不管READY信號的狀態如何,等待狀態發生器都將向給定的空間(數據、程式或I/O)插入0-7個等待狀態,等待狀態的數目由軟體來確定。然後READY信號可以變為低電平,產生附加的等待狀態。
網友經驗
在具體套用中,程式設計師可根據實際用到的片外資源靈活調整WSGR相關位的值。
為實現TMS320F206與慢速外部邏輯和存儲器的接口,等待狀態是十分必要的。當CPU對慢速存儲器或連線埠進行讀寫時,通過增加等待狀態,可延長CPU等待外部存儲器或外部I/O連線埠的時間以便更好地回響。為此,CPU為每個待狀態提供了1個額外的周期。為避免匯流排衝突,所有向外部地址的寫操作均需要至少2個周期。
在程式的調試過程中,我們常用設定斷點的方法判斷局部功能模組能否實現。若發現程式在尚未到達斷點時就隨機地停止運行,或仿真視窗出現“Time out waiting for device”紅色告警字樣的,可優先考慮調整等待狀態發生器控制暫存器(WSGR)的設定。
許多初學者在學習例程時發現其中的WSGR值均設為0000h(零等待狀態),就誤以為在任何情況下都可行,這是很不可取的。筆者在初次調試大型程式時,曾因為這個問題耗時多日後來試著將WSGR值由0000h改為0002h就順利解決了(將片外低端程式空間的讀/寫等狀態數設為2)。