《嵌入式操作系統(tǒng)及ARM Cortex-MO》課件第二章_第1頁
《嵌入式操作系統(tǒng)及ARM Cortex-MO》課件第二章_第2頁
《嵌入式操作系統(tǒng)及ARM Cortex-MO》課件第二章_第3頁
《嵌入式操作系統(tǒng)及ARM Cortex-MO》課件第二章_第4頁
《嵌入式操作系統(tǒng)及ARM Cortex-MO》課件第二章_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第二章 LPC82X微控制器 2.1 LPC824微控制器特點與管腳配置 2.2 LPC824微控制器內部結構 2.3 LPC824存儲器配置 2.4 LPC824NVIC中斷 2.5 I/O口配置IOCON 2.6 通用目的輸入輸出口GPIO

2.7 系統(tǒng)配置模塊SYSCON LPC82X是集成了Cortex-M0+內核的32位微控制器系列芯片,CPU時鐘頻率最高可達30MHz。目前LPC82X家族包括LPC822和LPC824兩類芯片,不同型號的芯片只有芯片封裝和片上外設略有不同。本書以LPC824M201JDH20(以下簡稱LPC824)作為LPC82X家族的代表芯片展開討論。本章將介紹LPC824微控制器芯片的特點、管腳配置、內部結構、存儲器配置、NVIC中斷、典型應用電路和通用I/O口等內容。 LPC824微控制器芯片具有以下特點:

(1)內核方面:基于Cortex-M0+內核,工作時鐘頻率最高為30MHz,帶有單周期乘法器、單周期快速I/O口、嵌套向量中斷控制器NVIC、系統(tǒng)節(jié)拍定時器SysTick和宏跟蹤緩沖器,支持JTAG調試和帶有4個斷點和2個觀測點的串口調試。

(2)存儲器方面:片上集成了32KB的Flash存儲器,該Flash每頁大小為64字節(jié),支持按頁編程和擦除,并且具有代碼讀保護功能。此外,片上還集成了8KB的SRAM存儲器。

(3)ROMAPI方面:ROM中固化了啟動代碼(Bootloader)以及ADC、SPI、I2C、USART、功耗配置和整數(shù)除法相關的驅動和應用程序接口函數(shù),還提供了針對Flash存儲器的在應用編程(IAP)和在系統(tǒng)編程(ISP)應用程序接口函數(shù)。

(4)數(shù)字外設方面:具有16個快速通用目的I/O口(GPIO),每個I/O口均帶有可配置的上拉/下拉電阻以及可編程的開路工作模式、輸入反向和毛刺數(shù)字濾波器等,并且每個I/O口具有方向控制寄存器,可單獨對其進行置位、清零和翻轉等操作。GPIO中斷支持復雜的布爾運算(8個GPIO中斷組合起來的模式匹配功能),開關矩陣單元可靈活地配置每個I/O口與芯片管腳的連接方式。集成了CRC引擎,具有帶有18個通道和9個觸發(fā)輸入的DMA控制器,這里的CRC是指循環(huán)冗余校驗碼,DMA是指無需CPU支持的直接內存訪問。

2.1 LPC824微控制器特點與管腳配置 (5)定時器方面:集成了一個狀態(tài)可配置定時器(SCT),這是一種極其靈活和復雜的定時器,可以產(chǎn)生任何形式的PWM波形;集成了一個四通道的多速率定時器(MRT),相當于單片機的定時器功能,但其實現(xiàn)更加靈活;還集成了一個自喚醒定時器(WKT)和一個加窗的看門狗定時器(WWDT)。

(6)模擬外設方面:帶有一個12位的12輸入通道的ADC,最高采樣頻率為1.2MHz;還具有4輸入的比較器,可使用內部或外部參考電壓。

(7)串行外設方面:具有3個USART、2個SPI控制器和4個I2C總線接口,I2C可支持數(shù)傳速率400kb/s。

(8)時鐘方面:內置了一個精度為1.5%的12MHzRC振蕩器,上電復位時使用該振蕩器信號作為系統(tǒng)時鐘,可通過PLL倍頻到30MHz;可外接1~25MHz的時鐘源;具有片上專用的看門狗振蕩器,頻率為9.4kHz~2.3MHz;可將各個時鐘信號通過芯片管腳輸出。

(9)功耗管理方面:使用片上RC振蕩器作為系統(tǒng)時鐘時正常工作功耗為90μA/MHz,通過集成的PMU(功耗管理單元)可以配置各個組件的工作狀態(tài),支持睡眠、深度睡眠、掉電、深度掉電等四種低功耗模式,可通過USART、SPI或I2C外設將芯片喚醒,支持定時器從深掉電模式喚醒,還具有上電復位(POR)和掉電檢測(BOD)功能。

(10)每個芯片具有唯一的身份串號,工作電壓范圍為1.8V~3.6V,工作溫度為-40~105℃。2.1 LPC824微控制器特點與管腳配置 下面將介紹LPC824的管腳配置情況。

LPC824M201JDH20芯片具有20個管腳,采用TSSOP20封裝,其中,16個用作GPIO口,其管腳分布圖如圖2-1所示。圖2-1 LPC824M201JDH20芯片管腳分布

2.1 LPC824微控制器特點與管腳配置

圖2-1顯示LPC824僅有PIO0口,估計在將來的LPC82X家族中,會出現(xiàn)具有PIO1和PIO2等GPIO口的芯片。由于LPC824是32位的微控制器,PIO0口應該有32個GPIO口,即從PIO0_0~PIO0_31,但是,由于LPC824僅有16個管腳用作GPIO口,故僅集成了PIO0_0~PIO0_5、PIO0_8~PIO0_15、PIO0_17和PIO0_23。其中,PIO0_10和PIO0_11為開路結構(Open-drain),最高可以吸入20mA的電流,這兩個管腳上電復位時,處于關閉態(tài)(本質上是輸入態(tài)),其他的管腳上電復位時,均為輸入態(tài)且上拉電阻有效。 圖2-1中各個管腳的具體含義如表2-1所示。表2-1 LPC824各個管腳的含義2.1 LPC824微控制器特點與管腳配置2.1 LPC824微控制器特點與管腳配置2.1 LPC824微控制器特點與管腳配置2.1 LPC824微控制器特點與管腳配置 由表2-1可知,大部分管腳都具有多個功能,當有多個功能復用同一個管腳時,上電復位時,每個管腳號對應的第一個功能是缺省功能。 除了表2-1所列出的功能外,還有表2-2所示的功能,這些功能可被開關矩陣單元配置到任一PIO0口上,稱這些功能為可移動的功能。這些可移動的功能,簡化了LPC824的硬件電路設計,使得升級微控制器芯片時,不用重新設計硬件平臺,而只需借助軟件方式配置可移動的功能接口。在表2-2中,I表示輸入類型,O表示輸出類型,I/O表示輸入/輸出類型。表2-2 可移動的功能列表2.1 LPC824微控制器特點與管腳配置2.1 LPC824微控制器特點與管腳配置2.1 LPC824微控制器特點與管腳配置

從表2-2可以看出,LPC824微控制器支持3個USART,即USART0、USART1和USART2;支持2個SPI,即SPI0和SPI1;SCT有4個外部輸入和6個輸出;支持3個I2C;具有2個ADC外部觸發(fā)輸入;具有1個模擬比較器輸出功能;具有CLKOUT輸出功能,可輸出LPC824微控制器內部的所有時鐘信號;還有1個模式匹配引擎輸出功能。表2-2中的全部功能均可以借助開關矩陣單元分配給任何一個GPIO口,常把這些功能稱為內部信號,借助于表2-3所示的寄存器可實現(xiàn)內部信號與具體管腳的連接,從而才能使用這些內部信號。表2-3 開關矩陣寄存器(基地址:0x4000C000)2.1 LPC824微控制器特點與管腳配置2.1 LPC824微控制器特點與管腳配置 表2-3中的全部寄存器均為可讀可寫屬性。上電復位時,管腳分配寄存器PINASSIGN0~11均被初始化為0xFFFFFFFF,而管腳有效寄存器PINENABLE0的初始值為0xFFFFFECF。每個32位的管腳分配寄存器分成4個字節(jié),每個字節(jié)的值就是內部信號分配到的管腳號,對于LPC824而言,字節(jié)的有效取值為0~5、8~15、17和23,當取為其他值時無意義。如果管腳分配寄存器的不同字節(jié)設置了相同的有效值,這表示不同的內部信號被同時分配到了同一個管腳,盡可能避免這種分配方式。管腳分配寄存器PINASSIGN0~11與各個內部信號的關系如表2-4所示。

表2-4中,后綴“_I”、“_O”和“_IO”分別表示該內部信號為輸入、輸出和輸入輸出類型,其余的部分與表2-2相同。例如,U0_TXD_O表示該內部信號名為U0_TXD,根據(jù)表2-2可知,該內部信號為“USART0發(fā)送數(shù)據(jù)通道”,_O表示該內部信號為輸出類型。由表2-4可知,PINASSIGN0~PINASSIGN11中的每個寄存器都被分為4個8位的字節(jié):[31:24]、[23:16]、[15:8]和[7:0],共48個8位的字節(jié),對應著表2-2中的48個內部信號的分配,例如,PINASSIGN0的低8位[7:0]對應于U0_TXD_O,PINASSIGN5的第[31:24]位域對應著SPI1_MOSI_IO等等。每個8位的字節(jié)取值為n時,表示該字節(jié)對應的內部信號分配到PIO0_n所在的管腳上。例如,當PINASSIGN0的第[7:0]位設為0x04時,則將內部信號U0_TXD分配到PIO0_4所在的管腳上,即第6號引腳(見圖2-1)。表2-4請看下頁2.1 LPC824微控制器特點與管腳配置表2-4 PINASSIGN0~PINASSIGN11與內部信號的關系(復位值均為0xFFFF FFFF)2.1 LPC824微控制器特點與管腳配置

表2-3中的管腳有效寄存器PINENABLE0用于配置圖2-1中有多個功能復用的那些管腳的功能,只有工作在GPIO狀態(tài)下的管腳才能使用管腳分配寄存器為其分配內部信號。管腳有效寄存器PINENABLE0可以配置多功能復用管腳用作GPIO口或其他復用的功能,如表2-5所示。表2-5 管腳有效寄存器PINENABLE02.1 LPC824微控制器特點與管腳配置

2.1 LPC824微控制器特點與管腳配置

2.1 LPC824微控制器特點與管腳配置 LPC824微控制器使用ARMCortex-M0+內核,并集成了32KBFlash、8KBSRAM、3個USART、4個I2C、2個SPI、5通道ADC和1個比較器等片上外設,具有16個GPIO口,其內部結構如圖2-2所示。圖2-2 LPC824微控制器內部結構2.2 LPC824微控制器內部結構

圖2-2清楚地展示了LPC824微控制器的內部結構。由圖2-2可知,LPC824微控制器內核為ARMCortex-M0+核心,“高速通用I/O”和“外部中斷或模式匹配”直接受Cortex-M0+內核控制,Cortex-M0+內核通過“精簡高性能總線”與“32KBFlash”、“8KBSRAM”、“ROM”、“CRC”計算引擎、DMA控制器和“狀態(tài)可配置計數(shù)器”相連接,通過“高性能總線與高級外設總線橋”借助于高級外設總線(APB)管理3個USART、2個SPI、4個I2C、1個ADC、系統(tǒng)配置器、比較器、看門狗定時器、I/O口配置單元、多速率定時器、功耗管理單元和自喚醒定時器等。 由圖2-2可知,通過開關矩陣,可將外部的16個管腳靈活地配置成與下列中選出的16個內部信號相連接:“調試/測試接口”的SWCLK、SWD信號、PIO0口的16個通用I/O口、SCT計數(shù)器的4個輸入和6個輸出、3個USART模塊的15個信號(每個USART有5個,共3個USART)、2個SPI的12個信號(SPI0有7個,SPI1有5個)、4個I2C的8個信號、ADC的5個輸入信號、時鐘單元的XTALIN和XTALOUT、RESET、CLKIN以及模擬比較器的4個輸入和1個輸出信號。 從圖2-2還可看到,LPC824微控制器片內集成了時鐘發(fā)生器,用于管理IRC(內部RC振蕩器)、WDOsc(看門狗振蕩器)、BOD(掉電檢測單元)和POR(上電復位單元)等,為系統(tǒng)各個單元提供工作時鐘信號和控制信號。2.2 LPC824微控制器內部結構

根據(jù)圖2-2,可以看出LPC824微控制器內部單元結構模塊化強,除了“功耗管理單元”和“自喚醒定時器”始終帶電工作外,其余單元都可以工作在低功耗或掉電模式下,這使得LPC824微控制器功耗極低。由于LPC824微控制器集成了開關矩陣,使得LPC824微控制器在硬件電路設計上特別靈活,在產(chǎn)品升級換代時,只需要通過軟件編程方式修改開關矩陣,而不需要重新設計核心電路板。鑒于LPC824微控制器編程靈活方便、處理速度快和控制能力強,有些專家稱LPC824是具有劃時代標志特征的微控制器芯片。2.2 LPC824微控制器內部結構 LPC824微控制器集成了32KB的Flash存儲器和8KB的SRAM存儲器,其存儲器配置建立在圖1-2的基礎上,針對LPC824微控制器芯片的全部片上資源進行配置,如圖2-3所示。圖2-3 LPC824存儲器配置

2.3 LPC824存儲器配置

由圖2-3可知,LPC824微控制器的最大尋址能力為4GB,這是因為LPC824微控制器的地址總線寬度為32位。32KB的Flash空間位于0x0~0x7FFF處,用于存放程序代碼和常量數(shù)據(jù),其中0x0~0xC0處為異常與中斷向量表,中斷向量表的結構將在第2.4節(jié)介紹。8KB的SRAM空間位于0x10000000~0x10001FFF處,用于存放用戶數(shù)據(jù)。 圖2-3表明,APB外設即高級外設總線管理的外設寄存器,均位于地址0x40000000~4007FFFF處,共分為32個塊,每塊大小為16KB,存儲著一個APB外設的寄存器。例如,地址空間0x40000000~0x40004000處存儲著加窗的看門狗定時器相關的寄存器。 由圖2-3可知,LPC824微控制器存儲空間中有一個12KB大小的只讀空間(BootROM),在系統(tǒng)編程(ISP)和自啟動代碼就在芯片出廠時被固化在該ROM中。圖2-3中的“MTB”表示宏跟蹤緩沖區(qū),用于調試和仿真LPC824微控制器;“MRT”表示多速率定時器;“CRC”表示循環(huán)冗余校驗碼。2.3 LPC824存儲器配置 LPC824微控制器內核為ARMCortex-M0+,LPC824的中斷控制器隸屬于Cortex-M0+內核,稱為緊耦合的嵌套向量中斷控制器NVIC,是將圖18中的中斷號為n(n=0,1,2,…,31)的32-個外部中斷與LPC824的片上外設中斷觸發(fā)器相結合。LPC824的NVIC中斷如表2-6所示。表2-6 LPC824NVIC中斷

2.4 LPC824NVIC中斷 LPC824通過NVIC中斷管理寄存器管理表2-6中所示的中斷的開放、關閉、請求、清除請求狀態(tài)和優(yōu)先級配置,這些寄存器如表2-7所示,它們與表112中地址相同的寄存器是同一個寄存器,對應的含義也完全相同。表2-7 LPC824中斷管理寄存器

表2-7中的寄存器IABR0在表112中沒有對應的寄存器。IABR0為32位只讀的中斷活躍寄存器0,其第n位對應著中斷號為n的IRQn中斷的狀態(tài),如果讀出該位為1,則表示其對應的中斷處于活躍態(tài);讀出0,表示該位對應的中斷處于非活躍態(tài)。2.4 LPC824NVIC中斷

LPC824上電復位時,異常與中斷向量表占據(jù)的地址空間為0x0~0xC0,如圖2-4所示。 由圖2-4可知,異常與中斷向量表的起始地址為0x0,結合圖2-3可知,該部分空間位于LPC824的32KBFlash存儲器中??梢酝ㄟ^設置VTOR寄存器(見1.4.2節(jié)),使得中斷向量表的位置重定位到SRAM中,VTOR寄存器為ARMCortex-M0+系統(tǒng)控制寄存器,其地址為0xE000ED08,復位值為0x00000000,VTOR寄存器保存了中斷向量表的偏移地址,其第[31:7]位表示為TBLOFF,第[6:0]位為保留位。TBLOFF的值補上7個0后形成異常與中斷向量表重定位后的地址,如果配置VTOR寄存器的值為0x10000200,則LPC824微控制器的中斷向量表將重定位到SRAM空間中的0x10000200地址處(結合圖2-3)。異常與中斷向量表重定位后,中斷響應入口位于SRAM中,因此,中斷響應速度更快。 圖2-4反映了LPC824上電復位后,PC(程序計數(shù)器指針)將自動指向0x04地址處,從該地址開始執(zhí)行程序。一般地,0x04地址處存放一條跳轉指令,跳過中斷向量表的0xC0大小的空間去程序代碼區(qū)執(zhí)行。圖2-4請看下頁2.4 LPC824NVIC中斷圖2-4 LPC824異常與中斷向量表2.4 LPC824NVIC中斷 LPC824具有16個I/O口(PIO0_0~PIO0_5、PIO0_8~PIO0_15、PIO0_17和PIO0_23,如圖2-1所示),每個I/O口均可作為數(shù)字輸出口或數(shù)字輸入口(PIO0_4、PIO0_13、PIO0_14、PIO0_17和PIO0_23還可作為模擬輸入口,PIO0_10和PIO0_11可工作在開漏模式),其內部結構如圖2-5所示。圖2-5 LPC824I/O口內部結構

2.5 I/O口配置IOCON LPC824每個I/O口都對應著一個同名的I/O口配置寄存器,用于設定該I/O口的功能,如表2-8所示。表2-8 IOCON寄存器(基地址為0x40044000)

2.5 I/O口配置IOCON

表2-8中各個寄存器的結構相同(PIO0_10和PIO0_11寄存器例外),如表2-9所示。表2-9 IOCON配置寄存器各位的含義(PIO0_10和PIO0_11寄存器例外)

表2-9中MODE位域中的“重復模式”是指輸入為低電平時弱下拉使能,輸入為高電平時弱上位使能(結合圖2-5)。

2.5 I/O口配置IOCON PIO0_10和PIO0_11寄存器第[9:8]位域為I2CMODE位域,如表2-10所示。表2-10 PIO0_10和PIO0_11寄存器各位的含義2.5 I/O口配置IOCON 通過IOCON寄存器可以把任意I/O口配置為通用目的輸入輸出口(GPIO),由表2-9的MODE位域可知,在上電復位默認情況下,上拉電阻有效。對于GPIO口的操作有三種: ①設置GPIO口工作在輸入或輸出模式下; ②在輸入模式下,讀GPIO口的值; ③在輸出模式下,輸出低電平(即寫0)或高電平(即寫1)。 這些操作通過表2-11所示的GPIO口寄存器實現(xiàn)。表2-11 GPIO口寄存器(基地址為0xA0000000)2.6 通用目的輸入輸出口GPIO 表2-11中各個寄存器的含義將在下面逐一介紹。

(1)B0~B28為字節(jié)寄存器,每個字節(jié)寄存器對應著一個GPIO管腳,即B0對應著PIO0_0、B1對應著PIO0_1,依次類推,B28對應著PIO0_28。

(2)W0~W28為字寄存器,每個字寄存器對應著一個GPIO口,W0對應著PIO0_0,W1對應著PIO0_1,依次類推,W28對應著PIO0_28。

(3)DIR0寄存器只有第[28:0]位域有效,第[31:29]位域保留。DIR0寄存器的第0位對應著PIO0_0,第1位對應著PIO0_1,依次類推,第28位對應著PIO0_28。對于LPC824而言,只有第[23,17,15:8,5:0]位域有效。如果某一位設為0,則表示相對應的管腳為輸入腳,即工作在輸入模式下;如果某一位設為1,則表示相對應的管腳為輸出腳,即工作在輸出模式下。

(4)MASK0寄存器為32位的PIO0口屏蔽寄存器,只有第[28:0]位有效,與寄存器MPIN0聯(lián)合使用。MPIN0為屏蔽的端口寄存器,只有第[28:0]位有效。MASK0和MPIN0寄存器的第0位對應著PIO0_0,第1位對應著PIO0_1,依次類推,第28位對應著PIO0_28。對于LPC824而言,只有第[23,17,15:8,5:0]位域有效。當MASK0的第n位為0時,MPIN0的第n位正常工作,即向MPIN0的第n位寫入值將反映在PIO0_n端口上,也可通過讀MPIN0_n讀出PIO0_n端口的值;如果MASK0的第n位為1時,則MPIN0的第n位被屏蔽掉,讀這一位時,讀出0;寫入無效。

2.6 通用目的輸入輸出口GPIO (5)PIN0寄存器和MPIN0寄存器均為32位的寄存器,都只有第[28:0]位有效,每位對應著一個管腳,即第0位對應著PIO0_0,第1位對應著PIO0_1,依次類推,第28位對應著PIO0_28。對于LPC824而言,只有第[23,17,15:8,5:0]位域有效。PIN0寄存器的各位直接反映了PIO0端口的值,向PIN0的第n位寫入0,則PIO0_n端口輸出低電平;向其第n位寫入1,則PIO0_n端口輸出高電平。讀PIN0的第n位,相當于直接讀PIO0_n管腳的電平值。MPIN0和PIN0寄存器功能相似,但是MPIN0受MASK0寄存器的管理,只有當MASK0的第n位為0時,MPIN0的第n位才與PIN0的第n位功能相同;如果MASK0的第n位為1時,MPIN0的第n位被屏蔽掉,該位的讀出值始終為0,寫入值無效。

(6)SET0寄存器只有第[28:0]位有效,其第n位對應著PIO0_n端口,對于LPC824而言,只有第[23,17,15:8,5:0]位域有效。SET0寄存器的第n位具有“寫入0無效,寫入1置位”的功能,向SET0寄存器的第n位寫入1,將設置PIO0_n管腳工作在輸出模式下。

(7)CLR0寄存器是一個只寫寄存器,只有第[28:0]位有效,其第n位對應著PIO0_n端口,對于LPC824而言,只有第[23,17,15:8,5:0]位域有效。CLR0寄存器的第n位具有“寫入0無效,寫入1清位”的功能,向CLR0寄存器的第n位寫入1,將設置PIO0_n管腳工作在輸入模式下,實際上是將SET0寄存器的第n位清零了。

(8)NOT0寄存器是一個只寫寄存器,只有第[28:0]位有效,第n位對應著PIO0_n管腳,對于LPC824而言,只有第[23,17,15:8,5:0]位域有效。當PIO0_n管腳工作在輸出模式下時,向NOT0寄存器第n位寫入0無效,寫入1使相應的PIO0_n管腳原有狀態(tài)取反后輸出。

2.6 通用目的輸入輸出口GPIO (9)DIRSET0和DIRCLR0寄存器是兩個只寫的寄存器(寫入0無效),只有第[28:0]位域有效,第n位對應著PIO0_n管腳,對于LPC824而言,只有第[23,17,15:8,5:0]位域有效。當PIO0_n用作GPIO口時,向DIRSET0的第n位寫入1,使PIO0_n工作在輸出模式下;向DIRCLR0的第n位寫入1,使PIO0_n工作在輸入模式下。

(10)DIRNOT0寄存器是只寫的32位寄存器(各位寫入0無效),只有第[28:0]位有效,第n位對應著PIO0_n管腳,對于LPC824而言,只有第[23,17,15:8,5:0]位域有效。向DIRNOT0寄存器的第n位寫入1,如果PIO0_n原來處于輸入模式下,則轉變?yōu)檩敵瞿J?;如果PIO0_n原來工作在輸出模式下,則轉變?yōu)檩斎肽J健?.6 通用目的輸入輸出口GPIO LPC824微控制器的系統(tǒng)配置模塊的作用如下所述。

(1)時鐘管理。

(2)Reset管腳管理。

(3)外部中斷或模式匹配管理。

(4)配置低功耗工作模式與喚醒。

(5)掉電檢測BOD。

(6)宏跟蹤緩沖器管理。

(7)中斷延時控制。

(8)為不可屏蔽中斷NMI選擇中斷源。

(9)校準系統(tǒng)節(jié)拍定時器。

由圖2-3可知,LPC824系統(tǒng)配置模塊SYSCON相關的寄存器位于0x40048000~0x4004BFFF區(qū)間內,通過設置這些寄存器,來實現(xiàn)LPC824系統(tǒng)配置模塊的功能。這里重點介紹時鐘管理模塊的功能。LPC824內部集成了一個12MHz的RC振蕩器,準確度為1.5%,如果需要更精確的時鐘源,則需要外接晶振(1~25MHz)。一般情況下,內部12MHzRC振蕩器能滿足大部分應用場合,LPC824上電復位后,系統(tǒng)自動使用12-MHz內部RC振蕩器作為時鐘源,然后,通過配置SYSCON模塊的寄存器,將時鐘頻率倍頻到LPC824的最高工作時鐘頻率,即30MHz。LPC824的時鐘管理單元如圖2-6所示。圖2-6請看下頁2.7 系統(tǒng)配置模塊SYSCON圖2-6 LPC824時鐘管理單元2.7 系統(tǒng)配置模塊SYSCON 從圖2-6可以看出,LPC824的時鐘管理單元有5個時鐘源,即內部IRC振蕩器、系統(tǒng)振蕩器、外部時鐘信號輸入CLKIN、看門狗振蕩器、低功耗振蕩器,其中低功耗振蕩器專用于功耗管理單元(PMU)中為自喚醒定時器WKT服務,此外,WKT也可由IRC振蕩器提供時鐘信號。系統(tǒng)PLL能接收內部IRC振蕩器、系統(tǒng)振蕩器或CLKIN的時鐘輸入;主時鐘可以選擇IRC振蕩器、看門狗振蕩器、經(jīng)SYSPLLCLKSEL選擇的時鐘或系統(tǒng)PLL輸出的倍頻時鐘;看門狗振蕩器可為加窗的看門狗定時器WWDT提供時鐘源。 在圖2-6中,主時鐘經(jīng)SYSAHBCLKDIV分頻后得到系統(tǒng)時鐘,系統(tǒng)時鐘就是所謂的LPC824工作時鐘,系統(tǒng)時鐘送到ARMCortex-M0+內核,在得到SYSAHBCLKCTRL的允許后,可送到存儲器以及某些外設。主時鐘經(jīng)UARTCLKDIV和分數(shù)倍分頻器分頻后送給USART0~USART2;主時鐘經(jīng)過IOCONCLKDIV分頻后送給IOCON毛刺濾波器。 圖2-6中可通過CLKOUT管腳根據(jù)需要(由CLKOUTSEL決定)向LPC824外部輸出:主時鐘、看門狗振蕩器時鐘、IRC振蕩器時鐘或系統(tǒng)振蕩器時鐘,或者它們的分頻時鐘值(由CLKOUTDIV決定)。 需要指出的是,在圖2-6中,SYSPLLCLKSEL、MAINCLKSEL、SYSAHBCLKDIV、SYSAHBCLKCTRL、CLKOUTSEL、CLKOUTDIV、IOCONCLKDIV、UARTCLKDIV等均為SYSCON寄存器的名稱,只需要設置這些寄存器的值,就可以得到所需要的時鐘。2.7 系統(tǒng)配置模塊SYSCON

例如,不使用外部晶振,使LPC824芯片工作在30MHz時鐘下的方法為:根據(jù)圖2-6所示,配置SYSPLLCLKSEL寄存器選中IRC振蕩器(12MHz);然后配置系統(tǒng)PLL輸出60MHz的時鐘信號,即5倍頻;通過配置寄存器MAINCLKSEL使主時鐘為系統(tǒng)PLL輸出的60MHz時鐘信號;最后配置SYSAHBCLKDIV對主時鐘2分頻,得到30MHz的系統(tǒng)時鐘,即LPC824的工作時鐘。這些寄存器的具體配置情況,可參考表2-12及其后續(xù)解釋。

SYSCON模塊的寄存器列于表2-12中。表2-12 SYSCON模塊的存儲器映射寄存器(基地址為0x40048000)2.7 系統(tǒng)配置模塊SYSCON2.7 系統(tǒng)配置模塊SYSCON2.7 系統(tǒng)配置模塊SYSCON

下面詳細介紹表2-12中本書程序用到的大部分寄存器的含義(不按表中順序)。

1)DEVICE_ID(表2-12中第47號) DEVICE_ID寄存器為只讀的32位寄存器,可通過如下代碼讀出其中的值:

程序段2-1 讀芯片ID號

1 unsignedintid;

2 id=*((unsignedint*)0x400483F8); 程序段2-1執(zhí)行后,讀出的值為0x00008242,表示所用的芯片為LPC824M201JDH20。2.7 系統(tǒng)配置模塊SYSCON 2)PDRUNCFG(表1-9中第46號) PDRUNCFG寄存器控制著LPC824片內模擬模塊的功耗,其各位的含義如表2-13所示。表2-13 PDRUNCFG寄存器各位含義

從表2-13可知,LPC824上電后,內部12MHz的IRC振蕩器、Flash存儲器和低電壓檢測器(BOD)都處于正常工作狀態(tài);而系統(tǒng)振蕩器、看門狗振蕩器、系統(tǒng)PLL和模擬比較器都處于掉電低功耗狀態(tài)。2.7 系統(tǒng)配置模塊SYSCON 3)SYSMEMREMAP(表2-12中第1號) SYSMEMREMAP只有第[1:0]位域有效,第[31:2]位域保留。上電復位時,SYSMEMREMAP的第[1:0]位域的值為0x2,表示中斷向量表位于Flash存儲器中,且從0x0地址開始。建議程序員使用默認值。

4)PRESETCTRL(表2-12中第2號) PRESETCTRL寄存器用于復位LPC824片內特定的數(shù)字模塊,其各位的含義如表2-14所示。

表2-14 PRESETCTRL寄存器各位的含義2.7 系統(tǒng)配置模塊SYSCON

從表2-14中可以看出,各個數(shù)字模塊在上電復位后,均處于工作狀態(tài)。一般地,使處于復位態(tài)的模塊工作,需要先向其在PRESETCTRL中對應的位寫入0再寫入1,而

溫馨提示

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

評論

0/150

提交評論