ARM硬件平臺(tái)介紹_第1頁(yè)
ARM硬件平臺(tái)介紹_第2頁(yè)
ARM硬件平臺(tái)介紹_第3頁(yè)
ARM硬件平臺(tái)介紹_第4頁(yè)
ARM硬件平臺(tái)介紹_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第四章ARM硬件系統(tǒng)第一節(jié)STM32微控制器ARM硬件平臺(tái)必備資料Cortex-M3權(quán)威指南-經(jīng)典M3教程指導(dǎo)STM32F10xDATASHEET–器件參數(shù)ReferenceManual參考手冊(cè)—芯片使用方法

意法半導(dǎo)體官網(wǎng)ST代理商論壇ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)STM32F103VBT6ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)STM32F103VBT6基本特性:內(nèi)核:ARM32位的Cortex?-M3CPU?最高72MHz工作頻率存儲(chǔ)器?128K字節(jié)的閃存程序存儲(chǔ)器?高達(dá)16K字節(jié)的SRAM時(shí)鐘、復(fù)位和電源管理?2.0~3.6伏供電(I/O引腳)?上電/斷電復(fù)位(POR/PDR)、可編程電壓監(jiān)測(cè)器(PVD)?4~16MHz晶體振蕩器?內(nèi)嵌經(jīng)出廠(chǎng)調(diào)校的8MHz的RC振蕩器?內(nèi)嵌帶校準(zhǔn)的40kHz的RC振蕩器?產(chǎn)生CPU時(shí)鐘的PLL?帶校準(zhǔn)功能的32kHzRTC振蕩器ARM硬件平臺(tái)低功耗?睡眠、停機(jī)和待機(jī)模式?VBAT為RTC和后備寄存器供電STM32F103VBARM硬件平臺(tái)睡眠模式在睡眠模式下,CPU時(shí)鐘處于停止?fàn)顟B(tài),但是所有的外設(shè)繼續(xù)運(yùn)行,除非它們被關(guān)閉。電源功耗相應(yīng)地減少。任一中斷或喚醒事件可將微處理器從睡眠模式中喚醒。在睡眠模式下,所有的SRAM和寄存器內(nèi)的內(nèi)容被保存下來(lái)。ARM硬件平臺(tái)停止模式停止模式是在Cortex-M3的睡眠模式基礎(chǔ)上結(jié)合了外設(shè)的時(shí)鐘控制機(jī)制,在停止模式下電壓調(diào)節(jié)器可運(yùn)行在正?;虻凸哪J?。此時(shí)在1.8V供電區(qū)域的的所有時(shí)鐘都被停止,PLL、HIS和HSERC振蕩器的功能被禁止,SRAM和寄存器內(nèi)容被保留下來(lái)。在停止模式下,通過(guò)設(shè)置電源控制寄存器(PWR_CR)使內(nèi)部調(diào)節(jié)器進(jìn)入低功耗模式,能夠降低更多的功耗。ARM硬件平臺(tái)待機(jī)模式待機(jī)模式可實(shí)現(xiàn)系統(tǒng)的最低功耗。該模式是在Cortex-M3深睡眠模式時(shí)關(guān)閉電壓調(diào)節(jié)器。整個(gè)1.8V供電區(qū)域被斷電。PLL、HSI和HSE振蕩器也被斷電。SRAM和寄存器內(nèi)容丟失。只有備份的寄存器和待機(jī)電路維持供電。ARM硬件平臺(tái)RTC可以在不需要依賴(lài)外部中斷的情況下喚醒低功耗模式下的微控制器( 電池供電)。ARM硬件平臺(tái)2個(gè)12位模數(shù)轉(zhuǎn)換器?轉(zhuǎn)換范圍:0至3.6V?雙采樣和保持功能?溫度傳感器外部接口A(yíng)RM硬件平臺(tái)DMA:?7通道DMA控制器?支持的外設(shè):定時(shí)器、ADC、SPI、I2C和

USART80個(gè)I/O端口(100pins)?26/37/51/80個(gè)I/O口,所有I/O口可以映像到16個(gè)外部中斷;幾乎所有端口均可接受5V信號(hào)外部接口A(yíng)RM硬件平臺(tái)調(diào)試模式?串行單線(xiàn)調(diào)試(SWD)和JTAG接口7個(gè)定時(shí)器?3個(gè)16位定時(shí)器?1個(gè)16位帶死區(qū)控制和緊急剎車(chē),用于電機(jī)控制的PWM高級(jí)控制定時(shí)器?2個(gè)看門(mén)狗定時(shí)器(獨(dú)立的和窗口型的)?系統(tǒng)時(shí)間定時(shí)器:24位自減型計(jì)數(shù)器(systick)外部接口A(yíng)RM硬件平臺(tái)9個(gè)通信接口?2個(gè)I2C接口?3個(gè)USART接口?2個(gè)SPI接口(18M位/秒)?CAN接口(2.0B主動(dòng))?USB2.0全速接口外部接口A(yíng)RM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)再議GPIO口回顧:什么是GPIO?

GPIO,英文全稱(chēng)為General-PurposeIOports,也就是通用IO口。嵌入式系統(tǒng)中常常有數(shù)量眾多,但是結(jié)構(gòu)卻比較簡(jiǎn)單的外部設(shè)備/電路,對(duì)這些設(shè)備/電路有的需要CPU為之提供控制手段,有的則需要被CPU用作輸入信號(hào)。而且,許多這樣的設(shè)備/電路只要求一位,即只要有開(kāi)/關(guān)兩種狀態(tài)就夠了,比如燈亮與滅。對(duì)這些設(shè)備/電路的控制,使用傳統(tǒng)的串行口或并行口都不合適。所以在微控制器芯片上一般都會(huì)提供一個(gè)“通用可編程IO接口”,即GPIO。ARM硬件平臺(tái)二、STM32F103GPIO1、PA~PE,共五組GPIO2、Px0~Px15,每組16位,即16個(gè)管腳3、端口復(fù)用,并支持重映射ARM硬件平臺(tái)IO口的基本結(jié)構(gòu)ARM硬件平臺(tái)ARM硬件平臺(tái)Example:端口配置寄存器端口配置低寄存器(GPIOx_CRL)(x=A..E)偏移地址:00h復(fù)位值:44444444h用于配置每組端口中的低8位端口A(yíng)RM硬件平臺(tái)ARM硬件平臺(tái)當(dāng)I/O端口配置為輸入時(shí):輸出緩沖器被禁止施密特觸發(fā)輸入被激活根據(jù)輸入配置(上拉,下拉或浮動(dòng))的不同,弱上拉和下拉電阻被連接出現(xiàn)在I/O腳上的數(shù)據(jù)在每個(gè)APB2時(shí)鐘被采樣到輸入數(shù)據(jù)寄存器對(duì)輸入數(shù)據(jù)寄存器的讀訪(fǎng)問(wèn)可得到I/O狀態(tài)ARM硬件平臺(tái)ARM硬件平臺(tái)當(dāng)I/O端口被配置為輸出時(shí):輸出緩沖器被激活─開(kāi)漏模式:輸出寄存器上的0激活N-MOS,而輸出寄存器上的1將端口置于高阻狀態(tài)(P-MOS從不被激活)。─推挽模式:輸出寄存器上的0激活N-MOS,而輸出寄存器上的1將激活P-MOS。弱上拉和下拉電阻被禁止出現(xiàn)在I/O腳上的數(shù)據(jù)在每個(gè)APB2時(shí)鐘被采樣到輸入數(shù)據(jù)寄存器─在開(kāi)漏模式時(shí),對(duì)輸入數(shù)據(jù)寄存器的讀訪(fǎng)問(wèn)可得到I/O狀態(tài)─在推挽式模式時(shí),對(duì)輸出數(shù)據(jù)寄存器的讀訪(fǎng)問(wèn)得到最后一次寫(xiě)的值。ARM硬件平臺(tái)ARM硬件平臺(tái)當(dāng)I/O端口被配置為復(fù)用功能時(shí):在開(kāi)漏或推挽式配置中,輸出緩沖器被打開(kāi)內(nèi)置外設(shè)的信號(hào)驅(qū)動(dòng)輸出緩沖器(復(fù)用功能輸出)密特觸發(fā)輸入被激活弱上拉和下拉電阻被禁止在每個(gè)APB2時(shí)鐘周期,出現(xiàn)在I/O腳上的數(shù)據(jù)被采樣到輸入數(shù)據(jù)寄存器開(kāi)漏模式時(shí),讀輸入數(shù)據(jù)寄存器時(shí)可得到I/O口狀態(tài)在推挽模式時(shí),讀輸出數(shù)據(jù)寄存器時(shí)可得到最后一次寫(xiě)的值。ARM硬件平臺(tái)ARM硬件平臺(tái)跑馬燈實(shí)驗(yàn)硬件資源分配:PC6----PC9分別連到4個(gè)LED,定義為L(zhǎng)ED1~4需將端口配置為輸出模式ARM硬件平臺(tái)跑馬燈實(shí)驗(yàn)ARM硬件平臺(tái)控制過(guò)程點(diǎn)亮LED相應(yīng)管腳輸出高電平即相應(yīng)管腳置1管腳如何控制?特殊寄存器(端口配置寄存器)ARM硬件平臺(tái)控制GPIO端口用到的寄存器有:兩個(gè)32位配置寄存器(GPIOx_CRL,GPIOx_CRH),兩個(gè)32位數(shù)據(jù)寄存器(GPIOx_IDR,GPIOx_ODR),一個(gè)32位置位/復(fù)位寄存器(GPIOx_BSRR),一個(gè)32位復(fù)位寄存器(GPIOx_BRR)一個(gè)32位鎖定寄存器(GPIOx_LCKR)。ARM硬件平臺(tái)端口配置寄存器端口配置低寄存器(GPIOx_CRL)(x=A..E)偏移地址:00h復(fù)位值:44444444h用于配置每組端口中的低8位端口A(yíng)RM硬件平臺(tái)ARM硬件平臺(tái)端口配置高寄存器(GPIOx_CRH)(x=A..E)偏移地址:04h復(fù)位值:44444444h用于配置每組端口中的高8位端口A(yíng)RM硬件平臺(tái)ARM硬件平臺(tái)例:配置端口C的第6,7,8,9管腳為:1、通用推挽輸出2、輸出速度為50MHzGPIOC->CRL=0x33000000GPIOC->CRH=0x00000033ARM硬件平臺(tái)端口輸入數(shù)據(jù)寄存器(GPIOx_IDR)(x=A..E)地址偏移:08h復(fù)位值:00000000hARM硬件平臺(tái)端口輸出數(shù)據(jù)寄存器(GPIOx_ODR)(x=A..E)地址偏移:0Ch復(fù)位值:00000000hARM硬件平臺(tái)端口位設(shè)置/復(fù)位寄存器(GPIOx_BSRR)(x=A..E)地址偏移:10h復(fù)位值:00000000hARM硬件平臺(tái)端口位復(fù)位寄存器(GPIOx_BRR)(x=A..E)地址偏移:14h復(fù)位值:00000000hARM硬件平臺(tái)例:要求在以上配置的基礎(chǔ)上,讀出GPIOC管腳的狀態(tài),并將其狀態(tài)反轉(zhuǎn)temp=GPIOC->ODR;GPIOC->ODR=~temp;GPIOC->ODR=~GPIOC->ODRARM硬件平臺(tái)if((GPIOx->ODR&GPIO_Pin)!=(u32)Bit_RESET){bitstatus=(u8)Bit_SET;}else{bitstatus=(u8)Bit_RESET;}returnbitstatus;if(bitstatus!=RESET){GPIOx->BSRR=GPIO_Pin;}else{GPIOx->BRR=GPIO_Pin;}ARM硬件平臺(tái)端口配置鎖定寄存器(GPIOx_LCKR)(x=A..E)當(dāng)執(zhí)行正確的寫(xiě)序列設(shè)置了位16(LCKK)時(shí),該寄存器用來(lái)鎖定端口位的配置。位[15:0]用于鎖定GPIO端口的配置。在規(guī)定的寫(xiě)入操作期間,不能改變LCKP[15:0]。當(dāng)對(duì)相應(yīng)的端口位執(zhí)行了LOCK序列后,在下次系統(tǒng)復(fù)位之前將不能再更改端口位的配置。每個(gè)鎖定位鎖定控制寄存器(CRL,CRH)中相應(yīng)的4個(gè)位。地址偏移:18h復(fù)位值:00000000hARM硬件平臺(tái)ARM硬件平臺(tái)控制過(guò)程點(diǎn)亮LED相應(yīng)管腳輸出高電平即相應(yīng)管腳置1管腳如何控制?特殊寄存器(端口配置寄存器)寫(xiě)入相應(yīng)值即可控制定位特殊寄存器存儲(chǔ)器地址ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)系統(tǒng)總線(xiàn)構(gòu)架四個(gè)主動(dòng)單元:Cortex-M3內(nèi)核的ICode總線(xiàn)(I-bus)、DCode總線(xiàn)(D-bus)、

System總線(xiàn)(S-bus)和通用DMA(GP-DMA)。三個(gè)被動(dòng)單元:內(nèi)部SRAM、內(nèi)部Flash存儲(chǔ)器、AHB到APB的橋(AHB2APBx,連接所有的APB設(shè)備)。ARM硬件平臺(tái)總線(xiàn)ICode總線(xiàn)該總線(xiàn)將Cortex-M3內(nèi)核的指令總線(xiàn)與Flash指令接口相連接。指令預(yù)取在此總線(xiàn)上完成DCode總線(xiàn)該總線(xiàn)將Cortex-M3內(nèi)核的DCode總線(xiàn)與閃存存儲(chǔ)器的數(shù)據(jù)接口相連接(常量加載和調(diào)試訪(fǎng)問(wèn))。系統(tǒng)總線(xiàn)連接內(nèi)核的系統(tǒng)總線(xiàn)(外設(shè)總線(xiàn))到總線(xiàn)矩陣,總線(xiàn)矩陣協(xié)調(diào)著內(nèi)核和DMA間的訪(fǎng)問(wèn)??偩€(xiàn)矩陣此總線(xiàn)矩陣由三個(gè)驅(qū)動(dòng)部件(CPU的DCode、系統(tǒng)總線(xiàn)和DMA總線(xiàn))和三個(gè)被動(dòng)部件(閃存存儲(chǔ)器接口、SRAM和AHB2APB橋)構(gòu)成。AHB外設(shè)通過(guò)總線(xiàn)矩陣與系統(tǒng)總線(xiàn)相連,允許DMA訪(fǎng)問(wèn)ARM硬件平臺(tái)外設(shè)寄存器求法#definePERIPH_BASE((u32)0x40000000)寄存器地址=總線(xiàn)基址+外圍總線(xiàn)基址

+外設(shè)地址偏移量+寄存器偏移量#defineAPB1PERIPH_BASEPERIPH_BASE#defineAPB2PERIPH_BASE(PERIPH_BASE+0x10000)#defineAHBPERIPH_BASE(PERIPH_BASE+0x20000)#defineGPIOA_BASE(APB2PERIPH_BASE+0x0800)#defineGPIOB_BASE(APB2PERIPH_BASE+0x0C00)#defineGPIOC_BASE(APB2PERIPH_BASE+0x1000)ARM硬件平臺(tái)外設(shè)寄存器求法寄存器地址=總線(xiàn)基址+外圍總線(xiàn)基址

+外設(shè)地址偏移量+寄存器偏移量typedefstruct{vu32CRL;vu32CRH;vu32IDR;vu32ODR;vu32BSRR;vu32BRR;vu32LCKR;}GPIO_TypeDef;#defineGPIOC((GPIO_TypeDef*)GPIOC_BASE)GPIOC->BSRR=0x0040;ARM硬件平臺(tái)GPIO_SetBits(GPIO_LED,GPIO_Pin_6);voidGPIO_SetBits(GPIO_TypeDef*GPIOx,u16GPIO_Pin){GPIOx->BSRR=GPIO_Pin;}typedefstruct{vu32CRL;vu32CRH;vu32IDR;vu32ODR;vu32BSRR;vu32BRR;vu32LCKR;}GPIO_TypeDef;#defineGPIO_LEDGPIOCGPIOC->BSRR=GPIO_Pin_6;#defineGPIO_Pin_6((u16)0x0040)GPIOC->BSRR=((u16)0x0040)ARM硬件平臺(tái)GPIO端口復(fù)用AFIOAFIOAlternativeFunctionIO同一管腳,不僅作為GPIO,也可作為其他特殊功能使用即同一管腳,多種應(yīng)用ARM硬件平臺(tái)ARM硬件平臺(tái)使用默認(rèn)復(fù)用功能前必須對(duì)端口位配置寄存器編程。對(duì)于復(fù)用的輸入功能,端口可以配置成:─輸入模式(浮空、上拉或下拉)─復(fù)用功能輸出模式:輸入驅(qū)動(dòng)器被配置成浮空輸入模式對(duì)于復(fù)用輸出功能,端口必須配置成復(fù)用功能輸出模式(推挽或開(kāi)漏)。對(duì)于雙向復(fù)用功能,端口位必須配置復(fù)用功能輸出模式(推挽或開(kāi)漏)。這時(shí),輸入驅(qū)動(dòng)器被配置成浮空輸入模式。注意:1、如果把一端口配置成復(fù)用輸出功能,將使引腳和輸出寄存器斷開(kāi),并和片上外設(shè)的輸出信號(hào)連接。2、如果軟件把一個(gè)GPIO腳配置成復(fù)用輸出功能,但是外設(shè)沒(méi)有被激活,它的輸出將不確定。ARM硬件平臺(tái)軟件重新映射I/O復(fù)用功能為了使不同器件封裝的外設(shè)I/O功能的數(shù)量達(dá)到最優(yōu),可以把一些復(fù)用功能重新映射到其他一些腳上。這可以通過(guò)軟件配置相應(yīng)的寄存器來(lái)完成這時(shí),復(fù)用功能就不再映射到它們的原始引腳上了。ARM硬件平臺(tái)當(dāng)I/O端口被配置為復(fù)用功能時(shí):在開(kāi)漏或推挽式配置中,輸出緩沖器被打開(kāi)內(nèi)置外設(shè)的信號(hào)驅(qū)動(dòng)輸出緩沖器(復(fù)用功能輸出)密特觸發(fā)輸入被激活弱上拉和下拉電阻被禁止在每個(gè)APB2時(shí)鐘周期,出現(xiàn)在I/O腳上的數(shù)據(jù)被采樣到輸入數(shù)據(jù)寄存器ARM硬件平臺(tái)ARM硬件平臺(tái)ARM硬件平臺(tái)例,采用串口1進(jìn)行通信,進(jìn)行必要AFIO的設(shè)置ARM硬件平臺(tái)例,采用串口1進(jìn)行通信,進(jìn)行必要AFIO的設(shè)置GPIOA->CRH=0xB0;GPIOA->CRH=0x0400;或GPIOA->CRH=0x04B0;ARM硬件平臺(tái)復(fù)用重映射和調(diào)試I/O配置寄存器(AFIO_MAPR)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論