首頁 > 評測 > 成功眾籌11萬美金的開源LA——DSLogic邏輯分析儀評測
成功眾籌11萬美金的開源LA——DSLogic邏輯分析儀評測
- [導讀]
- 在電子世界特別是MCU的世界里,不管你是硬件工程師還是軟件工程師,邏輯分析儀(LOGIC ANALYZER,下文簡稱LA)都是必備工具之一。
測試
漂亮的外觀已給我們留下了深刻的印象,然而DSLOGIC的真正魅力來自它強大的邏輯分析功能。
讓我們請出本次測評的另一主角,STM32F4-DISCO,讓它來見證奇跡的時刻。
為了展示DSLOGIC強大的功能,我們設計了幾段代碼,讓STM32F4-DISCO產(chǎn)生若干數(shù)字信號,通過檢測捕獲到的信號,與原始設計的理想信號進行比較,來展示DSLOGIC的強大功能。
測試的信號主要包括如下幾個方面:
- · 電平翻轉(zhuǎn)信號,包含狀態(tài)及時序信息
- · PWM信號,包含狀態(tài)及時序信息
- · 通信協(xié)議,包含狀態(tài)、時序、編碼信息
STM32F4-DISCO評估板是ST官方推出的供快速開發(fā)及建立原型的一塊開發(fā)板,使用STM32F407VGT6 MCU,最高可以工作于168MHZ頻率。板載8M外部晶振,能提供比較準確的外部時鐘信號。
關于本次測試中用到的測試代碼,后面附錄提供了完整的工程信息,具體運行環(huán)境及函數(shù)庫請參考文檔內(nèi)的說明。當然,如果你并不熟悉STM32 MCU程序設計,這些代碼看起來也許并沒有很大的意義,請遵循見名知義的原則進行理解。
DSLOGIC與STM32F4-DISCO的連接
測評序列一 電平翻轉(zhuǎn)信號測試
本測試中用到了STM32F4-DISCO上的定時器TIM2,系統(tǒng)時鐘設置如下,HCLK為168MHZ,TIM2掛在APB1總線上,APB1的時鐘總線為42MHZ,為HCLK的4分頻,所以TIM2的工作頻率為84MHZ。
TIM2初始化代碼如下:
htim2.Instance = TIM2;
htim2.Init.Prescaler = 83;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 9;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_Base_Init(&htim2);
這段代碼的作用是產(chǎn)生周期為10US的精確定時,然后產(chǎn)生中斷,在ISR例程里翻轉(zhuǎn)電平信號。
DSVIEW設置及捕獲的結(jié)果如下圖,可以看到,捕獲的結(jié)果非常精確。
測試序列二 PWM信號捕獲測試
PWM信號在實現(xiàn)無級調(diào)光、電機驅(qū)動方面有很廣泛的應用。
使用STM32F4-DISCO評估板上TIM1來產(chǎn)生2路互補PWM信號,即TIM1的CH1、CH1N,CH2、CH2N共計4路信號,沒有插入死區(qū)時間。
TIM1掛在APB2總線上面,所以TIM1的時鐘信號頻率為168MHZ。
CH1的占空比設定為30%,CH2的占空比設定為60%,PWM頻率均為1KHZ。下面是部分設定代碼
htim1.Instance = TIM1;
htim1.Init.Prescaler = 167;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 999;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
HAL_TIM_Base_Init(&htim1);
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig);
HAL_TIM_PWM_Init(&htim1);
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig);
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
sBreakDeadTimeConfig.DeadTime = 0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 300;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);
sConfigOC.OCMode = TIM_OCMODE_PWM2;
sConfigOC.Pulse = 400;
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2);
將代碼下載到開發(fā)板上,運行程序。
LA捕獲得到的結(jié)果如下
TIM1定時器CH1與CH1N的邏輯信號,看到占空比為精確的30%。
TIM1定時器CH2與CH2N的PWM輸出信號,使用的是PWM MOD2,占空比為精確的60%。
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標準編制 2024-08-29
- NRF52810藍牙數(shù)字耳機找人定制
預算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設計
預算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預算:¥5000023小時前
- PLC項目調(diào)試修改
預算:¥100001天前
- 起動電機控制器開發(fā)
預算:¥1100001天前