2. 依據下圖所示,增加GND與PORT元件,並且修改同軸電纜參數。
2. 依據下圖所示,增加GND與PORT元件,並且修改同軸電纜參數。
1. 使用"滑鼠左鍵",點選"AWR Design Environment 16"。
4. 輸入電路圖名稱,這裡輸入"DC_analysis",之後按"Create"。
5. 在"Elements"標籤頁,選擇"Resistor" > "RES"電阻元件。
Schematic 常用快捷鍵
X:檢查並存檔
S:存檔
[:縮小
]:放大
F:整圖居中顯示
U:撤銷上一次操作
Esc:清除剛才鍵入的命令
C:複製
M:移動
e:進入下一層,可讀模式
E:進入下一層,可寫模式(不可返回)
Ctrl+e:返回上一層
Shift+m:移動Symbol但不移動連線
Delete:刪除
I:添加Symbol
P:添加Pin
R:旋轉Symbol並拖動連線
Q:屬性編輯
L:添加線名
Shift+L:標注
N:添加幾何圖形
Shift+N:添加標籤
G:查看錯誤
F3:對當前的命令進行編輯
Layout 常用快捷鍵
Shift+z:縮小
Ctrl+z:放大
F:整圖居中顯示
U:撤銷上一次操作
Esc:清楚剛鍵入的命令
Ctrl+D:取消選擇,這個也可用滑鼠點擊空白區域實現。經常使用這個快速鍵可以防止誤操作。
C:複製
M:移動
Q:顯示屬性
Delete:刪除
I:插入模組
(Instance)
S:拉伸工具
Stretch,要求是框選要拉伸圖形,再拉伸。我覺得這個拉伸工具是 Virtuoso 版圖設計區別於其他繪圖軟體的精華所在,能在保持圖形原有性質的前提下,自由拉伸。這個符合 Layout 佈局的要求。
R:畫矩形
Shift+P:多邊形工具
Polygon
P: 插入
Path(路徑)。這些最後都要 Convert
to Polygon 的。
K:尺規工具
Shift+K:清除所有尺規
Shift+C:裁切
(Chop)
L:標籤工具,標籤要加在特定的 text 層上
1. 先安裝好GVIM,開啟Vivado,選擇"Tools" > "Settings..."。
2. 在Region點選"All Layers",之後再點選Name欄位下名稱,按"滑鼠右鍵",選擇"Create" > "Region..."。
3. 輸入名稱後按"OK"。
1. 在OrCAD中Off-Page Connector只有向右與向左的符號,並沒有雙向符號,這樣無法表現出雙向匯流排的意涵,因此需要自己建立一個雙向Off-Page Connector,在OrCAD的安裝路徑下"..\tools\capture\library"下開啟"capsym.olb"檔。
2. 使用修改後另存新檔的方式建立一個雙向Off-Page Connector,點選"OFFPAGELEFT-L",修改圖示後,點選"File > Save As...",在Save Part As視窗中,名稱修改為"OFFPAGELEFT",按"OK"存檔。
3. 最後就可以在capsym.olb元件庫中看到新增的雙向Off-Page Connector元件。
這裡開發板MCU是使用"STM32F103C8T6"做實驗。
1. SYS設定。
*Debug: Serial Wire
*勾選System Wake-Up
2. RCC設定。
High Speed Clock(HES): Crystal/Ceramic Resonator
3. TIM1設定。
Clock Source: Internal Clock
Channel1: PWM Generation CH1
設定好後,可以看到PIN腳PA8設定成PWM輸出。
4. 設定 Clock參數。
5. TIM1 > Parameter Setting設定。
Prescaler(PSC - 16 bits value) : 72-1
Counter Period(AutoReload Register - 16 bits value): 1000
這裡設定Prescaler為72MHz~1MH範圍, 設定Counter Period為1000~1為頻率範圍,公式如下。
Tim Clock : 72MHz / 72 = 1MHz
Freq: 1MHz / 1000 = 1KHz
6. TIM1 > DMA Setting設定。
按"Add" 增加DMA設定,DMA Request選擇"TIM1_CH1",Direction選擇"Memory To Peripheral", Mode設定成"Normal", Data Width都設定成"Half Word"。
7. 計畫管理設定。
8. 建立一個矩陣,存放PWM高電位的時間,之前設定週期為1KHz,所以矩陣內參數100等於100us。
/* USER CODE BEGIN PD */
#define HPOT 10
uint16_t DataBuf[HPOT] = {900, 200, 300, 400, 500, 600, 700, 800, 900, 0};
9. 設定啟動PWM控制。
/* USER CODE BEGIN 2 */
HAL_Delay(200);
HAL_TIM_PWM_Start_DMA(&htim1, TIM_CHANNEL_1, (uint32_t*)&DataBuf, HPOT);
10. 設定PWM訊號輸出一次後關閉。
/* USER CODE BEGIN 0 */
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)
{
HAL_TIM_PWM_Stop_DMA(htim, TIM_CHANNEL_1);
}
}
11. PWM輸出結果如下所示,Cursor量測出每一個週期為1KHz,共9個不同頻率的週期。
注意:不知道為什麼HPOT參數給10,最後指出來9個週期,因此矩陣最後一個參數我這裡直接設為0。