91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PIC18FXX80/XX85 Flash微控制器編程規(guī)范解析

chencui ? 2026-04-08 10:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

PIC18FXX80/XX85 Flash微控制器編程規(guī)范解析

電子工程師的日常工作中,微控制器的編程是一項至關(guān)重要的任務(wù)。今天我們就來深入探討一下Microchip公司的PIC18FXX80/XX85系列Flash微控制器的編程規(guī)范。

文件下載:PIC18F6585-I/L.pdf

一、設(shè)備概述

PIC18FXX80/XX85系列包含了PIC18F6585、PIC18F6680、PIC18F8585和PIC18F8680等型號。這些設(shè)備在編程方面具有多種特性和要求,了解它們對于正確使用和開發(fā)這些微控制器至關(guān)重要。

二、編程概述

2.1 編程方法

該系列設(shè)備可以使用高壓在線串行編程(High - Voltage In - Circuit Serial Programming,ICSP)或低壓ICSP方法進行編程。這兩種方法都可以在用戶系統(tǒng)中對設(shè)備進行編程,但低壓ICSP方法與高壓方法略有不同。

2.1.1 硬件要求

  • 高壓ICSP編程:在高壓ICSP模式下,設(shè)備需要兩個可編程電源,一個用于VDD,一個用于MCLR/VPP,且兩個電源的最小分辨率為0.25V。更多硬件參數(shù)可參考“AC/DC Characteristics Timing Requirements for Program/Verify Test Mode”部分。
  • 低壓ICSP編程:在低壓ICSP模式下,設(shè)備可以使用工作范圍內(nèi)的VDD源進行編程,即MCLR/VPP可以保持正常工作電壓。同樣,更多硬件參數(shù)可參考上述部分。

2.2 引腳圖

PIC18FXX80/XX85系列的引腳圖展示在圖2 - 1、圖2 - 2和圖2 - 3中。不過這些引腳圖的描述并不代表設(shè)備類型的完整功能,用戶需要參考相應(yīng)的設(shè)備數(shù)據(jù)手冊以獲取完整的引腳描述。

2.3 內(nèi)存映射

2.3.1 代碼內(nèi)存

代碼內(nèi)存空間從0000h到0FFFFh(64 Kbytes),分為四個16 - Kbyte的塊。其中,0000h到07FFh定義為“Boot Block”區(qū)域,與塊1分開處理。所有這些塊在代碼內(nèi)存空間內(nèi)定義了代碼保護邊界。代碼內(nèi)存面板以8 - Kbyte為邊界定義,在“Code Memory Programming”部分有更詳細的討論。

2.3.2 配置和ID空間

除了代碼內(nèi)存空間,配置和ID空間中有三個塊可供用戶通過表讀取和表寫入訪問。其在內(nèi)存映射中的位置如圖2 - 5所示。用戶可以在八個ID寄存器中存儲識別信息(ID),這些ID寄存器映射在地址200000h到200007h。配置位位于300000h到30000Dh,設(shè)備ID位位于3FFFFEh和3FFFFFh。這些位置在代碼保護后仍可正常讀出。

2.3.3 內(nèi)存地址指針

地址空間000000h到3FFFFFh的內(nèi)存通過表指針尋址,表指針由三個指針寄存器組成:TBLPTRU(位于RAM地址0FF8h)、TBLPTRH(位于RAM地址0FF7h)和TBLPTRL(位于RAM地址0FF6h)。在進行許多讀寫操作之前,使用4位命令‘0000’(核心指令)來加載表指針。

2.4 編程過程概述

編程過程的高級概述如圖2 - 7所示。首先執(zhí)行批量擦除,然后對代碼內(nèi)存、ID位置和數(shù)據(jù)EEPROM進行編程,接著驗證這些內(nèi)存以確保編程成功。如果沒有檢測到錯誤,再對配置位進行編程和驗證。

2.5 進入編程/驗證模式

2.5.1 高壓ICSP編程/驗證模式

通過將PGC和PGD保持低電平,然后將MCLR/VPP升高到VIHH(高電壓),進入高壓ICSP編程/驗證模式。在此模式下,可以串行訪問和編程代碼內(nèi)存、數(shù)據(jù)EEPROM、ID位置和配置位。進入該模式的序列會將所有未使用的I/O置于高阻抗?fàn)顟B(tài)。

2.5.2 低壓ICSP編程/驗證模式

當(dāng)LVP配置位為‘1’時,啟用低壓ICSP模式。通過將PGC和PGD保持低電平,在PGM上置邏輯高電平,然后將MCLR/VPP升高到VIH,進入低壓ICSP編程/驗證模式。在此模式下,RB5/PGM引腳專用于編程功能,不再是通用I/O引腳。進入該模式的序列同樣會將所有未使用的I/O置于高阻抗?fàn)顟B(tài)。

2.6 串行編程/驗證操作

PGC引腳用作時鐘輸入引腳,PGD引腳用于在串行操作期間輸入命令位和數(shù)據(jù)輸入/輸出。命令和數(shù)據(jù)在PGC的上升沿傳輸,在PGC的下降沿鎖存,并且是最低有效位(LSb)優(yōu)先。

2.6.1 4位命令

所有指令為20位,由前導(dǎo)4位命令和16位操作數(shù)組成,操作數(shù)取決于執(zhí)行的命令類型。輸入命令時,PGC循環(huán)四次。編程和驗證所需的命令如表2 - 3所示。

2.6.2 核心指令

核心指令將16位指令傳遞給CPU核心執(zhí)行,這對于設(shè)置寄存器以配合其他命令使用是必要的。

三、設(shè)備編程

3.1 高壓ICSP批量擦除

通過向地址3C0004h寫入“Erase Option”來擦除代碼或數(shù)據(jù)EEPROM。代碼內(nèi)存可以部分擦除,也可以一次性擦除整個設(shè)備。批量擦除操作還會清除與擦除的內(nèi)存塊相關(guān)的任何代碼保護設(shè)置。擦除選項詳細信息如表3 - 1所示。

3.1.1 低壓ICSP批量擦除

使用低壓ICSP時,如果要執(zhí)行批量擦除,部件必須由參數(shù)D111指定的電壓供電。其他批量擦除細節(jié)與高壓ICSP相同。如果需要在低于批量擦除限制的電源電壓下執(zhí)行程序內(nèi)存擦除,可參考“ICSP Multi - Panel Single Row Erase”和“Modifying Code Memory”部分的擦除方法。如果需要在低于批量擦除限制的電源電壓下執(zhí)行數(shù)據(jù)EEPROM擦除,可按照“Data EEPROM Programming”部分的方法將‘1’寫入陣列。

3.1.2 ICSP多面板單行擦除

無論使用高壓還是低壓ICSP,都可以同時擦除所有面板中的單行(64字節(jié)數(shù)據(jù))。通過適當(dāng)配置位于3C0006h的編程控制寄存器來啟用多面板單行擦除。多面板單行擦除持續(xù)時間由外部定時,由PGC控制。發(fā)出“Start Programming”命令(4位,‘1111’)后,發(fā)出NOP,其中第4個PGC在編程時間P9內(nèi)保持高電平。PGC拉低后,編程序列終止。PGC必須在參數(shù)P10指定的時間內(nèi)保持低電平,以允許內(nèi)存陣列的高壓放電。

3.2 代碼內(nèi)存編程

編程代碼內(nèi)存的方法是先將數(shù)據(jù)加載到適當(dāng)?shù)膶懢彌_區(qū),然后啟動編程序列。代碼內(nèi)存空間中的每個面板都有一個8字節(jié)深的寫緩沖區(qū),在啟動寫序列之前必須加載。通常,所有程序緩沖區(qū)并行寫入(多面板寫入模式)。通過適當(dāng)配置位于3C0006h的編程控制寄存器來啟用多面板寫入模式。編程持續(xù)時間由外部定時,由PGC控制。發(fā)出“Start Programming”命令(4位命令,‘1111’)后,發(fā)出NOP,其中第4個PGC在編程時間P9內(nèi)保持高電平。PGC拉低后,編程序列終止。PGC必須在參數(shù)P10指定的時間內(nèi)保持低電平,以允許內(nèi)存陣列的高壓放電。

3.2.1 單面板編程

在某些情況下,限制寫入單個面板可能是有利的。此時,用戶只需通過適當(dāng)配置位于3C0006h的編程控制寄存器來禁用設(shè)備的多面板寫入功能。要寫入的單個面板將根據(jù)表指針的值自動啟用。

3.2.2 修改代碼內(nèi)存

如果用戶希望僅修改已編程設(shè)備的一部分,可以將設(shè)備置于單面板寫入模式,加載面板的8字節(jié)寫緩沖區(qū),然后啟動寫序列。最小可寫入數(shù)據(jù)量為8字節(jié),最小可擦除代碼內(nèi)存量為64字節(jié)。使用EECON1寄存器操作代碼內(nèi)存時,必須設(shè)置EEPGD位(EECON1<7> = 1),清除CFGS位(EECON1<6> = 0),設(shè)置WREN位(EECON1<2> = 1)以啟用任何類型的寫入,設(shè)置FREE位(EECON1<4> = 1)以擦除表指針指向的程序空間,通過設(shè)置WR位(EECON1<1> = 1)啟動擦除序列。為防止意外寫入,EECON2用于“啟用”WR位,在設(shè)置WR位之前,必須依次將55h和AAh加載到該寄存器。

3.3 數(shù)據(jù)EEPROM編程

數(shù)據(jù)EEPROM通過地址指針(寄存器對EEADR:EEADRH)和數(shù)據(jù)鎖存器(EEDATA)一次訪問一個字節(jié)。寫入數(shù)據(jù)EEPROM時,將所需的內(nèi)存位置加載到EEADR:EEADRH,將數(shù)據(jù)加載到EEDATA,并通過適當(dāng)配置EECON1和EECON2寄存器啟動內(nèi)存寫入。字節(jié)寫入會自動擦除該位置并寫入新數(shù)據(jù)(先擦除后寫入)。使用EECON1寄存器執(zhí)行數(shù)據(jù)EEPROM寫入時,必須清除EEPGD和CFGS位(EECON1<7:6> = 00),設(shè)置WREN位(EECON1<2> = 1)以啟用寫入,通過設(shè)置WR位(EECON1<1> = 1)啟動寫入序列。為防止意外寫入,EECON2用于“啟用”WR位,在設(shè)置WR位之前,必須依次將55h和AAh加載到該寄存器。

3.4 ID位置編程

ID位置的編程與代碼內(nèi)存類似,但必須禁用多面板寫入。要寫入的單個面板將根據(jù)表指針的值自動啟用。ID寄存器映射在地址200000h到200007h,這些位置在代碼保護后仍可正常讀出。

3.5 引導(dǎo)塊編程

引導(dǎo)塊段的編程方式與ID位置完全相同,必須禁用多面板寫入,以便僅寫入0000h到07FFh范圍內(nèi)的地址。

3.6 配置位編程

與代碼內(nèi)存不同,配置位一次編程一個字節(jié)。使用“Table Write, Begin Programming”4位命令(‘1111’),但僅寫入后續(xù)16位有效負載的8位。有效負載的LSB寫入偶地址,MSB寫入奇地址。編程兩個連續(xù)配置位置的代碼序列如表3 - 8所示。每次配置字節(jié)編程之間需要執(zhí)行四個NOP。

四、讀取設(shè)備

4.1 讀取代碼內(nèi)存、ID位置和配置位

通過4位命令‘1001’(表讀取,后遞增)一次讀取一個字節(jié)的代碼內(nèi)存。表指針(TBLPTRU:TBLPTRH:TBLPTRL)指向的內(nèi)存內(nèi)容加載到表鎖存器,然后在PGD上串行輸出。該技術(shù)可用于讀取000000h到3FFFFFh地址空間中的任何內(nèi)存,因此也適用于讀取ID和配置寄存器。

4.2 驗證代碼內(nèi)存和ID位置

驗證步驟包括讀回代碼內(nèi)存空間并與編程器緩沖區(qū)中的副本進行比較。內(nèi)存讀取一次一個字節(jié),因此必須讀取兩個字節(jié)以與編程器緩沖區(qū)中的字進行比較。驗證代碼內(nèi)存后,必須手動將表指針設(shè)置為200000h(ID位置的基地址)。表讀取4位命令的后遞增功能不能用于將表指針遞增到代碼內(nèi)存空間之外。

4.3 驗證配置位

通過4位命令‘1001’讀取配置地址并在PGD上輸出。配置數(shù)據(jù)以字節(jié)方式讀取和寫入,因此在比較之前無需將兩個字節(jié)合并為一個字。然后可以立即將結(jié)果與編程器內(nèi)存中的相應(yīng)配置數(shù)據(jù)進行比較以進行驗證。

4.4 讀取數(shù)據(jù)EEPROM內(nèi)存

數(shù)據(jù)EEPROM通過地址指針(寄存器對EEADR:EEADRH)和數(shù)據(jù)鎖存器(EEDATA)一次訪問一個字節(jié)。讀取數(shù)據(jù)EEPROM時,將所需的內(nèi)存位置加載到EEADR:EEADRH,并通過適當(dāng)配置EECON1寄存器啟動內(nèi)存讀取。數(shù)據(jù)將加載到EEDATA,然后通過4位命令‘0010’(Shift Out Data Holding register)在PGD上串行輸出。

4.5 驗證數(shù)據(jù)EEPROM

通過一系列核心指令(4位命令,‘0000’)讀取數(shù)據(jù)EEPROM地址,然后通過4位命令‘0010’(Shift Out Data Holding register)在PGD上輸出。然后可以立即將結(jié)果與編程器內(nèi)存中的相應(yīng)數(shù)據(jù)進行比較以進行驗證。

4.6 空白檢查

“空白檢查”意味著驗證設(shè)備沒有已編程的內(nèi)存單元。必須驗證所有內(nèi)存:代碼內(nèi)存、數(shù)據(jù)EEPROM、ID位置和配置位。設(shè)備ID寄存器(3FFFFEh:3FFFFFh)應(yīng)忽略?!翱瞻住被颉安脸钡膬?nèi)存單元將讀取為‘1’,因此“空白檢查”設(shè)備只需驗證所有字節(jié)讀取為FFh,配置位除外。未使用(保留)的配置位將讀取為‘0’(已編程)。

五、配置字

5.1 ID位置

用戶可以在八個ID位置(映射在200000h:200007h)中存儲識別信息(ID)。建議每個ID的最高有效半字節(jié)為0Fh,這樣如果用戶代碼無意中嘗試從ID空間執(zhí)行,ID數(shù)據(jù)將作為NOP執(zhí)行。

5.2 設(shè)備ID字

PIC18FXX80/XX85設(shè)備的設(shè)備ID字位于3FFFFEh:3FFFFFh。這些位可由編程器用于識別正在編程的設(shè)備類型,并且在代碼或讀取保護后仍可正常讀出。

5.3 低壓編程(LVP)位

配置寄存器CONFIG4L中的LVP位啟用低壓ICSP編程。LVP位出廠默認值為‘1’。如果不使用低壓編程模式,可以將LVP位編程為‘0’,此時RB5/PGM成為數(shù)字I/O引腳。但LVP位只能通過進入高壓ICSP模式進行編程,其中MCLR/VPP升高到VIHH。一旦LVP位編程為‘0’,則只能使用高壓ICSP模式對設(shè)備進行編程。

5.4 嵌入配置字信息到HEX文件

為了實現(xiàn)代碼的可移植性,PIC18FXX80/XX85編程器需要從HEX文件中讀取配置字位置。如果HEX文件中不存在配置字信息,應(yīng)發(fā)出簡單的警告消息。同樣,保存HEX文件時,必須包含所有配置字信息,也可以提供不包含配置字信息的選項。嵌入配置字信息到HEX文件時,應(yīng)從地址300000h開始。

5.5 校驗和計算

校驗和通過以下內(nèi)容求和計算:所有代碼內(nèi)存位置的內(nèi)容、適當(dāng)屏蔽的配置字、ID位置。該和的最低有效16位為校驗和。不同設(shè)備和代碼保護設(shè)置下的校驗和計算方法如表5 - 4所示。

5.6 嵌入數(shù)據(jù)EEPROM信息到HEX文件

為了實現(xiàn)代碼的可移植性,PIC18FXX80/XX85編程器需要從HEX文件中讀取數(shù)據(jù)EEPROM信息。如果數(shù)據(jù)EEPROM信息不存在,應(yīng)發(fā)出簡單的警告消息。同樣,保存HEX文件時,必須包含所有數(shù)據(jù)EEPROM信息,也可以提供不包含數(shù)據(jù)EEPROM信息的選項。嵌入數(shù)據(jù)EEPROM信息到HEX文件時,應(yīng)從地址F00000h開始。

六、AC/DC特性編程/驗證測試模式的時序要求

標準操作條件建議工作溫度為25°C。文檔中給出了一系列參數(shù),包括電壓、電流、時間等的最小值、最大值和單位,以及相應(yīng)的條件。例如,高壓編程電壓VIHH在MCLR/VPP上的范圍是9.00 - 13.25V,低壓編程電壓VIHL在MCLR/VPP上的范圍是2.00 - 5.50V等。

在實際應(yīng)用中,電子工程師需要根據(jù)這些編程規(guī)范和要求,選擇合適的編程方法和參數(shù),確保PIC18FXX80/XX85系列微控制器的正確編程和使用。大家在編程過程中遇到過哪些問題呢?歡迎在評論區(qū)分享交流。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程規(guī)范
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    9025
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    PIC32MX1XX/2XX 28/36/44 - PIN 32 位微控制器:功能與應(yīng)用深度解析

    PIC32MX1XX/2XX 28/36/44 - PIN 32 位微控制器:功能與應(yīng)用深度解析 在電子設(shè)計領(lǐng)域,微控制器如同大腦一般,掌控
    的頭像 發(fā)表于 04-08 12:50 ?125次閱讀

    深入剖析Microchip PIC18F6393/6493/8393/8493系列微控制器

    一、產(chǎn)品概述 PIC18F6393/6493/8393/8493系列屬于64/80引腳的高性能閃存微控制器,集成了LCD驅(qū)動、12位ADC以及nanoWatt技術(shù)。該系列產(chǎn)品不僅具
    的頭像 發(fā)表于 04-08 11:25 ?107次閱讀

    PIC18CXX2高性能微控制器深度解析

    PIC18CXX2高性能微控制器深度解析 一、引言 在電子工程領(lǐng)域,微控制器的性能和功能對于各種應(yīng)用的成功至關(guān)重要。PIC18CXX2系列
    的頭像 發(fā)表于 04-08 11:20 ?88次閱讀

    PIC18FXX20系列閃存微控制器編程解析

    PIC18FXX20系列閃存微控制器編程解析 在電子設(shè)計領(lǐng)域,微控制器編程是一項基礎(chǔ)且關(guān)鍵的
    的頭像 發(fā)表于 04-08 10:55 ?98次閱讀

    深度剖析Microchip PIC18F2458/2553/4458/4553系列微控制器

    深度剖析Microchip PIC18F2458/2553/4458/4553系列微控制器 在電子工程師的日常工作中,選擇合適的微控制器是項目成功的關(guān)鍵因素之一。Microchip
    的頭像 發(fā)表于 04-08 10:15 ?242次閱讀

    PIC18F2XXX/4XXX系列閃存微控制器編程規(guī)范解析

    PIC18F2XXX/4XXX系列閃存微控制器編程規(guī)范解析 一、引言 今天我們來深入探討PIC18
    的頭像 發(fā)表于 04-08 10:05 ?244次閱讀

    PIC18F2331/2431/4331/4431 微控制器:高性能與低功耗的完美結(jié)合

    PIC18F2331/2431/4331/4431 微控制器:高性能與低功耗的完美結(jié)合 在電子設(shè)計領(lǐng)域,選擇一款合適的微控制器對于項目的成功至關(guān)重要。今天,我們就來深入了解一下 Microchip
    的頭像 發(fā)表于 04-08 09:50 ?257次閱讀

    深入解析Microchip PIC12C5XX系列8位CMOS微控制器

    深入解析Microchip PIC12C5XX系列8位CMOS微控制器 在電子工程師的工具箱中,微控制器就像是一把萬能鑰匙,能開啟各種應(yīng)用的大門。今天,我們要深入探討Microchip
    的頭像 發(fā)表于 04-07 15:00 ?50次閱讀

    AT89C51IC2:高性能8位Flash微控制器的深度解析

    AT89C51IC2:高性能8位Flash微控制器的深度解析 在電子設(shè)計領(lǐng)域,微控制器扮演著至關(guān)重要的角色。今天,我們就來深入探討一款高性能的8位F
    的頭像 發(fā)表于 04-05 16:55 ?1075次閱讀

    探索PIC16(L)F183XX微控制器:特性、應(yīng)用與設(shè)計要點

    探索PIC16(L)F183XX微控制器:特性、應(yīng)用與設(shè)計要點 在電子工程師的日常工作中,選擇一款合適的微控制器對于項目的成功至關(guān)重要。今天,我們就來深入了解一下Microchip的
    的頭像 發(fā)表于 03-25 11:35 ?162次閱讀

    PIC18F8723 系列微控制器:高性能與低功耗的完美結(jié)合

    PIC18F8723 系列微控制器:高性能與低功耗的完美結(jié)合 在電子工程師的日常工作中,選擇一款合適的微控制器對于項目的成功至關(guān)重要。今天,我們就來深入探討一下 Microchip 公司
    的頭像 發(fā)表于 03-16 15:25 ?174次閱讀

    Microchip PIC18F2458/2553/4458/4553系列微控制器深度解析

    Microchip PIC18F2458/2553/4458/4553系列微控制器深度解析 在電子設(shè)計領(lǐng)域,選擇一款合適的微控制器對于項目的成功至關(guān)重要。Microchip的
    的頭像 發(fā)表于 03-03 17:15 ?585次閱讀

    PIC16F72:8位CMOS FLASH微控制器的深度剖析

    PIC16F72:8位CMOS FLASH微控制器的深度剖析 在電子工程師的日常設(shè)計中,選擇一款合適的微控制器至關(guān)重要。PIC16F72作為
    的頭像 發(fā)表于 02-10 11:00 ?496次閱讀

    Microchip PIC18F2XXX/4XXX 系列閃存微控制器編程指南

    F2XXX/4XXX 系列閃存微控制器編程規(guī)范。 文件下載: PIC18F4321-I P.pdf 一、器件概述 該文檔涵蓋了眾多型號的編程
    的頭像 發(fā)表于 02-09 16:50 ?977次閱讀

    PIC18F24/25Q24微控制器技術(shù)解析與應(yīng)用指南

    Microchip Technology PIC18F24/25Q24微控制器PIC18-Q24微控制器系列28/40/44/48引腳器件的一部分,用于傳感
    的頭像 發(fā)表于 10-10 09:56 ?936次閱讀
    <b class='flag-5'>PIC18</b>F24/25Q24<b class='flag-5'>微控制器</b>技術(shù)<b class='flag-5'>解析</b>與應(yīng)用指南