0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Microchip PIC18F2XXX/4XXX 系列闪存微控制器编程指南

璟琰乀 2026-02-09 16:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Microchip PIC18F2XXX/4XXX 系列闪存微控制器编程指南

在电子设计领域,微控制器的编程是一项关键工作。今天,我们就来深入探讨一下 Microchip 的 PIC18F2XXX/4XXX 系列闪存微控制器的编程规范。

文件下载:PIC18F4321-I P.pdf

一、器件概述

该文档涵盖了众多型号的编程规范,包括 PIC18F2221、PIC18F2321 等一系列 2XXX 和 4XXX 家族的器件。这些器件具有不同的封装类型,为不同的应用场景提供了多样化的选择。

二、编程概述

(一)编程方法

PIC18F2XXX/4XXX 系列器件可以使用高压在线串行编程(High - Voltage In - Circuit Serial Programming™,ICSP™)方法或低压 ICSP 方法进行编程。这两种方法都可以在用户系统中对器件进行操作,但低压 ICSP 方法与高压方法略有不同。

(二)硬件要求

  1. 高压 ICSP 模式:在此模式下,器件需要两个可编程电源,分别为 VDD 和 MCLR/VPP/RE3 供电,且两个电源的最小分辨率应为 0.25V。
  2. 低压 ICSP 模式:在该模式下,器件可以使用处于工作范围内的 VDD 源进行编程,MCLR/VPP/RE3 可以保持在正常工作电压。

(三)引脚图

不同封装类型的器件有不同的引脚图,如 28 引脚的 SPDIP、PDIP、SOIC、SSOP、QFN 封装,以及 40 引脚的 PDIP 封装和 44 引脚的 TQFP、QFN 封装等。了解这些引脚图对于正确连接和编程器件至关重要。

(四)内存映射

不同型号的器件代码内存空间大小和分布不同。例如,PIC18FX6X0 器件的代码内存空间从 0000h 到 0FFFFh(64 Kbytes),分为四个 16 - Kbyte 块;PIC18FX5X5 器件的代码内存空间从 0000h 到 0BFFFFh(48 Kbytes),分为三个 16 - Kbyte 块。同时,部分器件的 Boot Block 大小可以通过配置寄存器中的 BBSIZ 位进行调整。

(五)编程流程概述

编程过程包括批量擦除(Bulk Erase)、对代码内存、ID 位置和数据 EEPROM(部分器件)进行编程,然后进行验证,最后对配置位进行编程和验证。

(六)进出编程验证模式

  1. 高压 ICSP 模式:进入该模式时,需将 PGC 和 PGD 保持低电平,然后将 MCLR/VPP/RE3 升高到 VIHH(高电压)。退出时则按相应的退出序列操作。
  2. 低压 ICSP 模式:当 LVP 配置位为‘1’时,可通过将 PGC 和 PGD 保持低电平,PGM 置为高电平,然后将 MCLR/VPP/RE3 升高到 VIH 进入该模式。

(七)串行编程验证操作

  1. 4 位命令:所有指令为 20 位,由 4 位命令和 16 位操作数组成。不同的 4 位命令用于不同的操作,如核心指令、表读取、表写入等。
  2. 核心指令:用于向 CPU 核心传递 16 位指令以执行,为其他命令的使用设置合适的寄存器。

(八)专用 ICSP/ICD 端口(仅 44 引脚 TQFP)

PIC18F4455/4458/4550/4553 等 44 引脚 TQFP 器件支持专用 ICSP/ICD 端口,可提供另一种在线调试和 ICSP 选项。但 ICPRT 配置位只能通过默认 ICSP 端口进行编程,且不同封装类型的器件对该位的设置有不同要求。

三、器件编程

(一)ICSP 擦除

  1. 高压 ICSP 批量擦除:通过配置位于 3C0004h 和 3C0005h 的两个批量擦除控制寄存器来实现代码或数据 EEPROM 的擦除。擦除操作会清除相关内存块的代码保护设置。
  2. 低压 ICSP 批量擦除:执行批量擦除时,器件需由参数 D111 指定的电压供电。若电源电压低于批量擦除限制,可参考行擦除或修改代码内存的方法。
  3. ICSP 行擦除:无论使用高压还是低压 ICSP,只要块未被代码或写保护,就可以擦除一行(64 字节数据)。行擦除的持续时间由 PGC 外部定时控制。

(二)代码内存编程

编程代码内存时,先将数据加载到写缓冲区,然后启动编程序列。不同型号器件的写缓冲区和擦除缓冲区大小不同,编程持续时间也由 PGC 外部定时控制。

(三)数据 EEPROM 编程

数据 EEPROM 通过地址指针(EEADRH:EEADR)和数据锁存器(EEDATA)逐字节访问。编程时需正确配置 EECON1 寄存器,写入时会自动擦除原位置并写入新数据。

(四)ID 位置编程

ID 位置的编程与代码内存类似,用户只需填充写缓冲区的前 8 个字节即可写入 ID 位置。若要修改 ID 位置,需先进行擦除操作。

(五)Boot 块编程

使用与代码内存编程类似的代码序列,但地址范围在 000000h 到 0007FFh 之间。

(六)配置位编程

配置位逐字节编程,使用“Table Write, Begin Programming”4 位命令(‘1111’),但每次只写入 16 位有效负载中的 8 位。

四、读取器件

(一)读取代码内存、ID 位置和配置位

通过 4 位命令‘1001’(表读取,后递增)逐字节访问代码内存,读取的内容通过 PGD 串行输出。该方法也适用于读取 ID 和配置寄存器。

(二)验证代码内存和 ID 位置

验证时,将代码内存空间的内容读回并与编程器缓冲区中的副本进行比较。对于 ID 位置,需手动将表指针设置为 200000h。

(三)验证配置位

通过 4 位命令‘1001’读取配置地址并输出到 PGD,然后与编程器内存中的相应配置数据进行比较。

(四)读取数据 EEPROM 内存

通过地址指针和数据锁存器逐字节访问数据 EEPROM,读取的数据通过 4 位命令‘0010’输出到 PGD。

(五)验证数据 EEPROM

读取数据 EEPROM 地址并输出到 PGD,然后与编程器内存中的相应数据进行比较。

(六)空白检查

空白检查是验证器件是否没有已编程的内存单元,需对代码内存、数据 EEPROM、ID 位置和配置位进行验证,但忽略设备 ID 寄存器。

五、配置字

(一)配置字概述

PIC18F2XXX/4XXX 系列器件有多个配置字,可通过设置或清除这些位来选择不同的器件配置。所有其他内存区域应在设置配置字之前进行编程和验证。

(二)ID 位置

用户可以在 200000h:200007h 的 8 个 ID 位置存储识别信息,建议每个 ID 的最高半字节为 Fh。

(三)设备 ID 字

设备 ID 字位于 3FFFFEh:3FFFFFh,可用于识别正在编程的设备类型,即使在代码或读保护后也能正常读取。

(四)单电源 ICSP 编程

配置寄存器 CONFIG4L 中的 LVP 位启用单电源(低压)ICSP 编程。该位默认从工厂设置为‘1’(启用),若将其编程为‘0’,则只能使用高压 ICSP 模式。

(五)在 HEX 文件中嵌入配置字和数据 EEPROM 信息

为了实现代码的可移植性,编程器需要从 hex 文件中读取配置字和数据 EEPROM 信息。在保存 hex 文件时,应包含这些信息,也可提供不包含这些信息的选项。

(六)校验和计算

校验和通过对所有代码内存位置的内容、配置字(适当屏蔽)和 ID 位置(如果任何块被代码保护)进行求和得到,取该和的最低 16 位作为校验和。

六、AC/DC 特性和时序要求

文档给出了编程/验证测试模式下的标准操作条件,包括各种电压、电流、时间参数的要求,如高电压编程电压、低电压编程电压、编程电流、输入输出电压等,这些参数对于正确编程和验证器件至关重要。

在实际应用中,我们需要根据具体的器件型号和应用场景,仔细选择合适的编程方法和参数,严格按照编程规范进行操作,以确保器件的正常工作。同时,对于代码保护等功能,要充分了解其原理和限制,以保护我们的知识产权。大家在编程过程中遇到过哪些问题呢?欢迎留言讨论。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ST32F3xxx和STM32F4xxx微控制器的内核Crotex-M4编程手册

    ST32F3xxx和STM32F4xxx微控制器的内核Crotex-M4编程手册
    发表于 09-29 14:37 9次下载
    ST32<b class='flag-5'>F3xxx</b>和STM32<b class='flag-5'>F4xxx</b><b class='flag-5'>微控制器</b>的内核Crotex-M<b class='flag-5'>4</b>的<b class='flag-5'>编程</b>手册

    STM32F4xxx系列微控制器的中文参考手册免费下载

    。 STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微控制器
    发表于 05-13 08:00 11次下载
    STM32<b class='flag-5'>F4xxx</b><b class='flag-5'>系列</b><b class='flag-5'>微控制器</b>的中文参考手册免费下载

    AN4660_从STM32F42xxx、STM32F43xxx到STM32F74xxx、STM32F75xxx微控制器应用移植

    AN4660_从STM32F42xxx、STM32F43xxx到STM32F74xxx、STM32F75xxx微控制器应用移植
    发表于 11-21 17:06 0次下载
    AN4660_从STM32<b class='flag-5'>F42xxx</b>、STM32<b class='flag-5'>F43xxx</b>到STM32<b class='flag-5'>F74xxx</b>、STM32<b class='flag-5'>F75xxx</b>的<b class='flag-5'>微控制器</b>应用移植

    STM32F10xxx闪存编程参考手册(中文)

    编程手册介绍了如何烧写STM32F101xx、STM32F102xx和STM32F103xx微控制器
    发表于 06-19 17:08 57次下载

    从STM32F42xxx/STM32F43xxx到STM32F74xxx/STM32F75xxx微控制器应用移植

    电子发烧友网站提供《从STM32F42xxx/STM32F43xxx到STM32F74xxx/STM32F75xxx微控制器应用移植 .p
    发表于 09-21 10:10 1次下载
    从STM32<b class='flag-5'>F42xxx</b>/STM32<b class='flag-5'>F43xxx</b>到STM32<b class='flag-5'>F74xxx</b>/STM32<b class='flag-5'>F75xxx</b>的<b class='flag-5'>微控制器</b>应用移植

    STM32F10xxx微控制器闪存存储烧写手册

    编程手册介绍了如何烧写STM32F101xx、STM32F102xx和STM32F103xx微控制器
    发表于 11-28 15:16 6次下载

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

    Microchip PIC18F2458/2553/4458/4553系列微控制器深度解析 在电子设计领域,选择一款合适的微控制器对于项目的
    的头像 发表于 03-03 17:15 641次阅读

    PIC18F8723 系列微控制器:高性能与低功耗的完美结合

    PIC18F8723 系列微控制器:高性能与低功耗的完美结合 在电子工程师的日常工作中,选择一款合适的微控制器对于项目的成功至关重要。今天,我们就来深入探讨一下
    的头像 发表于 03-16 15:25 222次阅读

    深度剖析Microchip PIC16F62X系列微控制器:硬件设计与应用指南

    深度剖析Microchip PIC16F62X系列微控制器:硬件设计与应用指南 在电子工程师的工具箱中,
    的头像 发表于 04-07 17:20 483次阅读

    PIC18F2XXX/4XXX系列闪存微控制器编程规范解析

    PIC18F2XXX/4XXX系列闪存微控制器编程规范解析 一、引言 今天我们来深入探讨
    的头像 发表于 04-08 10:05 442次阅读

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

    深度剖析Microchip PIC18F2458/2553/4458/4553系列微控制器 在电子工程师的日常工作中,选择合适的微控制器是项
    的头像 发表于 04-08 10:15 354次阅读

    PIC18FXX80/XX85 Flash微控制器编程规范解析

    FXX80/XX85系列Flash微控制器编程规范。 文件下载: PIC18F6585-I/L.pdf 一、设备概述 PIC18FXX80
    的头像 发表于 04-08 10:35 134次阅读

    PIC18FXX20系列闪存微控制器编程全解析

    PIC18FXX20系列闪存微控制器编程全解析 在电子设计领域,微控制器
    的头像 发表于 04-08 10:55 212次阅读

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

    深入剖析Microchip PIC18F6393/6493/8393/8493系列微控制器 在电子设计领域,高性能、低功耗且功能丰富的微控制器
    的头像 发表于 04-08 11:25 194次阅读

    探索Microchip PIC16F5X系列微控制器:特性、应用与开发指南

    探索Microchip PIC16F5X系列微控制器:特性、应用与开发指南 在电子工程领域,微控制器
    的头像 发表于 04-16 16:45 104次阅读