• 沒有找到結果。

模組模擬與驗證

第五章 晶片功能模組設計與模擬驗證

5.2 模組模擬與驗證

如圖 5.18,當 clk_4 正緣觸發時,先判斷 restart 訊號是否為高準位,若是則將 此模組的參數重致歸零,若 restart 訊號為低準位時,則偵測 closed_en 訊號,判斷 是否進入閉迴路程序。若 closed_en 訊號為高準位時,則依據閉迴路模組輸出的 FG_c 訊號來計算出目前的轉速。計算轉速的方法為利用此模組內的計數器 qfout 不斷計數十個週期的 FG_c 訊號,然後將 qfout 值套入 (3.8)式 的 N 中,即可得知 目前的轉速。

5.2 模組模擬與驗證

由於有些模組時脈較大,需要較多的時間量來跑模擬,但模擬只是為了驗證 其模組的功能性,所以為了其方便與效率性,除了閉迴路模組與轉速計算模組外,

模擬時將各模組的時脈皆設定為 20ns

5.2.1 開關控制模組模擬

以圖 5.19模擬結果驗證圖 5.3的流程圖,當 sw 為低準位且計數器數到 011111 時,ao_en 則轉為高準位;當 sw 與 reset 同為低準位時,ao_en 則轉為低準位。

圖 5.19: 開關控制模組模擬圖

5.2.2 定位與開迴路模組模擬

將 clk_count1 的訊號縮減 2 倍,以 2014 ns當作模組時脈來跑模擬,模擬圖如

第五章 晶片功能模組設計與模擬驗證 圖 5.20,當 ao_en 為高準位時,經過定位與開迴路程序後,則將 closed_en 設定為 高準位。若是 restart 為高準位時,則將 closed_en 轉為低準位及將輸出旗標設定為 0110。流程圖見圖 5.7。

圖5.20: 定位與開迴路模組模擬圖

為了能夠更仔細的觀察輸出旗標的狀態,我們將模擬圖放大如圖 5.21。當啟 動定位與開迴路啟動程序時,flag1=0100 導通 42.72(0.7×214) sμ 後完成定位程 序。之後flag1=0000 導通 2.32(0.038×214) sμ ,再將flag1=0001 導通 0.92 (0.015×214) sμ 完成開迴路啟動程序。

圖 5.21: 定位與開迴路模組模擬放大圖

5.2.3 閉迴路模組模擬

1. 150 度十二步方波驅動

如圖 5.22,當 restart 為低準位且 closed_en 為高準位時,則開始驅動 150度十 二步方波驅動。利用計數器計數 emf 訊號的高準位與低準位,高低準位的時間各 佔 60 度電氣角時間,輸出旗標以 30 度電氣角時間作切換,在 360 度電氣角時間 內總共切換了十二步,與圖 3.2相符合。為了防止 PWM 訊號影響到零交越點的偵

第五章 晶片功能模組設計與模擬驗證 測,在要產生時交越點的區域,設定 dead_out 為低準位。當零交越點偵測完畢之 後,再把 dead_out 訊號恢復到高準位,使 PWM 訊號輸入到六橋電路。

圖 5.22: 閉迴路模組 - 150 度十二步方波驅動模擬圖 1

當 restart 為高準位且 closed_en 為低準位時,則將此模組的參數歸零,flag2 保 持不變,如圖 5.23。比較圖 5.22與圖 5.23可得,當馬達轉速與 emf 頻率增快時 (圖 5.23),FG_c 的週期會變小,驗證了馬達轉速與 FG_c 訊號成反比的關係。

圖 5.23: 閉迴路模組 - 150 度十二步方波驅動模擬圖 2

2. 180 度九步方波驅動

如圖 5.24,當 restart 為低準位且 closed_en 為高準位時,則開始驅動 180 度九 步方波驅動。利用計數器計數 emf 訊號一個週期的電氣角時間,約為 120 度電氣 角時間。當偵測到零交越點後開始導通 180 度六步方波驅動,分別導通 60 度電氣 角與 30 度電氣角時間。之後再換相導通 120 度驅動以便零交越點的偵測。輸出旗 標以 60 度電氣角與 30 度電氣角時間作切換,在 360 度電氣角時間內總共切換了 九步,與圖 3.4相符合。

第五章 晶片功能模組設計與模擬驗證

圖 5.24: 閉迴路模組 - 180 度九步方波驅動模擬圖

3. 180 度六步方波驅動

如圖 5.25,當 restart 為低準位且 closed_en 為高準位時,則開始驅動 180 度六 步方波驅動。利用計數器計數 emf 訊號,計數直到偵測到零交越點,約為 120 度 電氣角時間。當偵測到零交越點時,計數 30 度電氣角時間後作換相,導通 60 度 電氣角時間的 240 度三步方波驅動的其中一相之後,再導通 120 度驅動以便做零 交越點偵測。其中輸出旗標以 60 度電氣角時間作切換,在 360 度電氣角時間內總 共切換了六步,與圖 3.6相符合。

圖 5.25: 閉迴路模組 - 180 度六步方波驅動模擬圖

4.210度六步方波驅動

如圖 5.26,當 restart 為低準位且 closed_en 為高準位時,則開始驅動 210 度六 步方波驅動。利用計數器計數 emf 訊號一個週期的電氣角時間,約為 120 度電氣 角時間。當偵測到零交越點後開始導通 240 度三步方波驅動的其中一相,計數 90

第五章 晶片功能模組設計與模擬驗證 360 度電氣角時間內總共切換了六步,與圖 3.8相符合。

圖 5.26: 閉迴路模組組 - 210 度六步方波驅動模擬圖

5.2.4 錯誤偵測模組模擬

圖 5.27為錯誤偵測的模擬結果,當轉速過慢時會造成 FG_c 訊號週期變大,所 以 FG_c 訊號在高準位或低準位持續時間太久時,則將 error_r_out 訊號拉升為高準 位,告知系統馬達旋轉似乎出現問題需要將系統重致。

圖 5.27: 錯誤偵測模組模擬圖

5.2.5 模式切換模組

如圖 5.28,reset 訊號為低準位或是 error_r 訊號為高準位時,將 flag 設定為 0110 使外部六橋開關關閉,並且將 restart 訊號拉升為高準位,使系統重致。最後 依據 flag 為何來適當選擇未激發相與中心相電壓比較後的 u、v、w 訊號作為零交 越點訊號 emf。由於偵測零交越點訊號的任務是在閉迴路部份執行,所以只有在 closed_en 為高準位時,才是我們所要的訊號,至於在 closed_en 為低準位的 emf 訊

第五章 晶片功能模組設計與模擬驗證 號則不理會之。

圖 5.28: 模式切換模組模擬圖

模式切換模組另一功能為選擇 flag_out 為定位與開迴路六橋開關輸出旗標 flag1 或閉迴路六橋開關輸出旗標 flag2。為了能夠清楚看出 flag_out 訊號,所以將 模擬圖放大,如圖 5.29。若 closed_en 訊號為低準位時,代表此時為執行定位與開 迴路程序,flag_out 為 flag1。否則代表此時為執行閉迴路程序,flag_out 為 flag2。

圖 5.29: 模式切換模組模擬放大圖

第五章 晶片功能模組設計與模擬驗證

5.2.6 六橋輸出與脈波寬度調變模組

為了方便觀察六橋開關上的 PWM 訊號,所以使用 120 度六步方波驅動做模 擬。如圖 5.30,我們可觀察到在 dead_out=0 的區域與定位與開迴路程序 (closed- _en=0) 時,PWM 訊號停止輸入至各上橋電路,但六橋開關依然隨著 flag 的不同 而作切換。

圖 5.30: 當 dead=0 與 closed_en=0 時,六橋輸出與脈波寬度調變模組模擬圖

而 PWM 的 duty cycle 可藉由不同的電壓控制命令 cv 來改變,此模組的三角 波擺動振幅為 0 至 2000,所以當輸入 cv 為 500 時,PWM 的 duty cycle 約為 25%,

如圖 5.31;若 cv為 1000 時,PWM 的 duty cycle 約為 50%,如圖 5.32;若 cv為 1500 時,PWM 的 duty cycle 約為 75%,如圖 5.33。

圖 5.31: 當 PWM 的 duty cycle 約為 25% 的模擬圖

第五章 晶片功能模組設計與模擬驗證

圖 5.32: 當 PWM 的 duty cycle 約為 50% 的模擬圖

圖 5.33: 當 PWM 的 duty cycle 約為 75% 的模擬圖

5.2.7 轉速計算模組

如圖 5.34, restart 訊號為高準位時,則將參數重致歸零,而 closed_en 訊號為 低準位時,不計算轉速。若 restart 訊號為低準位且 closed_en 訊號為高準位時,依 據閉迴路模組輸出的 FG_c 訊號來計算出目前的轉速。設定 FG_c 週期為 2ms,利 用 (3.5)式 計算轉速為 5000 rpm 與模擬結果相符合。

第五章 晶片功能模組設計與模擬驗證

圖 5.34: 轉速計算模組模擬圖

相關文件