โลโก้ไมโครชิป

MICROCHIP PIC24 การเขียนโปรแกรมแฟลช

MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม-PRO

ข้อมูลสินค้า

การเขียนโปรแกรมแฟลช
อุปกรณ์ในตระกูล dsPIC33/PIC24 มีหน่วยความจำโปรแกรมแฟลชที่ตั้งโปรแกรมได้ภายในสำหรับการดำเนินการรหัสผู้ใช้ มีสามวิธีในการเขียนโปรแกรมหน่วยความจำนี้:

  • การดำเนินการคำสั่งตาราง
  • การเขียนโปรแกรมแบบอนุกรมในวงจร (ICSP)
  • การเขียนโปรแกรมในแอปพลิเคชัน (IAP)

คำแนะนำในตารางแสดงวิธีการถ่ายโอนข้อมูลระหว่างพื้นที่หน่วยความจำของโปรแกรม Flash และพื้นที่หน่วยความจำข้อมูลของอุปกรณ์ dsPIC33/PIC24 คำสั่ง TBLRDL ใช้เพื่ออ่านจากบิต [15:0] ของพื้นที่หน่วยความจำของโปรแกรม คำสั่ง TBLWTL ใช้เพื่อเขียนไปยังบิต[15:0] ของพื้นที่หน่วยความจำโปรแกรม Flash TBLRDL และ TBLWTL สามารถเข้าถึงหน่วยความจำโปรแกรม Flash ในโหมด Word หรือโหมด Byte

นอกจากที่อยู่หน่วยความจำของโปรแกรม Flash แล้ว คำสั่งในตารางยังระบุ W register (หรือ W Register Pointer ไปยังตำแหน่งหน่วยความจำ) ซึ่งเป็นแหล่งที่มาของข้อมูลหน่วยความจำของโปรแกรม Flash ที่จะเขียน หรือปลายทางสำหรับโปรแกรม Flash อ่านหน่วยความจำ

ส่วนนี้อธิบายเทคนิคการเขียนโปรแกรมหน่วยความจำโปรแกรมแฟลช อุปกรณ์ในตระกูล dsPIC33/ PIC24 มีหน่วยความจำโปรแกรมแฟลชที่ตั้งโปรแกรมได้ภายในสำหรับการดำเนินการรหัสผู้ใช้ มีสามวิธีในการเขียนโปรแกรมหน่วยความจำนี้:

  • การเขียนโปรแกรมด้วยตนเองแบบรันไทม์ (RTSP)
  • การเขียนโปรแกรมแบบอนุกรมในวงจร™ (ICSP™)
  • การเขียนโปรแกรมแบบอนุกรมในวงจรที่ได้รับการปรับปรุง (EICSP)

RTSP ดำเนินการโดยซอฟต์แวร์แอปพลิเคชันระหว่างการดำเนินการ ขณะที่ ICSP และ EICSP ดำเนินการจากโปรแกรมเมอร์ภายนอกโดยใช้การเชื่อมต่อข้อมูลแบบอนุกรมกับอุปกรณ์ ICSP และ EICSP ช่วยให้ตั้งโปรแกรมได้เร็วกว่า RTSP มาก เทคนิค RTSP อธิบายไว้ในหัวข้อ 4.0 “การเขียนโปรแกรมด้วยตนเองแบบรันไทม์ (RTSP)” โปรโตคอล ICSP และ EICSP ถูกกำหนดไว้ในเอกสารข้อกำหนดการเขียนโปรแกรมสำหรับอุปกรณ์ที่เกี่ยวข้อง ซึ่งสามารถดาวน์โหลดได้จากไมโครชิป webงาน (http://www.microchip.com). เมื่อตั้งโปรแกรมด้วยภาษา C จะมีฟังก์ชันในตัวหลายฟังก์ชันที่อำนวยความสะดวกในการเขียนโปรแกรม Flash ดู “คู่มือผู้ใช้คอมไพเลอร์ MPLAB® XC16 C” (DS50002071) สำหรับรายละเอียดเกี่ยวกับฟังก์ชันในตัว

คำแนะนำการใช้ผลิตภัณฑ์

ในการตั้งโปรแกรมหน่วยความจำโปรแกรม Flash ให้ทำตามขั้นตอนเหล่านี้:

  1. โปรดดูเอกสารข้อมูลอุปกรณ์เพื่อตรวจสอบว่าส่วนคู่มืออ้างอิงครอบครัวรองรับอุปกรณ์ที่คุณใช้อยู่หรือไม่
  2. ดาวน์โหลดเอกสารข้อมูลอุปกรณ์และส่วนคู่มืออ้างอิงสำหรับครอบครัวจาก Microchip Worldwide Webเว็บไซต์อยู่ที่: http://www.microchip.com.
  3. เลือกหนึ่งในสามวิธีในการเขียนโปรแกรมหน่วยความจำ (Table Instruction Operation, In-Circuit Serial Programming (ICSP), In-Application Programming (IAP))
  4. หากใช้ Table Instruction Operation ให้ใช้คำสั่ง TBLRDL เพื่ออ่านจากบิต[15:0] ของพื้นที่หน่วยความจำโปรแกรม และคำสั่ง TBLWTL เพื่อเขียนไปยังบิต[15:0] ของพื้นที่หน่วยความจำโปรแกรม Flash
  5. ตรวจสอบให้แน่ใจว่าได้ระบุ W register (หรือ W Register Pointer ไปยังตำแหน่งหน่วยความจำ) เป็นแหล่งที่มาของข้อมูลหน่วยความจำโปรแกรม Flash ที่จะเขียน หรือปลายทางสำหรับการอ่านหน่วยความจำโปรแกรม Flash

สำหรับข้อมูลเพิ่มเติมและรายละเอียดเกี่ยวกับการเขียนโปรแกรมหน่วยความจำโปรแกรม Flash โปรดดูที่คู่มืออ้างอิงสำหรับครอบครัว dsPIC33/PIC24

การดำเนินการคำแนะนำตาราง

คำแนะนำในตารางระบุวิธีการถ่ายโอนข้อมูลระหว่างพื้นที่หน่วยความจำของโปรแกรม Flash และพื้นที่หน่วยความจำข้อมูลของอุปกรณ์ dsPIC33/PIC24 ส่วนนี้ให้ข้อมูลสรุปของคำสั่งตารางที่ใช้ระหว่างการตั้งโปรแกรมหน่วยความจำโปรแกรม Flash มีสี่คำแนะนำตารางพื้นฐาน:

  • TBLRDL: ตารางอ่านต่ำ
  • TBLRDH: ตารางอ่านสูง
  • TBLWTL: ตารางเขียนต่ำ
  • แจ้งภายหลัง: ตารางเขียนสูง

คำสั่ง TBLRDL ใช้เพื่ออ่านจากบิต [15:0] ของพื้นที่หน่วยความจำของโปรแกรม คำสั่ง TBLWTL ใช้เพื่อเขียนไปยังบิต[15:0] ของพื้นที่หน่วยความจำโปรแกรม Flash TBLRDL และ TBLWTL สามารถเข้าถึงหน่วยความจำโปรแกรม Flash ในโหมด Word หรือโหมด Byte

คำสั่ง TBLRDH และ TBLWTH ใช้เพื่ออ่านหรือเขียนไปยังบิต[23:16] ของพื้นที่หน่วยความจำของโปรแกรม TBLRDH และ TBLWTH สามารถเข้าถึงหน่วยความจำโปรแกรม Flash ในโหมด Word หรือ Byte เนื่องจากหน่วยความจำโปรแกรม Flash กว้างเพียง 24 บิต คำสั่ง TBLRDH และ TBLWTH สามารถระบุไบต์บนของหน่วยความจำโปรแกรม Flash ที่ไม่มีอยู่ได้ ไบต์นี้เรียกว่า "แฟนทอมไบต์" การอ่าน Phantom Byte ใดๆ จะคืนค่า 0x00 การเขียนไปยัง phantom byte ไม่มีผลใดๆ หน่วยความจำโปรแกรมแฟลช 24 บิตสามารถถือเป็นช่องว่าง 16 บิตสองช่องที่อยู่เคียงข้างกัน โดยแต่ละช่องจะใช้ช่วงที่อยู่เดียวกัน ดังนั้น คำสั่ง TBLRDL และ TBLWTL จึงเข้าถึงพื้นที่หน่วยความจำโปรแกรม "เหลือน้อย" (PM[15:0]) คำสั่ง TBLRDH และ TBLWTH เข้าถึงพื้นที่หน่วยความจำโปรแกรม "สูง" (PM[31:16]) การอ่านหรือเขียนใดๆ ไปยัง PM[31:24] จะเข้าถึงไบต์ Phantom (ไม่ได้ใช้งาน) เมื่อใช้คำแนะนำตารางใดๆ ในโหมดไบต์ บิตที่มีนัยสำคัญน้อยที่สุด (LSb) ของที่อยู่ตารางจะถูกใช้เป็นบิตเลือกไบต์ LSb กำหนดว่าไบต์ใดในพื้นที่หน่วยความจำโปรแกรมสูงหรือต่ำที่เข้าถึงได้

รูปที่ 2-1 แสดงวิธีการระบุหน่วยความจำของโปรแกรมแฟลชโดยใช้คำแนะนำในตาราง ที่อยู่หน่วยความจำโปรแกรม 24 บิตถูกสร้างขึ้นโดยใช้บิต [7:0] ของการลงทะเบียน TBLPAG และที่อยู่จริง (EA) จากการลงทะเบียน W ที่ระบุในคำสั่งตาราง ตัวนับโปรแกรม 24 บิต (PC) แสดงไว้ในรูปที่ 2-1 เพื่อใช้เป็นข้อมูลอ้างอิง EA 23 บิตบนใช้เพื่อเลือกตำแหน่งหน่วยความจำโปรแกรมแฟลช

สำหรับคำสั่งตารางโหมดไบต์ LSb ของ W register EA จะใช้เพื่อเลือกไบต์ของคำหน่วยความจำโปรแกรมแฟลช 16 บิตที่อยู่ '1' เลือกบิต[15:8] และ '0' เลือกบิต[7:0] LSb ของ W register EA จะถูกละเว้นสำหรับคำสั่งตารางในโหมด Word นอกจากที่อยู่หน่วยความจำของโปรแกรม Flash แล้ว คำสั่งในตารางยังระบุ W register (หรือ W Register Pointer ไปยังตำแหน่งหน่วยความจำ) ซึ่งเป็นแหล่งที่มาของข้อมูลหน่วยความจำของโปรแกรม Flash ที่จะเขียน หรือปลายทางสำหรับโปรแกรม Flash อ่านหน่วยความจำ สำหรับการดำเนินการเขียนตารางในโหมดไบต์ บิต[15:8] ของรีจิสเตอร์ Working ต้นทางจะถูกละเว้นMICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (1)

การใช้คำสั่งอ่านตาราง
การอ่านตารางต้องการสองขั้นตอน:

  1. ตัวชี้ที่อยู่ได้รับการตั้งค่าโดยใช้การลงทะเบียน TBLPAG และหนึ่งในการลงทะเบียน W
  2. เนื้อหาหน่วยความจำของโปรแกรม Flash ที่ตำแหน่งที่อยู่อาจอ่านได้

 

  1. โหมดอ่านคำ
    รหัสที่แสดงในตัวอย่างampเลอ 2-1 และอดีตample 2-2 แสดงวิธีอ่านคำในหน่วยความจำโปรแกรม Flash โดยใช้คำสั่งตารางในโหมด WordMICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (2) MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (3)
  2. อ่านโหมดไบต์
    รหัสที่แสดงในตัวอย่างample 2-3 แสดงตัวดำเนินการหลังการเพิ่มในการอ่านของไบต์ต่ำ ซึ่งทำให้ที่อยู่ในการลงทะเบียนการทำงานเพิ่มขึ้นทีละหนึ่ง ตั้งค่า EA[0] เป็น '1' สำหรับการเข้าถึงไบต์กลางในคำสั่งเขียนที่สาม การเพิ่มภายหลังครั้งล่าสุดจะตั้งค่า W0 กลับไปเป็นที่อยู่คู่ โดยชี้ไปยังตำแหน่งหน่วยความจำโปรแกรมแฟลชถัดไปMICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (4)
  3. สลักเขียนตาราง
    คำแนะนำในการเขียนตารางไม่ได้เขียนโดยตรงไปยังหน่วยความจำโปรแกรมที่ไม่ลบเลือน คำแนะนำในการเขียนตารางจะโหลดสลักการเขียนที่เก็บข้อมูลการเขียนแทน ต้องโหลดการลงทะเบียนที่อยู่ NVM ด้วยที่อยู่แรกที่ควรเขียนข้อมูลสลัก เมื่อโหลดแลตช์เขียนทั้งหมดแล้ว การดำเนินการโปรแกรมหน่วยความจำจริงจะเริ่มต้นโดยการดำเนินการตามคำสั่งพิเศษตามลำดับ ในระหว่างการตั้งโปรแกรม ฮาร์ดแวร์จะถ่ายโอนข้อมูลในสลักการเขียนไปยังหน่วยความจำแฟลช สลักเขียนเริ่มต้นที่แอดเดรส 0xFA0000 เสมอ และขยายจนถึง 0xFA0002 สำหรับการเขียนโปรแกรมคำ หรือผ่าน 0xFA00FE สำหรับอุปกรณ์ที่มีการเขียนโปรแกรมแถว

บันทึก: จำนวนสลักเขียนจะแตกต่างกันไปตามอุปกรณ์ โปรดดูที่บท "Flash Program Memory" ของแผ่นข้อมูลอุปกรณ์เฉพาะสำหรับจำนวนของสลักเขียนที่มีอยู่

ทะเบียนควบคุม

รีจิสเตอร์ฟังก์ชันพิเศษ (SFR) หลายรายการถูกใช้เพื่อตั้งโปรแกรมการลบและเขียนหน่วยความจำของโปรแกรมแฟลช: NVMCON, NVMKEY และการลงทะเบียนที่อยู่ NVM, NVMADR และ NVMADRU

NVMCON ลงทะเบียน
การลงทะเบียน NVMCON เป็นการลงทะเบียนควบคุมหลักสำหรับการทำงานของ Flash และโปรแกรม/ลบ การลงทะเบียนนี้เลือกว่าจะดำเนินการลบหรือการทำงานของโปรแกรมและสามารถเริ่มโปรแกรมหรือลบวงจรได้ การลงทะเบียน NVMCON แสดงอยู่ในการลงทะเบียน 3-1 ไบต์ล่างของ NVMCON กำหนดค่าประเภทของการดำเนินการ NVM ที่จะดำเนินการ

NVMKEY ลงทะเบียน
NVMKEY register (ดู Register 3-4) เป็น register-only register ที่ใช้ป้องกันการเขียน NVMCON โดยไม่ได้ตั้งใจ ซึ่งอาจทำให้หน่วยความจำแฟลชเสียหายได้ เมื่อปลดล็อคแล้ว การเขียนไปยัง NVMCON จะได้รับอนุญาตสำหรับหนึ่งรอบคำสั่ง ซึ่งบิต WR สามารถตั้งค่าให้เรียกการลบหรือรูทีนโปรแกรมได้ ตามข้อกำหนดด้านเวลา จำเป็นต้องปิดใช้งานการขัดจังหวะ
ทำตามขั้นตอนต่อไปนี้เพื่อเริ่มลำดับการลบหรือตั้งโปรแกรม:

  1. ปิดการใช้งานการขัดจังหวะ
  2. เขียน 0x55 ถึง NVMKEY
  3. เขียน 0xAA เป็น NVMKEY
  4. เริ่มวงจรการเขียนโปรแกรมโดยการตั้งค่าบิต WR (NVMCON[15])
  5. ดำเนินการสองคำสั่ง NOP
  6. กู้คืนการขัดจังหวะ

MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (5)

ปิดการใช้งานการขัดจังหวะ
จำเป็นต้องปิดใช้งานการขัดจังหวะสำหรับการทำงานของแฟลชทั้งหมดเพื่อให้แน่ใจว่าผลลัพธ์ที่สำเร็จ หากเกิดการขัดจังหวะระหว่างลำดับการปลดล็อก NVMKEY จะสามารถบล็อกการเขียนไปยังบิต WR ได้ ลำดับการปลดล็อก NVMKEY จะต้องดำเนินการโดยไม่หยุดชะงัก ดังที่กล่าวถึงในหัวข้อ 3.2 “NVMKEY Register”

การขัดจังหวะสามารถปิดใช้งานได้สองวิธี โดยปิดการใช้งาน Global Interrupt Enable (GIE bit) หรือโดยการใช้คำสั่ง DISI ไม่แนะนำให้ใช้คำสั่ง DISI เนื่องจากจะปิดใช้งานการขัดจังหวะของลำดับความสำคัญ 6 หรือต่ำกว่าเท่านั้น ดังนั้นจึงควรใช้วิธีการ Global Interrupt Enable

CPU เขียนไปยัง GIE ใช้เวลาสองรอบคำสั่งก่อนที่จะส่งผลต่อโฟลว์ของโค้ด หลังจากนั้นจำเป็นต้องมีคำสั่ง NOP สองคำสั่ง หรือสามารถแทนที่ด้วยคำสั่งการทำงานอื่นๆ ที่เป็นประโยชน์ เช่น การโหลด NVMKEY; สิ่งนี้ใช้ได้กับการดำเนินการทั้งแบบตั้งค่าและแบบล้าง ควรใช้ความระมัดระวังเมื่อเปิดใช้การขัดจังหวะอีกครั้งเพื่อให้รูทีนเป้าหมายของ NVM ไม่อนุญาตให้มีการขัดจังหวะเมื่อฟังก์ชันที่เรียกใช้ก่อนหน้านี้ปิดใช้งานด้วยเหตุผลอื่น เพื่อแก้ไขปัญหานี้ใน Assembly สามารถใช้ stack push และ pop เพื่อรักษาสถานะของบิต GIE ใน C คุณสามารถใช้ตัวแปรใน RAM เพื่อจัดเก็บ INTCON2 ก่อนล้าง GIE ใช้ลำดับต่อไปนี้เพื่อปิดใช้งานการขัดจังหวะ:

  1. กด INTCON2 ลงบนสแต็ก
  2. ล้างบิต GIE
  3. NOP สองตัวหรือเขียนไปยัง NVMKEY
  4. เริ่มรอบการเขียนโปรแกรมโดยการตั้งค่าบิต WR (NVMCON[15])
  5. กู้คืนสถานะ GIE โดย POP ของ INTCON2MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (6)

การลงทะเบียนที่อยู่ NVM
NVM Address registers สองรายการคือ NVMADRU และ NVMADR เมื่อเชื่อมต่อกัน จะสร้าง EA 24 บิตของแถวหรือคำที่เลือกสำหรับการดำเนินการโปรแกรม รีจิสเตอร์ NVMADRU ใช้เพื่อเก็บแปดบิตบนของ EA และรีจิสเตอร์ NVMADR ใช้เพื่อเก็บ 16 บิตล่างของ EA อุปกรณ์บางอย่างอาจอ้างถึงการลงทะเบียนเดียวกันเหล่านี้เป็น NVMADRL และ NVMADRH รีจิสเตอร์ที่อยู่ NVM ควรชี้ไปที่ขอบเขตของคำสั่งแบบคู่เสมอเมื่อดำเนินการโปรแกรมคำสั่งแบบคู่ ขอบเขตของแถวเมื่อดำเนินการโปรแกรมแถว หรือขอบเขตของหน้าเมื่อดำเนินการลบเพจ

ลงทะเบียน 3-1: NVMCON: ลงทะเบียนการควบคุมหน่วยความจำแฟลชMICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (7) MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (8)

บันทึก

  1. บิตนี้สามารถรีเซ็ตได้ (เช่น ล้างข้อมูล) ในการรีเซ็ตการเปิดเครื่อง (POR) เท่านั้น
  2. เมื่อออกจากโหมดปกติ จะมีการหน่วงเวลาเปิดเครื่อง (TVREG) ก่อนที่หน่วยความจำโปรแกรมแฟลชจะทำงาน โปรดดูบท "ลักษณะทางไฟฟ้า" ของเอกสารข้อมูลเฉพาะของอุปกรณ์สำหรับข้อมูลเพิ่มเติม
  3. ชุดค่าผสมอื่นๆ ทั้งหมดของ NVMOP[3:0] ไม่ได้ใช้งาน
  4. ฟังก์ชันนี้ไม่มีในอุปกรณ์ทั้งหมด โปรดดูที่บท "Flash Program Memory" ในแผ่นข้อมูลเฉพาะของอุปกรณ์สำหรับการทำงานที่มี
  5. การเข้าสู่โหมดประหยัดพลังงานหลังจากดำเนินการตามคำสั่ง PWRSAV นั้นขึ้นอยู่กับการดำเนินการ NVM ที่รอดำเนินการทั้งหมดเสร็จสิ้น
  6. บิตนี้มีเฉพาะในอุปกรณ์ที่รองรับการเขียนโปรแกรมแถวบัฟเฟอร์ RAM โปรดดูแผ่นข้อมูลเฉพาะอุปกรณ์สำหรับความพร้อมใช้งาน

MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (9)

บันทึก

  1. บิตนี้สามารถรีเซ็ตได้ (เช่น ล้างข้อมูล) ในการรีเซ็ตการเปิดเครื่อง (POR) เท่านั้น
  2. เมื่อออกจากโหมดปกติ จะมีการหน่วงเวลาเปิดเครื่อง (TVREG) ก่อนที่หน่วยความจำโปรแกรมแฟลชจะทำงาน โปรดดูบท "ลักษณะทางไฟฟ้า" ของเอกสารข้อมูลเฉพาะของอุปกรณ์สำหรับข้อมูลเพิ่มเติม
  3. ชุดค่าผสมอื่นๆ ทั้งหมดของ NVMOP[3:0] ไม่ได้ใช้งาน
  4. ฟังก์ชันนี้ไม่มีในอุปกรณ์ทั้งหมด โปรดดูที่บท "Flash Program Memory" ในแผ่นข้อมูลเฉพาะของอุปกรณ์สำหรับการทำงานที่มี
  5. การเข้าสู่โหมดประหยัดพลังงานหลังจากดำเนินการตามคำสั่ง PWRSAV นั้นขึ้นอยู่กับการดำเนินการ NVM ที่รอดำเนินการทั้งหมดเสร็จสิ้น
  6. บิตนี้มีเฉพาะในอุปกรณ์ที่รองรับการเขียนโปรแกรมแถวบัฟเฟอร์ RAM โปรดดูแผ่นข้อมูลเฉพาะอุปกรณ์สำหรับความพร้อมใช้งาน

รีจิสเตอร์ 3-2: NVMADRU: รีจิสเตอร์แอดเดรสหน่วยความจำแบบไม่ลบเลือน

MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (10)

การลงทะเบียน 3-3: NVMADR: การลงทะเบียนที่อยู่หน่วยความจำแบบไม่ลบเลือน

MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (11)

รีจิสเตอร์ 3-4: NVMKEY: รีจิสเตอร์คีย์หน่วยความจำแบบไม่ลบเลือน

MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (12)

การเขียนโปรแกรมด้วยตนเองขณะทำงาน (RTSP)

RTSP อนุญาตให้แอปพลิเคชันผู้ใช้สามารถแก้ไขเนื้อหาหน่วยความจำของโปรแกรม Flash RTSP ทำได้โดยใช้คำสั่ง TBLRD (การอ่านตาราง) และ TBLWT (การเขียนตาราง) การลงทะเบียน TBLPAG และการลงทะเบียนการควบคุม NVM ด้วย RTSP แอปพลิเคชันของผู้ใช้สามารถลบหน้าเดียวของหน่วยความจำแฟลชและตั้งโปรแกรมคำสั่งสองคำหรือสูงสุด 128 คำในอุปกรณ์บางชนิด

การดำเนินงาน RTSP
อาร์เรย์หน่วยความจำของโปรแกรมแฟลช dsPIC33/PIC24 ถูกจัดระเบียบเป็นหน้าลบที่มีคำสั่งได้สูงสุด 1024 คำสั่ง ตัวเลือกการเขียนโปรแกรมสองคำมีอยู่ในอุปกรณ์ทั้งหมดในตระกูล dsPIC33/PIC24 นอกจากนี้ อุปกรณ์บางอย่างมีความสามารถในการเขียนโปรแกรมแถว ซึ่งทำให้สามารถตั้งโปรแกรมคำสั่งได้สูงสุด 128 คำต่อครั้ง การเขียนโปรแกรมและการลบจะเกิดขึ้นเสมอในขอบเขตของคำโปรแกรม แถว หรือหน้า โปรดดูบท "Flash Program Memory" ของแผ่นข้อมูลอุปกรณ์เฉพาะสำหรับความพร้อมใช้งานและขนาดของแถวการเขียนโปรแกรม และขนาดหน้าสำหรับการลบ หน่วยความจำโปรแกรมแฟลชใช้บัฟเฟอร์ที่เรียกว่าสลักเขียน ซึ่งสามารถบรรจุข้อมูลการเขียนโปรแกรมได้มากถึง 128 คำสั่งขึ้นอยู่กับอุปกรณ์ ก่อนการดำเนินการตั้งโปรแกรมจริง ต้องโหลดข้อมูลการเขียนลงในสลักการเขียน ลำดับพื้นฐานสำหรับ RTSP คือการตั้งค่า Table Pointer, TBLPAG register จากนั้นดำเนินการชุดคำสั่ง TBLWT เพื่อโหลดแลตช์เขียน การเขียนโปรแกรมทำได้โดยการตั้งค่าบิตควบคุมในรีจิสเตอร์ NVMCON จำนวนคำสั่ง TBLWTL และ TBLWTH ที่จำเป็นในการโหลดแลตช์การเขียนจะเท่ากับจำนวนคำของโปรแกรมที่จะเขียน

บันทึก: ขอแนะนำให้บันทึกการลงทะเบียน TBLPAG ก่อนแก้ไขและกู้คืนหลังการใช้งาน

คำเตือน
บนอุปกรณ์บางประเภท บิตการกำหนดค่าจะถูกจัดเก็บไว้ในหน้าสุดท้ายของพื้นที่หน่วยความจำผู้ใช้โปรแกรม Flash ในส่วนที่เรียกว่า “ไบต์การกำหนดค่าแฟลช” ด้วยอุปกรณ์เหล่านี้ การดำเนินการลบหน้าในหน้าสุดท้ายของหน่วยความจำโปรแกรมจะลบไบต์การกำหนดค่าแฟลช ซึ่งเปิดใช้งานการป้องกันรหัส ดังนั้นผู้ใช้ไม่ควรดำเนินการลบหน้าในหน้าสุดท้ายของหน่วยความจำโปรแกรม นี่ไม่ใช่ข้อกังวลเมื่อบิตการกำหนดค่าถูกจัดเก็บในพื้นที่หน่วยความจำการกำหนดค่าในส่วนที่เรียกว่า “การลงทะเบียนการกำหนดค่าอุปกรณ์” โปรดดูแผนผังหน่วยความจำโปรแกรมในบท "องค์กรหน่วยความจำ" ของแผ่นข้อมูลอุปกรณ์เฉพาะเพื่อระบุตำแหน่งของบิตการกำหนดค่า

การทำงานของโปรแกรมแฟลช
การดำเนินการของโปรแกรมหรือการลบเป็นสิ่งจำเป็นสำหรับการตั้งโปรแกรมหรือการลบหน่วยความจำโปรแกรมแฟลชภายในในโหมด RTSP การทำงานของโปรแกรมหรือการลบจะถูกตั้งเวลาโดยอัตโนมัติโดยอุปกรณ์ (โปรดดูแผ่นข้อมูลเฉพาะของอุปกรณ์สำหรับข้อมูลการจับเวลา) การตั้งค่าบิต WR (NVMCON[15]) เริ่มการทำงาน บิต WR จะถูกล้างโดยอัตโนมัติเมื่อการดำเนินการเสร็จสิ้น CPU หยุดทำงานจนกว่าการเขียนโปรแกรมจะเสร็จสิ้น CPU จะไม่ดำเนินการคำสั่งใด ๆ หรือตอบสนองต่อการขัดจังหวะในช่วงเวลานี้ หากมีการขัดจังหวะใด ๆ เกิดขึ้นในระหว่างรอบการเขียนโปรแกรม การขัดจังหวะนั้นจะยังคงค้างอยู่จนกว่ารอบจะเสร็จสิ้น อุปกรณ์ dsPIC33/PIC24 บางตัวอาจมีหน่วยความจำโปรแกรม Flash เสริม (โปรดดูรายละเอียดในบท “การจัดระเบียบหน่วยความจำ” ของเอกสารข้อมูลอุปกรณ์เฉพาะ) ซึ่งช่วยให้สามารถดำเนินการคำสั่งโดยไม่มี CPU Stall ในขณะที่หน่วยความจำโปรแกรม Flash ของผู้ใช้ถูกลบและ/หรือตั้งโปรแกรม ในทางกลับกัน หน่วยความจำโปรแกรมแฟลชเสริมสามารถตั้งโปรแกรมได้โดยไม่ต้องใช้ CPU Stalls ตราบใดที่โค้ดถูกเรียกใช้จากหน่วยความจำโปรแกรมแฟลชของผู้ใช้ สามารถใช้การขัดจังหวะ NVM เพื่อระบุว่าการดำเนินการโปรแกรมเสร็จสมบูรณ์

บันทึก

  1. หากเหตุการณ์ POR หรือ BOR เกิดขึ้นในขณะที่การลบ RTSP หรือการเขียนโปรแกรมกำลังดำเนินอยู่ การดำเนินการ RTSP จะถูกยกเลิกทันที ผู้ใช้ควรทำการดำเนินการ RTSP อีกครั้งหลังจากที่อุปกรณ์ออกจากการรีเซ็ต
  2. หากเหตุการณ์ EXTR, SWR, WDTO, TRAPR, CM หรือ IOPUWR Reset เกิดขึ้นในขณะที่การลบ RTSP หรือการเขียนโปรแกรมกำลังดำเนินอยู่ อุปกรณ์จะถูกรีเซ็ตหลังจากการดำเนินการ RTSP เสร็จสิ้นเท่านั้น

อัลกอริทึมการเขียนโปรแกรม RTSP
ส่วนนี้อธิบายการเขียนโปรแกรม RTSP ซึ่งประกอบด้วยสามกระบวนการหลัก

การสร้างอิมเมจ RAM ของหน้าข้อมูลที่จะแก้ไข
ดำเนินการสองขั้นตอนเหล่านี้เพื่อสร้างอิมเมจ RAM ของหน้าข้อมูลที่จะแก้ไข:

  1. อ่านหน้าหน่วยความจำของโปรแกรม Flash และจัดเก็บไว้ใน data RAM เป็น data “image” ต้องอ่านอิมเมจ RAM โดยเริ่มจากขอบเขตที่อยู่เพจ
  2. แก้ไขภาพข้อมูล RAM ตามต้องการ

การลบหน่วยความจำโปรแกรมแฟลช
หลังจากทำตามขั้นตอนที่ 1 และ 2 ด้านบนแล้ว ให้ดำเนินการสี่ขั้นตอนต่อไปนี้เพื่อลบหน้าหน่วยความจำของโปรแกรม Flash:

  1. ตั้งค่าบิต NVMOP[3:0] (NVMCON[3:0]) เพื่อลบหน้าของหน่วยความจำโปรแกรม Flash ที่อ่านจากขั้นตอนที่ 1
  2. เขียนที่อยู่เริ่มต้นของหน้าที่จะลบลงในทะเบียน NVMADRU และ NMVADR
  3. เมื่อปิดใช้งานการขัดจังหวะ:
    • a) เขียนลำดับคีย์ลงในรีจิสเตอร์ NVMKEY เพื่อเปิดใช้งานการตั้งค่าบิต WR (NVMCON[15])
    • b) ตั้งค่าบิต WR; นี่จะเป็นการเริ่มวงจรการลบ
    • c) ดำเนินการสองคำสั่ง NOP
  4. บิต WR จะถูกล้างเมื่อรอบการลบเสร็จสิ้น

การเขียนโปรแกรมหน้าหน่วยความจำแฟลช
ขั้นตอนต่อไปคือการตั้งโปรแกรมหน้าหน่วยความจำแฟลช หน้าหน่วยความจำแฟลชได้รับการตั้งโปรแกรมโดยใช้ข้อมูลจากภาพที่สร้างขึ้นในขั้นตอนที่ 1 ข้อมูลจะถูกถ่ายโอนไปยังสลักเขียนโดยเพิ่มทีละคำหรือแถว อุปกรณ์ทั้งหมดมีความสามารถในการเขียนโปรแกรมคำสั่งคู่ (โปรดดูที่บท "Flash Program Memory" ในเอกสารข้อมูลเฉพาะของอุปกรณ์เพื่อดูว่ามีการเขียนโปรแกรมแถวประเภทใดและประเภทใดบ้าง) หลังจากโหลดแลตช์เขียนแล้ว การดำเนินการตั้งโปรแกรมจะเริ่มต้นขึ้น ซึ่งจะถ่ายโอนข้อมูลจาก เขียนสลักลงในหน่วยความจำแฟลช ทำซ้ำจนกว่าจะตั้งโปรแกรมทั้งหน้า ทำซ้ำขั้นตอนสามขั้นตอนต่อไปนี้ โดยเริ่มต้นที่คำคำสั่งแรกของหน้า Flash และเพิ่มทีละขั้นตอนของคำโปรแกรมคู่หรือแถวคำสั่ง จนกว่าจะตั้งโปรแกรมทั้งหน้า:

  1. โหลดสลักเขียน:
    • a) ตั้งค่ารีจิสเตอร์ TBLPAG ให้ชี้ไปที่ตำแหน่งของสลักเขียน
    • b) โหลดสลักตามจำนวนที่ต้องการโดยใช้คู่คำสั่ง TBLWTL และ TBLWTH:
    • สำหรับการเขียนโปรแกรมแบบสองคำ จำเป็นต้องมีคำสั่ง TBLWTL และ TBLWTH สองคู่
    • สำหรับการเขียนโปรแกรมแถว จำเป็นต้องมีคำสั่ง TBLWTL และ TBLWTH คู่หนึ่งสำหรับองค์ประกอบแถวของคำสั่งแต่ละคำสั่ง
  2. เริ่มต้นการดำเนินการตั้งโปรแกรม:
    • ก) ตั้งค่าบิต NVMOP[3:0] (NVMCON[3:0]) เพื่อตั้งโปรแกรมคำสั่งคู่หรือแถวคำสั่งตามความเหมาะสม
      b) เขียนที่อยู่แรกของคำสั่งคู่หรือแถวคำสั่งที่จะตั้งโปรแกรมลงในรีจิสเตอร์ NVMADRU และ NVMADR
      c) เมื่อปิดใช้งานการขัดจังหวะ:
      • เขียนลำดับคีย์ลงใน NVMKEY register เพื่อเปิดใช้งานการตั้งค่าบิต WR (NVMCON[15])
      • ตั้งค่าบิต WR; นี่จะเป็นการเริ่มวงจรการลบ
      • ดำเนินการสองคำสั่ง NOP
  3. บิต WR จะถูกล้างเมื่อวงจรการเขียนโปรแกรมเสร็จสมบูรณ์

ทำซ้ำขั้นตอนทั้งหมดตามต้องการเพื่อตั้งโปรแกรมหน่วยความจำโปรแกรมแฟลชตามจำนวนที่ต้องการ

บันทึก

  1. ผู้ใช้ควรจำไว้ว่าจำนวนหน่วยความจำโปรแกรม Flash ขั้นต่ำที่สามารถลบได้โดยใช้ RTSP คือหน้าเดียวที่ถูกลบ ดังนั้น สิ่งสำคัญคือต้องจัดเก็บรูปภาพของตำแหน่งเหล่านี้ไว้ใน RAM สำหรับวัตถุประสงค์ทั่วไปก่อนที่จะเริ่มวงจรการลบ
  2. แถวหรือคำในหน่วยความจำของโปรแกรม Flash ไม่ควรตั้งโปรแกรมเกินสองครั้งก่อนที่จะถูกลบ
  3. บนอุปกรณ์ที่มี Configuration bytes เก็บไว้ในหน้าสุดท้ายของ Flash การดำเนินการลบหน้าในหน้าสุดท้ายของหน่วยความจำโปรแกรมจะล้าง Configuration bytes ซึ่งเปิดใช้งานการป้องกันรหัส บนอุปกรณ์เหล่านี้ ไม่ควรลบหน้าสุดท้ายของหน่วยความจำแฟลช

ลบหนึ่งหน้าของแฟลช
ลำดับรหัสที่แสดงในตัวอย่างampสามารถใช้ le 4-1 เพื่อลบหน้าของหน่วยความจำโปรแกรมแฟลช รีจิสเตอร์ NVMCON ได้รับการกำหนดค่าให้ลบหน่วยความจำโปรแกรมหนึ่งหน้า รีจิสเตอร์ NVMADR และ NMVADRU ถูกโหลดพร้อมกับแอดเดรสเริ่มต้นของเพจที่จะลบ ต้องลบหน่วยความจำของโปรแกรมที่ขอบเขตที่อยู่ของหน้า "คู่" ดูบท "Flash Program Memory" ของเอกสารข้อมูลเฉพาะของอุปกรณ์เพื่อกำหนดขนาดของหน้า Flash
การดำเนินการลบเริ่มต้นโดยการเขียนการปลดล็อคพิเศษหรือลำดับคีย์ไปยังรีจิสเตอร์ NVMKEY ก่อนตั้งค่าบิต WR (NVMCON[15]) ลำดับการปลดล็อกจำเป็นต้องดำเนินการตามลำดับที่แน่นอน ดังที่แสดงในตัวอย่างample 4-1 โดยไม่หยุดชะงัก; ดังนั้นจึงต้องปิดใช้งานการขัดจังหวะ
ควรใส่คำสั่ง NOP สองคำสั่งในรหัสหลังจากรอบการลบ ในอุปกรณ์บางอย่าง บิตการกำหนดค่าจะถูกเก็บไว้ในหน้าสุดท้ายของโปรแกรม Flash ด้วยอุปกรณ์เหล่านี้ การดำเนินการลบหน้าในหน้าสุดท้ายของหน่วยความจำโปรแกรมจะลบไบต์การกำหนดค่าแฟลช ทำให้สามารถป้องกันโค้ดได้ ผู้ใช้ไม่ควรดำเนินการลบหน้าในหน้าสุดท้ายของหน่วยความจำโปรแกรมMICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (13)MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (14)

กำลังโหลดเขียนสลัก
สลักการเขียนถูกใช้เป็นกลไกการจัดเก็บระหว่างการเขียนตารางแอ็พพลิเคชันของผู้ใช้และลำดับการเขียนโปรแกรมจริง ระหว่างการเขียนโปรแกรม อุปกรณ์จะถ่ายโอนข้อมูลจากสลักเขียนไปยังหน่วยความจำแฟลช สำหรับอุปกรณ์ที่รองรับการเขียนโปรแกรมแบบแถว เช่นample 4-3 แสดงลำดับของคำสั่งที่สามารถใช้เพื่อโหลดสลักเขียน 128 ตัว (คำสั่ง 128 คำ) คำสั่ง 128 TBLWTL และ 128 TBLWTH จำเป็นสำหรับการโหลดสลักการเขียนสำหรับการเขียนโปรแกรมแถวของหน่วยความจำโปรแกรม Flash โปรดดูที่บท "Flash Program Memory" ของเอกสารข้อมูลเฉพาะของอุปกรณ์เพื่อกำหนดจำนวนของสลักโปรแกรมที่มีอยู่ในอุปกรณ์ของคุณ สำหรับอุปกรณ์ที่ไม่รองรับการเขียนโปรแกรมแบบแถว เช่นample 4-4 แสดงลำดับคำสั่งที่สามารถใช้เพื่อโหลดสลักเขียนสองตัว (คำสั่งสองคำ) จำเป็นต้องใช้คำสั่ง TBLWTL สองคำสั่งและ TBLWTH สองคำสั่งเพื่อโหลดแลตช์เขียน

บันทึก

  1. รหัสสำหรับ Load_Write_Latch_Row แสดงในตัวอย่างample 4-3 และรหัสสำหรับ Load_Write_Latch_Word แสดงใน Exampเลอ 4-4. รหัสในทั้งสองตัวอย่างนี้amples ถูกอ้างถึงในภายหลังเช่นampเลส.
  2. โปรดดูแผ่นข้อมูลอุปกรณ์เฉพาะสำหรับจำนวนสลักMICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (15)

การเขียนโปรแกรมแถวเดียว เช่นAMPLE
การลงทะเบียน NVMCON ได้รับการกำหนดค่าให้ตั้งโปรแกรมหน่วยความจำโปรแกรม Flash หนึ่งแถว การทำงานของโปรแกรมเริ่มต้นโดยการเขียนการปลดล็อคพิเศษหรือลำดับคีย์ไปยังรีจิสเตอร์ NVMKEY ก่อนตั้งค่าบิต WR (NVMCON[15]) ลำดับการปลดล็อกจำเป็นต้องดำเนินการโดยไม่หยุดชะงัก และตามลำดับที่แน่นอน ดังที่แสดงในตัวอย่างampเลอ 4-5. ดังนั้นต้องปิดการใช้งานการขัดจังหวะก่อนที่จะเขียนลำดับ

บันทึก: อุปกรณ์บางตัวเท่านั้นที่มีความสามารถในการตั้งโปรแกรมแถว โปรดดูที่บท "Flash Program Memory" ของเอกสารข้อมูลเฉพาะของอุปกรณ์เพื่อดูว่ามีตัวเลือกนี้หรือไม่

ควรใส่คำแนะนำ NOP สองชุดในโค้ดหลังจากรอบการเขียนโปรแกรมMICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (16) MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (17)

การเขียนโปรแกรมแถวโดยใช้บัฟเฟอร์แรม
อุปกรณ์ dsPIC33 บางรุ่นอนุญาตให้มีการเขียนโปรแกรมแถวได้โดยตรงจากพื้นที่บัฟเฟอร์ใน data RAM แทนที่จะต้องผ่านสลักยึดเพื่อถ่ายโอนข้อมูลด้วยคำสั่ง TBLWT ตำแหน่งของบัฟเฟอร์ RAM ถูกกำหนดโดยการลงทะเบียน NVMSRCADR ซึ่งโหลดด้วยที่อยู่ RAM ข้อมูลที่มีคำแรกของข้อมูลโปรแกรมที่จะเขียน

ก่อนดำเนินการโปรแกรม ต้องโหลดพื้นที่บัฟเฟอร์ใน RAM พร้อมกับแถวข้อมูลที่จะตั้งโปรแกรม แรมสามารถโหลดได้ทั้งแบบบีบอัด (แพ็ค) หรือไม่บีบอัด ที่เก็บข้อมูลแบบบีบอัดใช้คำข้อมูลหนึ่งคำเพื่อจัดเก็บไบต์ที่มีนัยสำคัญที่สุด (MSB) ของคำข้อมูลโปรแกรมที่อยู่ติดกันสองคำ รูปแบบที่ไม่บีบอัดจะใช้คำข้อมูลสองคำสำหรับแต่ละคำข้อมูลของโปรแกรม โดยที่ไบต์บนของคำอื่นๆ คือ 00h รูปแบบที่บีบอัดจะใช้พื้นที่ประมาณ 3/4 ของพื้นที่ใน data RAM เมื่อเทียบกับรูปแบบที่ไม่บีบอัด ในทางกลับกัน รูปแบบที่ไม่บีบอัดจะเลียนแบบโครงสร้างของ data word ของโปรแกรม 24 บิต พร้อมด้วย phantom byte ด้านบน รูปแบบข้อมูลถูกเลือกโดยบิต RPDF (NVMCON[9]) ทั้งสองรูปแบบแสดงในรูปที่ 4-1

เมื่อโหลดบัฟเฟอร์ RAM แล้ว ตัวชี้ที่อยู่แฟลช NVMADR และ NVMADRU จะถูกโหลดด้วยที่อยู่เริ่มต้น 24 บิตของแถว Flash ที่จะเขียน เช่นเดียวกับการเขียนโปรแกรมสลักการเขียน กระบวนการเริ่มต้นโดยการเขียนลำดับการปลดล็อก NVM ตามด้วยการตั้งค่าบิต WR เมื่อเริ่มต้นแล้ว อุปกรณ์จะโหลดสลักด้านขวาโดยอัตโนมัติและเพิ่มการลงทะเบียนที่อยู่ NVM จนกว่าจะตั้งโปรแกรมไบต์ทั้งหมด อดีตampบรรทัดที่ 4-7 แสดงอดีตampของกระบวนการ หากตั้งค่า NVMSRCADR เป็นค่าที่ข้อมูลเกิดข้อผิดพลาดอันเดอร์รัน บิต URERR (NVMCON[8]) จะถูกตั้งค่าเพื่อระบุเงื่อนไข
อุปกรณ์ที่ใช้การเขียนโปรแกรมแถวบัฟเฟอร์ RAM ยังใช้สลักเขียนหนึ่งหรือสองตัว สิ่งเหล่านี้โหลดโดยใช้คำสั่ง TBLWT และใช้เพื่อดำเนินการโปรแกรมคำMICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (18)

การเขียนโปรแกรมคำ
รีจิสเตอร์ NVMCON ได้รับการกำหนดค่าให้ตั้งโปรแกรมคำสั่งสองคำสั่งของหน่วยความจำโปรแกรมแฟลช การทำงานของโปรแกรมเริ่มต้นโดยการเขียนการปลดล็อคพิเศษหรือลำดับคีย์ไปยังรีจิสเตอร์ NVMKEY ก่อนตั้งค่าบิต WR (NVMCON[15]) ลำดับการปลดล็อกจำเป็นต้องดำเนินการตามลำดับที่แน่นอน ดังที่แสดงในตัวอย่างample 4-8 โดยไม่หยุดชะงัก ดังนั้นควรปิดใช้งานการขัดจังหวะก่อนที่จะเขียนลำดับ
ควรใส่คำแนะนำ NOP สองชุดในโค้ดหลังจากรอบการเขียนโปรแกรมMICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (19) MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (20)

การเขียนการลงทะเบียนการกำหนดค่าอุปกรณ์
บนอุปกรณ์บางชนิด บิตการกำหนดค่าจะถูกจัดเก็บไว้ในพื้นที่หน่วยความจำการกำหนดค่าในส่วนที่เรียกว่า "การลงทะเบียนการกำหนดค่าอุปกรณ์" บนอุปกรณ์อื่นๆ บิตการกำหนดค่าจะถูกจัดเก็บไว้ในหน้าสุดท้ายของพื้นที่หน่วยความจำผู้ใช้โปรแกรม Flash ในส่วนที่เรียกว่า “ไบต์การกำหนดค่าแฟลช” ด้วยอุปกรณ์เหล่านี้ การดำเนินการลบหน้าในหน้าสุดท้ายของหน่วยความจำโปรแกรมจะลบไบต์การกำหนดค่าแฟลช ซึ่งเปิดใช้งานการป้องกันรหัส ดังนั้นผู้ใช้ไม่ควรดำเนินการลบหน้าในหน้าสุดท้ายของหน่วยความจำโปรแกรม โปรดดูแผนผังหน่วยความจำโปรแกรมในบท "องค์กรหน่วยความจำ" ของแผ่นข้อมูลอุปกรณ์เฉพาะเพื่อระบุตำแหน่งของบิตการกำหนดค่า

เมื่อบิตการกำหนดค่าถูกจัดเก็บในพื้นที่หน่วยความจำการกำหนดค่า สามารถใช้ RTSP เพื่อเขียนไปยังรีจิสเตอร์การกำหนดค่าอุปกรณ์ และ RTSP อนุญาตให้รีจิสเตอร์การกำหนดค่าแต่ละรายการถูกเขียนซ้ำทีละรายการโดยไม่ต้องทำการลบรอบก่อน ต้องใช้ความระมัดระวังเมื่อเขียนรีจิสเตอร์การกำหนดค่า เนื่องจากรีจิสเตอร์จะควบคุมพารามิเตอร์การทำงานของอุปกรณ์ที่สำคัญ เช่น แหล่งสัญญาณนาฬิการะบบ การเปิดใช้งาน PLL และ WDT

ขั้นตอนการเขียนโปรแกรมการลงทะเบียนการกำหนดค่าอุปกรณ์คล้ายกับขั้นตอนการเขียนโปรแกรมหน่วยความจำโปรแกรม Flash ยกเว้นว่าต้องใช้คำสั่ง TBLWTL เท่านั้น เนื่องจากไม่ได้ใช้แปดบิตบนในรีจิสเตอร์การกำหนดค่าอุปกรณ์แต่ละเครื่อง นอกจากนี้ ต้องตั้งค่าบิต 23 ของที่อยู่การเขียนตารางเพื่อเข้าถึงการลงทะเบียนการกำหนดค่า โปรดดู "การกำหนดค่าอุปกรณ์" (DS70000618) ใน "คู่มืออ้างอิงสำหรับครอบครัว dsPIC33/PIC24" และบท "คุณสมบัติพิเศษ" ในแผ่นข้อมูลอุปกรณ์เฉพาะสำหรับคำอธิบายทั้งหมดของการลงทะเบียนการกำหนดค่าอุปกรณ์

บันทึก

  1. การเขียนไปยังอุปกรณ์ การลงทะเบียนการกำหนดค่าไม่พร้อมใช้งานในทุกอุปกรณ์ อ้างอิงถึงบท "คุณสมบัติพิเศษ" ในแผ่นข้อมูลอุปกรณ์เฉพาะเพื่อระบุโหมดที่พร้อมใช้งานตามคำจำกัดความบิต NVMOP[3:0] เฉพาะอุปกรณ์
  2. ขณะดำเนินการ RTSP ในการลงทะเบียนการกำหนดค่าอุปกรณ์ อุปกรณ์จะต้องทำงานโดยใช้ FRC Oscillator ภายใน (ไม่มี PLL) หากอุปกรณ์ทำงานจากแหล่งสัญญาณนาฬิกาอื่น จะต้องดำเนินการสลับนาฬิกาไปยัง FRC Oscillator ภายใน (NOSC[2:0] = 000) ก่อนที่จะดำเนินการ RTSP ในการลงทะเบียนการกำหนดค่าอุปกรณ์
  3. หากบิตเลือกโหมดออสซิลเลเตอร์หลัก (POSCMD[1:0]) ในรีจิสเตอร์การกำหนดค่าออสซิลเลเตอร์ (FOSC) ถูกโปรแกรมใหม่เป็นค่าใหม่ ผู้ใช้ต้องแน่ใจว่าบิตโหมดการสลับสัญญาณนาฬิกา (FCKSM[1:0]) ใน การลงทะเบียน FOSC มีค่าโปรแกรมเริ่มต้นเป็น '0' ก่อนที่จะดำเนินการ RTSP นี้

การกำหนดค่า การลงทะเบียน การเขียนอัลกอริทึม
ขั้นตอนทั่วไปมีดังนี้:

  1. เขียนค่าการกำหนดค่าใหม่ลงในสลักการเขียนตารางโดยใช้คำสั่ง TBLWTL
  2. กำหนดค่า NVMCON สำหรับการเขียนรีจิสเตอร์การกำหนดค่า (NVMCON = 0x4000)
  3. เขียนที่อยู่ของการลงทะเบียนการกำหนดค่าที่จะตั้งโปรแกรมลงในการลงทะเบียน NVMADRU และ NVMADR
  4. ปิดการขัดจังหวะหากเปิดใช้งาน
  5. เขียนลำดับคีย์ในการลงทะเบียน NVMKEY
  6. เริ่มลำดับการเขียนโดยการตั้งค่าบิต WR (NVMCON[15])
  7. เปิดใช้งานการขัดจังหวะอีกครั้ง หากจำเป็น

Example 4-10 แสดงลำดับรหัสที่สามารถใช้เพื่อแก้ไขการลงทะเบียนการกำหนดค่าอุปกรณ์MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (21)

แผนที่ลงทะเบียน

ข้อมูลสรุปของการลงทะเบียนที่เกี่ยวข้องกับการเขียนโปรแกรมแฟลชมีอยู่ในตาราง 5-1MICROCHIP-PIC24-แฟลช-การเขียนโปรแกรม- (22)

หมายเหตุแอปพลิเคชันที่เกี่ยวข้อง

ส่วนนี้แสดงรายการบันทึกการใช้งานที่เกี่ยวข้องกับส่วนนี้ของคู่มือ บันทึกการใช้งานเหล่านี้อาจไม่ได้เขียนขึ้นโดยเฉพาะสำหรับตระกูลผลิตภัณฑ์ dsPIC33/PIC24 แต่แนวคิดมีความเกี่ยวข้องและสามารถใช้กับการปรับเปลี่ยนและข้อจำกัดที่เป็นไปได้ บันทึกการใช้งานปัจจุบันที่เกี่ยวข้องกับการเขียนโปรแกรมแฟลชคือ:

บันทึก: กรุณาเยี่ยมชมไมโครชิป webงาน (www.ไมโครชิป.คอม) สำหรับ Application Notes และรหัสเพิ่มเติม เช่นampสำหรับอุปกรณ์ตระกูล dsPIC33/PIC24

ประวัติการแก้ไข

ฉบับแก้ไข A (สิงหาคม 2009)
เอกสารนี้เป็นเวอร์ชันเริ่มต้นของเอกสารนี้

การแก้ไข B (กุมภาพันธ์ 2011)
การแก้ไขนี้มีการอัปเดตต่อไปนี้:

  • Exampเลส:
    • ลบออกเช่นampเลอ 5-3 และอดีตampเลอ 5-4
    • อัปเดตเช่นampเล 4-1, เช่นampเลอ 4-5 และอดีตampเลอ 4-10
    • การอ้างอิงใดๆ ถึง #WR ได้รับการอัปเดตเป็น #15 ในตัวอย่างampเล 4-1, เช่นampเลอ 4-5 และอดีตampเลอ 4-8
    • อัปเดตสิ่งต่อไปนี้ใน Exampด่าน 4-3:
  • อัปเดตชื่อเรื่อง “Word Programming” เป็น “Loading Write Latches for Row Programming”
  • การอ้างอิงถึง #ram_image ได้รับการอัพเดตเป็น #0xFA
    • เพิ่มอดีตampเลอ 4-4
    • อัปเดตชื่อเรื่องใน Exampเลอ 4-8
  • หมายเหตุ:
    • เพิ่มหมายเหตุสองรายการในหัวข้อ 4.2 “การดำเนินการเขียนโปรแกรม Flash”
    • อัปเดตหมายเหตุในหัวข้อ 4.5.2 “กำลังโหลดสลักเขียน”
    • เพิ่มหมายเหตุสามข้อในหัวข้อ 4.6 “การเขียนการลงทะเบียนการกำหนดค่าอุปกรณ์”
    • เพิ่มหมายเหตุ 1 ในตารางที่ 5-1
  • ลงทะเบียน:
    • อัปเดตค่าบิตสำหรับ NVMOP[3:0]: การทำงานของ NVM เลือกบิตในการลงทะเบียน Flash Memory Control (NVMCON) (ดูที่การลงทะเบียน 3-1)
  • ส่วนต่างๆ:
    • ลบส่วน 5.2.1.4 “โหมดเขียนคำ” และ 5.2.1.5 “โหมดเขียนไบต์”
    • อัปเดตหัวข้อ 3.0 “ควบคุมการลงทะเบียน”
    • อัปเดตสิ่งต่อไปนี้ในหัวข้อ 4.5.5 “Word Programming”:
  • เปลี่ยนชื่อหัวข้อ “Programming One Word of Flash Memory” เป็น “Word Programming”
  • ปรับปรุงวรรคแรก
  • เปลี่ยนคำว่า "คำเดียว" เป็น "คู่คำ" ในวรรคสอง
    • เพิ่มขั้นตอนที่ 1 ใหม่ในส่วน 4.6.1 “การกำหนดค่าขั้นตอนวิธีการเขียนทะเบียน”
  • ตาราง:
    • อัปเดตตาราง 5-1
  • การอ้างอิงถึงหน่วยความจำโปรแกรมบางส่วนได้รับการอัปเดตเป็นหน่วยความจำโปรแกรมแฟลช
  • การอัปเดตเล็กน้อยอื่นๆ เช่น การอัปเดตภาษาและการจัดรูปแบบรวมอยู่ในเอกสารทั้งหมด

การแก้ไข C (มิถุนายน 2011)
การแก้ไขนี้มีการอัปเดตต่อไปนี้:

  • Exampเลส:
    • อัปเดตเช่นampเลอ 4-1
    • อัปเดตเช่นampเลอ 4-8
  • หมายเหตุ:
    • เพิ่มหมายเหตุในหัวข้อ 4.1 “การดำเนินการ RTSP”
    • เพิ่มหมายเหตุ 3 ในส่วน 4.2 “การดำเนินการโปรแกรมแฟลช”
    • เพิ่มหมายเหตุ 3 ในหัวข้อ 4.2.1 “RTSP Programming Algorithm”
    • เพิ่มหมายเหตุในส่วน 4.5.1 “การลบหนึ่งหน้าของ Flash”
    • เพิ่มหมายเหตุ 2 ในหัวข้อ 4.5.2 “การโหลดสลักเขียน”
  • ลงทะเบียน:
    • อัปเดตคำอธิบายบิตสำหรับบิต 15-0 ในการลงทะเบียนที่อยู่หน่วยความจำแบบไม่ลบเลือน (ดูที่การลงทะเบียน 3-3)
  • ส่วนต่างๆ:
    • อัปเดตหัวข้อ 4.1 “การดำเนินการ RTSP”
    • อัปเดตหัวข้อ 4.5.5 “การเขียนโปรแกรมคำ”
  • การอัปเดตเล็กน้อยอื่นๆ เช่น การอัปเดตภาษาและการจัดรูปแบบรวมอยู่ในเอกสารทั้งหมด

ฉบับแก้ไข D (ธันวาคม 2011)
การแก้ไขนี้มีการอัปเดตต่อไปนี้:

  • อัปเดตส่วน 2.1.3 “สลักเขียนตาราง”
  • อัปเดตส่วนที่ 3.2 “การลงทะเบียน NVMKEY”
  • อัปเดตหมายเหตุใน NVMCON: Flash Memory Control Register (ดู Register 3-1)
  • มีการอัปเดตมากมายตลอดทั้งหัวข้อ 4.0 “Run-Time Self-Programming (RTSP)”
  • การอัปเดตเล็กน้อยอื่นๆ เช่น การอัปเดตภาษาและการจัดรูปแบบรวมอยู่ในเอกสารทั้งหมด

การแก้ไข E (ตุลาคม 2018)
การแก้ไขนี้มีการอัปเดตต่อไปนี้:

  • เพิ่มอดีตampเล 2-2, เช่นampเล 4-2, เช่นampเลอ 4-6 และอดีตampเลอ 4-9
  • เพิ่มหัวข้อ 4.5.4 “การเขียนโปรแกรมแถวโดยใช้บัฟเฟอร์ RAM”
  • อัปเดตส่วน 1.0 “บทนำ”, ส่วนที่ 3.3 “การลงทะเบียนที่อยู่ NVM”, ส่วนที่ 4.0 “การเขียนโปรแกรมด้วยตนเองรันไทม์ (RTSP)” และส่วนที่ 4.5.3 “การเขียนโปรแกรมแถวเดียวเช่นampเลอ”
  • อัปเดตการลงทะเบียน 3-1
  • อัปเดตเช่นampเลอ 4-7
  • อัปเดตตาราง 5-1

แก้ไข F (พฤศจิกายน 2021)
เพิ่มส่วน 3.2.1 “การปิดใช้งานการขัดจังหวะ”
อัปเดตเช่นampเล 3-1, เช่นampเล 4-1, เช่นampเล 4-2, เช่นampเล 4-5, เช่นampเล 4-6, เช่นampเล 4-7, เช่นampเล 4-8, เช่นampเลอ 4-9 และอดีตampเลอ 4-10.
อัปเดตส่วน 3.2 "NVMKEY Register" ส่วน 4.5.1 "ลบหนึ่งหน้าของ Flash" ส่วน 4.5.3 "Single Row Programming Example” และส่วน 4.6.1 “การกำหนดค่าขั้นตอนวิธีการเขียนรีจิสเตอร์”

โปรดทราบรายละเอียดต่อไปนี้เกี่ยวกับคุณลักษณะการป้องกันรหัสบนผลิตภัณฑ์ Microchip:

  • ผลิตภัณฑ์ Microchip ตรงตามข้อกำหนดที่ระบุไว้ในแผ่นข้อมูล Microchip เฉพาะของตน
  • Microchip เชื่อว่ากลุ่มผลิตภัณฑ์ของตนจะปลอดภัยเมื่อใช้ตามลักษณะที่ต้องการ ภายใต้ข้อกำหนดการทำงาน และภายใต้เงื่อนไขปกติ
  • คุณค่าของไมโครชิปและปกป้องสิทธิ์ในทรัพย์สินทางปัญญาอย่างจริงจัง การพยายามละเมิดคุณสมบัติการป้องกันโค้ดของผลิตภัณฑ์ไมโครชิปถือเป็นสิ่งต้องห้ามโดยเด็ดขาด และอาจละเมิดกฎหมาย Digital Millennium Copyright Act
  • ทั้งไมโครชิปและผู้ผลิตเซมิคอนดักเตอร์รายอื่นไม่สามารถรับประกันความปลอดภัยของรหัสได้ การป้องกันรหัสไม่ได้หมายความว่าเรารับประกันว่าผลิตภัณฑ์จะ "ไม่แตกหัก" การป้องกันรหัสมีการพัฒนาอย่างต่อเนื่อง ไมโครชิปมุ่งมั่นที่จะปรับปรุงคุณสมบัติการป้องกันรหัสของผลิตภัณฑ์ของเราอย่างต่อเนื่อง

สิ่งพิมพ์และข้อมูลในที่นี้สามารถใช้ได้เฉพาะกับผลิตภัณฑ์ของไมโครชิป ซึ่งรวมถึงการออกแบบ ทดสอบ และผสานรวมผลิตภัณฑ์ของไมโครชิปเข้ากับแอปพลิเคชันของคุณ การใช้ข้อมูลนี้ในลักษณะอื่นใดถือเป็นการละเมิดข้อกำหนดเหล่านี้ ข้อมูลเกี่ยวกับแอปพลิเคชันของอุปกรณ์มีให้เพื่อความสะดวกของคุณเท่านั้นและอาจถูกแทนที่ด้วยการอัปเดต เป็นความรับผิดชอบของคุณที่จะต้องตรวจสอบให้แน่ใจว่าใบสมัครของคุณตรงตามข้อกำหนดของคุณ ติดต่อสำนักงานขายของ Microchip ในพื้นที่ของคุณเพื่อขอรับการสนับสนุนเพิ่มเติม หรือขอรับการสนับสนุนเพิ่มเติมที่ https://www.microchip.com/en-us/support/design-help/client-supportservices.

ข้อมูลนี้จัดทำโดยไมโครชิพ “ตามที่เป็น” MICROCHIP ไม่รับรองหรือรับประกันใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัย เป็นลายลักษณ์อักษรหรือด้วยวาจา ตามกฎหมายหรืออื่น ๆ ที่เกี่ยวข้องกับข้อมูล รวมถึงแต่ไม่จำกัดเพียงการรับประกันโดยนัยใด ๆ ของการไม่ละเมิด ความสามารถในการซื้อขาย และความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ สภาพ คุณภาพ หรือประสิทธิภาพของมัน ไม่ว่าในกรณีใดก็ตาม MICROCHIP จะไม่รับผิดต่อความสูญเสีย ความเสียหาย ค่าใช้จ่าย หรือค่าใช้จ่ายใดๆ ที่เกี่ยวข้องกับข้อมูลหรือการใช้ข้อมูลไม่ว่ากรณีใดๆ ก็ตาม แม้ว่าจะเกิดจาก MICROCHIP ก็ตาม ความเป็นไปได้หรือความเสียหายสามารถคาดการณ์ได้ ภายในขอบเขตสูงสุดที่กฎหมายอนุญาต ความรับผิดทั้งหมดของไมโครชิปต่อการเรียกร้องใดๆ ที่เกี่ยวข้องกับข้อมูลหรือการใช้งานจะไม่เกินจำนวนค่าธรรมเนียม (ถ้ามี) ที่คุณได้จ่ายโดยตรงให้กับไมโครชิพสำหรับข้อมูลดังกล่าว

การใช้เครื่องมือไมโครชิปในการช่วยชีวิตและ/หรือการใช้งานด้านความปลอดภัยเป็นความเสี่ยงของผู้ซื้อโดยสิ้นเชิง และผู้ซื้อตกลงที่จะปกป้อง ชดเชย และทำให้ไมโครชิปไม่ต้องรับผิดใดๆ จากความเสียหาย การเรียกร้อง การฟ้องร้อง หรือค่าใช้จ่ายใดๆ ทั้งสิ้นที่เกิดจากการใช้งานดังกล่าว จะไม่มีการให้ใบอนุญาตใดๆ ไม่ว่าโดยปริยายหรือด้วยวิธีอื่นใด ภายใต้สิทธิ์ในทรัพย์สินทางปัญญาของไมโครชิป เว้นแต่จะระบุไว้เป็นอย่างอื่น

สำหรับข้อมูลเกี่ยวกับระบบการจัดการคุณภาพของ Microchip โปรดไปที่ www.microchip.com/quality.

เครื่องหมายการค้า

ชื่อและโลโก้ Microchip, โลโก้ Microchip, Adaptec, AnyRate, AVR, โลโก้ AVR, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, โลโก้ Microsemi, MOST, โลโก้ MOST, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, โลโก้ PIC32, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, โลโก้ SST, SuperFlash , Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron และ XMEGA เป็นเครื่องหมายการค้าจดทะเบียนของ Microchip Technology Incorporated ในสหรัฐอเมริกาและประเทศอื่นๆ AgileSwitch, APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed ​​Control, HyperLight Load, IntelliMOS, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, โลโก้ ProASIC Plus, Quiet-Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, WinPath และ ZL เป็นเครื่องหมายการค้าจดทะเบียนของ Microchip Technology Incorporated ในสหรัฐอเมริกา

การปราบปรามคีย์ที่อยู่ติดกัน, AKS, ยุคอนาล็อกสำหรับดิจิตอล, ตัวเก็บประจุใดๆ, AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, การจับคู่ค่าเฉลี่ยแบบไดนามิก, DAM , ECAN, Espresso T1S, EtherGREEN, GridTime, IdealBridge, การเขียนโปรแกรมอนุกรมในวงจร, ICSP, INICnet, การขนานอัจฉริยะ, การเชื่อมต่อระหว่างชิป, JitterBlocker, ปุ่มบนจอแสดงผล, maxCrypto, สูงสุดView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB โลโก้ที่ผ่านการรับรอง, MPLIB, MPLINK, MultiTRAK, NetDetach, NVM Express, NVMe, การสร้างรหัสรอบรู้, PICDEM, PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE , Ripple Blocker, RTAX, RTG4, SAM-ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect และ ZENA เป็นเครื่องหมายการค้าของ Microchip Technology Incorporated ในสหรัฐอเมริกาและประเทศอื่นๆ

SQTP เป็นเครื่องหมายบริการของ Microchip Technology Incorporated ในสหรัฐอเมริกา
โลโก้ Adaptec, Frequency on Demand, Silicon Storage Technology, Symmcom และ Trusted Time เป็นเครื่องหมายการค้าจดทะเบียนของ Microchip Technology Inc. ในประเทศอื่นๆ
GestIC เป็นเครื่องหมายการค้าจดทะเบียนของ Microchip Technology Germany II GmbH & Co. KG ซึ่งเป็นบริษัทในเครือของ Microchip Technology Inc. ในประเทศอื่นๆ
เครื่องหมายการค้าอื่น ๆ ทั้งหมดที่กล่าวถึงในที่นี้เป็นทรัพย์สินของบริษัทที่เกี่ยวข้อง
© 2009-2021, Microchip Technology Incorporated และบริษัทสาขา
สงวนลิขสิทธิ์.
ISBN: 978-1-5224-9314-3

การขายและบริการทั่วโลก

อเมริกา

  • สำนักงานใหญ่
    2355 เวสต์แชนด์เลอร์บูเลอวาร์ด
    แชนด์เลอร์ AZ 85224-6199
    โทร: 480-792-7200
    โทรสาร: 480-792-7277
    การสนับสนุนด้านเทคนิค: http://www.microchip.com/
    สนับสนุน Web ที่อยู่: www.ไมโครชิป.คอม
  • แอตแลนตา
    ดูลูธ, จอร์เจีย
    โทร: 678-957-9614
    โทรสาร: 678-957-1455
  • ออสติน, เท็กซัส
    โทร: 512-257-3370
  • บอสตัน
    เวสต์โบโรห์, แมสซาชูเซตส์
    โทร: 774-760-0087
    โทรสาร: 774-760-0088
  • ชิคาโก
    อิตาสกา อิลลินอยส์
    โทร: 630-285-0071
    โทรสาร: 630-285-0075
  • ดัลลาส
    แอดดิสันเท็กซัส
    โทร: 972-818-7423
    โทรสาร: 972-818-2924
  • ดีทรอยต์
    โนวี มิชิแกน
    โทร: 248-848-4000
  • ฮูสตัน, เท็กซัส
    โทร: 281-894-5983
  • อินเดียนาโพลิส
    โนเบิลส์วิลล์, อินเดียน่า
    โทร: 317-773-8323
    โทรสาร: 317-773-5453
    โทร: 317-536-2380
  • ลอสแองเจลีส
    มิชชัน วีโฮ แคลิฟอร์เนีย
    โทร: 949-462-9523
    โทรสาร: 949-462-9608
    โทร: 951-273-7800
  • ราลีห์, นอร์ทแคโรไลนา
    โทร: 919-844-7510
  • นิวยอร์ก, นิวยอร์ก
    โทร: 631-435-6000
  • ซานโฮเซ แคลิฟอร์เนีย
    โทร: 408-735-9110
    โทร: 408-436-4270
  • แคนาดา – โตรอนโต
    โทร: 905-695-1980
    โทรสาร: 905-695-2078

เอเชีย/แปซิฟิก

  • ออสเตรเลีย – ซิดนีย์
    โทร: 61-2-9868-6733
  • ประเทศจีน – ปักกิ่ง
    โทร: 86-10-8569-7000
  • จีน – เฉิงตู
    โทร: 86-28-8665-5511
  • ประเทศจีน – ฉงชิ่ง
    โทร: 86-23-8980-9588
  • จีน – ตงกวน
    โทร: 86-769-8702-9880
  • ประเทศจีน – กว่างโจว
    โทร: 86-20-8755-8029
  • จีน – หางโจว
    โทร: 86-571-8792-8115
  • จีน – ฮ่องกง SAR
    โทร: 852-2943-5100
  • จีน – หนานจิง
    โทร: 86-25-8473-2460
  • จีน – ชิงเต่า
    โทร: 86-532-8502-7355
  • ประเทศจีน – เซี่ยงไฮ้
    โทร: 86-21-3326-8000
  • จีน – เสิ่นหยาง
    โทร: 86-24-2334-2829
  • จีน – เซินเจิ้น
    โทร: 86-755-8864-2200
  • จีน – ซูโจว
    โทร: 86-186-6233-1526
  • จีน – หวู่ฮั่น
    โทร: 86-27-5980-5300
  • จีน – ซีอาน
    โทร: 86-29-8833-7252
  • จีน – เซียะเหมิน
    โทร: 86-592-2388138
  • จีน – จูไห่
    โทร: 86-756-3210040
  • อินเดีย – บังกาลอร์
    โทร: 91-80-3090-4444
  • อินเดีย – นิวเดลี
    โทร: 91-11-4160-8631
  • อินเดีย – ปูเน่
    โทร: 91-20-4121-0141
  • ญี่ปุ่น – โอซาก้า
    โทร: 81-6-6152-7160
  • ญี่ปุ่น – โตเกียว
    โทร: 81-3-6880- 3770
  • เกาหลี – แดกู
    โทร: 82-53-744-4301
  • เกาหลี – โซล
    โทร: 82-2-554-7200
  • มาเลเซีย - กัวลาลัมเปอร์
    โทร: 60-3-7651-7906
  • มาเลเซีย – ปีนัง
    โทร: 60-4-227-8870
  • ฟิลิปปินส์ – มะนิลา
    โทร: 63-2-634-9065
  • สิงคโปร์
    โทร: 65-6334-8870
  • ไต้หวัน – Hsin Chu
    โทร: 886-3-577-8366
  • ไต้หวัน – เกาสง
    โทร: 886-7-213-7830
  • ไต้หวัน – ไทเป
    โทร: 886-2-2508-8600
  • ประเทศไทย – กรุงเทพมหานคร
    โทร: 66-2-694-1351
  • เวียดนาม – โฮจิมินห์
    โทร: 84-28-5448-2100

ยุโรป

  • ออสเตรีย – เวลส์
    โทร: 43-7242-2244-39
    โทรสาร: 43-7242-2244-393
  • เดนมาร์ก – โคเปนเฮเกน
    โทร: 45-4485-5910
    โทรสาร: 45-4485-2829
  • ฟินแลนด์ – เอสโป
    โทร : 358-9-4520-820
  • ฝรั่งเศส – ปารีส
    โทร: 33-1-69-53-63-20
    โทรสาร: 33-1-69-30-90-79
  • เยอรมนี – การชิง
    โทร: 49-8931-9700
  • เยอรมนี – ฮาน
    โทร: 49-2129-3766400
  • เยอรมนี – ไฮลบรอนน์
    โทร: 49-7131-72400
  • เยอรมนี – คาร์ลสรูเฮอ
    โทร: 49-721-625370
  • เยอรมนี – มิวนิค
    โทร: 49-89-627-144-0
    โทรสาร: 49-89-627-144-44
  • เยอรมนี – โรเซนไฮม์
    โทร: 49-8031-354-560
  • อิตาลี – มิลาน
    โทร: 39-0331-742611
    โทรสาร: 39-0331-466781
  • อิตาลี – ปาโดวา
    โทร: 39-049-7625286
  • เนเธอร์แลนด์ – ดรูเนน
    โทร: 31-416-690399
    โทรสาร: 31-416-690340
  • นอร์เวย์ – ทรอนด์เฮม
    โทร: 47-7288-4388
  • โปแลนด์ – วอร์ซอ
    โทร: 48-22-3325737
  • โรมาเนีย – บูคาเรสต์
    โทร: 40-21-407-87-50
  • สเปน – มาดริด
    โทร: 34-91-708-08-90
    โทรสาร: 34-91-708-08-91
  • สวีเดน – โกเธนเบิร์ก
    โทร: 46-31-704-60-40
  • สวีเดน – สตอกโฮล์ม
    โทร: 46-8-5090-4654
  • สหราชอาณาจักร – วอคกิ้งแฮม
    โทร: 44-118-921-5800
    โทรสาร: 44-118-921-5820

บันทึก:

ส่วนคู่มืออ้างอิงสำหรับครอบครัวนี้มีขึ้นเพื่อใช้เป็นส่วนเสริมของเอกสารข้อมูลอุปกรณ์ ส่วนคู่มือนี้อาจใช้ไม่ได้กับอุปกรณ์ dsPIC33/PIC24 ทั้งหมด ทั้งนี้ขึ้นอยู่กับรุ่นของอุปกรณ์ โปรดดูหมายเหตุที่จุดเริ่มต้นของบท "Flash Program Memory" ในแผ่นข้อมูลอุปกรณ์ปัจจุบันเพื่อตรวจสอบว่าเอกสารนี้รองรับอุปกรณ์ที่คุณใช้อยู่หรือไม่
เอกสารข้อมูลอุปกรณ์และส่วนคู่มืออ้างอิงสำหรับครอบครัวสามารถดาวน์โหลดได้จาก Microchip Worldwide Webเว็บไซต์อยู่ที่: http://www.microchip.com.

เอกสาร / แหล่งข้อมูล

MICROCHIP PIC24 การเขียนโปรแกรมแฟลช [พีดีเอฟ] คู่มือการใช้งาน
PIC24 การเขียนโปรแกรมแฟลช PIC24 การเขียนโปรแกรมแฟลช การเขียนโปรแกรม
MICROCHIP PIC24 การเขียนโปรแกรมแฟลช [พีดีเอฟ] คู่มือการใช้งาน
PIC24 การเขียนโปรแกรมแฟลช PIC24 การเขียนโปรแกรมแฟลช

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *