新聞中心

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

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

        作者: 時間:2013-05-20 來源:網絡 收藏
        UART 配置

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

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

           禁止UART

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

          UART 發送器

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

          UART 發送器框圖

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

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

        存儲器構成

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

          PIC32MX 存儲器構成的主要特性包括:

          ? 32 位固有數據寬度

          ? 獨立的用戶模式地址空間和內核模式地址空間

          ? 靈活的程序閃存存儲器分區

          ? 數據RAM 可靈活地分為數據空間和程序空間

          ? 受保護代碼的獨立引導閃存

          ? 強大的總線異常處理功能,阻止代碼跑飛

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

          ? 可高速緩存的地址區和不可高速緩存的地址區

          控制寄存器

          本節列出了用于為數據和代碼設置RAM 和閃存分區的特殊功能寄存器(Special Function

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

          以下是可用SFR 的列表:

          ? BMXCON:配置寄存器

          ? BMXxxxBA:存儲器分區基址寄存器

          ? BMXDRMSZ:數據RAM 大小寄存器

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

          ? BMXBOOTSZ:引導閃存大小寄存器

          BMXCON 寄存器

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

           BMXxxxBA 寄存器

          這些寄存器用于配置內核模式、用戶模式數據和用戶模式程序空間在RAM 中的相對基址。

          BMXDRMSZ 寄存器

          該只讀寄存器用于標識數據RAM 的大小(以字節為單位)。

          BMXPFMSZ 寄存器

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

          BMXBOOTSZ 寄存器

          該只讀寄存器用于標識引導閃存存儲器的大小(以字節為單位)。

          表簡要匯總了所有與存儲器構成相關的寄存器。該匯總表之后列出了相應的寄存器,并且每個寄存器均附有詳細的說明。

          存儲器構成SFR 匯總

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石首市| 枣庄市| 砚山县| 泰州市| 镇巴县| 湾仔区| 巴彦县| 阿巴嘎旗| 泊头市| 石泉县| 隆安县| 滁州市| 察雅县| 正阳县| 曲沃县| 尉犁县| 平度市| 永胜县| 来凤县| 玛曲县| 鄂托克前旗| 富裕县| 随州市| 都江堰市| 乌海市| 新昌县| 嵊州市| 会昌县| 临沧市| 江油市| 墨竹工卡县| 淮滨县| 松溪县| 灵璧县| 四平市| 和平区| 班戈县| 乐陵市| 东乌珠穆沁旗| 玉田县| 台江县|