官术网_书友最值得收藏!

第2章 LPC17XX的硬件設計基礎

設計嵌入式系統(tǒng)時,最開始接觸的就是硬件部分,不管是用戶自己去做硬件設計,還是利用開發(fā)板設計,都需要熟悉硬件的原理,最起碼也應該知道引腳的連線關系。

本章是關于LPC17XX的硬件概述,是進行LPC17XX硬件選型/設計、軟件開發(fā)的基礎。本章內容主要有:

(1)LPC17XX的體系機構;

(2)LPC17XX各子系列的外設情況;

(3)時鐘與功率控制;

(4)引腳情況。

2.1 LPC17XX概述

2.1.1 簡介

LPC17XX系列Cortex-M3微控制器用于處理要求高度集成和低功耗的嵌入式應用。ARM Cortex-M3是下一代內核,在相同的時鐘速率下能提供比ARM7TDMI更高的速率。它還提供了系統(tǒng)增強型特性,如現(xiàn)代化調試特性和更高級別的塊集成特征。

目前,LPC17XX系列主要有LPC175X、LPC176X、LPC177X、LPC178X四種子系列。

LPC175X是LQFP80封裝形式的,主要有LPC1751/52/54/56/58/59幾款芯片。除了LPC1759外,其余的LPC175X的CPU時鐘頻率為100MHz。LPC1759的CPU時鐘頻率可為120MHz。

LPC176X是LQFP100封裝形式的,主要有LPC1769/68/67/65/64/63幾款芯片。除了LPC1769外,其余的LPC176X的CPU時鐘頻率為100MHz。LPC1769的CPU時鐘頻率可為120MHz。LPC176X具有70個GPIO引腳。

LPC177X主要有LPC1774/76/77/78幾款芯片。CPU時鐘頻率為120MHz。

LPC178X主要有LPC1785/86/87/88幾款芯片。CPU時鐘頻率為120MHz。

LPC177X/8X系列ARM Cortex-M3增加了硬件CRC計算及校驗模塊、LCD控制器(只針對LPC178X)、外部存儲器擴展接口(EMC)、專用的SD卡接口。它最多有165個GPIO引腳。LPC177X與LPC23XX的引腳完全兼容,LPC178X與LPC24XX的引腳完全兼容。

LPC17XX可用于靜電計、照明設備、工業(yè)網絡、報警系統(tǒng)、白色家電、電機控制等領域。

LPC17XX各子系列的功能相近,本書選取LPC1768作為典型芯片進行講解,兼顧其他芯片的功能。本書中若不做特別標注,都是以LPC1768為基礎進行講解的。使用其他LPC17XX芯片,在寄存器地址上及引腳方面會有所不同,一些外設功能也有所增減。對于具有相同功能的外設,使用NXP固件庫進行編程的用戶感受不到芯片的分類影響。

2.1.2 特性

(1)ARM Cortex-M3微控制器可在高至100MHz(其中LPC1769和LPC1759的頻率可達120MHz)的頻率下運行,并包含一個支持8個區(qū)的存儲器保護單元(MPU)。

(2)內置嵌套的向量中斷控制器(NVIC)。

(3)具有在系統(tǒng)編程(ISP)和在應用編程(IAP)功能的512KB片上Flash程序存儲器。對增強型的Flash存儲加速器和Flash存儲器在CPU本地代碼/數據總線上的位置進行整合,則Flash可提供高性能的代碼。

(4)64KB片內SRAM包括:

① 32KB片內SRAM,可供高性能CPU通過本地代碼/數據總線訪問;

② 2個16KB SRAM模塊,帶獨立訪問路徑,可進行更高吞量的操作。這些SRAM模塊可用于以太網、USB、DMA存儲器,以及通用指令和數據存儲。

(5)AHB多層矩陣上具有8通道的通用DMA控制器,它可結合SSP、I2S、UART、模數和數模轉換器外設、定時器匹配信號和GPIO使用,并可用于存儲器到存儲器的傳輸。

(6)多層AHB矩陣內部連接,為每個AHB主機提供獨立的總線。AHB主機包括CPU、通用DMA控制器、以太網MAC和USB接口。它提供無仲裁延遲的通信,除非2個主機嘗試同時訪問同一個從機。

(7)分離的APB總線允許在CPU和DMA之間提供更多的帶寬,更少的延遲。CPU無須等待APB寫操作完成。

(8)以太網MAC,帶RMII接口和相關的DMA控制器。

(9)USB 2.0全速從機/主機/OTG控制器,帶有用于從機、主機功能的片內PHY和相關的DMA控制器。

(10)4個UART,帶小數波特率發(fā)生功能、內部FIFO,支持DMA和RS-485。

(11)UART帶有MODEM控制I/O并支持RS-485/EIA-485。全部的UART都支持IrDA。

(12)CAN控制器。

(13)SPI控制器,具有同步、串行、全雙工通信和可編程的數據長度。

(14)SSP控制器,帶有FIFO,可按多種協(xié)議進行通信。其中一個可選擇用于SPI,并且和SPI共用中斷。SSP接口可以與GPDMA控制器一起使用。

(15)增強型的I2C總線接口,其中1個具有開漏輸出功能,支持整個I2C規(guī)范和數據速率為1Mbit/s的快速模式,另外2個具有標準的端口引腳。

(16)I2S(Inter-IC Sound)接口,用于數字音頻輸入或輸出,具有小數速率控制功能。I2S接口可與GPDMA一起使用。I2S接口支持3-線的數據發(fā)送和接收或4-線的組合發(fā)送和接收連接,以及主機時鐘輸入/輸出。

其他外設如下。

(1)通用I/O(GPIO)引腳,帶可配置的上拉/下拉電阻。AHB總線上的所有GPIO可進行快速訪問,支持新的、可配置的開漏操作模式;GPIO位于存儲器中,它支持Cortex-M3位帶操作并且由通用DMA控制器使用。

(2)12位模數轉換器(ADC),可在8個引腳間實現(xiàn)多路輸入,轉換速率高達1MHz,并具有多個結果寄存器。12位ADC可與GPDMA控制器一起使用。

(3)10位數模轉換器(DAC),具有專用的轉換定時器,并支持DMA操作。

(4)4個通用定時/計數器,帶共有8個捕獲輸入和10個比較輸出每個定時器模塊都具有一個外部計數輸入??蛇x擇特定的定時器事件來產生DMA請求。

(5)1個電機控制PWM,支持三相的電機控制。

(6)正交編碼器接口,可監(jiān)控一個外部正交編碼器。

(7)1個標準的PWM定時器模塊,帶外部計數輸入。

(8)實時時鐘(RTC),帶有獨立的電源域。RTC通過專用的RTC振蕩器來驅動。RTC模塊包括20字節(jié)電池供電的備用寄存器,當芯片的其他部分掉電時,允許系統(tǒng)狀態(tài)存儲在該寄存器中。電池電源可由標準的3V鋰電池供電。當電池電壓掉至2.1V的低電壓時,RTC仍會繼續(xù)工作。

(9)看門狗定時器(WDT),該定時器的時鐘源可在內部RC振蕩器、RTC振蕩器或APB時鐘三者間進行選擇。

(10)支持ARM Cortex-M3系統(tǒng)節(jié)拍定時器,包括外部時鐘輸入選項。

(11)重復性的中斷定時器,提供可編程和重復定時的中斷。

(12)標準JTAG測試/調試接口,以及串行線調試和串行線跟蹤端口選項。

(13)仿真跟蹤模塊,支持實時跟蹤。

(14)4個低功率模式:睡眠、深度睡眠、掉電、深度掉電。

(15)單個3.3V電源(2.4~3.6V),溫度范圍為-40~85℃。

(16)4個外部中斷輸入,可配置為邊沿/電平觸發(fā)。PORT0和PORT2上的所有引腳都可用做邊沿觸發(fā)的中斷源。

(17)不可屏蔽中斷(NMI)輸入。

(18)時鐘輸出功能,可反映主振蕩器時鐘、IRC時鐘、RTC時鐘、CPU時鐘或USB時鐘的輸出狀態(tài)。

(19)當處于掉電模式時,可通過中斷(包括外部中斷、RTC中斷、USB活動中斷、以太網喚醒中斷、CAN總線活動中斷、PORT0/2引腳中斷和NMI)將處理器從掉電模式中喚醒。

(20)每個外設都自帶時鐘分頻器,以進一步節(jié)省功耗。

(21)帶掉電檢測功能,可對掉電中斷和強制復位分別設置閾值。

(22)片內有上電復位電路。

(23)片內晶振工作頻率為1~24MHz。

(24)4MHz內部RC振蕩器可在±1%的精度內調整,可選擇用做系統(tǒng)時鐘。

(25)通過片內PLL,沒有高頻晶振,CPU也可以最高頻率運轉。用戶可從主振蕩器、內部RC振蕩器或RTC振蕩器三者中選擇一個作為PLL時鐘源。

(26)第二個專用的PLL可用于USB接口,以允許增加主PLL設置的靈活性;用戶可在引腳對應的多種功能中進行選擇。

表2-1給出了LPC17XX器件的外設信息。

表2-1 LPC17XX器件的外設信息表

2.1.3 LPC17XX的結構圖

LPC17XX的結構圖如圖2-1所示。該結構圖包含Cortex-M3內核、多層AHB矩陣,以及各LPC17XX外設。

圖2-1 LPC17XX的結構圖

ARM Cortex-M3包含三條AHB-Lite總線:一條系統(tǒng)總線,以及I-Code和D-Code總線。后兩者的速率較快,且與測試/調試接口的用法類似:一條總線專用于指令取指(I-Code);另一條總線用于數據訪問(D-Code)。這兩條內核總線允許同時執(zhí)行操作,即同時對不同的設備目標進行操作。

LPC1700系列Cortex-M3微控制器使用多層AHB矩陣來連接Cortex-M3總線,并以靈活的方式將其他總線主機連接到外設,允許多層AHB矩陣上的各外設(使用了不同的從端口)同時被不同的總線主機訪問,從而獲得最優(yōu)化的性能。

APB外設使用多層AHB矩陣的獨立從機端口通過兩條APB總線連接到CPU上,這就減少了CPU和DMA控制器之間的爭用,可實現(xiàn)更好的性能。APB總線橋配置為寫緩沖區(qū)操作,使得CPU或DMA控制器無須等待APB寫操作結束。

LPC17XX的Cortex-M3微控制器使用Cortex-M3 CPU的r2p0版本,包含如下系統(tǒng)方面與調試方面的特征。

1.系統(tǒng)方面的特征

(1)嵌套的向量中斷控制器(NVIC):NVIC包括系統(tǒng)定時器。

(2)喚醒中斷控制器(WIC):WIC可更有效地將CPU從低功耗模式中喚醒。

(3)存儲器保護單元(MPU)。

(4)ROM表:ROM表提供了調試部件到外部調試系統(tǒng)的地址。

2.調試方面的特征

(1)JTAG調試接口。

(2)串行線調試:串行線調試允許僅使用兩條線進行調試操作,簡單的跟蹤功能可增加第三條線。

(3)嵌入式跟蹤宏單元(ETM):ETM提供指令跟蹤功能。

(4)數據觀察點和跟蹤(DWT)單元:DWT允許數據地址或數據值匹配為跟蹤信息或觸發(fā)其他事件。DWT包含4個比較器和計數器以用于特定的內部事件。

(5)指令跟蹤宏單元(ITM):軟件可寫ITM以發(fā)送信息到跟蹤端口。

(6)跟蹤端口接口單元(TPIU):TPIU編碼并向外面提供跟蹤信息,這可以在串行線瀏覽器引腳(Serial Wire Viewer pin)或4并行跟蹤端口上實現(xiàn)。

(7)Flash修補和斷點(FPB):FPB可產生硬件斷點并且在代碼空間中重新映射特定的地址到SRAM作為更改非易失性代碼的暫時方法。FPB包括2個文字比較器(literal comparator)和6個指令比較器。

LPC1700系列Cortex-M3微控制器含有512KB的片上Flash存儲器。一個新的2-端口Flash存儲器加速器通過兩條快速AHB-Lite總線將其使用性能擴至極限。該存儲器可用于存放代碼和數據。對Flash存儲器的編寫可通過若干種方式來實現(xiàn)。LPC1700系列Cortex-M3微控制器可通過串口進行在系統(tǒng)編程。應用程序也可以在運行時對Flash進行擦除和/或編程,從而給數據存儲域的固件升級等操作帶來極大的靈活性。

LPC1700系列Cortex-M3微控制器包含共計為64KB的片上靜態(tài)RAM存儲器,包括主32KB SRAM(CPU和高速總線上的3個DMA控制器均可對其進行訪問),以及另外兩個各為16KB的、位于AHB多層矩陣獨立從機端口的SRAM模塊。這種結構允許各自執(zhí)行CPU和DMA訪問操作,從而使得對總線主機的延遲變少或無延遲。

2.2 LPC17XX的時鐘與功率控制

本節(jié)描述了LPC1700系列Cortex-M3微控制器所需的各種時鐘和時鐘源選擇,以及功率控制和低功耗模式的喚醒。

2.2.1 振蕩器

LPC1700系列Cortex-M3微控制器包括3個獨立的振蕩器,分別為主振蕩器(osc_clk)、內部RC振蕩器(irc_clk)和RTC振蕩器(rtc_clk)。每個振蕩器可根據特定的應用要求來選用,圖2-2給出了每種振蕩器生成不同時鐘信號的過程。

圖2-2 LPC1700系列Cortex-M3微控制器的時鐘產生

復位后,LPC1700系列Cortex-M3微控制器自動選擇內部RC振蕩器作為系統(tǒng)的時鐘源,用戶可以通過軟件方式修改時鐘源來選擇寄存器。這使得微控制器能在沒有外部晶振的情況下運行,并允許Boot Loader代碼在一個已知的頻率下運行。

1.內部RC振蕩器

內部RC振蕩器(IRC)既可以用做看門狗定時器的時鐘源,也可以用做驅動PLL0和CPU的時鐘源。IRC的精度達不到USB接口的時間基準精度要求(USB接口需要一個更精確的時間基準以遵循USB規(guī)范)。而且如果CAN的波特率高于100kbit/s,則IRC不應用于CAN模塊。IRC的額定頻率為4MHz。

上電或任何芯片復位時,LPC1700系列Cortex-M3微控制器使用IRC作為時鐘源。此后,軟件可將其切換為另一種可用的時鐘源。

2.主振蕩器

主振蕩器(外部晶體振蕩器)可以用做CPU的時鐘源(不管是否使用PLL0)。主振蕩器工作在1~24MHz下。該頻率可通過主PLL(PLL0)來提高,其值可高達CPU操作頻率的最大值。振蕩器的輸出稱為osc_clk。PLLCLKIN可用于PLL0輸入時鐘的選擇。為了便于頻率公式的書寫及本節(jié)的描述,將ARM處理器時鐘頻率稱為CCLK。在PLL0有效并連接前,PLLCKIN和CCLK的頻率值相同。

LPC1700系列Cortex-M3微控制器的振蕩器可工作在兩種模式下:從屬模式和振蕩模式。

在從屬模式下,輸入時鐘信號應該與一個100pF的電容(圖2-3(a)中的Cc)相連,其幅值至少為200mVrms。在這種配置下,XTAL2引腳可以不連接。

圖2-3 振蕩器模式和模型

振蕩模式下使用的外部元件和模型如圖2-3的(b)和(c),以及表2-2和表2-3所示。由于片內集成了反饋電阻,所以只需要在外部連接一個晶體和電容Cx1、Cx2就可以形成基本模式的振蕩電路(基本頻率用L、CL和Rs來表示)。圖2-3(c)中的電容Cp是并聯(lián)封裝電容,其值不能大于7pF。參數Fosc、CL、RsCp都由晶體制造商提供。

表2-2 振蕩模式下CX1、CX2的建議取值(晶體和外部元件參數)、低頻模式(OSCRANGE=0)

表2-3 振蕩模式下CX1、CX2的建議取值(晶體和外部元件參數)、高頻模式(OSCRANGE=1)

由于芯片操作總是從內部RC振蕩器開始的,且主振蕩器在某些應用中并沒有使用,所以主振蕩器只能由軟件請求來啟動。通過把SCS寄存器中的OSCEN(SCS[5])置位可實現(xiàn)這種操作。主振蕩器提供了一個狀態(tài)標志(SCS[6]),使得程序可據此得知振蕩器何時可用。待確定振蕩器運行穩(wěn)定后,軟件可控制SCS[5]切換為主振蕩器模式使其作為時鐘源。在啟動主振蕩器之前,頻率范圍必須通過配置SCS寄存器中的OSCRANGE(SCS[4])位來選擇。

3.RTC振蕩器

RTC振蕩器可提供1Hz~32kHz的RTC時鐘輸出,可用做PLL0、CPU和/或看門狗定時器的時鐘源。

2.2.2 時鐘源選擇多路復用

某些時鐘源可選擇用來驅動PLL0、CPU和片內外圍設備。這些可用的時鐘源包括主振蕩器、RTC振蕩器和內部RC振蕩器。

只有當PLL0斷開連接時,才可以更換輸入時鐘源。

請注意下列有關時鐘源選擇的限制:

(1)IRC振蕩器不應用做(通過PLL0)USB子系統(tǒng)的時鐘源;

(2)如果CAN的波特率高于100kbit/s,則IRC振蕩器不應用做(通過PLL0)CAN控制器的時鐘源。

時鐘源選擇寄存器(CLKSRCSEL-0x400F C10C):時鐘源選擇寄存器包含了選擇PLL0時鐘源的位。時鐘源選擇寄存器的位描述如表2-4所示。

表2-4 時鐘源選擇寄存器的位描述

2.2.3 PLL0

PLL0支持從32kHz~25MHz范圍內的輸入時鐘頻率。時鐘源在CLKSRCSEL寄存器中選擇(見2.2.2節(jié)中的描述)。PLL將輸入時鐘倍頻,然后再分頻,以提供給CPU、外設或USB子系統(tǒng)使用的實際時鐘。PLL0可產生的時鐘頻率高達100MHz,是CPU所允許的最大值。

PLL輸入(頻率范圍為32kHz~50MHz)首先被一個“N”值分頻,“N”值的范圍為1~256。該輸入分頻在相同的輸入頻率下,提供更多種可能的輸出頻率范圍。

PLL倍頻器(見圖2-4中的M倍頻)的操作在PLL輸入分頻器之后進行。通過使用電流控制振蕩器(CCO)由“M”的值(支持的M值范圍為6~512,以及表2-12中所示的值)來倍頻輸入分頻器的輸出。因此,產生的頻率必須在275~550MHz頻率范圍內。倍頻器操作是先使用M值分頻CCO輸出,然后使用相位-頻率檢測器將分頻后的CCO輸出與倍頻器輸入相比較??梢愿鶕容^的偏差值調節(jié)CCO的振蕩頻率。

圖2-4 PLL0的方框圖

表2-12 使用低頻時鐘輸入的倍頻值

PLL0的輸出還連接有其他的分頻器,使其頻率下降到CPU、外設和USB子系統(tǒng)所需要的值。PLL0的方框圖如圖2-4所示。

PLL0控制寄存器控制PLL有效。PLL0配置寄存器控制PLL0倍頻器和分頻器的值。為了避免程序對PLL0正在使用的相關參數進行意外修改或PLL失效,芯片廠商對這兩個寄存器進行了保護。由于所有的芯片操作,包括看門狗定時器,在這種配置情況下都可能依賴于PLL0(如當PLL正在提供芯片時鐘時),所以意外改變PLL0的設置將導致微控制器執(zhí)行不期望或錯誤的操作。保護是由一個類似于操作看門狗定時器的代碼序列來實現(xiàn)的,詳情請參閱PLL0FEED寄存器的描述。

PLL0在系統(tǒng)進入掉電模式時會自動關閉并斷開。PLL0必須通過軟件配置、使能和連接到系統(tǒng)。

注意:一定要按照PLL0設置序列的設置步驟來進行,否則PLL可能不操作!

當在用戶Flash中沒有有效代碼(由校驗和字段決定)或在啟動時拉低ISP使能引腳(P2.10)時,芯片將進入ISP模式,并且引導代碼使用IRC設置PLL。因此,當用戶啟動JTAG來調試應用代碼時,不能假設PLL被禁能。用戶啟動代碼必須按照本章中說明的步驟來斷開與PLL的連接。

1.PLL0寄存器的描述

PLL0由PLL0寄存器進行控制,如表2-5所示。

表2-5 PLL0寄存器

注:[1]復位值僅指在使用位中保存的數據,不包括保留位的內容。

注意:PLL0值的不正確設定會導致器件不能正確地操作!

1)PLL0控制寄存器(PLL0CON-0x400FC080)

PLL0控制寄存器包含了使能和連接PLL0的位。該寄存器可以使能PLL0,以允許它嘗試鎖定倍頻器和分頻器的當前設定值。連接PLL0的位,可以使PLL0的輸出用做處理器和大多數片內外設的時鐘源。對PLL0控制寄存器的更改,只有在對PLL0FEED執(zhí)行了正確的PLL0饋送序列后才生效。

PLL0控制寄存器的位描述如表2-6所示。

表2-6 PLL0控制寄存器的位描述

PLL0在用做時鐘源之前必須進行設置、使能并鎖定。當PLL時鐘源從振蕩器時鐘切換到PLL0輸出或反過來操作時,為確保不產生問題,內部電路同步化該操作。此外,當PLL0脫離鎖定狀態(tài)時,硬件是不會主動斷開PLL0連接的,這時振蕩器很可能已變得不穩(wěn)定,此時再斷開PLL0也沒用了。

2)PLL0配置寄存器(PLL0CFG-0x400F C084)

PLL0配置寄存器包含PLL0倍頻器和分頻器值。在執(zhí)行正確的PLL饋送序列之前,改變PLLC0配置寄存器的值不會生效。

PLL0配置寄存器的位描述如表2-7所示。

表2-7 PLL0配置寄存器的位描述

3)PLL0狀態(tài)寄存器(PLL0STAT-0x400FC088)

PLL0狀態(tài)寄存器提供了當前生效的PLL0真實工作參數和狀態(tài),它是一個只讀寄存器。PLL0STAT中的值可能與PLL0CON和PLL0CFG中的值不同,這是因為對這些寄存器的更改只有在執(zhí)行了正確的PLL0饋送序列后才生效。

PLL0狀態(tài)寄存器的位描述如表2-8所示。

表2-8 PLL0狀態(tài)寄存器的位描述

PLL0STAT的PLOCK0位反映PLL0的鎖定狀態(tài)。當使能PLL0或改變參數時,PLL0在新的條件下需要一些時間來完成鎖定??赏ㄟ^監(jiān)控PLOCK0位來確定連接PLL0的時間。當PLL參考頻率(參考頻率FREFN分頻器輸出的頻率相等,即FREF=FIN/N)小于100kHz或大于20MHz時,PLOCK0的值可能不穩(wěn)定。在這些情況下,可假設PLL啟動后經過一段時間才穩(wěn)定下來。當FREF大于400kHz時,這個時間為50s;當FREF小于400kHz時,這個時間為200/FREFs。

PLOCK0位連接到中斷控制器,這樣可使用軟件使能PLL0,而無須等待PLL0鎖定。當發(fā)生中斷時,可以連接PLL0并禁止中斷。

PLL0STAT[24]和PLL0STAT[25],即PLLC0和PLLE0的組合解釋如表2-9所示。

表2-9 PLL0控制位的組合

4)PLL0饋送寄存器(PLL0FEED-0x400F C08C)

必須將正確的饋送序列寫入PLL0FEED寄存器,才能使PLL0CON和PLL0CFG寄存器的更改生效。饋送序列如下:

① 將值0xAA寫入PLL0FEED;

② 將值0x55寫入PLL0FEED。

這兩個寫操作的順序必須正確,而且必須在相同的地址空間(0x400F C000~0x400F FFFF)內沒有其他寄存器訪問。如果有一個中斷服務程序在對該空間內的一個寄存器執(zhí)行寫操作,則在執(zhí)行PLL0饋送操作時必須禁止中斷。如果寫入的值不正確或沒有滿足前兩個條件,則對PLL0CON或PLL0CFG寄存器的更改都不會生效。

PLL0饋送寄存器的位描述如表2-10所示。

表2-10 PLL0饋送寄存器的位描述

2.PLL0和掉電模式

掉電模式會自動關閉并斷開PLL0。從掉電模式喚醒不會自動恢復原先的PLL0參數,必須在軟件中恢復PLL0。通??梢栽谥袛喾粘绦虻拈_始激活PLL0、等待鎖定并連接PLL0,該中斷服務程序也可以在掉電喚醒時調用。需要注意一點,那就是不要試圖在掉電喚醒之后簡單地執(zhí)行饋送序列來重新啟動PLL0,在建立PLL鎖定之前,這種操作將會同時使能并連接PLL0。

3.PLL0的頻率計算

在進行PLL0參數的設置時,需要的參數信息如表2-11所示。

表2-11 PLL0的參數信息

PLL0輸出頻率(當PLL0被激活且連接時)的計算公式為

FCCO=(2×M×FIN)/N

PLL輸入和設定必須滿足下面的條件。

(1)FIN的范圍:32kHz~50MHz;

(2)FCCO的范圍:275~550MHz。

可通過求解PLL等式來得到其他的PLL參數:

M=(FCCO×N)/(2×FIN)

N=(2×M×FIN)/FCCO

允許的M值:

FIN=(FCCO×N)/(2×M)

(1)在較高的振蕩器頻率下(超過1MHz),允許M值的范圍為6~512,這是支持主振蕩器和IRC操作的整個M值范圍;

(2)對于較低頻率,特別是當RTC振蕩器用來計時PLL0時,選擇了65個M值用于支持波特率產生和CAN/USB操作,這些值在表2-12中給出。

4.確定PLL0頻率參數的過程

通過使用NXP提供的電子數據表可簡單確定PLL0參數。如果要手動確定PLL0參數,可按照下面的步驟來進行。

(1)確定是否需要使用USB,以及是否由PLL0驅動。USB要求一個占空比為50%的48MHz時鐘源,也就是說,FCCO必須是48MHz的偶數整數倍(即96MHz的整數倍),誤差范圍極小。

(2)選擇所需的處理器操作頻率(FCCLK),這取決于處理器的吞吐量要求,所支持的特定的UART波特率等。外設可在較低時鐘頻率下運行,這個頻率可以低于處理器的頻率(見2.2.4節(jié)“時鐘分頻器”和2.2.5節(jié)“功率控制”)。找出與所需FCCLK的倍數接近的一個FCCO值,再與步驟(1)中USB所要求的FCCO值相比較,較低的FCCO值,處理器的功耗也更低。

(3)選擇PLL輸入頻率(FIN)的值??蓮闹髡袷幤?、RTC振蕩器或片內RC振蕩器中選擇。使用USB功能時,需要選擇主振蕩器。如果使用PLL1而不是PLL0來驅動USB子系統(tǒng),會影響選擇主振蕩器的頻率。

(4)計算MN的值來產生十分精確的FCCO頻率。將所需的M值減1(即M-1)寫入PLL0CFG的MSEL0字段,將所需的N值減1(即N-1)寫入PLL0CFG的NSEL0字段。

總的來說,建議使用一個較小的N值,這樣可以降低FCCO的倍頻數。由于在某些情況下很難找到最好的值,所以可以使用電子數據表或類似的方法來立即獲得多種可能的值,再從中選擇出一個最好的值。

5.PLL0的設置步驟

要想對PLL0進行正確的初始化,必須按照下列步驟操作。

(1)如果PLL0已被連接,則用一個饋送序列斷開與PLL0的連接。

(2)用一個饋送序列禁止PLL0。

(3)如果需要,可在沒有PLL0的情況下改變CPU時鐘分頻器的設置以加速操作。

(4)操作“時鐘源選擇控制寄存器”以改變時鐘源。

(5)寫PLL0CFG并用一個饋送序列使其有效。PLL0CFG只能在PLL0被禁止時更新。

(6)用一個饋送序列使能PLL0。

(7)改變CPU時鐘分頻器的設置,使之與PLL0一起操作。在連接PLL0之前完成這個操作是很重要的。

(8)通過監(jiān)控PLL0STAT寄存器的PLOCK0位,或使用PLOCK0中斷來等待PLL0實現(xiàn)鎖定。此外,當使用低頻時鐘作為PLL0的輸入時(也就是32kHz),需要等待一個固定的時間。當PLL參考頻率(REFCLK的頻率FREF與預分頻器值分頻所得的PLL輸入頻率相等)少于100kHz或大于20MHz時,PLOCK0的值可能不穩(wěn)定。在這些情況下,啟動PLL后等待一段時間即可。當FREF大于400kHz時,這個時間為500s;當FREF小于400kHz時,這個時間為200/FREFs。

(9)用一個饋送序列連接PLL0。

需要注意的是不要合并上面的任何一個步驟。例如,不能用相同的饋送序列同時更新PLL0CFG和使能PLL0。

2.2.4 時鐘分頻器

PLL0的輸出經過分頻后供CPU和USB子系統(tǒng)使用。由于提供了各自的分頻器,所以可以單獨確定USB子系統(tǒng)和CPU的頻率。在正常操作下,USB子系統(tǒng)總是需要占空比為50%的48MHz頻率。

如圖2-5所示是PLL和時鐘分頻器。

圖2-5 PLL和時鐘分頻器

1.CPU時鐘配置寄存器(CCLKCFG-0x400FC104)

PLL0輸出的時鐘必須要經過分頻才能提供給CPU使用,PLL0輸出的分頻由CCLKCFG寄存器進行控制。當PLL0被旁路時,可實現(xiàn)1分頻。當PLL0正在運行時,輸出必須經過分頻,從而限定CPU時鐘頻率(CCLK)的運行范圍??墒褂靡粋€8位分頻器進行選擇,包括降低CPU的操作頻率來暫時節(jié)省功耗而無須關閉PLL0。

注意:當在應用中使用USB接口時,CCLK必須至少為18MHz以便于支持USB子系統(tǒng)的內部操作。CPU時鐘配置寄存器的位描述如表2-13所示。

表2-13 CPU時鐘配置寄存器的位描述

注意:當置位CCLKSEL位時使用偶數值(2,4,6,254),可能會導致操作錯誤。

CCLK從PLL0輸出信號中得到,通過CCLKSEL+1分頻。當CCLKSEL=1時,CCLK的頻率是PLL0輸出頻率的一半;當CCLKSEL=3時,CCLK的頻率是PLL0輸出頻率的四分之一,以此類推。

2.USB時鐘配置寄存器(USBCLKCFG-0x400FC108)

注意:該寄存器僅在PLL1禁止時使用。如果PLL1使能,則其輸出自動用做USB時鐘源,且必須配置PLL1為USB子系統(tǒng)提供正確的48MHz時鐘。

USBCLKCFG寄存器控制對PLL0輸出時鐘的分頻,然后提供給USB子系統(tǒng)使用。PLL0的輸出必須被分頻以使USB時鐘頻率為48MHz,占空比為50%。在PLL操作范圍內,4位的分頻器允許從48MHz的任意偶數倍(即96MHz的任意倍數)中獲得正確的USB時鐘。

注意:內部RC時鐘不應用做USB的時鐘,這是因為USB規(guī)范需要更精確的時鐘。USB時鐘配置寄存器的位描述如表2-15所示。

表2-14 USB時鐘配置寄存器的位描述

表2-15 IRC調整寄存器的位描述

USB時鐘從PLL0輸出信號中得到,通過USBSEL+1分頻。當USBSEL=1時,USB的時鐘頻率是PLL0輸出頻率的一半。

3.IRC調整寄存器(IRCTRIM-0x400FC1A4)

該寄存器用于調整片內4MHz振蕩器。IRC調整寄存器的位描述如表2-15所示。

4.外設時鐘選擇寄存器0和1(PCLKSEL0-0x400F C1A8和PCLKSEL1-0x400F C1AC)

在外設時鐘選擇寄存器中,每組位控制了提供給對應外設的時鐘信號的速率,如表2-16~表2-19所示。

表2-16 外設時鐘選擇寄存器PCLKSEL0的位描述

表2-17 外設時鐘選擇寄存器PCLKSEL11的位描述

表2-18 外設時鐘選擇寄存器的位描述

表2-19 功率控制寄存器

注:[1]復位值僅指在使用位中保存的數據,不包括保留位的內容。

注意:RTC模塊的外設時鐘固定為CCLK/8。

固件庫提供了操作PCLKSEL寄存器的函數,即CLKPWR_SetPCLKDiv用于設置外設的pclk,如下所示。

void CLKPWR_SetPCLKDiv(uint32_t ClkType,uint32_t DivVal);//ClkType為被設置的外設,其

                      //參數選取參見表2-12和表2-18;DivVal是外設的分頻,其參數選取參見表2-18

2.2.5 功率控制

功率控制類似于我們日常生活中的節(jié)約用電問題:為了能夠達到節(jié)約用電的目的,我們經常將一些不使用的電器設備的電源關閉,只有在使用的情況,才打開這些設備的電源。

1.功率控制模式

LPC1700系列Cortex-M3微控制器支持四種功率控制的方式:睡眠模式、深度睡眠模式、掉電模式和深度掉電模式。CPU時鐘速率可通過改變時鐘源、重新配置PLL值和/或改變CPU時鐘分頻器值來控制,這就允許用戶根據應用要求在功率和處理速度之間進行權衡。此外,“外設功率控制器”可以關斷每個片上外設,從而對系統(tǒng)功耗進行良好的調整。

通過Cortex-M3執(zhí)行WFI(等待中斷)或WFE(等待異常)指令可以進入任何低功耗模式。Cortex-M3內部支持兩種低功耗模式:睡眠模式和深度睡眠模式,它們通過Cortex-M3系統(tǒng)控制寄存器中的SLEEPDEEP位來選擇。掉電模式和深度掉電模式通過PCON寄存器中的位來選擇。

LPC1700系列Cortex-M3微控制器還具有一個獨立電源域,可為RTC和電池RAM供電,以便在維持RTC和電池RAM正常操作時,關閉其他設備的電源。

1)睡眠模式

注意:LPC1700系列Cortex-M3微控制器的睡眠模式對應于LPC2XXX系列ARM器件的空閑模式。

當進入睡眠模式時,內核時鐘停止,且PCON的SMFLAG位置位。從睡眠模式中恢復并不需要任何特殊的序列,但要重新使能ARM內核的時鐘。

在睡眠模式下,指令的執(zhí)行被中止,直至復位或中斷出現(xiàn)。外設在CPU內核處于睡眠模式期間繼續(xù)運轉,并可產生中斷使處理器恢復執(zhí)行指令。在睡眠模式下,處理器內核自身、存儲器系統(tǒng)、有關控制器及內部總線停止工作,因此這些器件的動態(tài)功耗會降低。

只要出現(xiàn)任何使能的中斷,CPU內核就會從睡眠模式中喚醒。

2)深度睡眠模式

注意:LPC1700系列Cortex-M3微控制器的深度睡眠模式對應于LPC2300和LPC2400系列ARM器件的睡眠模式。

當芯片進入深度睡眠模式時,主振蕩器掉電且所有內部時鐘停止,PCON的DSFLAG位置位,IRC保持運行并且可配置為驅動看門狗定時器,允許看門狗喚醒CPU。由于RTC中斷也可以用做喚醒源,所以32kHz的RTC振蕩器不停止。同時,F(xiàn)lash進入就緒模式,這樣可以實現(xiàn)快速喚醒,PLL自動關閉并斷開連接,CCLK和USBCLK時鐘分頻器自動復位為0。

在深度睡眠模式期間,保存處理器狀態(tài)及寄存器、外設寄存器和內部SRAM的值,并且將芯片引腳的邏輯電平保持為靜態(tài)??赏ㄟ^復位或某些的特定中斷(能夠在沒有時鐘的情況下工作)來終止深度睡眠模式和恢復正常操作。由于芯片的所有動態(tài)操作被中止,所以深度睡眠模式使功耗降低為一個極小的值。

在喚醒深度睡眠模式下,如果IRC在進入深度睡眠模式前被使用,則2位IRC定時器開始計數,并且在定時器超時(4周期)后,恢復代碼執(zhí)行和外設活動。如果使用主振蕩器,則12位主振蕩器定時器開始計數,并且在定時器超時(4096周期)時恢復代碼的執(zhí)行。用戶必須記得在喚醒后重新配置所需的PLL和時鐘分頻器。

只要相關的中斷使能,器件就可以從深度睡眠模式中喚醒。這些中斷包括NMI、外部中斷EINT0~EINT3、GPIO中斷、以太網Wake-On-LAN中斷、掉電檢測、RTC報警中斷、看門狗定時器超時、USB輸入引腳跳變或CAN輸入引腳跳變。

注意:外設的功率控制特性允許在應用中關閉不需要的外設,從而節(jié)省額外的功耗。該功能由PCONP寄存器實現(xiàn)。

3)掉電模式

掉電模式會執(zhí)行在深度睡眠模式下的所有操作,但關閉了Flash存儲器。進入掉電模式會使PCON中的PDFLAG位置位,這樣節(jié)省了更多功耗。但是芯片被喚醒后,在訪問Flash存儲器中的代碼或數據前,必須等待Flash恢復。

當芯片進入掉電模式時,IRC、主振蕩器和所有時鐘都停止。如果RTC已使能,則它繼續(xù)運行。RTC中斷也可用來喚醒CPU。同時,F(xiàn)lash被強制進入掉電模式;PLL自動關閉并斷開連接;CCLK和USBCLK時鐘分頻器自動復位為0。

當芯片處于掉電模式下被喚醒時,如果在進入掉電模式前使用了IRC,則經過IRC的啟動時間(60s)后,2位IRC定時器開始計數并且在4個周期內停止計數。如果用戶代碼在SRAM中,則在IRC計數4個周期后,用戶代碼會立即執(zhí)行;如果代碼在Flash中運行,則在IRC計數4個周期后,啟動Flash喚醒定時器,100s后完成Flash的啟動,開始執(zhí)行代碼。當定時器超時時,可以訪問Flash。用戶必須記得在喚醒后重新配置PLL和時鐘分頻器。

4)深度掉電模式

在深度掉電模式下,關斷整個芯片的電源(實時時鐘、引腳、WIC和RTC備用寄存器除外)。進入深度掉電模式會使PCON中的DPDFLAG位置位。為了優(yōu)化功率,用戶可關閉額外選項,可保留32kHz振蕩器的電源,或使用外部電路關閉片上調節(jié)器的電源。

當使用外部復位信號,或使能RTC中斷和產生RTC中斷時,可將器件從深度掉電模式中喚醒。

2.寄存器描述

功率控制寄存器如表2-19所示。

1)功率模式控制寄存器(PCON-0x400F C0C0)

低功耗模式通過功率模式控制寄存器來控制,如表2-20所示。

表2-20 功率模式控制寄存器的位描述

PCON中的PM1和PM0位在必要時允許進入低功耗模式。表2-21給出了LPC1700系列Cortex-M3微控制器支持的3種低功耗模式的編碼。

表2-21 低功耗模式的編碼

任何使能的中斷均可將CPU從睡眠模式中喚醒。某些特定的中斷可將處理器從深度睡眠模式或掉電模式中喚醒。

若特定的中斷使能,則允許中斷將CPU從深度睡眠模式或掉電模式中喚醒。喚醒后,將繼續(xù)執(zhí)行適當的中斷服務程序。這些中斷為NMI、外部中斷EINT0~EINT3、GPIO中斷、以太網Wake-On-LAN中斷、掉電檢測中斷、RTC報警中斷。此外,如果看門狗定時器由IRC振蕩器驅動,則看門狗定時器也可將器件從深度睡眠模式中喚醒。

可以將CPU從深度睡眠或掉電模式中喚醒的其他功能有CAN活動中斷(由CAN總線引腳上的活動產生)和USB活動中斷(由USB總線引腳上的活動產生)。相關的功能必須映射到引腳且對應的中斷必須使能,才能實現(xiàn)喚醒。

2)外設功率控制寄存器(PCONP-0x400FC0C4)

可通過PCONP寄存器關閉特定外設模塊的時鐘源來關閉外設,以實現(xiàn)節(jié)電的目的。有少數外設功能不能被關閉(看門狗定時器、引腳連接模塊和系統(tǒng)控制模塊)。

某些外設(特別是那些含有模擬功能的外設)的功耗可能與時鐘無關。這些外設有獨立的禁能控制,可通過關閉其電路來減少功耗。PCONP中的每個位都控制一個外設,如表2-22所示。

表2-22 外設功率控制寄存器的位描述

如果外設控制位為1,則外設被使能;如果外設控制位為0,則外設的時鐘被禁能(關閉)以節(jié)省功耗。例如,如果位19為1,則I2C1接口使能;如果位19為0,則I2C1接口禁止。

注意:僅當外設在PCONP寄存器中使能時,才能夠從外設寄存器中有效讀取和有效寫入外設寄存器。

注意:DAC外設在PCONP中沒有控制位。要想使能DAC,必須通過配置PINSEL1寄存器在相關的引腳P0.26上選擇其輸出。

LPC17XX在固件庫中提供操作PCONP寄存器的函數:

void CLKPWR_ConfigPPWR(uint32_t PPType,FunctionalState NewState);//PPType是設備類型,

                                          //對應于表2-22中的位信息;NewState代表使能或禁用

3.功率控制的注意事項

復位后,PCONP寄存器包含使能所選的接口和外設(由PCONP控制)的值。因此,除了對外設相關的寄存器進行配置外,用戶的應用程序可能還需要訪問PCONP寄存器,使能對應的外設。

在需要控制功率的系統(tǒng)中,需要在PCONP寄存器中使能必要的外設,而寄存器的其他“保留”位或當前不使用的外設所對應的位都必須清零。

2.3 LPC17XX的引腳

2.3.1 LPC17XX的引腳連接模塊

LPC176X的100腳引腳封裝如圖2-6所示。

圖2-6 LPC176X的100腳引腳封裝

LPC17XX具有5路GPIO口,分別是P0、P1、P2、P3、P4。如表2-23所示是LPC176X的引腳描述。

表2-23 LPC176X的引腳描述

續(xù)表

續(xù)表

續(xù)表

續(xù)表

續(xù)表

續(xù)表

續(xù)表

P0口是一個32位I/O端口,每一位都具有獨立的方向控制。P0口引腳的操作取決于引腳連接模塊所選擇的功能。P0口的12、13、14和31位不可用。

P1口是一個32位I/O端口,每一位都具有獨立的方向控制。P1口引腳的操作取決于引腳連接模塊所選擇的功能。P1口的引腳P1.2、P1.3、P1.5、P1.6、P1.7、P1.11、P1.12和P1.13不可用。

P2口是一個32位I/O端口,每一位都具有獨立的方向控制。P2口引腳的操作取決于引腳連接模塊所選擇的功能。P2口的引腳P2.14~P2.31不可用。

P3口是一個32位I/O端口,每一位都具有獨立的方向控制。P3引腳的操作取決于引腳連接模塊所選擇的功能。P3口的引腳P3.0~P3.24、P3.27~P3.31不可用。

P4口是一個32位I/O端口,每一位都具有獨立的方向控制。P4口引腳的操作取決于引腳連接模塊所選擇的功能。P4口的引腳P4.0~P4.27、P4.30和P4.31不可用。

只要不在表2-23中特別指出,LPC17XX的I/O端口均能承受5V電壓,且具有輸入滯后的特點。晶振引腳、電源引腳,以及參考電壓引腳不能承受5V電壓。如果引腳被選為ADC功能,且具有電壓值不能超過VREFP引腳的電壓,則此時它不能承受5V電壓。

2.3.2 LPC17XX的引腳配置寄存器

LPC17XX的引腳功能是復用的。引腳連接模塊使得LPC17XX的大部分引腳具有1個以上的功能。配置寄存器控制多路開關以實現(xiàn)引腳與片內外設之間的連接。

在使用外設時,外設應先連接到適當的引腳,再激活,需要時使能相關中斷。任何一個沒有映射到相關功能引腳的使能外設,都將被認為是未定義的。當選擇了引腳上的1個功能時,該引腳上的其他可用功能無效。

引腳連接模塊共有27個寄存器,分別是11個引腳功能寄存器、10個引腳模式寄存器、5個開漏模式控制寄存器、1個I2C引腳配置寄存器。

注意:LPC177X/8X的寄存器使用與此不同,采用的是每個引腳有一個獨立寄存器的形式。

1.引腳功能選擇寄存器

PINSEL寄存器控制器件引腳的功能如表2-24所示。每個寄存器有32位,2比特為一組,寄存器中的每一組位對應著特定的器件引腳功能。以P0端口為例,PINSEL0寄存器的[1:0]位用于P0[0]引腳;[3:2]用于P0[1]引腳;[31:30]控制P0[15]。PINSEL1寄存器中的[1:0]用于P0[16]引腳;[3:2]用于P0[17]引腳;[31:30]用于P0[31]引腳。

表2-24 引腳功能選擇寄存器的位描述

PINSEL0~PINSEL9寄存器,每兩個寄存器控制一個端口組:PINSEL0用于P0[0:15];PINSEL1用于P0[31:16];PINSEL2用于P1[0:15];PINSEL3用于P1[31:16];PINSEL4用于P2[0:15];PINSEL5用于P2[31:16];PINSEL6用于P3[0:15];PINSEL7用于P3[31:16];PINSEL8用于P4[0:15];PINSEL9用于P4[31:16]。

僅當引腳選擇GPIO功能時,GPIO寄存器中的方向控制位才有效。對于其他功能來說,方向是自動控制的。每個外圍器件通常有不同的引腳配置,因此每個引腳可能有不同的功能組合。

既然一個特定的外設功能可以指派給一個或多個引腳,則原則上配置多個引腳執(zhí)行相同功能是可行的。如果一個外設輸出功能被配置到多個引腳上,它將在多個引腳上都輸出外設功能信號。如果一個外設輸入功能配置到多個引腳上,將讀出最低端口號。例如,P0端口上的所有引腳優(yōu)先級高于其余端口;所有端口中的引腳0的優(yōu)先級高于本端口其他端口的優(yōu)先級。

2.引腳模式選擇寄存器(PINMODE)

如表2-25所示是引腳模式選擇寄存器的位描述,該寄存器用于控制所有端口的工作模式,包括使用片內上拉/下拉電阻和特定的開漏操作。除用于I2C0接口的I2C引腳和USB引腳外,不管引腳選擇用做何種功能,都可以為每一個端口引腳選擇片內上拉/下拉電阻。使用三個位來控制端口引腳的模式,其中兩個位于PINMODE中,另一個位于PINMODE_OD中。在PINSEL中未使用的引腳看成保留位。

表2-25 引腳模式選擇寄存器的位描述

當引腳處于邏輯高電平時,中繼模式使能上拉電阻;當引腳處于邏輯低電平時,使能下拉電阻。當引腳配置為輸入且不是通過外部驅動時,引腳將保持上一個已知狀態(tài)。

如表2-26所示是開漏引腳模式選擇寄存器(PINMODE_OD)的位描述,該寄存器用于控制端口的開漏模式。當引腳被配置為輸出且值為0時,開漏模式會正常地將引腳電平拉低。但是如果輸出引腳值為1,則引腳的輸出驅動關閉,等同于改變了引腳的方向。這樣的組合就模擬了一個開漏輸出。

表2-26 開漏引腳模式選擇寄存器的位描述

如表2-27所示是引腳連接模塊的寄存器總表。當外部復位、看門狗復位、上電復位(POR)和掉電檢測復位(BOD)發(fā)生時,引腳連接模塊中的所有寄存器均復位為“0”。

表2-27 引腳連接模塊的寄存器總表

注:[1]復位值僅反映已使用位中保存的數據,不包含保留位的內容。

3.固件庫函數

在lpc17xx_pinsel.c文件中包含了關于引腳配置的調用函數。主要有3個配置函數,分別是:

        void  PINSEL_ConfigPin(PINSEL_CFG_Type*PinCfg);實現(xiàn)端口配置,傳遞參數是PINSEL_
                                                  CFG_Type結構體類型的數據
        void PINSEL_ConfigTraceFunc(FunctionalState NewState);配置跟蹤調試功能
        void PINSEL_SetI2C0Pins(uint8_t i2cPinMode,FunctionalState filterSlewRateEnable);設置I2C0引腳

下列程序給出了PINSEL_CFG_Type的定義,以及使用PINSEL_ConfigPin函數進行端口引腳配置時傳遞的結構體:

            typedef struct
            {
              uint8_t Portnum;//端口號,參數應該是PINSEL_PORT_x,其中x是0~4之間的數
              uint8_t Pinnum;//引腳號
              uint8_t Funcnum;//功能代碼,參數范圍是0~3
              uint8_t Pinmode;/*引腳模式 ,參數可能是
                                    - PINSEL_PINMODE_PULLUP:內部上拉電阻
                                    -PINSEL_PINMODE_TRISTATE: 既不上拉也不下拉電阻
                                    -PINSEL_PINMODE_PULLDOWN:內部下拉電阻 */
              uint8_t OpenDrain;/*開漏模式,參數可能是:
                                    -PINSEL_PINMODE_NORMAL: 正常模式
                                    -PINSEL_PINMODE_OPENDRAIN: 開漏模式*/
            } PINSEL_CFG_Type;

2.4 最小系統(tǒng)設計

本節(jié)結合前面介紹的硬件基礎知識,給出LPC1768的最小系統(tǒng)設計原理圖,如圖2-7所示。由于LPC1768使用3.3V供電模式,所以這里使用了SPX117M模塊將5V電源轉換成3.3V電源。3.3V數字電源與數字地分別經過0Ω電阻隔離成3.3V模擬電源和模擬地,然后分別連接到VDDA、VREF、VSSA、VREFN。

圖2-7 最小系統(tǒng)設計原理圖

該設計采用了外部晶振的振蕩模式,晶振為12MHz。LPC1768使用8個耦合電容,比NXP公司的LPC22XX系列小了很多,有利于進行PCB設計。

說明:這里的LPC17XX的原理圖并不完整,僅給出了相關部分。

2.5 小結

本章是理解LPC17XX的基礎。本章給出了LPC17XX的結構框圖,晶振的使用、配置,以及LPC17XX的引腳,并結合以上知識,給出了LPC1768的最小系統(tǒng)設計原理圖。

第3章將給出進行LPC17XX軟件設計的基礎。

主站蜘蛛池模板: 丹阳市| 隆德县| 封开县| 成都市| 阳泉市| 舞钢市| 双峰县| 达日县| 张家川| 深圳市| 枣强县| 荆门市| 江安县| 固始县| 桂东县| 临沂市| 东阿县| 长汀县| 鄂州市| 南陵县| 吉水县| 沅江市| 莱芜市| 桃园县| 海口市| 洪湖市| 桦甸市| 阿城市| 水城县| 巢湖市| 仁布县| 临海市| 维西| 长寿区| 古蔺县| 安徽省| 德格县| 常州市| 瑞昌市| 玉溪市| 离岛区|