www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

首頁(yè) > 評(píng)測(cè) > 成功眾籌11萬(wàn)美金的開(kāi)源LA——DSLogic邏輯分析儀評(píng)測(cè)

成功眾籌11萬(wàn)美金的開(kāi)源LA——DSLogic邏輯分析儀評(píng)測(cè)

  • 作者:netlhx
  • 來(lái)源:21ic
  • [導(dǎo)讀]
  • 在電子世界特別是MCU的世界里,不管你是硬件工程師還是軟件工程師,邏輯分析儀(LOGIC ANALYZER,下文簡(jiǎn)稱LA)都是必備工具之一。

測(cè)試

漂亮的外觀已給我們留下了深刻的印象,然而DSLOGIC的真正魅力來(lái)自它強(qiáng)大的邏輯分析功能。

讓我們請(qǐng)出本次測(cè)評(píng)的另一主角,STM32F4-DISCO,讓它來(lái)見(jiàn)證奇跡的時(shí)刻。

秀外慧中12843.png

為了展示DSLOGIC強(qiáng)大的功能,我們?cè)O(shè)計(jì)了幾段代碼,讓STM32F4-DISCO產(chǎn)生若干數(shù)字信號(hào),通過(guò)檢測(cè)捕獲到的信號(hào),與原始設(shè)計(jì)的理想信號(hào)進(jìn)行比較,來(lái)展示DSLOGIC的強(qiáng)大功能。

測(cè)試的信號(hào)主要包括如下幾個(gè)方面:

  • · 電平翻轉(zhuǎn)信號(hào),包含狀態(tài)及時(shí)序信息
  • · PWM信號(hào),包含狀態(tài)及時(shí)序信息
  • · 通信協(xié)議,包含狀態(tài)、時(shí)序、編碼信息

STM32F4-DISCO評(píng)估板是ST官方推出的供快速開(kāi)發(fā)及建立原型的一塊開(kāi)發(fā)板,使用STM32F407VGT6 MCU,最高可以工作于168MHZ頻率。板載8M外部晶振,能提供比較準(zhǔn)確的外部時(shí)鐘信號(hào)。

關(guān)于本次測(cè)試中用到的測(cè)試代碼,后面附錄提供了完整的工程信息,具體運(yùn)行環(huán)境及函數(shù)庫(kù)請(qǐng)參考文檔內(nèi)的說(shuō)明。當(dāng)然,如果你并不熟悉STM32 MCU程序設(shè)計(jì),這些代碼看起來(lái)也許并沒(méi)有很大的意義,請(qǐng)遵循見(jiàn)名知義的原則進(jìn)行理解。

DSLOGIC與STM32F4-DISCO的連接

秀外慧中13242.png

測(cè)評(píng)序列一 電平翻轉(zhuǎn)信號(hào)測(cè)試

本測(cè)試中用到了STM32F4-DISCO上的定時(shí)器TIM2,系統(tǒng)時(shí)鐘設(shè)置如下,HCLK為168MHZ,TIM2掛在APB1總線上,APB1的時(shí)鐘總線為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的精確定時(shí),然后產(chǎn)生中斷,在ISR例程里翻轉(zhuǎn)電平信號(hào)。

DSVIEW設(shè)置及捕獲的結(jié)果如下圖,可以看到,捕獲的結(jié)果非常精確。

秀外慧中13670.png

測(cè)試序列二 PWM信號(hào)捕獲測(cè)試

PWM信號(hào)在實(shí)現(xiàn)無(wú)級(jí)調(diào)光、電機(jī)驅(qū)動(dòng)方面有很廣泛的應(yīng)用。

使用STM32F4-DISCO評(píng)估板上TIM1來(lái)產(chǎn)生2路互補(bǔ)PWM信號(hào),即TIM1的CH1、CH1N,CH2、CH2N共計(jì)4路信號(hào),沒(méi)有插入死區(qū)時(shí)間。

TIM1掛在APB2總線上面,所以TIM1的時(shí)鐘信號(hào)頻率為168MHZ。

CH1的占空比設(shè)定為30%,CH2的占空比設(shè)定為60%,PWM頻率均為1KHZ。下面是部分設(shè)定代碼

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);

將代碼下載到開(kāi)發(fā)板上,運(yùn)行程序。

LA捕獲得到的結(jié)果如下

秀外慧中15446.png

TIM1定時(shí)器CH1與CH1N的邏輯信號(hào),看到占空比為精確的30%。

秀外慧中15485.png

TIM1定時(shí)器CH2與CH2N的PWM輸出信號(hào),使用的是PWM MOD2,占空比為精確的60%。

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評(píng)論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開(kāi)放投稿

熱門(mén)標(biāo)簽
項(xiàng)目外包 more+