跳轉到內容

PIC 微控制器文件指南/文件結構開發工具製造

來自華夏公益教科書

開發工具和製造文件結構

[編輯 | 編輯原始碼]

一旦處理器架構、選擇的程式語言和開發工具的文件被獲取,就該檢視在目標控制器上進行程式碼開發所需的硬體工具以及有關生產目的的快閃記憶體程式設計資訊。主要文件區域之前已被識別為

  • 微控制器或 DSC 文件
  • 程式語言工具文件
  • 整合開發環境 (IDE) 文件(如果使用)
  • 硬體偵錯程式和/或程式設計師文件
  • 快閃記憶體程式儲存器程式設計文件

在本節中,我們將更詳細地研究最後兩點。

硬體偵錯程式和程式設計師文件幫助我們瞭解可用工具的功能和侷限性,這些工具是除錯我們將在目標硬體上開發的應用程式所需的。這涵蓋了從可用除錯斷點的數量和支援除錯所需的控制器資源到推薦的電路以確保在製造過程中成功進行線上程式設計的各個方面。

對於那些熱衷於開發自己的程式設計工具的人,無論是用於他們自己的製造設施還是用於銷售 PIC® 系列微控制器的程式設計工具,都必須仔細研究程式儲存器程式設計文件。

硬體偵錯程式和/或程式設計師文件

[編輯 | 編輯原始碼]

除錯和程式設計可以分為兩個核心組;偵錯程式和線上模擬器,它們也可以用作程式設計師;以及只有程式設計功能的工具。所有這些工具主要設計為與 MPLAB® IDE 或其他專有 Windows GUI 軟體配合使用,儘管偶爾也提供命令列介面。

線上偵錯程式 (ICD) 和線上模擬器 (ICE)

[編輯 | 編輯原始碼]

最新一代的偵錯程式和線上模擬器支援幾乎所有當前的 Microchip 控制器產品組合,並在 MPLAB® IDE 中具有相同的視覺介面。決定使用哪個工具取決於您從工具中需要的除錯功能,這些功能是否也受您想要使用的微控制器支援,以及您願意花多少錢。以下表格比較了三種主要的當前工具,PICkit™ 3、ICD 3 和 REAL ICE™。

特徵 PICkit™ 3 MPLAB® ICD 3 MPLAB® REAL ICE™
USB 速度 完整

(12Mbps)

完整/高

(12/480Mbps)

完整/高

(12/480Mbps)

USB 供電
可以為目標供電 是 (30mA @

1.8V-5.0V)

(100mA @ 3.0V-5.0V)

斷點 簡單 複雜 複雜
軟體斷點
獨立程式設計

支援

原生跟蹤
其他跟蹤(透過序列

介面)

資料捕獲/執行時監視
邏輯/探針觸發
高速除錯介面

支援

支援光隔離除錯

該表格僅對三種主要工具進行特徵比較,如果您試圖為特定微控制器或特定應用程式選擇工具,則沒有多大幫助。以下嘗試更全面地描述每個工具,並列出相應的文件

  • PICkit™ 3 - 一款入門級工具,價格最低,適合所有預算。適合與所有三種系列的控制器一起使用,儘管對較大的 PIC18、PIC24、dsPIC 和 PIC32 器件的快閃記憶體進行程式設計要慢得多(512kB 記憶體需要 35 秒,而 ICD 3 或 REAL ICE™ 則需要 10 秒),而不是功能更豐富的 ICD 3 和 REAL ICE™。非常適合在較小的記憶體型別 8 位系列器件上進行開發,這些器件通常無法從其他兩種除錯工具的先進除錯功能中受益。
    • 設定海報 - 海報格式的簡單“入門”資訊 - DS51792[1]
    • 使用者指南 - 使用該工具進行開發的詳細描述 - DS51795[2]
    • 除錯速成課 - 使用 PIC18F45K20、PICkit™ 3、MPLAB® PIC18 編譯器和 MPLAB® IDE 的一系列 12 個實際練習 - DS41370[3]


  • ICD 3 - 一款中級入門除錯工具,適合預算較高的使用者。適合在所有控制器系列上進行一般到複雜的程式碼開發。強烈建議用於 PIC18、16 位和 32 位開發,在這些開發中可以利用更先進的除錯功能,並且可以更快地程式設計更大的快閃記憶體記憶體。
    • 快速入門海報 - 海報格式的簡單“入門”資訊 - DS51765[4]
    • 使用者指南 - 使用該工具進行開發的詳細描述 - DS51766[5]
    • 設計諮詢 - 提供有關常見操作問題的更多資訊,其中許多問題也適用於 PICkit™ 3 和 REAL ICE™ - DS51764[6]


  • REAL ICE™ - 高階除錯工具,非常適合開發複雜的應用程式。探針輸入和輸出可用於生成或響應外部訊號。儀表化跟蹤對於分析複雜或多執行緒應用程式中的程式碼流非常有價值。透過新增“效能包” [sic],除錯資料和跟蹤資訊可以在 REAL ICE™ 和目標控制器之間以更高的速度傳輸。此偵錯程式與“效能包”和“光隔離器”模組一起使用,是唯一適合在高壓應用程式中除錯微控制器的除錯選項。
    • MPLAB® REAL ICE™ 海報 - 設定 REAL ICE™ 以進行除錯的第一步;包括“效能包”的設定 - DS51749[7]
    • 使用者指南 - 對 REAL ICE™ 功能的詳細解釋;還涵蓋“效能包”和“光隔離器”的使用 - DS51616[8]


提示!- 如果安裝了 MPLAB® IDE,則它包含所有這些工具的特定版本資訊。檢視 [DRIVE]:\<INSTALL PATH>\Microchip\MPLAB IDE\Readmes。 “Device Support.html” 檔案列出了所有當前支援的工具對每個微控制器的支援狀態!

成熟的線上偵錯程式和線上模擬器

[編輯 | 編輯原始碼]

有一些工具仍然在文件、幫助檔案和軟體工具(如 MPLAB™ IDE)中引用。這些工具將在此處簡要提及,並附帶註釋,說明在您獲得這些工具之一的情況下在哪裡可以找到相關文件。


  • PICkit™ 2 - PICkit™ 3 的前身。在 PICkit™ 3 推出之前,它支援大多數系列的微控制器。之後,對未來新推出的微控制器的支援將減少甚至逐步淘汰。PICkit™ 2 最初被設計為純粹的預算型程式設計工具,在其產品生命週期的後期才獲得了除錯功能。作為程式設計工具,它由自己的 Windows GUI 支援,使其無需 MPLAB® IDE 即可使用。具有適用於生產程式設計或與第三方軟體(例如 MatrixMultimedias FlowCode 開發環境)一起使用的命令列工具,以及“Programmer-To-Go”模式,允許 PICkit™ 2 作為獨立程式設計器使用(即,無需連線到主機 PC),只要目標電路為工具提供電源。目前,這是 Windows、Linux 和 MAC OS 下唯一的工具支援。
  • ICD 2 - ICD 3 的前身。第一個“低成本”線上除錯工具,允許開發人員在實際使用的微控制器上除錯應用程式,同時該微控制器被物理焊接在應用程式電路中。目標微控制器需要一個匹配的“除錯模組”(在晶片上實現),才能使除錯功能正常工作,並且還需要兩個 I/O 引腳用於與工具的資料連線。透過 MPLAB® IDE 支援除錯和程式設計功能。隨著 ICD 3 的推出,預計對新發布的微控制器的進一步主要支援將很少或根本沒有。
  • ICE 2000 - 一款硬體全功能模擬器,具有硬體斷點支援、跟蹤和全速模擬功能。支援幾乎所有 PIC12、PIC16、PIC17 和早期 PIC18 微控制器。與 PC 的連線使用並行介面。該裝置由三個部分組成:“POD”,模擬器的主要部分,連線到 PC;“處理器模組”,支援一小部分或類似裝置系列;以及“裝置介面卡”,它允許處理器介面卡連線到電路,以代替計劃使用的微控制器裝置。由於該工具的複雜性,購買成本非常高,並且遷移到另一個控制器裝置需要在匹配的裝置介面卡、處理器模組或兩者上進行進一步的投資。該工具不再進行進一步的開發。
  • ICE 4000 - 本質上是 ICE4000 的下一代線上模擬器,支援 PIC18 和當時新推出的 16 位 dsPIC30 裝置。具有改進的供電電壓支援、更深的跟蹤緩衝區、無限斷點、外部觸發輸入和訊號輸出,用於與外部工具(例如示波器)同步,以及 USB 介面連線到 PC。它的接受度和使用範圍從未像 ICE2000 那樣廣泛,部分原因是它與 ICE 2000 類似的高購買和維護成本,部分原因是新推出的、價格明顯更低的 ICD 2 的吸引力,儘管它的除錯能力相對較低。該工具不再進行進一步的開發。

程式設計工具

[edit | edit source]

由於所有除錯工具都具有純程式設計模式,因此對專用程式設計工具的需求有所降低。但是,對於需要純程式設計裝置的情況,Microchip 目前提供三種不同的程式設計工具。主要工具是 MPLAB® PM3,適用於小型生產執行的生產程式設計環境。大型生產執行由來自各種第三方合作伙伴的程式設計器或成組程式設計器支援。[9] 下表總結了當前支援的三種程式設計工具的主要功能。

特徵 MPLAB® PM3 PICSTART® Plus PRO MATE® II
USB 介面 是 -

全速 (12Mbps)

RS-232 介面
線上序列程式設計 (ICSP) 是 - 本機支援 是 -

需要介面卡

PC 主機模式
安全程式設計模式
獨立程式設計模式
DIP ZIF 插座
可互換

程式設計插座

有限

- 需要介面卡

序列化模式
DOS 命令列支援

以下內容更詳細地介紹了各個程式設計工具。

  • MPLAB® PM3 - 一款全功能程式設計工具,支援(除少數例外)Microchip 製造的所有微控制器產品。透過可互換的程式設計插座,可以對微控制器交付的各種封裝進行程式設計。對於已經焊接在電路板上的控制器,也支援透過 ICSP 介面進行線上程式設計。多個“.hex”檔案可以儲存在 SD 或 MCC 卡上,允許獨立執行。一個“安全模式”允許程式設計器將 PM3 的功能降低到僅程式設計,非常適合在生產線上使用,透過簡化功能來避免錯誤或訪問系統上儲存的其他“.hex”檔案。序列化和 DOS 命令列允許在無需使用 MPLAB® IDE 的情況下進一步執行功能。對於希望從 PROMATE® II 遷移到 PM3 的使用者,提供了一個介面卡,允許 PROMATE® II 程式設計插座與 PM3 一起使用。
    • 快速入門海報 - 以海報格式顯示的簡單“入門”資訊 - DS51450
    • 使用者指南 - 詳細描述工具的程式設計模式和功能 - DS51464
    • ICSP™ 設計指南 - 另外以海報格式提供的文件,提供有關對已焊接在電路板上的控制器的線上序列程式設計 (ICSP™) 的重要設計資訊 - DS51474

所有 PM3 文件都可以在 PM3 產品頁面上找到:www.microchip.com/pm3

  • PICSTART® Plus - 一款入門級程式設計工具,非常適合 DIP/DIL 封裝的裝置。還提供帶有不同型別封裝的備用插座的介面卡板。適用於 PIC10、PIC12、PIC16、PIC17 和早期 PIC18 產品(不包括“K”或“J”型別)。
    • 使用者指南 - 詳細描述在 MPLAB® IDE 環境中使用該工具進行程式設計 - DS51028

所有 PICSTART® Plus 文件都可以在 PICSTART® Plus 產品頁面上找到:http://www.microchip.com/picstartplus

  • PROMATE® II - PM3 的前身,PROMATE® II 現在不再出售,但未來一段時間內仍將提供支援和配件。功能不如 PM3 豐富,RS-232 介面限制了當前可用的大型快閃記憶體裝置的程式設計速度。適用於 PIC10、PIC12、PIC16、PIC17、早期 PIC18 產品(不包括“K”或“J”型別)和 dsPIC30。
    • 使用者指南 - 詳細解釋 PROMATE® II 的程式設計功能、設定和用法 - DS30082

所有 PROMATE® II 文件都可以在 PROMATE® II 產品頁面上找到:http://www.microchip.com/promateii


提示!- 如果安裝了 MPLAB® IDE,則它包含所有這些工具的特定版本資訊。檢視 [DRIVE]:\<INSTALL PATH>\Microchip\MPLAB IDE\Readmes。 “Device Support.html” 檔案列出了所有當前支援的工具對每個微控制器的支援狀態!

成熟的程式設計工具

[edit | edit source]

使用 MPLAB® IDE 時,還會提到名為 PICkit™ 1 的程式設計器。PICkit™ 1 是當前 PICkit™ 3(和 PICkit™ 2)工具的前身,但僅提供程式設計功能,並且目標是支援少數 PIC10、PIC12 和 PIC16 快閃記憶體微控制器。該工具附帶一個 PIC12F675 和一組教程,允許使用者進行彙編程式設計的第一步,並展示如何配置和使用一些關鍵外設模組。視覺化程式設計介面是 MPLAB® IDE。該工具最初是為提供低成本的微控制器開發入門而開發的,現在不再積極開發。有關該工具的更多資訊以及文件連結,請訪問 http://www.microchip.com/pickit1

快閃記憶體程式儲存器程式設計文件

[edit | edit source]

我們將在此討論的最後一組通用文件是描述微控制器快閃記憶體程式設計過程的文件。關於如何對快閃記憶體進行程式設計,文件中主要涵蓋了三個目的,即

  • 生產程式設計器的程式設計過程
  • 如何為生產準備線上程式設計介面
  • 如何在執行的應用程式中修改快閃記憶體的內容

以下將更詳細地討論這三個目的以及相關的文件。

生產程式設計器的程式設計過程

[edit | edit source]

如果您打算使用您製造的程式設計工具來支援 Microchip 的微控制器,或者您打算為生產線製造或實現自己的程式設計工具,您需要檢查程式設計協議文件,以瞭解如何訪問快閃記憶體以及如何將指令程式設計到快閃記憶體中。有四種潛在的方法,所有這些方法都是基於序列的方法,用於對 PIC 微控制器的快閃記憶體進行程式設計。

  • ICSP™ - 電路內序列程式設計是快閃記憶體程式設計的標準介面。 使用控制器的兩個 GPIO 引腳(一個作為時鐘,另一個作為雙向資料線)作為通訊介面,將所需的指令傳輸到控制器,並使用專門定義的協議程式設計到快閃記憶體中。 協議特定於一種微控制器系列,因為每個系列的快閃記憶體的儲存器寬度不同。 程式設計模式透過將時鐘和資料線保持為低電平(通常命名為 PGC 和 PGD)並對 MCLR/VPP 引腳施加高電壓來進入,其中“高電壓”對於 8 位產品在 8.0V 到 13.5V 範圍內,對於 16 位和 32 位產品則為電源電壓 (VDD)。 確切的電壓在“程式設計規範”文件中指定。 進入程式設計模式後,就可以寫入和讀取微控制器的快閃記憶體,直到最後一個程式設計命令完成後從 MCLR/VPP 引腳移除高電壓,退出程式設計模式。 所有基於快閃記憶體的 PIC 都提供 ICSP™。
  • 低電壓 ICSP™ - 低電壓電路內程式設計使用相同的通訊介面和協議,但不需要 MCLR/VPP 引腳上的高電壓訊號,這在設計中可能難以實現。 相反,時鐘和資料引腳必須保持為低電平,同時第三個引腳 PGM 保持為高電平,然後將 MCLR/VPP 引腳拉高到微控制器的標準工作電壓。 並非所有微控制器都支援低電壓 ICSP™,如果支援,控制器配置位暫存器中的低電壓程式設計位 LVP 必須設定為“1”。 如果此位被清除為“0”,則必須使用正常的高電壓 ICSP™ 方法將此位再次設定為“1”。 大多數 8 位產品都提供低電壓 ICSP™。
  • 增強型 ICSP™ - 增強型 ICSP™ 使用相同的程式設計介面,結合一個程式設計執行程式 (PE),這是一個小型韌體,以簡化程式設計過程。 程式設計執行程式接管了低階程式設計過程,允許程式設計工具專注於執行更高級別的程式設計命令,例如“讀取記憶體”和“空白檢查”,否則這些命令必須由程式設計工具和可能的宿主 PC 系統承擔。 這導致更快的程式設計時間,並且在程式設計過程中程式設計工具側的開銷更少。 PE 在 16 位控制器中從快閃記憶體執行,進入程式設計模式時可能已經可用,也可能不可用。 32 位控制器的 PE 必須在進入程式設計模式後下載到 RAM。 dsPIC30、dsPIC33、PIC24 和 PIC32 系列提供增強型 ICSP™。
  • 增強型 JTAG - PIC32 系列是 Microchip 目前唯一支援透過 JTAG 介面進行快閃記憶體程式設計的微控制器系列。 JTAG 介面程式設計協議與 PIC32 上的 ICSP™ 幾乎相同,因為在這兩種情況下,通訊都透過 JTAG 介面的 TAP 控制器進行。 如果需要,增強型 JTAG 也可以像前面提到的增強型 ICSP™ 一樣使用程式設計執行程式。

不幸的是,快閃記憶體程式設計的文件並不總是針對整個微控制器系列,而通常是針對系列中的一小部分控制器。 為了讓您瞭解可能會遇到什麼,以下列出了一些示例文件。

  • 來自基線系列:PIC10F200/202/204/206 記憶體程式設計規範 - DS41228
  • 來自中端系列:PIC16F/LF182X/PIC12F/LF1822 記憶體程式設計規範 - DS41390
  • 來自高效能系列:PIC18FX220/X320 快閃記憶體微控制器程式設計規範 - DS39592
  • 來自 16 位 MCU 系列:PIC24FJXXXGA0XX 快閃記憶體程式設計規範 - DS39768
  • 來自 16 位 DSC 系列:dsPIC30F 快閃記憶體程式設計規範 - DS70102
  • 來自 32 位系列:PIC32MX 快閃記憶體程式設計規範 - DS61145

用於生產程式設計的電路內程式設計介面

[edit | edit source]

ICSP™ 介面非常容易實現,只需要連線到微控制器的 PGC 和 PGD 引腳,以及連線到 MCLR/VPP 引腳即可。 此外,程式設計工具或偵錯程式還需要連線到 GND 和 VDD,以完成電氣連線,並在程式設計前檢測電源電壓和可用性。 儘管看起來很簡單,但嘗試在一個電氣電路中程式設計微控制器實際上要複雜一些,因為 PGC 和 PGD 引腳也可能用作電路中的 GPIO 引腳,而 MCLR/VPP 可能連線到系統中的其他電路。 為了確保成功程式設計(這同樣適用於除錯),必須確保遵循基本的設計原則。 這些原則包括

  • 不要將電容器連線到 MCLR/VPP、PGC 或 PGD,因為這會影響 ICSP™ 通訊協議中使用的快速訊號轉換。
  • 不要在 PGC 或 PGD 上使用上拉電阻,因為這些電阻會與大多數工具中的內部下拉電阻一起充當分壓器。
  • 不要在微控制器和程式設計工具之間的 PGC 或 PGD 連線中使用二極體,因為它是雙向通訊介面。
  • 許多文件建議在 MCLR/VPP 和其餘電路之間使用肖特基二極體,以保護主電路免受施加到此引腳上的高電壓進入程式設計模式的影響。

每個程式設計器和偵錯程式文件在其“使用者指南”中都提供了推薦的指南,說明在與該工具結合使用時實現 ICSP™ 介面的最佳方法,建議您在完成計劃應用程式的硬體設計之前仔細閱讀。 工具的“快速入門海報”也通常涵蓋此主題。 此外,在您選擇的微控制器的規格書中搜索“ICSP”一詞,將提供更多建議和建議。 最後,網站上還有一些其他文件專門討論程式設計介面,例如

  • TB016 - 如何使用 PIC16F8X FLASH MCU 實現 ICSP™ - DS91016

修改執行應用程式中的快閃記憶體內容

[edit | edit source]

除了基線產品外,所有 PIC 微控制器系列都能夠在其應用程式執行時修改其自己的快閃記憶體程式儲存器的內容。 實現方式、文件方式和命名方式取決於微控制器系列。 以下提供了一些指導,說明在哪裡查詢以及在哪些文件中找到更多資訊

  • 中端和增強型中端裝置 - 透過執行對 EEPROM 暫存器的寫入來實現程式快閃記憶體的自寫,以擦除和重寫所需位置。 重要的是要注意,控制器在寫入自己的程式儲存器時無法執行自己的程式碼,程式執行將在幾毫秒的時間內停止。 此外,請仔細注意規格書中的參考彙編程式碼,需要非常特定的程式碼序列才能啟用擦除和寫入過程。 請參閱裝置的規格書,並搜尋通常名為“資料 EEPROM 和快閃記憶體程式儲存器控制”的章節。
  • 高效能裝置 - 這些裝置使用一種稱為“表讀取和表寫入”的過程,該過程結合使用特殊的暫存器和特殊的“表寫入”彙編指令來修改程式快閃記憶體的內容。 與中端系列一樣,控制器必須等待寫入過程完成才能繼續執行程式碼,這可能需要幾毫秒才能完成。 寫入記憶體所需的程式碼也需要非常特定的序列,並在規格書中以彙編程式碼的形式提供。 請參閱裝置的規格書,並搜尋通常名為“快閃記憶體程式儲存器”的章節,並繼續閱讀“寫入快閃記憶體程式儲存器”或類似部分。
  • 16 位 MCU 和 DSC 裝置 - 儘管這些裝置使用與高效能 8 位系列相同的“表讀取和表寫入”過程,但自寫功能被稱為執行時自程式設計或 RTSP。 與其他系列一樣,控制器必須等待寫入過程完成才能繼續執行程式碼,這可能需要幾毫秒才能完成。 快閃記憶體自程式設計所需的彙編程式碼序列也至關重要,參考程式碼在規格書中提供。 請參閱裝置的規格書,並搜尋通常名為“RTSP 操作”的部分,該部分通常位於“快閃記憶體程式儲存器”章節中。
  • 32 位裝置 - 與它們的 16 位同類產品一樣,32 位系列的自寫功能也稱為執行時自程式設計或 RTSP。 與其他系列一樣,控制器必須等待寫入過程完成才能繼續執行程式碼,這可能需要幾毫秒才能完成。 請參閱裝置的規格書,並搜尋通常名為“RTSP 操作”的部分,或在 PIC32MX 系列參考手冊中搜索相同的術語。

參考文獻

[edit | edit source]
華夏公益教科書