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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]為得到更高的帶寬,需要使用更高的波特率。UART波特率的計(jì)算已經(jīng)介紹過了,現(xiàn)在就嘗試下調(diào)整外設(shè)的時(shí)鐘頻率??梢杂卸喾N方法調(diào)整外設(shè)時(shí)鐘(MCK)的頻率,這里先介紹先主要時(shí)鐘(MAINCK)的設(shè)置,其中包括外部晶振的使

為得到更高的帶寬,需要使用更高的波特率。UART波特率的計(jì)算已經(jīng)介紹過了,現(xiàn)在就嘗試下調(diào)整外設(shè)的時(shí)鐘頻率??梢杂卸喾N方法調(diào)整外設(shè)時(shí)鐘(MCK)的頻率,這里先介紹先主要時(shí)鐘(MAINCK)的設(shè)置,其中包括外部晶振的使用。

外設(shè)的時(shí)鐘(MCK)可以在慢時(shí)鐘(SLCK)、主要時(shí)鐘(MAINCK)和MAINCK經(jīng)鎖相環(huán)升頻后的時(shí)鐘PLLACK三者中選擇,并可以對(duì)選擇的時(shí)鐘進(jìn)行分頻。重置時(shí),MCK使用的時(shí)鐘為MAINCK,且不分頻。

MAINCK可以選擇使用一個(gè)嵌入的快速RC振蕩器,或是一個(gè)晶體振蕩器產(chǎn)生時(shí)鐘??焖賀C振蕩器啟動(dòng)時(shí)間較短,但不是太精確;而晶體振蕩器則相反。同時(shí),RC振蕩器可以選擇輸出時(shí)鐘的頻率(4/8/12 MHz)。重置時(shí),MAINCK使用RC振蕩器,頻率為4 MHz。

一、 使用芯片嵌入的快速RC振蕩器

在PMC時(shí)鐘產(chǎn)生器主要振蕩器寄存器(CKGR_MOR)中,可以對(duì)MAINCK進(jìn)行一系列的設(shè)置。注意,在修改該寄存器的值時(shí),需要同時(shí)往其KEY字段寫入一個(gè)魔數(shù):0x37,否則寫入不生效。

使能快速RC振蕩器。在設(shè)置RC振蕩器的頻率之前,需要先使能它,并且要等到它運(yùn)行穩(wěn)定(即不能同時(shí)使能RC振蕩器和設(shè)置它的頻率):

1234567/* 使能RC震蕩器 */PMC->CKGR_MOR = CKGR_MOR_KEY_PASSWD /* 密碼 */| (PMC->CKGR_MOR| CKGR_MOR_MOSCRCEN);/* 等待時(shí)鐘穩(wěn)定 */while(!(PMC->PMC_SR & PMC_SR_MOSCRCS));

設(shè)置RC振蕩器頻率為12 Mhz。設(shè)置后同樣需要等待它運(yùn)行穩(wěn)定。

12345678/* 設(shè)置快速RC振蕩器頻率為12 MHz */PMC->CKGR_MOR = CKGR_MOR_KEY_PASSWD| (PMC->CKGR_MOR & ~CKGR_MOR_MOSCRCF_Msk)| CKGR_MOR_MOSCRCF_12_MHz;/* 等待穩(wěn)定 */while(!(PMC->PMC_SR & PMC_SR_MOSCRCS));

為MAINCK選擇快速RC振蕩器。

1234567/* 切換至RC振蕩器 */PMC->CKGR_MOR = CKGR_MOR_KEY_PASSWD| (PMC->CKGR_MOR & ~CKGR_MOR_MOSCSEL);/* 等待切換完成 */while(!(PMC->PMC_SR & PMC_SR_MOSCSELS));

設(shè)置UART。此時(shí),若將UART_BRGR中CD字段的值設(shè)為13,則理論的波特率值為 12M/(16 * 13) = 57692 Hz,若PC端選擇使用57600 Hz的波特率,則誤差約為0.16%。

1UART0->UART_BRGR = UART_BRGR_CD(13 );

接下來,將PC端串口的波特率設(shè)置為57600 Hz,嘗試下通信是否正常。

若在PC端接收到的是亂碼,可能就是RC振蕩器不夠精確引起的。其產(chǎn)生的時(shí)鐘頻率受工作溫度和電壓等因素的影響,所以需要校準(zhǔn)??梢酝ㄟ^PMC振蕩器校準(zhǔn)寄存器(PMC_OCR)來進(jìn)行校準(zhǔn),但在這里不做討論。

二、 使用外部晶振

可以使用一個(gè)外部的晶振以提供更為精確的頻率。使用的晶振是由開發(fā)板攜帶的,在芯片手冊(cè)中,對(duì)其的介紹為“3~20 MHz晶振”,即表示具體的頻率是由開發(fā)板的生產(chǎn)廠家決定的。晶振的一個(gè)缺點(diǎn)是需要一定的啟動(dòng)時(shí)間,而且由于芯片無法了解使用的芯片的具體信息,所以用戶必須手動(dòng)指定這個(gè)啟動(dòng)時(shí)間。

SAM4E_EK所攜帶的晶振的頻率為12 MHz,啟動(dòng)時(shí)間為15625 us。具體可以查閱開發(fā)板的電路圖:

或者也可以參考頭文件“sam4e_ek.h”中相關(guān)的定義:

1234/** Board oscillator settings(晶振頻率) */#define BOARD_FREQ_MAINCK_XTAL (12000000U)/** board main clock xtal statup time (主要時(shí)鐘晶振啟動(dòng)時(shí)間)*/#define BOARD_OSC_STARTUP_US 15625

接下來就可以進(jìn)行具體的設(shè)置了。

使用新的頭文件。現(xiàn)在需要了解開發(fā)板相關(guān)的信息,所以需要使用新的頭文件:

12//#include #include

但是在新的頭文件中,修改CKGR_MOR密碼的宏沒有定義,所以需要自己定義:

1#define CKGR_MOR_KEY_PASSWD CKGR_MOR_KEY(0x37)

禁用PB8和PB9引腳的輸出。這一步是可選的。PB8和PB9的系統(tǒng)功能分別是XOUT和XIN,即是使用晶振時(shí)要用到的引腳。由于PIO控制器中的配置對(duì)引腳的輸入沒有影響,所以無需配置引腳的復(fù)用,只需禁用輸出即可。

12345/* 禁用PB8和PB9引腳的輸出 */Pio* xtal_pio = PIOB;constuint32_t pio_mask = PIO_PB8 | PIO_PB9;xtal_pio->PIO_PER = pio_mask;xtal_pio->PIO_ODR = pio_mask;

計(jì)算晶振啟動(dòng)時(shí)間參數(shù)。需要制定一個(gè)16位的值(MOSCXTST)來表明晶振啟動(dòng)的時(shí)間,具體計(jì)算方法為:?jiǎn)?dòng)時(shí)間 = MOSCXTST * 8 * SLCK周期。

12345uint32_t slowck_freq = CHIP_FREQ_SLCK_RC;volatileuint32_t xt_start =(BOARD_OSC_STARTUP_US * slowck_freq / 8 / 1000000);if(xt_start > 0xFF)xt_start = 0xFF;

使能晶振,并等待其運(yùn)行穩(wěn)定。使能晶振時(shí),必須同時(shí)使用旁路模式。

12345678PMC->CKGR_MOR = CKGR_MOR_KEY_PASSWD| (PMC->CKGR_MOR & ~CKGR_MOR_MOSCXTBY)| CKGR_MOR_MOSCXTEN| CKGR_MOR_MOSCXTST(xt_start);/* 等待晶振運(yùn)行穩(wěn)定 */while(!(PMC->PMC_SR & PMC_SR_MOSCXTS));

讓MAINCK切換為晶振時(shí)鐘源,并等其運(yùn)行穩(wěn)定。

123456/* 切換至晶振 */PMC->CKGR_MOR |= CKGR_MOR_KEY_PASSWD| CKGR_MOR_MOSCSEL ;/* 等待切換完成 */while(!(PMC->PMC_SR & PMC_SR_MOSCSELS));

由于MCK的時(shí)鐘并未改變,均是12 MHz,所以不用修改UART的設(shè)置,就可以正常通信了。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉