新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 32位單片機(jī)知識講解:Microchip PIC32系列(四)

32位單片機(jī)知識講解:Microchip PIC32系列(四)

作者: 時間:2013-05-20 來源:網(wǎng)絡(luò) 收藏
UART 配置

  UART 使用標(biāo)準(zhǔn)的不歸零(Non-Return-to-Zero,NRZ)格式(1 個啟動位、8 或9 個數(shù)據(jù)位和1 或2 個停止位)。硬件提供奇偶校驗,可由用戶配置為偶校驗、奇校驗或無奇偶校驗。最普通的數(shù)據(jù)格式是8 位,無奇偶校驗,有1 個停止位(用8, N, 1 表示),這是默認(rèn)的上電復(fù)位(Power-onReset, POR)設(shè)置。數(shù)據(jù)位數(shù)、停止位數(shù)以及奇偶校驗均在PDSEL1:0> (UxMODE2:1>)和STSEL (UxMODE0>)位中指定。UART 首先發(fā)送和接收最低有效位(Least Significant bit,LSb)。UART 的發(fā)送器和接收器在功能上是獨立的,但使用相同的數(shù)據(jù)格式和波特率。

  使能UART通過將ON位(UxMODE15>)置1 來使能UART 模塊。此外,通過將UTXEN 位(UxSTA10>)和URXEN 位(UxSTA12>)置1 來分別使能UART 發(fā)送器和接收器。一旦將這些使能位置1,UxTX 和UxRX 引腳就分別被配置為輸出和輸入,改寫對應(yīng)I/O 端口引腳的TRISx 和PORTx 寄存器位設(shè)置。

   禁止UART

  通過清零ON 位來禁止UART 模塊。這是任何復(fù)位后的默認(rèn)狀態(tài)。如果禁止了UART,所有UART引腳在PORTx 和TRISx 寄存器中的相應(yīng)位控制下用作端口引腳。禁止UART 模塊會將緩沖區(qū)復(fù)位為空狀態(tài)。當(dāng)禁止模塊時,緩沖區(qū)中的所有數(shù)據(jù)都將丟失。當(dāng)禁止UART 模塊時,所有與之相關(guān)的錯誤和狀態(tài)標(biāo)志都將復(fù)位。UxSTA 寄存器中的RXDA、OERR、FERR、PERR、UTXEN、URXEN、UTXBRK 和UTXBF 位被清零,而RIDLE 和TRMT位被置1。其他控制位(包括ADDEN、RXISEL1:0> 和UTXISEL)以及UxMODE 和UxBRG寄存器均不受影響。當(dāng)UART 模塊處于活動狀態(tài)時,清零ON 位將中止所有等待的發(fā)送和接收,同時如以上所述那樣將模塊復(fù)位。重新使能UART 將使用同樣的配置重新啟動UART 模塊。

  UART 發(fā)送器

  圖給出了UART 發(fā)送器框圖。發(fā)送器的核心是發(fā)送移位寄存器(UxTSR)。UxTSR 從發(fā)送FIFO 緩沖區(qū)UxTXREG 中獲取數(shù)據(jù)。通過軟件將數(shù)據(jù)裝入UxTXREG 寄存器。在前一次裝入數(shù)據(jù)的停止位發(fā)送之前,不會向UxTSR 寄存器裝入新數(shù)據(jù)。一旦停止位發(fā)送完畢,就會將UxTXREG 寄存器中的新數(shù)據(jù)(如果有)裝入UxTSR。

  UART 發(fā)送器框圖

32位單片機(jī)知識講解:Microchip PIC32系列(四)

  通過將UTXEN 使能位(UxSTA10>)置1 來使能發(fā)送。實際的發(fā)送要到UxTXREG 寄存器裝入了數(shù)據(jù)并且波特率發(fā)生器UxBRG 產(chǎn)生了移位時鐘(圖21-3)之后才發(fā)生。也可以先裝入UxTXREG 寄存器,然后將UTXEN 使能位置1 來啟動發(fā)送。通常,第一次開始發(fā)送的時候,由于UxTSR 寄存器為空,這樣傳輸數(shù)據(jù)到UxTXREG 寄存器會導(dǎo)致該數(shù)據(jù)立即傳輸?shù)経xTSR。發(fā)送期間清零UTXEN 位將中止發(fā)送并復(fù)位發(fā)送器。因此, UxTX 引腳將恢復(fù)到UTXINV 位(UxSTA13>)定義的狀態(tài)。若要選擇9 位發(fā)送, PDSEL1:0> 位(UxMODE2:1>)應(yīng)設(shè)置為11。

存儲器構(gòu)成

  MX 提供4 GB 的統(tǒng)一虛擬存儲地址空間。所有存儲區(qū)(包括程序存儲器、數(shù)據(jù)存儲器、SFR 和配置寄存器)都位于該地址空間中各自的唯一地址范圍內(nèi)。程序存儲器和數(shù)據(jù)存儲器可以選擇劃分為用戶存儲器和內(nèi)核存儲器。此外,數(shù)據(jù)存儲器可以是可執(zhí)行存儲器,允許MX 器件從數(shù)據(jù)存儲器執(zhí)行。

  PIC32MX 存儲器構(gòu)成的主要特性包括:

  ? 32 位固有數(shù)據(jù)寬度

  ? 獨立的用戶模式地址空間和內(nèi)核模式地址空間

  ? 靈活的程序閃存存儲器分區(qū)

  ? 數(shù)據(jù)RAM 可靈活地分為數(shù)據(jù)空間和程序空間

  ? 受保護(hù)代碼的獨立引導(dǎo)閃存

  ? 強(qiáng)大的總線異常處理功能,阻止代碼跑飛

  ? 簡單的存儲器映射(通過使用固定映射轉(zhuǎn)換(Fixed Mapping Translation, FMT)單元)

  ? 可高速緩存的地址區(qū)和不可高速緩存的地址區(qū)

  控制寄存器

  本節(jié)列出了用于為數(shù)據(jù)和代碼設(shè)置RAM 和閃存分區(qū)的特殊功能寄存器(Special Function

  Register, SFR)(對于用戶模式和內(nèi)核模式)。

  以下是可用SFR 的列表:

  ? BMXCON:配置寄存器

  ? BMXxxxBA:存儲器分區(qū)基址寄存器

  ? BMXDRMSZ:數(shù)據(jù)RAM 大小寄存器

  ? BMXPFMSZ:程序閃存大小寄存器

  ? BMXBOOTSZ:引導(dǎo)閃存大小寄存器

  BMXCON 寄存器

  該寄存器用于配置DMA 訪問的程序閃存高速緩存功能、總線錯誤異常、數(shù)據(jù)RAM 等待狀態(tài)和仲裁模式。

   BMXxxxBA 寄存器

  這些寄存器用于配置內(nèi)核模式、用戶模式數(shù)據(jù)和用戶模式程序空間在RAM 中的相對基址。

  BMXDRMSZ 寄存器

  該只讀寄存器用于標(biāo)識數(shù)據(jù)RAM 的大小(以字節(jié)為單位)。

  BMXPFMSZ 寄存器

  該只讀寄存器用于標(biāo)識程序閃存存儲器的大小(以字節(jié)為單位)。

  BMXBOOTSZ 寄存器

  該只讀寄存器用于標(biāo)識引導(dǎo)閃存存儲器的大小(以字節(jié)為單位)。

  表簡要匯總了所有與存儲器構(gòu)成相關(guān)的寄存器。該匯總表之后列出了相應(yīng)的寄存器,并且每個寄存器均附有詳細(xì)的說明。

  存儲器構(gòu)成SFR 匯總

32位單片機(jī)知識講解:Microchip PIC32系列(四)


關(guān)鍵詞: 32位 單片機(jī) Microchip PIC32

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉