მიკროჩიპი-ლოგო

MICROCHIP PIC24 ორმაგი დანაყოფი Flash პროგრამის მეხსიერება

MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory-PRO

პროდუქტის ინფორმაცია

ყველა PIC24 და dsPIC33 მოწყობილობას გააჩნია შიდა პროგრამირებადი Flash მასივი, რომელიც შეიძლება გამოყენებულ იქნას მომხმარებლის კოდის შესასრულებლად. Flash მასივს აქვს ხანგრძლივი შენახვის ვადა და წაკითხვის/ჩაწერის ციკლების დიდი რაოდენობა, რაც უზრუნველყოფს დიდ მოქნილობას კოდის შემუშავებასა და შენახვაში. ორმაგი დანაყოფი Flash პროგრამის მეხსიერებას აქვს განახლებული ვერსია ახალი ფუნქციებით.

  • მისამართების ადგილი: PIC24 და dsPIC33 მოწყობილობები მიმართავენ 4M x 24-ბიტიან პროგრამის მეხსიერების მისამართების ადგილს.
  • მომხმარებლის პროგრამის სივრცე: პროგრამის მეხსიერების რუკა თანაბრად იყოფა მომხმარებლის პროგრამის სივრცეში (000000 სთ-დან 7FFFFF სთ-მდე).
  • მეხსიერების კონფიგურაციის სივრცე: პროგრამის მეხსიერების რუკა თანაბრად იყოფა კონფიგურაციის (ან სატესტო) მეხსიერების სივრცეში (800000h to FFFFFFh).
  • პროგრამის სივრცეში წვდომა: პროგრამის სივრცეში წვდომის სამი გზა არსებობს:
    1. 23-ბიტიანი პროგრამის მრიცხველი (PC).
    2. ცხრილის წაკითხვის (TBLRD) და ცხრილის ჩაწერის (TBLWT) ინსტრუქციები.
    3. პროგრამული მეხსიერების ნებისმიერი 32 კბაიტიანი სეგმენტის რუკებით მონაცემთა მეხსიერების მისამართის სივრცეში.

შესავალი
ყველა PIC24 და dsPIC33 მოწყობილობას აქვს შიდა პროგრამირებადი Flash მასივი მომხმარებლის კოდის შესასრულებლად. მაღალი გამძლეობის Flash მასივი უზრუნველყოფს დიდ მოქნილობას კოდების შემუშავებასა და შენახვაში, რომელიც აერთიანებს ხანგრძლივ შენახვის ხანგრძლივობას წაკითხვის/ჩაწერის ციკლების დიდ რაოდენობასთან.
Flash პროგრამის მეხსიერების ეს ვერსია ამატებს ახალ ფუნქციებს:

  • Dual Partition Flash ოპერაცია, რომელიც იძლევა ძლიერი ჩამტვირთველი სისტემების მხარდაჭერას და აპლიკაციის კოდის უსაფრთხოდ შენახვას, ოფციებით, რომლებიც შექმნილია კოდის უსაფრთხოების გასაძლიერებლად
  • LiveUpdate ოპერაცია, რომელიც საშუალებას აძლევს არააქტიური კოდის სეგმენტს (CS) შეიცვალოს ან მთლიანად წაშალოს, სანამ ძირითადი აპლიკაცია განაგრძობს შესრულებას
  • Flash მასივის პირდაპირი გაშვების დროის პროგრამირება მონაცემთა RAM სივრციდან, მონაცემთა RAM გამოსახულების სურვილისამებრ შეკუმშვით

პროდუქტის გამოყენება

ორმაგი დანაყოფი Flash პროგრამის მეხსიერების გამოსაყენებლად, მიჰყევით ამ ნაბიჯებს:

  1. იხილეთ ჩანაწერი Dual Partition Flash Program Memory თავის დასაწყისში მიმდინარე მოწყობილობის მონაცემთა ფურცელში, რათა შეამოწმოთ აქვს თუ არა ეს დოკუმენტი მხარს უჭერს მოწყობილობას, რომელსაც იყენებთ.
  2. ჩამოტვირთეთ მოწყობილობის მონაცემთა ფურცლები და ოჯახის საცნობარო სახელმძღვანელოს სექციები Microchip Worldwide-დან Webსაიტი: http://www.microchip.com.
  3. შედით პროგრამის სივრცეში ზემოთ აღწერილი სამი მეთოდიდან რომელიმეს გამოყენებით.
  4. განხორციელებული პროგრამის მეხსიერება შეიძლება დაიყოს ვექტორულ ზონად, რომელიც მოიცავს გადატვირთვისა და შეფერხების ვექტორებს და კოდის ზონად, რომელიც ასევე შეიცავს Flash კონფიგურაციის მონაცემებს. მომხმარებლის პროგრამის სივრცის განუხორციელებელ უბნებზე წვდომა (ანუ პროგრამის მეხსიერების ზედა დანერგილი საზღვრის ზემოთ) გამოიწვევს მისამართის შეცდომის ხაფანგს.

პროგრამული მეხსიერების არქიტექტურა

PIC24 და dsPIC33 მოწყობილობები მიმართავენ 4M x 24-ბიტიან პროგრამის მეხსიერების მისამართების ადგილს, როგორც ნაჩვენებია სურათზე 2-1. პროგრამის მეხსიერების რუკა თანაბრად იყოფა მომხმარებლის პროგრამის სივრცედ (000000 სთ-დან 7FFFFFსთ-მდე) და კონფიგურაციის (ან სატესტო) მეხსიერების სივრცედ (800000 სთ-დან FFFFFFh-მდე). მომხმარებლის პროგრამის სივრცე შეიცავს გადატვირთვის ვექტორს, შეფერხების ვექტორულ ცხრილებს (IVT) და პროგრამის მეხსიერებას. პროგრამის სივრცეში წვდომის სამი გზა არსებობს.

  1. 23-ბიტიანი პროგრამის მრიცხველი (PC).
  2. ცხრილის წაკითხვის (TBLRD) და ცხრილის ჩაწერის (TBLWT) ინსტრუქციები.
  3. პროგრამული მეხსიერების ნებისმიერი 32 კბაიტიანი სეგმენტის რუკებით მონაცემთა მეხსიერების მისამართის სივრცეში.

განხორციელებული პროგრამის მეხსიერება შეიძლება დაიყოს ვექტორულ ზონად, რომელიც მოიცავს გადატვირთვისა და შეფერხების ვექტორებს და კოდის ზონად, რომელიც ასევე შეიცავს Flash კონფიგურაციის მონაცემებს. მომხმარებლის პროგრამის სივრცის განუხორციელებელ უბნებზე წვდომა (ანუ პროგრამის მეხსიერების ზედა დანერგილი საზღვრის ზემოთ) გამოიწვევს მისამართის შეცდომის ხაფანგს.

ვექტორული ფართობი
ვექტორული არე იწყება პროგრამის მეხსიერების სივრცის დასაწყისში, 000000 სთ-ზე. იგი შეიცავს ძირითადი გადატვირთვის ვექტორს, ტექნიკის ხაფანგის ვექტორებს და შეფერხების ვექტორულ ცხრილს (IVT) ყველა განხორციელებული ტექნიკის შეფერხებისთვის.
არქიტექტურული განსხვავებებისა და IVT ზომის გამო, ვექტორული არე იკავებს მეხსიერების განსხვავებულ რაოდენობას მოწყობილობის სხვადასხვა ოჯახში. PIC24 მოწყობილობებისთვის ვექტორული არე ვრცელდება 0000FEh-მდე. dsPIC33 მოწყობილობებისთვის ვექტორული არე ვრცელდება 0001FEh-მდე. სურათი 2-2 გვიჩვენებს განსხვავებას IVT-ებს შორის სხვადასხვა მოწყობილობებისთვის. მოწყობილობების ოჯახის მიუხედავად, ტექნიკის შეფერხების ვექტორები ყოველთვის იწყება 000014 სთ-დან შეფერხების ვექტორით 0.
ვექტორული არე დაახლოებით შეესაბამება ვექტორულ სეგმენტს (VS) CodeGuard™ უსაფრთხოების განხორციელებებში. უსაფრთხოების კონფიგურაციის მიხედვით, ვექტორული არე შეიძლება განიხილებოდეს როგორც ჩატვირთვის სეგმენტის (BS) ან ზოგადი სეგმენტის (GS) ნაწილად.

ალტერნატიული ვექტორის წყვეტის ცხრილი
ყველა dsPIC33 და PIC24 მოწყობილობა უზრუნველყოფს ალტერნატიული IVT-ის (AIVT) დანერგვას, რომელიც შეიძლება გამოყენებულ იქნას მაღალი უსაფრთხოების კოდის აპლიკაციებში და ალტერნატიული გამონაკლისების დამუშავებისთვის. ამ ოჯახების ადრინდელი მოწყობილობებისგან განსხვავებით, AIVT მუდმივად არ არის გამოყოფილი პროგრამის მეხსიერებაში ფიქსირებული მისამართების დიაპაზონში. ამის ნაცვლად, AIVT არის მხოლოდ მაშინ, როდესაც:

  • CodeGuard-ის უსაფრთხოება კონფიგურირებულია ჩატვირთვის სეგმენტისთვის მინიმუმ ორი გვერდის ზომით (დადგენილია FBSLIM კონფიგურაციის რეესტრის მიერ) და
  • AIVT ჩართულია AIVTDIS კონფიგურაციის ბიტის "0"-ზე დაპროგრამებით.

როდესაც AIVT ჩართულია, ის მდებარეობს მისამართების დიაპაზონში, რომელიც იწყება BS-ის ბოლო გვერდის დასაწყისიდან; თითოეული ვექტორი განლაგებულია ფიქსირებული ოფსეტურით გვერდის საზღვრიდან. AIVT-ის მთლიანი ზომა და შინაარსი (ანუ ვექტორული რიგი) ასახავს IVT-ს.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (1) MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (2)

კოდის ზონა
კოდის არე არის მომხმარებლის პროგრამის მეხსიერების არეალი, რომელიც შეიცავს მომხმარებლის აპლიკაციის კოდს. ის ვრცელდება ვექტორული არეალის ბოლოდან Flash Configuration Words-ის დასაწყისამდე. თუ ჩატვირთვის სეგმენტი განხორციელებულია, ის იწყება ვექტორული არეალის ბოლოდან და ვრცელდება წინასწარ განსაზღვრულ დიაპაზონში. კოდის არეალის ის ნაწილი, რომელიც არ არის ჩატვირთვის სეგმენტში, შეესაბამება ზოგად სეგმენტს (GS) CodeGuard უსაფრთხოების სისტემებში. გარდა Flash Configuration Words-ისა, განხორციელებული მეხსიერების ბოლოს, როგორც აღწერილია ქვემოთ, მთელი ტერიტორია ხელმისაწვდომია აპლიკაციის კოდისთვის.

ფლეშის კონფიგურაციის მონაცემები
განხორციელებული Flash პროგრამის მეხსიერების ბოლო ზონა (როგორც წესი, ბოლო რიგი) დაცულია Flash-ის კონფიგურაციის მონაცემებისთვის. მოწყობილობის გადატვირთვისას ეს კონფიგურაციის ინფორმაცია კოპირდება მოწყობილობის კონფიგურაციის შესაბამის რეესტრებში, რომლებიც მიუწვდომელია მომხმარებლისთვის. მოწყობილობის კონფიგურაციის მონაცემების დაპროგრამება შესაძლებელია მხოლოდ Flash Configuration Words-ში სასურველი მნიშვნელობების დაპროგრამებით.
კონფიგურაციის ბიტების რაოდენობა, თანმიმდევრობა და ორგანიზაცია განსხვავდება მოწყობილობის არქიტექტურებს შორის და იმავე არქიტექტურაში არსებული მოწყობილობების ოჯახებს შორის. ზოგიერთი მოწყობილობა აწყობს კონფიგურაციის ბიტებს, როგორც 16-ბიტიან კონფიგურაციის სიტყვებს, რომლებიც ძირითადად დაჯგუფებულია ფუნქციური თვალსაზრისით. სხვა მოწყობილობები აწყობენ კონფიგურაციის ბიტებს ინდივიდუალურად მისამართებად კონფიგურაციის ბაიტების მიხედვით. ნახაზი 2-3 გვიჩვენებს კონფიგურაციის სიტყვების ორგანიზებულ ტერიტორიას. ოჯახის სპეციფიკური ინფორმაციისთვის იხილეთ მოწყობილობის მონაცემთა ფურცელი.
ორმაგი დანაყოფის შესაძლებლობის მქონე მოწყობილობებისთვის, FBTSEQ Configuration Word ჩვეულებრივ არის შემდეგი ბოლო კონფიგურაციის სიტყვა, რომელიც მდებარეობს განხორციელებული პროგრამის მეხსიერების ბოლოს.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (3)

მეხსიერების ორგანიზაცია
პროგრამის მეხსიერების სივრცე ორგანიზებულია სიტყვების მისამართის მქონე ბლოკებად. მიუხედავად იმისა, რომ იგი განიხილება როგორც 24 ბიტიანი, უფრო მიზანშეწონილია პროგრამის მეხსიერების თითოეული მისამართი ვიფიქროთ ქვედა და ზედა სიტყვად, ზედა სიტყვის ზედა ბაიტი არ არის განხორციელებული. ქვედა სიტყვას ყოველთვის აქვს ლუწი მისამართი, ხოლო ზედა სიტყვას აქვს კენტი მისამართი (სურათი 2-4). პროგრამის მეხსიერების მისამართები და კომპიუტერი ყოველთვის არის სიტყვების გასწორება ქვედა სიტყვაზე (ანუ, ნაკლებად მნიშვნელოვანი ბიტი (LSb) ყოველთვის არის '0'). კოდის შესრულებისას მისამართები იზრდება ან მცირდება ორით.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (4)

პროგრამის მეხსიერების მისამართი
კოდის ნორმალური შესრულებისთვის, შესრულებისთვის ეფექტური მისამართი (EA) მოცემულია პროგრამის მრიცხველის (PC) მიერ. კომპიუტერი 23 ბიტიანია, რაც პირდაპირ წვდომის საშუალებას იძლევა მომხმარებლის პროგრამის სივრცეში ნებისმიერ ადგილას. PC[0] დაფიქსირდა როგორც '0' პროგრამის ინსტრუქციების გასწორების შესანარჩუნებლად. კომპიუტერი იზრდება შემდეგ თანმიმდევრულ მისამართზე PC[1]-ის გაზრდით, რითაც იზრდება კომპიუტერის ღირებულება ორით.
Table Read და Table Write ოპერაციებისთვის EA იქმნება ერთ-ერთი W რეგისტრიდან 16-ბიტიანი მისამართის TBLPAG რეგისტრიდან 8-ბიტიან მისამართთან შეერთებით. ეს იძლევა ცხრილის ოპერაციების წვდომას როგორც მომხმარებლის, ასევე კონფიგურაციის სივრცეში. ცხრილის ოპერაციებისთვის მისამართების გენერირება უფრო დეტალურად არის განხილული 4.2.1 ნაწილში „მისამართების გენერაცია ცხრილის ოპერაციებისთვის“.
გაფართოებული მონაცემთა სივრცის (EDS) და პროგრამის სივრცის ხილვადობის (PSV) ოპერაციებისთვის, EA იქმნება W რეგისტრის ქვედა 15 ბიტის 8-ბიტიან მისამართთან შეერთებით DSRPAG/DSWPAG (dsPIC33) ან PSVPAG (PIC24F) რეგისტრები. გაფართოებული მონაცემთა სივრცისა და პროგრამის სივრცის ხილვადობის ოპერაციები განხილულია „dsPIC33/PIC24 საოჯახო საცნობარო სახელმძღვანელოში“, „მონაცემთა მეხსიერება“ (dsPIC33, DS70595) და/ან „მონაცემთა მეხსიერება“ (PIC24, DS30009717).

პროგრამის მეხსიერების დაყოფის ფლეშ ოპერაცია

ორმაგი დანაყოფის Flash შესაძლებლობის მქონე მოწყობილობებისთვის, ორმაგი დანაყოფის პროგრამის მეხსიერების რეჟიმი არჩეულია FBOOT Configuration Word-ში BTMODE[1:0] ბიტების დაპროგრამებით. სხვა კონფიგურაციის სიტყვებისგან განსხვავებით, FBOOT განლაგებულია კონფიგურაციის მეხსიერების სივრცეში, გარდა ყველა სხვა Flash Configuration რეგისტრისა. ზუსტი მისამართი არის სპეციფიკური არქიტექტურისთვის (ანუ PIC24 ან dsPIC33) და შეიძლება განსხვავდებოდეს მოწყობილობის ოჯახებს შორის. ცხრილში 3-1 ჩამოთვლილია Flash Partition-ის შესაძლო ვარიანტები, რომლებიც განხილულია შემდეგ განყოფილებებში.
როდესაც მოწყობილობა პირველად დაპროგრამებულია In-Circuit Serial Programming™ (ICSP™) საშუალებით, პროგრამისტმა უნდა დააპროგრამოს FBOOT მოწყობილობის Flash Partition რეჟიმის სწორად დასაყენებლად. გაითვალისწინეთ, რომ FBOOT-ის ხელახალი დაპროგრამება გაშვების დროს შეუძლებელია Run-Time Self-Programming (RTSP) გამოყენებით. FBOOT ბიტები უნდა იყოს კონფიგურირებული ICSP რეჟიმში პროგრამისტის მიერ. ეს იმიტომ ხდება, რომ Flash Configuration Words-ის მდებარეობა იცვლება სტანდარტული დანაყოფის რეჟიმიდან ორმაგი დანაყოფის რეჟიმში, რამაც შეიძლება გამოიწვიოს მოწყობილობის მოულოდნელი მუშაობა.

ცხრილი 3-1: Flash Partition Options

BTMODE[1:0] დანაყოფის ვარიანტი
11 სტანდარტული რეჟიმი (ერთი დანაყოფი, ნაგულისხმევი)
10 ორმაგი გაყოფის რეჟიმი
01 დაცული ორმაგი გაყოფის რეჟიმი
00 პრივილეგირებული ორმაგი გაყოფის რეჟიმი(1)

შენიშვნა 1: არ არის დანერგილი ორმაგი დანაყოფის ყველა მოწყობილობაზე.

სტანდარტული (ერთი დანაყოფი) რეჟიმი
სტანდარტული რეჟიმი, რომელსაც ასევე მოიხსენიებენ, როგორც Single Partition ან Standard Partition mode, არის ნაგულისხმევი ოპერაციული რეჟიმი პროგრამის მეხსიერებისთვის. ის არჩეულია, როდესაც BTMODEx კონფიგურაციის ბიტი არის '11' (მათი დაუპროგრამებელი კონფიგურაცია). ეს არის ასევე ერთი პროგრამის მეხსიერების ოპერაციული რეჟიმი, რომელიც ხელმისაწვდომია ყველა წინა dsPIC33 და PIC24 მოწყობილობებისთვის. სტანდარტულ რეჟიმში, მომხმარებლის პროგრამის მთელი მეხსიერება აისახება, როგორც ბრტყელი, უწყვეტი მეხსიერების სივრცე, დაწყებული 000000 სთ-დან განხორციელებული Flash მეხსიერების ზედა საზღვრამდე. მაგamp256 კბაიტი ფლეშ მეხსიერების მოწყობილობას აქვს პროგრამის მეხსიერების მისამართების დიაპაზონი 000000 სთ-დან 02 AFFF სთ-მდე, ამ დიაპაზონის ზემოთ მისამართები განუხორციელებელია. მთელი დანერგილი მეხსიერების დიაპაზონი (გადატვირთვის ვექტორებისთვის, IVT-ებისა და Flash Configuration Words-ისთვის დაცული ადგილების გარდა) ხელმისაწვდომია მომხმარებლის აპლიკაციისთვის. სეგმენტირებული კოდის უსაფრთხოების მქონე მოწყობილობებში, Boot Segment ასევე შეიძლება განხორციელდეს.

ორმაგი გაყოფის რეჟიმები
როდესაც BTMODEx კონფიგურაციის ბიტები დაპროგრამებულია სხვა მნიშვნელობაზე, გარდა '11'-ისა, მოწყობილობა მუშაობს ორმაგი გაყოფის სამი რეჟიმიდან ერთ-ერთში. ყველა ამ რეჟიმში, განხორციელებული Flash მეხსიერება სიმეტრიულად იყოფა ორ რეგიონად: აქტიური დანაყოფი, დაწყებული 000000 სთ და არააქტიური დანაყოფი, დაწყებული 400000 სთ. მოწყობილობისთვის წინა ექსampასევე, 256 კბაიტიანი Flash მეხსიერება დანერგილი იქნებოდა 128 კბაიტიანი ორი ზონის სახით, 000000h-დან 0157FFh-მდე და 400000h-დან 4157FFh-მდე. მისამართები ორ ზონას შორის არ არის განხორციელებული (იხ. სურათი 3-1).
ორმაგი დანაყოფის რეჟიმებში, მოწყობილობაში შეიძლება დაპროგრამდეს ორი დამოუკიდებელი აპლიკაცია, თითო Flash მეხსიერების თითო დანაყოფზე, რომელიც ცნობილია როგორც Partition 1 და Partition 2. როდესაც მოწყობილობა ინიციალიზდება, ერთ-ერთი მათგანი დინამიურად აისახება აქტიურ დანაყოფზე და შესრულებული. მეორე ასახულია არააქტიურ განყოფილებაში, სადაც ის რჩება ხელმისაწვდომი მეხსიერების ოპერაციების დასაპროგრამებლად. დანაყოფის მინიჭება აქტიურ ან არააქტიურ ნაწილზე ავტომატურად განისაზღვრება კოდის ხელმოწერით, რომელიც ცნობილია როგორც Boot Sequence Number. კოდის დანაყოფები ასევე შეიძლება შეიცვალოს აქტიურ და არააქტიურ ტიხრებს შორის, გაშვების დროს, პროგრამული უზრუნველყოფის კონტროლის ქვეშ.

ორმაგი დანაყოფის რეჟიმები საშუალებას აძლევს Active Partition-ის აპლიკაციას წვდომა ჰქონდეს (მაგრამ არა შეასრულოს) პროგრამის მონაცემებზე inactive partition-ში ან გადააპროგრამოს არააქტიური დანაყოფი. Inactive Partition-ში Flash მეხსიერებაში ჩაწერა არ საჭიროებს CPU-ს გაჩერებას, სანამ Flash ჩაწერა ხდება. ეს საშუალებას იძლევა LiveUpdate ფუნქციონირება, სადაც კრიტიკული კონტროლის ფუნქციების შესრულება ან დროისადმი მგრძნობიარე კომუნიკაციები შეიძლება მოხდეს ერთდროულად აპლიკაციის განახლებებთან ერთად. ორმაგი დანაყოფის ზოგიერთი რეჟიმი დამატებით შეზღუდვებს აყენებს პროცესს, რათა უზრუნველყოს კოდის უსაფრთხოება და მუშაობის სიმტკიცე. კოდი არ შეიძლება შესრულდეს, როდესაც ის ასახულია არააქტიურ დანაყოფზე. ტიხრები შეიძლება შეიცვალოს, მაგრამ მხოლოდ აქტიური დანაყოფის კოდი შეიძლება შესრულდეს.

  1. ორმაგი დაყოფის რეჟიმი
    უმარტივესი ორმაგი დანაყოფის რეჟიმი არ აწესებს შეზღუდვებს ოპერაციებზე აქტიური დანაყოფიდან კოდამდე არც 1 ან 2 ნაწილებში. ნებისმიერი შეზღუდვა კოდის სეგმენტებს შორის ურთიერთქმედების შესახებ სხვადასხვა დანაყოფებში განისაზღვრება გაძლიერებული უსაფრთხოების მახასიათებლების კონფიგურაციით.
  2. დაცული ორმაგი დაყოფის რეჟიმი
    დაცული ორმაგი დანაყოფის რეჟიმი იცავს ნაგულისხმევი კოდის სეგმენტს (ნაწილი 1) Flash ჩაწერის ან წაშლის ოპერაციებისგან. ეს საშუალებას იძლევა განხორციელდეს „ქარხნული ნაგულისხმევი“ რეჟიმი, რის გამოც მარცხით უსაფრთხო სარეზერვო გამოსახულება შეინახება დანაყოფში 1. როდესაც დაცულია ორმაგი დანაყოფის რეჟიმი გამოიყენება, დანაყოფი 1 ვერ დაიწერება ან წაიშლება Flash მეხსიერების ოპერაციებით, სანამ ის არის არააქტიური დანაყოფი. თუ დანაყოფი 1 ასევე დაცულია ჩაწერისგან კონფიგურაციის ბიტის პარამეტრების საშუალებით, მისი წაშლა ან ჩაწერა შეუძლებელია ნებისმიერ დროს. ამის საპირისპიროდ, დანაყოფი 2 შეიძლება წაიშალოს ან დაიწეროს რომელიმე დანაყოფის ოპერაციებით. ეს საშუალებას იძლევა ჩამტვირთველი ჩატვირთვისთვის განთავსდეს დანაყოფ 1-ში, მარცხით უსაფრთხო სარეზერვო კოდის სურათთან ერთად. ეს კოდის სურათი შეიძლება შესრულდეს ნაგულისხმევად და გამოიყენოს განყოფილების 2-ის გადასაწერად იმ შემთხვევაში, თუ Flash განახლება ვერ მოხერხდება.
  3. პრივილეგირებული ორმაგი დაყოფის რეჟიმი
    პრივილეგირებული ორმაგი დანაყოფის რეჟიმი ახორციელებს უსაფრთხოების დამატებით დაცვას იმ შემთხვევებში, როდესაც აპლიკაციას შეიძლება ჰქონდეს კოდის სეგმენტები დაწერილი სხვადასხვა ავტორების მიერ და უსაფრთხოების უფრო მაღალი დონეა საჭირო ერთ-ერთი ამ სეგმენტის ინტელექტუალური საკუთრების დასაცავად. ყოფილმაample იქნება სისტემა, სადაც კოდის უმეტესი ნაწილი იწერება ტექნიკის აპლიკაციის შემქმნელის მიერ, მაგრამ მოიცავს საკუთრების, მესამე მხარის ბიბლიოთეკას. ეს რეჟიმი შექმნილია იმისთვის, რომ იმუშაოს უსაფრთხოების გაძლიერებულ მახასიათებლებთან შერჩეულ მოწყობილობებში, რომლებსაც შეუძლიათ შერჩევითად დაიცვან სხვადასხვა კოდის სეგმენტები პროგრამის მეხსიერების სივრცეში.
    პრივილეგირებული ორმაგი დანაყოფის რეჟიმი განსხვავდება სტანდარტული ორმაგი დანაყოფის რეჟიმისგან, ორივე დანაყოფის BSLIMx კონფიგურაციის ბიტებზე სპეციალური დაცვის დამატებით. ეს დაცვა ეფექტურად ბლოკავს ბიტებს და ხელს უშლის ჩატვირთვის სეგმენტისა და ზოგადი სეგმენტის ზომის ცვლილებას. უსაფრთხოების სათანადო პარამეტრებით, ეს უზრუნველყოფს, რომ არცერთი სეგმენტი არ შეიცვალოს ან მოულოდნელად წაიკითხოს გაშვების დროს.
    ორმაგი დანაყოფის პრივილეგირებული რეჟიმი არ არის დანერგილი ორმაგი დანაყოფის შესაძლებლობის მქონე ყველა მოწყობილობაზე. დეტალებისთვის იხილეთ მოწყობილობის მონაცემთა ფურცელი.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (5)MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (6)
  4. კოდის დანაყოფის შერჩევა
    ორმაგი დანაყოფის რეჟიმებში, არსებობს ორი მეთოდი იმის დასადგენად, თუ რომელი დანაყოფი იქნება შედგენილი აქტიურ დანაყოფზე და შესრულდება: Boot Sequence Number და BOOTSWP ინსტრუქცია. P2ACTIV ბიტი (NVMCON[10]) შეიძლება გამოყენებულ იქნას იმის დასადგენად, თუ რომელი ფიზიკური დანაყოფი არის აქტიური დანაყოფი. თუ P2ACTIV = 1, დანაყოფი 2 აქტიურია; თუ P2ACTIV = 0, დანაყოფი 1 აქტიურია. Boot Sequence Number არის 12-ბიტიანი მნიშვნელობა, რომელიც გამოიყენება მოწყობილობის გადატვირთვისას აქტიური დანაყოფის ავტომატურად დასადგენად. თითოეულ დანაყოფს უნდა ჰქონდეს უნიკალური Boot Sequence Number, რომელიც ინახება FBTSEQ Flash Configuration Word-ში. BOOTSWP ინსტრუქცია გამოიყენება აქტიური და არააქტიური ტიხრების შესაცვლელად მოწყობილობის გადატვირთვის გარეშე.
    1. ჩატვირთვის მიმდევრობის ნომერი
      12-ბიტიანი Boot Sequence Number ინახება FBTSEQ Flash Configuration Word-ში, რომელიც ყოველთვის მდებარეობს მომხმარებლის პროგრამის მეხსიერების ბოლო ადგილას, სხვა Flash Configuration Word-ების ზემოთ (იხ. სურათი 3-2). სხვა კონფიგურაციის რეგისტრებისგან განსხვავებით, რომლებიც იყენებენ პროგრამის მეხსიერების სიტყვის მხოლოდ ქვედა 16 ბიტს, FBTSEQ არის სრული 24 ბიტიანი სიგანე. თითოეულ დანაყოფს ნორმალურ ოპერაციულ პირობებში უნდა ჰქონდეს განსხვავებული მნიშვნელობა FBTSEQ-სთვის. როდესაც ორმაგი დანაყოფის რეჟიმები არ გამოიყენება, FBTSEQ მნიშვნელობა იგნორირებულია.
      Boot Sequence Number ინახება ორ ნაწილად: ფაქტობრივი მნიშვნელობა ბიტის ველში, BSEQx
      (FBTSEQ[11:0]) და მნიშვნელობის ერთ-ერთი შემავსებელი IBSEQx ბიტების ველში
      (FBTSEQ[23:12]). როდესაც ჩატვირთვის მიმდევრობის ნომერი იკითხება მოწყობილობის გადატვირთვისას, BSEQx და IBSEQx მნიშვნელობები ავტომატურად შედარებულია. თუ ეს ორი მნიშვნელობა არ არის ურთიერთდამატებული, ჩატვირთვის რიგის ნომერი არასწორია. კომპლემენტის მნიშვნელობა ავტომატურად არ იქმნება ტექნიკის მიერ და არც პროგრამირებისას მოწმდება აპარატურის მიერ. აპლიკაციამ უნდა გამოთვალოს და დაპროგრამდეს შესაბამისი მნიშვნელობა.
      მოწყობილობის გადატვირთვისას, ორივე დანაყოფში ჩატვირთვის თანმიმდევრობის ნომრები შედარებულია. ქვედა BSEQx მნიშვნელობის მქონე დანაყოფი არის ის, რომელიც ასახულია Active Partition-ზე და მისი კოდი შესრულებულია. თუ ჩატვირთვის თანმიმდევრობის ერთ-ერთი ნომერი არასწორია, მოწყობილობა შეარჩევს დანაყოფს მოქმედი ჩატვირთვის თანმიმდევრობის ნომრით, როგორც აქტიური დანაყოფი, მიუხედავად იმისა, თუ რომელი Boot Sequence Number არის უფრო დაბალი. თუ ჩატვირთვის თანმიმდევრობის ორივე ნომერი არასწორია, დანაყოფი 1 შეირჩევა ნაგულისხმევად, როგორც აქტიური დანაყოფი.
      ტიხრები შეიძლება მომზადდეს გასაცვლელად გაშვების დროს არააქტიური დანაყოფის ჩატვირთვის თანმიმდევრობის ნომრის ხელახალი პროგრამირებით, რათა ჰქონდეს უფრო დაბალი მნიშვნელობა. როდესაც გადატვირთვის შესრულდება, დანაყოფი, რომელსაც აქვს უფრო დაბალი მნიშვნელობა, ახლა აქტიური ხდება. ეს მეთოდი გამოიყენება არააქტიური დანაყოფის განახლებისას და გადატვირთვის შემდეგ გადატვირთულია აქტიურ დანაყოფზე.
      FBTSEQ-ის მდებარეობა საშუალებას იძლევა ადვილად გამოირიცხოს საკონტროლო ჯამიდან ან Flash პროგრამის მეხსიერების სხვა გადამოწმებიდან. იმის გამო, რომ FBTSEQ მნიშვნელობა სავარაუდოდ განისაზღვროს გაშვების დროს (სხვა დანაყოფის BSEQx-ზე დაყრდნობით), ის ხშირად ვერ შედის საკონტროლო ჯამში, როგორიცაა CRC.
      ნახაზი 3-3-ის ზედა თანმიმდევრობა გვიჩვენებს ურთიერთობას კოდის დანაყოფებს შორის, როდესაც იცვლება ჩატვირთვის თანმიმდევრობის ნომერი და შესრულდება მოწყობილობის გადატვირთვა.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (7)
    2. BOOTSWP ინსტრუქცია
      BOOTSWP ინსტრუქცია არის PIC24 და dsPIC33 ინსტრუქციების ნაკრების გაფართოება. ის მხარს უჭერს კოდს, LiveUpdate-ს, რაც საშუალებას აძლევს კოდის სეგმენტების გაცვლას აქტიურ და არააქტიურ ტიხრებს შორის მოწყობილობის გადატვირთვის საჭიროების გარეშე. დანაყოფების გაცვლა BOOTSWP ინსტრუქციის გამოყენებით მოიხსენიება როგორც "რბილი გაცვლა". BOOTSWP ინსტრუქციის შესასრულებლად, კონფიგურაციის ბიტი, BTSWP (FIDC[25]) უნდა წაიშალოს. თუ BOOTSWP ინსტრუქციას BTSWP კომპლექტით ცდილობთ, NOP ინსტრუქცია გამოვა.
      BOOTSWP ინსტრუქციას ყოველთვის უნდა მოჰყვეს ერთსიტყვიანი ინსტრუქცია, რომელიც წერს PC-ს (მაგ., GOTO W, CALL W ან BRA W); ინსტრუქციის სამიზნე უნდა იყოს მისამართიდან 32 კბაიტის ფარგლებში მიმდინარე მისამართიდან. შესრულებისას, აქტიური და არააქტიური ტიხრები ცვლის ადგილებს, ხოლო კომპიუტერის ვექტორებს ახლად აქტიურ დანაყოფში GOTO ინსტრუქციით მითითებულ ადგილას.
      შენიშვნა: თუ BOOTSWP ინსტრუქცია შესრულებულია ფუნქციის შიგნიდან, რომელმაც შექმნა ახალი სტეკის ჩარჩო LNK ინსტრუქციის გამოყენებით, CALL უნდა იყოს გამოყენებული BOOTSWP-ის შემდეგ, ვიდრე GOTO; წინააღმდეგ შემთხვევაში, მოწყობილობა წარმოქმნის სტეკის შეცდომის ხაფანგს.
      • BOOTSWP ინსტრუქციის შესრულების შემდეგ დაყენებულია SFTSWP ბიტი (NVMCON[11]). ეს ბიტი მიუთითებს firmware-ზე, რომ BOOTSWP ინსტრუქცია შესრულდა სწორად და რომ ამჟამად აქტიური დანაყოფი შეყვანილია BOOTSWP-ით და არა მოწყობილობის გადატვირთვის საშუალებით. სტატუსის ბიტი, P2ACTIV (NVMCON[10]), ასევე შეიძლება წაიკითხოს, რათა შეამოწმოს რომელი დანაყოფი აქტიურია.
      • მნიშვნელოვანია აღინიშნოს, რომ დანაყოფების გაცვლის შემდეგ, ყველა პერიფერიული მოწყობილობა და შეფერხებები, რომლებიც ადრე იყო ჩართული, ჩართული რჩება. გარდა ამისა, ოპერატიული მეხსიერება და სტეკი ინარჩუნებს თავის მდგომარეობას გაცვლის შემდეგ. რეკომენდირებულია, რომ აპლიკაციები, რომლებიც იყენებენ რბილ სვოპებს, გადადიან რუტინაზე, რომელიც განაახლებს მოწყობილობის ხელახლა ინიციალიზაციას, რათა დარწმუნდეს, რომ აპლიკაცია განაგრძობს მუშაობას, როგორც მოსალოდნელია.
      • მუშაობის გამძლეობისთვის აუცილებელია NVM განბლოკვის სტანდარტული თანმიმდევრობის შესრულება BOOTSWP ინსტრუქციის შესრულებამდე (55h და AAh NVMKEY რეესტრში ჩაწერა ორ თანმიმდევრულ საფეხურზე; დამატებითი ინფორმაციისთვის იხილეთ ნაწილი 4.1 „რეგისტრაცია“). ასევე მნიშვნელოვანია გამორთოთ შეფერხებები განბლოკვის თანმიმდევრობის შესრულებამდე. თუ განბლოკვის თანმიმდევრობა არ შესრულდა, BOOTSWP შესრულდება როგორც იძულებითი NOP. GOTO ინსტრუქცია BOOTSWP-ის შემდეგ კვლავ შესრულებულია, რაც იწვევს კომპიუტერის გადახტომას იმ ადგილას მიმდინარე ოპერაციულ დანაყოფში. ანალოგიურად, BOOTSWP-ს არ აქვს ეფექტი სტანდარტული დანაყოფის რეჟიმში.
      • ნახაზი 3-3 ბოლოში მოცემული თანმიმდევრობა გვიჩვენებს ურთიერთობას დანაყოფებს შორის, როდესაც შესრულებულია BOOTSWP ინსტრუქცია. გაითვალისწინეთ, რომ BOOTSWP დანაყოფის ცვლილება დროებითია; მოწყობილობის შემდგომი გადატვირთვის შემდეგ, ქვედა ჩატვირთვის თანმიმდევრული ნომრის მქონე დანაყოფი ხელახლა მიენიჭება აქტიურ დანაყოფს.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (8) MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (9)

ფლეშ მეხსიერების დაპროგრამება

PIC24 და dsPIC33 მოწყობილობების დაპროგრამება შესაძლებელია სამი მეთოდიდან რომელიმე:

  • გაშვების დროში თვითპროგრამირება (RTSP)
  • სერიული პროგრამირება ™ (ICSP™)
  • გაძლიერებული სერიული პროგრამირება (EICSP)

RTSP შესრულებულია აპლიკაციის პროგრამული უზრუნველყოფის მიერ შესრულების დროს, ხოლო ICSP და EICSP შესრულებულია გარე პროგრამისტიდან, მოწყობილობასთან სერიული მონაცემთა კავშირის გამოყენებით. ICSP და EICSP იძლევა ბევრად უფრო სწრაფად პროგრამირების დროს, ვიდრე RTSP. RTSP ტექნიკა აღწერილია ამ ნაწილში. ICSP და EICSP პროტოკოლები განსაზღვრულია პროგრამირების სპეციფიკაციის დოკუმენტებში შესაბამისი მოწყობილობებისთვის, რომელთა ჩამოტვირთვა შესაძლებელია მიკროჩიპიდან. webსაიტი (www.microchip.com).

რეგისტრირებს
პროგრამირების ოპერაციები კონტროლდება ექვსი რეგისტრის მეშვეობით. NVMCON და NVMKEY რეგისტრები გამოიყენება ყველა ოპერაციის გასააქტიურებლად და შესარჩევად. დარჩენილი ოთხი რეგისტრი განსაზღვრავს მონაცემთა და მისამართის მაჩვენებლებს.

შენიშვნა: ყველა მოწყობილობა არ ახორციელებს მონაცემთა RAM-ის ბუფერის პროგრამირებას. დამატებითი ინფორმაციისთვის იხილეთ მოწყობილობის მონაცემთა ფურცელი.

საკონტროლო რეგისტრები
NVMCON რეგისტრი (რეგისტრაცია 4-1) აკონტროლებს Flash პროგრამირების ყველა ოპერაციას. NVMOP[3:0] ბიტები (NVMCOM[3:0]) ირჩევენ ჩაწერის ან წაშლის კონკრეტულ ოპერაციას, რომელიც უნდა შესრულდეს. WR ბიტი (NVMCOM[15]) იწვევს შესაბამის ოპერაციას; ის რჩება დაყენებული ოპერაციის დასრულებამდე და შემდეგ გასუფთავდება აპარატურის მიერ. WREN ბიტი (NVMCOM[14]) რთავს ან გამორთავს ჩაწერის და წაშლის ოპერაციებს. WR ბიტის დაყენება შეუძლებელია ოპერაციების გასააქტიურებლად, როდესაც WREN ნათელია.
NVMKEY რეგისტრი (რეგისტრაცია 4-2) არის მხოლოდ ჩაწერის რეესტრი, რომელიც გამოიყენება NVMCON-ის შემთხვევით ჩაწერის თავიდან ასაცილებლად, რომელსაც შეუძლია გააფუჭოს Flash მეხსიერება. განბლოკვის შემდეგ, NVMCON-ზე ჩაწერა დაშვებულია ერთი ინსტრუქციის ციკლისთვის, რომელშიც WR ბიტი შეიძლება დაყენდეს წაშლის ან პროგრამის რუტინის გამოსაძახებლად. დროის მოთხოვნების გათვალისწინებით, საჭიროა შეფერხებების გამორთვა.
წაშლის ან პროგრამირების თანმიმდევრობის დასაწყებად გამოიყენება შემდეგი ნაბიჯები:

  1. შეფერხებების გამორთვა.
  2. ჩაწერეთ 0x55 NVMKEY-ზე.
  3. ჩაწერეთ 0xAA NVMKEY-ზე.
  4. დაიწყეთ პროგრამირების ჩაწერის ციკლი WR ბიტის დაყენებით (NVMCON[15]).
  5. შეასრულეთ ორი NOP ინსტრუქცია.
  6. შეფერხებების აღდგენა.
    Example 4-1 გვიჩვენებს, თუ როგორ ხდება განბლოკვის თანმიმდევრობა.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (10)

შეფერხებების გამორთვა
შეფერხებების გამორთვა საჭიროა Flash-ის ყველა ოპერაციისთვის წარმატებული შედეგის უზრუნველსაყოფად. თუ შეფერხება მოხდა NVMKEY განბლოკვის თანმიმდევრობის დროს, მას შეუძლია დაბლოკოს ჩაწერა WR ბიტზე. NVMKEY განბლოკვის თანმიმდევრობა უნდა შესრულდეს შეფერხების გარეშე, როგორც ეს განხილულია 3.2 ნაწილში „ორმაგი გაყოფის რეჟიმები“. შეფერხებები შეიძლება გამორთოთ ორიდან ერთ-ერთი მეთოდით, გლობალური შეფერხების ჩართვის (GIE ბიტი) გამორთვით ან DISI ინსტრუქციის გამოყენებით. DISI ინსტრუქცია თიშავს მხოლოდ მე-6 ან უფრო დაბალი პრიორიტეტის შეფერხებებს, ამიტომ არ არის რეკომენდებული და გამოყენებული უნდა იყოს გლობალური შეფერხების ჩართვის მეთოდი.

CPU წერს GIE-ს, მიიღოს ორი ინსტრუქციის ციკლი, სანამ გავლენას მოახდენს კოდის ნაკადზე. ამის შემდეგ საჭიროა ორი NOP ინსტრუქცია, ან შეიძლება შეიცვალოს ნებისმიერი სხვა სასარგებლო სამუშაო ინსტრუქციით, როგორიცაა NMVKEY ჩატვირთვა; ეს ეხება როგორც კომპლექტულ, ასევე მკაფიო ოპერაციებს. სიფრთხილეა საჭირო შეფერხებების ხელახლა ჩართვისას, რათა NVM მიზნობრივი რუტინა არ დაუშვას შეფერხებები, როდესაც წინა გამოძახებულმა ფუნქციამ სხვა მიზეზების გამო გამორთო ისინი. ამის გადასაჭრელად ასამბლეაში, stack push და pop შეიძლება გამოყენებულ იქნას GIE ბიტის მდგომარეობის შესანარჩუნებლად. C-ში, ცვლადი RAM-ში შეიძლება გამოყენებულ იქნას INTCON2-ის შესანახად GIE-ის გასუფთავებამდე.
შეფერხებების გამორთვისთვის უნდა იქნას გამოყენებული შემდეგი თანმიმდევრობა:

  1. დააწექით INTCON2 დასტაზე.
  2. გაასუფთავეთ GIE ბიტი.
  3. ორი NOP ან წერს NVMKEY.
  4. დაიწყეთ პროგრამირების ციკლი WR ბიტის დაყენებით (NVMCON[15]).
  5. აღადგინეთ GIE მდგომარეობა INTCON2-ის POP-ით.
    Example 4-1 უზრუნველყოფს სინტაქსს ასამბლეაში.

მისამართი რეგისტრები
NVMADRL და NVMADRH რეგისტრები განსაზღვრავენ Start Address Pointer-ს ჩაწერის ოპერაციებისთვის. ორივე ტიპის პროგრამის მეხსიერების ჩაწერა (ჩამკეტზე დაფუძნებული და RAM-ის ბუფერული) იყენებს ამ რეგისტრებს დანიშნულების მისამართის დასაყენებლად. NVMSRCADRL და NVMSRCADRH რეგისტრები განსაზღვრავენ საწყის მისამართს მონაცემთა RAM-ში წყაროს მონაცემთა RAM-ის ბუფერული პროგრამირების გამოყენებისას. NVMSRCADRH რეგისტრი გამოიყენება გაფართოებული მონაცემთა სივრცის (EDS) მქონე მოწყობილობებზე, რათა მიუთითოს მისამართები გაფართოებული მონაცემთა სივრცის მეხსიერებაში.

რეგისტრაცია 4-1: NVMCON: Flash Programming Control რეგისტრაცია

რ/ს-0(1) R/C-0 R/C-0 R/W-0 R/C-0 R-0 R/W-0 R/C-0
WR გაფუჭდა WRERR NVMPIDL(5) SFTSWP P2ACTIV RPDF(2) URERR(2)
ბიტი 15 ბიტი 8
U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
NVMOP [3:0]
ბიტი 7       ბიტი 0
ლეგენდა: S = დაყენებადი მხოლოდ ბიტი C = გასასუფთავებელი მხოლოდ ბიტი
R = წაკითხვადი ბიტი W = ჩასაწერი ბიტი U = განუხორციელებელი ბიტი, წაიკითხეთ როგორც '0'
-n = მნიშვნელობა POR-ზე '1' = ბიტი დაყენებულია '0' = ბიტი გასუფთავებულია x = ბიტი უცნობია

MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (11)

შენიშვნა

  1. ეს ბიტი ასევე გადატვირთულია Brown-out Reset-ზე (BOR).
  2. RAM-ის ბუფერული რიგის ოპერაციები არ არის ხელმისაწვდომი ყველა მოწყობილობაზე; ამ შემთხვევაში, ეს ბიტები არ არის განხორციელებული და იკითხება როგორც '0'.
  3. ამ პარამეტრების არჩევით დაყენდება WRERR ბიტი და გაასუფთავებს WR ბიტს.
  4. ორსიტყვიანი პროგრამის ოპერაციებისთვის საჭიროა ორი მიმდებარე ინსტრუქციის სიტყვა (თითოეული 24 ბიტი), გასწორებული ოთხი ინსტრუქციის სიტყვის საზღვრებზე.
  5. დანერგილია მხოლოდ შერჩეულ მოწყობილობებში; დეტალებისთვის იხილეთ მოწყობილობის მონაცემთა ფურცელი.

MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (12)

შენიშვნა

  1. ეს ბიტი ასევე გადატვირთულია Brown-out Reset-ზე (BOR).
  2. RAM-ის ბუფერული რიგის ოპერაციები არ არის ხელმისაწვდომი ყველა მოწყობილობაზე; ამ შემთხვევაში, ეს ბიტები არ არის განხორციელებული და იკითხება როგორც '0'.
  3. ამ პარამეტრების არჩევით დაყენდება WRERR ბიტი და გაასუფთავებს WR ბიტს.
  4. ორსიტყვიანი პროგრამის ოპერაციებისთვის საჭიროა ორი მიმდებარე ინსტრუქციის სიტყვა (თითოეული 24 ბიტი), გასწორებული ოთხი ინსტრუქციის სიტყვის საზღვრებზე.
  5. დანერგილია მხოლოდ შერჩეულ მოწყობილობებში; დეტალებისთვის იხილეთ მოწყობილობის მონაცემთა ფურცელი.

რეგისტრაცია 4-2: NVMKEY: არასტაბილური მეხსიერების გასაღები რეგისტრაცია

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
ბიტი 15             ბიტი 8
W-0 W-0 W-0 W-0 W-0 W-0 W-0 W-0
NVMKEY [7:0]
ბიტი 7 ბიტი 0
ლეგენდა:  
R = წაკითხვადი ბიტი W = ჩასაწერი ბიტი U = განუხორციელებელი ბიტი, წაიკითხეთ როგორც '0'
-n = მნიშვნელობა POR-ზე '1' = ბიტი დაყენებულია '0' = ბიტი გასუფთავებულია x = ბიტი უცნობია

 

ცხრილის მუშაობის ინსტრუქციები
ცხრილის ინსტრუქციები გთავაზობთ მონაცემთა გადაცემის ერთ მეთოდს პროგრამის მეხსიერების სივრცესა და PIC24 და dsPIC33 მოწყობილობების მონაცემთა მეხსიერების სივრცეს შორის. ამ განყოფილებაში მოცემულია ცხრილის ინსტრუქციების შეჯამება, რომლებიც გამოიყენება Flash პროგრამის მეხსიერების დაპროგრამების დროს.
ცხრილის ოთხი ძირითადი ინსტრუქციაა:

  • TBLRDL: ცხრილის წაკითხვა დაბალია
  • TBLRDH: ცხრილის წაკითხვა მაღალი
  • TBLWTL: ცხრილის ჩაწერა დაბალია
  • TBLWTH: ცხრილის ჩაწერა მაღალი

TBLRDL და TBLWTL ინსტრუქციები გამოიყენება პროგრამის მეხსიერების სივრცის ბიტებზე[15:0] წასაკითხად და ჩასაწერად. TBLRDL-ს და TBLWTL-ს შეუძლია წვდომა პროგრამის მეხსიერებაში Word ან Byte რეჟიმში. TBLRDH და TBLWTH ინსტრუქციები გამოიყენება პროგრამის მეხსიერების სივრცის ბიტებზე [23:16] წასაკითხად ან ჩასაწერად. TBLRDH და TBLWTH შეუძლიათ წვდომა პროგრამის მეხსიერებაში Word ან Byte რეჟიმში. ვინაიდან პროგრამის მეხსიერების სიგანე მხოლოდ 24 ბიტია, TBLRDH და TBLWTH ინსტრუქციებს აქვთ შესაძლებლობა მიმართონ პროგრამის მეხსიერების ზედა ბაიტს, რომელიც არ არსებობს. ამ ბაიტს ეწოდება "ფანტომური ბაიტი". ფანტომური ბაიტის ნებისმიერი წაკითხვა აბრუნებს 00 სთ-ს; ფანტომურ ბაიტზე ჩაწერას არანაირი ეფექტი არ აქვს.

ცხრილის ოპერაციებისთვის მისამართის თაობა
24-ბიტიანი პროგრამის მეხსიერება შეიძლება ჩაითვალოს ორ, გვერდიგვერდ 16-ბიტიან სივრცედ, სადაც თითოეული სივრცე იზიარებს იმავე მისამართების დიაპაზონს. ამიტომ, TBLRDL და TBLWTL ინსტრუქციები წვდება პროგრამის "დაბალ" მეხსიერებას (PM[15:0]). TBLRDH და TBLWTH ინსტრუქციები წვდება პროგრამის "მაღალ" მეხსიერების სივრცეს (PM[31:16]). ნებისმიერი წაკითხული ან ჩაწერა PM-ზე[31:24] მიიღებს წვდომას ფანტომურ (განუხორციელებელ) ბაიტზე. როდესაც ცხრილის რომელიმე ინსტრუქცია გამოიყენება ბაიტის რეჟიმში, ცხრილის მისამართის LSb გამოყენებული იქნება როგორც ბაიტის შერჩევის ბიტი. LSb განსაზღვრავს, რომელ ბაიტს აქვს წვდომა მაღალი ან დაბალი პროგრამის მეხსიერების სივრცეში.
ნახაზი 4-1 ასახავს, ​​თუ როგორ ხდება პროგრამის მეხსიერების მიმართვა ცხრილის ინსტრუქციების გამოყენებით. 24-ბიტიანი პროგრამის მეხსიერების მისამართი იქმნება TBLPAG[7:0] ბიტების და ეფექტური მისამართის (EA) W რეესტრიდან, რომელიც მითითებულია ცხრილის ინსტრუქციაში (24-ბიტიანი პროგრამის მრიცხველი ნაჩვენებია მითითებისთვის). EA-ს ზედა 23 ბიტი გამოიყენება პროგრამის მეხსიერების ადგილმდებარეობის შესარჩევად. ბაიტის რეჟიმის ცხრილის ინსტრუქციებისთვის, W რეგისტრის EA LSb გამოიყენება 16-ბიტიანი პროგრამის მეხსიერების სიტყვის რომელ ბაიტს მიემართება. '1' ირჩევს ბიტებს[15:8], '0' ირჩევს ბიტებს[7:0]. W რეგისტრის EA LSb იგნორირებულია ცხრილის ინსტრუქციისთვის Word რეჟიმში. პროგრამის მეხსიერების მისამართის გარდა, ცხრილის ინსტრუქციებში ასევე მითითებულია W რეგისტრი (ან მეხსიერების ადგილის W მაჩვენებელი), რომელიც არის პროგრამის მეხსიერების მონაცემების დასაწერი წყარო ან პროგრამის მეხსიერების წაკითხვის დანიშნულება. Table Write ოპერაციისთვის ბაიტის რეჟიმში, წყაროს სამუშაო რეესტრის ბიტები[15:8] იგნორირებულია.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (13)

სიტყვის დაბალი წვდომა
TBLRDL და TBLWTL ინსტრუქციები გამოიყენება პროგრამის მეხსიერების ქვედა 16 ბიტიან მონაცემებზე წვდომისთვის. W რეგისტრის მისამართის LSb იგნორირებულია სიტყვის მასშტაბით ცხრილის წვდომისთვის. ბაიტის ფართო წვდომისთვის W რეგისტრის მისამართის LSb განსაზღვრავს რომელი ბაიტი წაიკითხება. სურათი 4-2 ასახავს პროგრამის მეხსიერების მონაცემთა რეგიონებს, რომლებზეც წვდომა არის TBLRDL და TBLWTL ინსტრუქციებით.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (14)

სიტყვის მაღალი წვდომა
TBLRDH და TBLWTH ინსტრუქციები გამოიყენება პროგრამის მეხსიერების მონაცემების ზედა რვა ბიტზე წვდომისთვის. ეს ინსტრუქციები ასევე მხარს უჭერს Word ან Byte Access რეჟიმებს ორთოგონალობისთვის, მაგრამ პროგრამის მეხსიერების მონაცემების მაღალი ბაიტი ყოველთვის დააბრუნებს '0', როგორც ნაჩვენებია სურათზე 4-3.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (15)

მონაცემთა შენახვა პროგრამის მეხსიერებაში
ვარაუდობენ, რომ აპლიკაციების უმეტესობისთვის მაღალი ბაიტი (PM[23:16]) არ იქნება გამოყენებული მონაცემებისთვის, რის გამოც პროგრამის მეხსიერება გამოჩნდება 16 ბიტიანი სიგანით მონაცემთა შესანახად. რეკომენდირებულია, რომ პროგრამის მონაცემების ზედა ბაიტი დაპროგრამდეს როგორც NOP (00h ან FFh), ან როგორც არალეგალური opcode (3Fh) მნიშვნელობა, რათა დაიცვას მოწყობილობა შენახული მონაცემების შემთხვევითი შესრულებისგან. TBLRDH და TBLWTH ინსტრუქციები ძირითადად მოწოდებულია მასივის პროგრამის/ვერიფიკაციის მიზნებისთვის და იმ აპლიკაციებისთვის, რომლებიც საჭიროებენ მონაცემთა შეკუმშულ შენახვას.

პროგრამის მეხსიერების ბიტის ქცევა
Flash პროგრამის მეხსიერების ბიტები შეიძლება დაპროგრამდეს მხოლოდ '1'-დან '0'-მდე და შემდგომში შეიძლება წაიშალოს '1'-მდე. პროგრამირების თანმიმდევრობით ბიტის დაყენების მცდელობა არანაირ ეფექტს მოიტანს.

ცხრილის წაკითხვის ინსტრუქციების გამოყენება
ცხრილის წაკითხვა მოითხოვს ორ ნაბიჯს. პირველ რიგში, მისამართის მაჩვენებლის დაყენება ხდება TBLPAG რეგისტრისა და ერთ-ერთი W რეგისტრის გამოყენებით. შემდეგ, პროგრამის მეხსიერების შინაარსი შეიძლება წაიკითხოს მისამართის ადგილმდებარეობაზე.
კოდი მაგamples in Example 4-2 და Examp4-3 აჩვენეთ, თუ როგორ უნდა წაიკითხოთ პროგრამის მეხსიერების სიტყვა ცხრილის ინსტრუქციების გამოყენებით Word რეჟიმში.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (16)

შენიშვნა: tblpage() და tbloffset() დირექტივები მოწოდებულია Microchip ასამბლერის მიერ dsPIC33 და PIC24 მოწყობილობებისთვის. ეს დირექტივები ირჩევს შესაბამის TBLPAG და W რეგისტრის მნიშვნელობებს ცხრილის ინსტრუქციისთვის პროგრამის მეხსიერების მისამართის მნიშვნელობიდან. დამატებითი ინფორმაციისთვის იხილეთ „MPLAB® Assembler, Linker and Utilities for PIC24 MCUs and dsPIC® DSCs User's Guide“ (DS51317).

მაგიდის ჩასაწერი ჩამკეტები
ცხრილი ჩაწერის ინსტრუქციები არ იწერება პირდაპირ Flash პროგრამის მასივში. ამის ნაცვლად, ინსტრუქციები იწვევს მონაცემების დაპროგრამებას და ჩაიტვირთება პირველად სამაგრებში. ეს ჩამკეტები მეხსიერების რუკაზეა დატანილი კონფიგურაციის მეხსიერების სივრცეში, როგორც წესი, იწყება FA0000h-დან და მათი წვდომა შესაძლებელია მხოლოდ Table Write ინსტრუქციების გამოყენებით. როდესაც დამჭერის ყველა საკეტი ჩაიტვირთება, მეხსიერების პროგრამირების ფაქტობრივი ოპერაცია იწყება ინსტრუქციების სპეციალური თანმიმდევრობის შესრულებით.
სხვადასხვა მოწყობილობა ახორციელებს სამაგრების სხვადასხვა რაოდენობას, კონკრეტული პროგრამის მასივის დიზაინის საფუძველზე (ანუ მწკრივის პროგრამირების ზომა და მწკრივის პროგრამირების ალგორითმი). გთხოვთ, იხილოთ კონკრეტული მოწყობილობის მონაცემთა ფურცელი და/ან პროგრამირების სპეციფიკაცია დამატებითი დეტალებისთვის.

ორსიტყვიანი წერის შესრულება
Word ჩაწერა შესრულებულია ორი სიტყვისთვის ერთდროულად TBLWTH და TBLWTL ინსტრუქციების გამოყენებით. კოდის თანმიმდევრობა ან Example 4-4 ან Example 4-5 (C ექვივალენტი) შეიძლება გამოყენებულ იქნას ორი პროგრამის მეხსიერების ჩამკეტის ადგილის დასაწერად, რომლებიც დაპროგრამდება Flash-ზე Word Write რეჟიმის გამოყენებით.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (17)

გაშვების დროში თვითპროგრამირება (RTSP)
RTSP საშუალებას აძლევს მომხმარებლის კოდს შეცვალოს Flash პროგრამის მეხსიერების შინაარსი. RTSP შესრულებულია TBLRD (ცხრილის წაკითხვა) და TBLWT (ცხრილის ჩაწერა) ინსტრუქციებით და NVM კონტროლის რეგისტრებით. PIC24 და dsPIC33 მოწყობილობები მხარს უჭერენ Flash პროგრამირების შემდეგ ოპერაციებს:

  • ფლეშის გვერდი წაშლის
  • მწკრივების პროგრამირება (ჩამკეტზე ან RAM-ზე დაფუძნებული)
  • Word პროგრამირება

Flash პროგრამირება RTSP-ის საშუალებით ხორციელდება, ან მეხსიერების ბლოკებით, რომელსაც ეწოდება რიგები, ან ორი სიტყვით ფლეშ მეხსიერებით. დაპროგრამებამდე მეხსიერების მდებარეობა უნდა წაიშალოს. წაშლის ოპერაციები ხორციელდება მეხსიერების ბლოკებზე, რომელსაც ეწოდება გვერდები, რომლებიც შედგება მრავალი მწკრივისაგან. რიგის ზომა განსხვავდება მოწყობილობის მიხედვით; დეტალებისთვის იხილეთ მოწყობილობის მონაცემთა ფურცელი. როგორც წესი, dsPIC33 და PIC24 მოწყობილობებისთვის გვერდი განისაზღვრება როგორც რვა (8) მწკრივი. ეს დოკუმენტი იყენებს მაგamples 64 ინსტრუქციით რიგზე (512 ინსტრუქცია გვერდზე).

მწკრივების დაპროგრამება WRITE HOLDING LATCHES გამოყენებით
როგორც განხილული იყო განყოფილებაში 4.2.7 „ცხრილის ჩაწერის დამჭერი საკეტები“, მოწყობილობებს, რომლებიც ახორციელებენ ჩამკეტზე დაფუძნებული მწკრივის პროგრამირებას, აქვთ დამჭერი ჩამკეტები, რომლებიც შეიცავს პროგრამირების მონაცემებს. ფაქტობრივი პროგრამირების ოპერაციის დაწყებამდე ჩაწერის მონაცემები უნდა ჩაიტვირთოს საკეტებში TBLWT ინსტრუქციების მეშვეობით თანმიმდევრობით. მწკრივის ჩაწერის შესრულებისას, ინსტრუქციის სიტყვები უნდა ჩაიტვირთოს საკეტებში, როგორც სრული მწკრივი.
RTSP პროგრამირების ძირითადი თანმიმდევრობა არის Table Pointer-ის დაყენება, შემდეგ TBLWT ინსტრუქციების სერიის გაკეთება ბუფერების ჩასატვირთად. პროგრამირება ხორციელდება NVMCON რეესტრში საკონტროლო ბიტების დაყენებით. მაგamp64 ინსტრუქციის მწკრივის მქონე მოწყობილობაზე, პროგრამირების ციკლი შედგებოდა 64 TBLWTL და 64 TBLWTH ინსტრუქციებისაგან ჩაწერის ჩამკეტების ჩასატვირთად, რასაც მოჰყვება პროგრამირების თანმიმდევრობა, რომელიც განბლოკავს NVMCON-ს და დააყენებს WR ბიტს. მაგamp4-6 გვიჩვენებს ყოფილიampპროცესის.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (18)

მწკრივების დაპროგრამება RAM-ის ბუფერის გამოყენებით
არჩეული dsPIC33 და PIC24 მოწყობილობები იძლევა საშუალებას, რომ მწკრივის პროგრამირება შესრულდეს უშუალოდ მონაცემთა RAM-ის ბუფერული სივრციდან, ნაცვლად იმისა, რომ გაიაროს დამჭერი ჩამკეტები მონაცემთა გადასაცემად TBLWT ინსტრუქციებით. RAM-ის ბუფერის მდებარეობა განისაზღვრება NVMSRCADR რეგისტრებით, რომლებიც იტვირთება მონაცემთა RAM მისამართით, რომელიც შეიცავს ჩასაწერი პროგრამის მონაცემების პირველ სიტყვას.
პროგრამის მოქმედების შესრულებამდე, RAM-ში ბუფერული სივრცე უნდა იყოს დატვირთული დაპროგრამებული მონაცემების რიგით. ოპერატიული მეხსიერების ჩატვირთვა შესაძლებელია როგორც შეკუმშული (შეფუთული) ან არაკომპრესირებულ ფორმატში. შეკუმშული საცავი იყენებს ერთ მონაცემთა სიტყვას ორი მიმდებარე პროგრამის მონაცემთა სიტყვის ყველაზე მნიშვნელოვანი ბაიტების (MSB) შესანახად. არაკომპრესირებული ფორმატი იყენებს ორ მონაცემთა სიტყვას თითოეული პროგრამის მონაცემთა სიტყვისთვის, ყოველი მეორე სიტყვის ზედა ბაიტი არის 00h. შეკუმშული ფორმატი იყენებს მონაცემთა RAM-ის სივრცის დაახლოებით 3/4-ს არაკომპრესირებულ ფორმატთან შედარებით. მეორეს მხრივ, შეუკუმშული ფორმატი მიბაძავს 24-ბიტიანი პროგრამის მონაცემთა სიტყვის სტრუქტურას, რომელიც სრულდება ზედა ფანტომური ბაიტით. მონაცემთა ფორმატი შეირჩევა RPDF ბიტით (NVMCON[9]). ეს ორი ფორმატი ნაჩვენებია სურათზე 4-4.

RAM-ის ბუფერის ჩატვირთვის შემდეგ, Flash Address Pointers, NVMADRL და NVMADRH, იტვირთება დასაწერი Flash მწკრივის 24-ბიტიანი საწყისი მისამართით. როგორც ჩაწერის ჩამკეტების პროგრამირებისას, პროცესი იწყება NVM განბლოკვის თანმიმდევრობის ჩაწერით, რასაც მოჰყვება WR ბიტის დაყენება. დაწყების შემდეგ, მოწყობილობა ავტომატურად იტვირთება მარჯვენა საკეტები და ზრდის NVM მისამართის რეგისტრირებას, სანამ ყველა ბაიტი არ დაპროგრამდება. მაგamp4-7 გვიჩვენებს ყოფილიampპროცესის. თუ NVMSRCADR დაყენებულია ისეთ მნიშვნელობაზე, რომ მოხდეს მონაცემთა შეცდომის პირობა, URERR ბიტი (NVMCON[8]) დაყენდება მდგომარეობის მითითებისთვის. მოწყობილობები, რომლებიც ახორციელებენ RAM-ის ბუფერული მწკრივის პროგრამირებას, ასევე ახორციელებენ ერთი ან ორი ჩაწერის ჩამკეტს. ისინი იტვირთება TBLWT ინსტრუქციების გამოყენებით და გამოიყენება სიტყვების პროგრამირების ოპერაციების შესასრულებლად.MICROCHIP-PIC24-Dual-Partition-Flash-Program-Memory- (19)

ზოგადი Flash პროგრამირების ალგორითმები
Flash პროგრამირების ოპერაციები კონტროლდება შემდეგი არასტაბილური მეხსიერების (NVM) საკონტროლო რეგისტრების გამოყენებით:

  • NVMCON
  • NVMKEY
  • NVMADRL/H
  • NVMSRCADRL/H (ზოგიერთი მოწყობილობა)

პროგრამირების სრული თანმიმდევრობა აუცილებელია RTSP რეჟიმში შიდა Flash-ის დასაპროგრამებლად ან წასაშლელად. WR ბიტის (NVMCON[15]) დაყენება იწყებს ოპერაციას და WR ბიტი ავტომატურად იშლება ოპერაციის დასრულებისას.
როდესაც ასრულებთ Flash პროგრამირების ოპერაციებს Active Partition-ზე (განსაკუთრებით სტანდარტული დანაყოფის რეჟიმში), CPU შეჩერდება ოპერაციის დასრულებამდე. Inactive Partition-ის დაპროგრამებისას, CPU-ს შეუძლია გააგრძელოს მუშაობა გაჩერების გარეშე. შემდეგი სექციები ასახავს პროგრამირების ალგორითმებს, რომლებიც აჩვენებენ CPU-ს გაჩერებას და არ ჩერდება.

პროგრამის მეხსიერების წაშლა (აქტიური დანაყოფი)

  1. დააყენეთ NVMOPx ბიტები (NVMCOM[3:0]) '0011' გვერდის წაშლის კონფიგურაციისთვის და დააყენეთ WREN ბიტი (NVMCOM[14]).
  2. ჩაწერეთ წაშლილი ბლოკის საწყისი მისამართი NVMADRL/H რეგისტრებში.
  3. შეფერხებების გამორთვა.
  4. დაწერეთ 55 სთ NVMKEY-ზე.
  5. ჩაწერეთ AAh NVMKEY-ზე.
  6. დააყენეთ WR ბიტი (NVMCOM[15]) წაშლის ციკლის დასაწყებად.
  7. შეასრულეთ ორი NOP ინსტრუქცია.
  8. შეფერხებების აღდგენა (სურვილისამებრ).
    როდესაც წაშლა დასრულდება, WR ბიტი ავტომატურად იშლება

მწკრივების დაპროგრამება (აქტიური დანაყოფი, დაყოფის სტანდარტული რეჟიმი)
მომხმარებელს შეუძლია პროგრამის Flash მეხსიერების ერთი რიგის დაპროგრამება ერთდროულად. ამისათვის აუცილებელია სასურველი მწკრივის შემცველი გვერდის წაშლა. აქტიური დანაყოფზე მწკრივის დაპროგრამების ზოგადი პროცესია:

  1. წაიკითხეთ პროგრამის მეხსიერების რვა რიგი (512 ინსტრუქცია) და შეინახეთ მონაცემთა RAM-ში.
  2. განაახლეთ პროგრამის მონაცემები RAM-ში სასურველი ახალი მონაცემებით.
  3. წაშალეთ ბლოკი:
    • a) დააყენეთ NVMOPx ბიტები (NVMCOM[3:0]) '0011' გვერდის წაშლის კონფიგურაციისთვის და დააყენეთ WREN ბიტი (NVMCOM[14]).
    • b) ჩაწერეთ წაშლილი ბლოკის საწყისი მისამართი NVMADRL/H რეგისტრებში.
    • c) შეფერხებების გამორთვა.
    • d) დაწერეთ 55 სთ NVMKEY-ზე.
    • e) ჩაწერეთ AAh NVMKEY-ზე.
    • f) დააყენეთ WR ბიტი (NVMCOM[15]). წაშლის ციკლი იწყება და CPU ჩერდება წაშლის ციკლის განმავლობაში. როდესაც წაშლა დასრულდება, WR ბიტი ავტომატურად იშლება.
    • g) შეფერხებების აღდგენა (სურვილისამებრ).
  4. ჩაწერეთ პირველი 64 ინსტრუქცია მონაცემთა ოპერატიული მეხსიერებიდან პროგრამის მეხსიერების ბუფერებში (იხ. განყოფილება 4.2.7 „ცხრილის ჩაწერის დამჭერები“) ან ჩაწერეთ NVMSRCADR რეგისტრი RAM-ში შენახული მონაცემების საწყისი მისამართით.
  5. ჩაწერეთ პროგრამის ბლოკი Flash მეხსიერებაში:
    • a) დააყენეთ NVMOPx ბიტები „0010“ მწკრივის პროგრამირების კონფიგურაციისთვის და დააყენეთ WREN ბიტი.
    • b) შეფერხებების გამორთვა.
    • c) დაწერეთ 55 სთ NVMKEY-ზე.
    • d) ჩაწერეთ AAh NVMKEY-ზე.
    • e) დააყენეთ WR ბიტი. პროგრამირების ციკლი იწყება და CPU ჩერდება ჩაწერის ციკლის განმავლობაში. როდესაც ჩაწერა Flash მეხსიერებაში დასრულდება, WR ბიტი ავტომატურად იშლება.
    • f) შეფერხებების აღდგენა (სურვილისამებრ).
  6. გაიმეორეთ ნაბიჯები 4 და 5 შემდეგი ხელმისაწვდომი 64 ინსტრუქციების გამოყენებით ბლოკიდან მონაცემთა RAM-ში, მისამართების გაზრდით NVMADRL/H-ში, სანამ 512 ინსტრუქცია უკან არ დაიწერება Flash მეხსიერებაში.

შენიშვნა: ყველა მოწყობილობა არ აჩვენებს პროცესორის გაჩერებას ჩაწერის ან წაშლის ციკლის დროს. შეფერხებების თავიდან ასაცილებლად, რეკომენდირებულია თავიდან აიცილოთ აპლიკაციის წაკითხვა ან ჩაწერა მწკრივზე წაშლა ან ჩაწერა.

შემთხვევითი ოპერაციებისგან დაცვის მიზნით, NVMKEY-სთვის ჩაწერის დაწყების თანმიმდევრობა საჭიროა ნებისმიერი წაშლის ან პროგრამის ოპერაციის დაწყებამდე. პროგრამირების ბრძანების შესრულების შემდეგ, მომხმარებელმა უნდა დაელოდოს პროგრამირების დროს პროგრამირების დასრულებამდე. პროგრამირების თანმიმდევრობის დაწყების შემდეგ ორი ინსტრუქცია უნდა იყოს NOPs.

შენიშვნა

  1. რიგების, ბლოკების და დამჭერი საკეტების რაოდენობა შეიძლება განსხვავდებოდეს მოწყობილობიდან მოწყობილობამდე; გთხოვთ, იხილოთ კონკრეტული მოწყობილობის მონაცემთა ფურცელი რეალური ნომრებისთვის, ასევე Flash მეხსიერების პროგრამირების სრული საცნობარო კოდი.
  2. მოწყობილობებისთვის, რომლებსაც აქვთ ერთი დამჭერი ჩამკეტი, Flash პროგრამის მეხსიერებაში უნდა ჩაიწეროს Word პროგრამირება.

გვერდის დაპროგრამება არააქტიურ განყოფილებაში (ორმაგი დაყოფის რეჟიმები)
ორმაგი დანაყოფის რეჟიმებში პროგრამირება განსაკუთრებულ მოსაზრებებს მოითხოვს. იმის გამო, რომ CPU-ს შეუძლია გააგრძელოს ინსტრუქციების შესრულება, სანამ არააქტიური დანაყოფი დაპროგრამებულია, CPU-ს გაჩერება არ მოხდება.
მონაცემთა გვერდის წაშლისა და გადაპროგრამირების ალგორითმი ორმაგი დანაყოფის ერთ-ერთ რეჟიმში შემდეგია:

  1. წაშალეთ ბლოკი:
    • a) დააყენეთ NVMOPx ბიტები (NVMCOM[3:0]) '0011' გვერდის წაშლის კონფიგურაციისთვის.
    • b) დააყენეთ WREN ბიტი (NVMCOM[14]).
    • c) ჩაწერეთ წაშლილი ბლოკის საწყისი მისამართი NVMADR რეგისტრებში
      გვერდის მისამართი.
    • d) შეფერხებების გამორთვა.
    • e) დაწერეთ 55 სთ NVMKEY-ზე.
    • f) ჩაწერეთ AAh NVMKEY-ზე.
    • g) დააყენეთ WR ბიტი (NVMCOM[15]). წაშლის ციკლი იწყება და CPU დარჩება გაშვებული.
    • h) როდესაც წაშლა დასრულდება, WR ბიტი ავტომატურად იშლება და გამოჩნდება NVM ჩაწერის სრული შეწყვეტის დროშა (NVMIF).
    • i) შეფერხებების აღდგენა (სურვილისამებრ).
  2. პროგრამირებადი მონაცემების მომზადება RAM-ის ბუფერის შევსებით; მონაცვლეობით, ჩატვირთეთ ჩაწერის ჩამკეტები TBLWT ინსტრუქციებით მეხსიერების პირველი რიგის მონაცემებით (64 ინსტრუქცია).
  3. ბლოკის დაპროგრამება:
    • a) დააყენეთ NVMOPx ბიტები (NVMCON[3:0]) „0010“ მწკრივის პროგრამირების კონფიგურაციისთვის.
    • b) დააყენეთ WREN (NVMCON[14]) ბიტი.
    • c) ჩაწერეთ ბლოკის საწყისი მისამართი, რომელიც უნდა ჩაიწეროს NVMADR რეგისტრებში რიგის საწყისი მისამართით.
    • d) შეფერხებების გამორთვა.
    • e) დაწერეთ 55 სთ NVMKEY-ზე.
    • f) ჩაწერეთ AAh NVMKEY-ზე.
    • g) დააყენეთ WR ბიტი (NVMCOM[15]). ჩაწერის ციკლი იწყება და CPU დარჩება გაშვებული.
    • h) როდესაც წაშლა დასრულდება, WR ბიტი ავტომატურად იშლება და გამოჩნდება NVM ჩაწერის სრული შეწყვეტის დროშა (NVMIF).
    • i) შეფერხებების აღდგენა (სურვილისამებრ).
  4. გაიმეორეთ ნაბიჯები 2 და 3 წაშლილ გვერდზე მონაცემთა თითოეული დარჩენილი მწკრივის დასაპროგრამებლად.

მთელი არააქტიური დანაყოფის დაპროგრამება (ორმაგი დაყოფის რეჟიმი)
არააქტიური განყოფილების კოდის სრულად განახლებისთვის:

  1. წაშალეთ არააქტიური დანაყოფი:
    • a) დააყენეთ NVMOPx ბიტები (NVMCOM[3:0]) „0100“-ზე არააქტიური დანაყოფის წაშლის კონფიგურაციისთვის.
    • b) დააყენეთ WREN ბიტი (NVMCOM[14]).
    • c) შეფერხებების გამორთვა.
    • d) დაწერეთ 55 სთ NVMKEY-ზე.
    • e) ჩაწერეთ AAh NVMKEY-ზე.
    • f) დააყენეთ WR ბიტი (NVMCOM[15]). წაშლის ციკლი იწყება და CPU დარჩება გაშვებული ციკლის განმავლობაში.
    • g) როდესაც წაშლა დასრულდება, WR ბიტი ავტომატურად იშლება და ჩნდება NVM ჩაწერის სრული შეწყვეტის დროშა (NVMIF).
    • h) შეფერხებების აღდგენა (სურვილისამებრ).
  2. ჩაწერეთ არააქტიური დანაყოფის თითოეული გვერდი გვერდის ჩაწერის გამოყენებით, როგორც ეს აღწერილია 4.4.3 ნაწილში „გვერდის დაპროგრამება არააქტიურ დანაყოფში (ორმაგი დანაყოფის რეჟიმი)“.
  3. გადაამოწმეთ დაწერილი მონაცემები. ერთ-ერთი შემოთავაზებული მეთოდია შეასრულოთ CRC ჩასაწერ მონაცემებზე და შეამოწმოთ CRC მნიშვნელობა სრულ დანაყოფზე, რათა დარწმუნდეთ, რომ მონაცემები სწორად არის დაწერილი.

აქტიური დანაყოფის განახლება ჩამტვირთველის გამოყენებით

  1. წაშალეთ და დაპროგრამეთ მთელი არააქტიური დანაყოფი, როგორც ეს აღწერილია 4.4.4 ნაწილში „მთელი არააქტიური დანაყოფის დაპროგრამება (ორმაგი დანაყოფის რეჟიმი)“.
  2. წაიკითხეთ აქტიური დანაყოფის FBTSEQ კონფიგურაციის რეესტრი.
  3. შეამცირეთ მნიშვნელობა ერთით და ჩაწერეთ არააქტიური დანაყოფის FBTSEQ.
  4. დანაყოფის გაცვლის იძულება:
    • a) თუ პროცესორის გაჩერება არ არის შემაშფოთებელი, შეასრულეთ მოწყობილობის გადატვირთვა. ვინაიდან არააქტიურ ნაწილს აქვს ჩატვირთვის მიმდევრობის უფრო დაბალი ნომერი, გადატვირთვის შემდეგ ის გახდება აქტიური დანაყოფი.
    • b) თუ CPU შეჩერება არ არის მისაღები, შეასრულეთ BOOTSWP ინსტრუქცია.

პროგრამის სივრცის ხილვადობა და მონაცემთა გაფართოებული სივრცე (PSV და EDS)

ყველა dsPIC33 და PIC24 მოწყობილობებისთვის, ცხრილის ინსტრუქციები (იხ. განყოფილება 4.2 „ცხრილის მუშაობის ინსტრუქციები“) შეიძლება გამოყენებულ იქნას პროგრამის მეხსიერების სივრცეში მონაცემებზე წვდომისათვის. ეს სასარგებლოა, როდესაც მონაცემების მხოლოდ წაკითხვა ან ჩაწერაა საჭირო, თითო ბაიტი ან სიტყვა ერთდროულად. ასევე შესაძლებელია პროგრამის მეხსიერების სივრცის 16K სიტყვიანი გვერდების რუკა მონაცემთა მისამართის სივრცის ზედა 32 კბაიტში. ეს საშუალებას აძლევს მონაცემთა სივრცის ეფექტურ გაფართოებას მისი ნორმალური 64 კბაიტი მიმართვის ლიმიტების მიღმა, ასევე გამჭვირვალე წვდომას ცხრილის ინსტრუქციების გამოყენების გარეშე. ყველა dsPIC33 და PIC24 მოწყობილობას შეუძლია განხორციელებული პროგრამის მეხსიერების სივრცის ნებისმიერი გვერდის რუკა მონაცემთა სივრცეში. ეს ფუნქცია ცნობილია როგორც პროგრამის სივრცის ხილვადობა (PSV). ზოგიერთი მოწყობილობა აფართოებს PSV-ს გარკვეული პერიფერიული მოწყობილობების მეხსიერების რუკების მეშვეობით ვირტუალური პროგრამის მეხსიერების გვერდების კონკრეტულ დიაპაზონში. ეს ფუნქცია განსაკუთრებით სასარგებლოა პერიფერიული მოწყობილობებისთვის, როგორიცაა Advanced Graphics Controller, რომელსაც აქვს მონაცემთა გამტარუნარიანობის მაღალი მოთხოვნები. PSV-ის ეს გაფართოება ცნობილია როგორც გაფართოებული მონაცემთა სივრცე (EDS).
PSV და EDS დანერგილია როგორც მონაცემთა მეხსიერების მახასიათებლები. ისინი განსხვავებულად არის დანერგილი dsPIC33 და PIC24 მოწყობილობებისთვის. დეტალური აღწერილობისთვის იხილეთ „dsPIC33/PIC24 საოჯახო საცნობარო სახელმძღვანელო“, „მონაცემთა მეხსიერება“. (dsPIC33, DS70595) და/ან „მონაცემთა მეხსიერება“ (PIC24, DS30009717).

PSV და ინსტრუქციის სადგომები
დამატებითი ინფორმაციისთვის ინსტრუქციის სადგომის შესახებ PSV-ის გამოყენებით, იხილეთ „dsPIC33/PIC24 Family Reference Manual“, „dsPIC33E Enhanced CPU“ (DS70005158).

დარეგისტრირდით რუკაზე

SFR-ების შეჯამება, რომლებიც დაკავშირებულია Dual Partition Flash პროგრამის მეხსიერებასთან, მოცემულია ცხრილში 6-1.

ცხრილი 6-1: სპეციალური ფუნქციების რეგისტრები, რომლებიც დაკავშირებულია Flash პროგრამის მეხსიერებასთან (1)

File სახელი ბიტი 15 ბიტი 14 ბიტი 13 ბიტი 12 ბიტი 11 ბიტი 10 ბიტი 9 ბიტი 8 ბიტი 7 ბიტი 6 ბიტი 5 ბიტი 4 ბიტი 3 ბიტი 2 ბიტი 1 ბიტი 0 ყველა გადატვირთვა(2)
TBLPAG ცხრილის გვერდის მისამართის მაჩვენებელი 0000
NVMCON WR გაფუჭდა WRERR NVMPIDL SFTSWP P2ACTIV RPDF URERR NVMOP [3:0] 0000
NVMKEY NVMKEY [7:0] 0000
NVMSRCADRL მონაცემთა RAM პროგრამირების ბუფერის საწყისი მისამართი 0000
NVMSRCADRH მონაცემთა RAM-ის პროგრამირების ბუფერის მისამართი (მხოლოდ EDS ოპერაციები) 0000
NVMADRL Flash პროგრამის მეხსიერების დანიშნულების მისამართი, ქვედა ბაიტი (ADDR[15:0]) 0000
NVMADRH ფლეშ პროგრამის მეხსიერების დანიშნულების მისამართი, ზედა ბაიტი (ADDR[23:16]) 0000

დაკავშირებული განაცხადის შენიშვნები

ამ განყოფილებაში ჩამოთვლილია განაცხადის შენიშვნები, რომლებიც დაკავშირებულია სახელმძღვანელოს ამ განყოფილებასთან. განაცხადის ეს შენიშვნები შეიძლება არ იყოს დაწერილი სპეციალურად PIC24 ან dsPIC33 პროდუქტის ოჯახებისთვის, მაგრამ ცნებები აქტუალურია და შეიძლება გამოყენებულ იქნას ცვლილებებითა და შესაძლო შეზღუდვებით. მიმდინარე აპლიკაციის შენიშვნები, რომლებიც დაკავშირებულია ორმაგი დანაყოფი Flash პროგრამის მეხსიერებასთან არის:

შენიშვნა: გთხოვთ ეწვიოთ მიკროჩიპს webსაიტი (www.microchip.com) დამატებითი განაცხადის შენიშვნებისთვის და კოდისთვის მაგamples PIC24 და dsPIC33 ოჯახების მოწყობილობებისთვის.

გადასინჯვის ისტორია

  • რევიზია A (2014 წლის მარტი)
    ამ დოკუმენტის ორიგინალური ვერსია.
  • რევიზია B (2015 წლის თებერვალი)
    შეცვალა ფრაზის სათაური და ყველა მაგალითი, „Dual Boot Flash Program Memory“ „Dual Partition Flash Program Memory“ ან „Dual Partition Flash“.
  • რევიზია C (ნოემბერი 2021)
    დამატებულია 4.1.1.1 „შეფერხებების გამორთვა“.
    განახლებულია 4.1.1 „კონტროლის რეგისტრები“, 4.4.2 „მწკრივების პროგრამირება (აქტიური დანაყოფი, დანაყოფის სტანდარტული რეჟიმი)“, 4.4.3 „გვერდის დაპროგრამება არააქტიურ დანაყოფში (ორმაგი დანაყოფის რეჟიმები)“ და 4.4.4 „მთელი პროგრამირება არააქტიური დანაყოფი (ორმაგი დანაყოფის რეჟიმები)”. განახლებულია ექსample 4-5, მაგample 4-6 და Exampლე 4-7.

გაითვალისწინეთ კოდის დაცვის ფუნქციის შემდეგი დეტალები მიკროჩიპის პროდუქტებზე:

  • მიკროჩიპის პროდუქტები აკმაყოფილებს სპეციფიკაციებს, რომლებიც მოცემულია მიკროჩიპის მონაცემთა ფურცელში.
  • Microchip თვლის, რომ მისი ოჯახის პროდუქტები უსაფრთხოა, როდესაც გამოიყენება დანიშნულებისამებრ, ოპერაციული სპეციფიკაციების ფარგლებში და ნორმალურ პირობებში.
  • მიკროჩიპი აფასებს და აგრესიულად იცავს მის ინტელექტუალურ საკუთრების უფლებებს. მიკროჩიპის პროდუქტის კოდის დაცვის მახასიათებლების დარღვევის მცდელობა მკაცრად აკრძალულია და შესაძლოა არღვევდეს ციფრული ათასწლეულის საავტორო უფლებების აქტს.
  • არც მიკროჩიპი და არც ნახევარგამტარების სხვა მწარმოებელი არ იძლევა მისი კოდის უსაფრთხოების გარანტიას. კოდის დაცვა არ ნიშნავს იმას, რომ ჩვენ გარანტიას ვაძლევთ პროდუქტის „შეურღვევია“. კოდის დაცვა მუდმივად ვითარდება. მიკროჩიპი მოწოდებულია მუდმივად გააუმჯობესოს ჩვენი პროდუქციის კოდის დაცვის მახასიათებლები.

ეს პუბლიკაცია და აქ არსებული ინფორმაცია შეიძლება გამოყენებულ იქნას მხოლოდ Microchip-ის პროდუქტებთან, მათ შორის მიკროჩიპის პროდუქტების დიზაინის, ტესტირებისა და ინტეგრაციისთვის თქვენს აპლიკაციაში. ამ ინფორმაციის ნებისმიერი სხვა გზით გამოყენება არღვევს წინამდებარე პირობებს. ინფორმაცია მოწყობილობის აპლიკაციებთან დაკავშირებით მოწოდებულია მხოლოდ თქვენი მოხერხებულობისთვის და შეიძლება შეიცვალოს განახლებებით. თქვენი პასუხისმგებლობაა უზრუნველყოთ, რომ თქვენი აპლიკაცია აკმაყოფილებს თქვენს სპეციფიკაციებს. დაუკავშირდით თქვენს ადგილობრივ მიკროჩიპის გაყიდვების ოფისს დამატებითი მხარდაჭერისთვის ან მიიღეთ დამატებითი მხარდაჭერა აქ https://www.microchip.com/en-us/support/design-help/client-supportservices.

ეს ინფორმაცია მოწოდებულია მიკროჩიპის მიერ "როგორც არის". მიკროჩიპი არ იძლევა რაიმე სახის წარმომადგენლობას ან გარანტიას, იქნება ეს გამოხატული თუ ნაგულისხმევი, წერილობითი თუ ზეპირი, კანონმდებლობით თუ სხვაგვარად, დაკავშირებულ ინფორმაციასთან, მათ შორის, ცალსახად, მაგრამ არ არის შეზღუდული ზედმეტად შეზღუდული , ან დაკავშირებული გარანტიები მისი მდგომარეობა, ხარისხი ან შესრულება. არავითარ შემთხვევაში მიკროჩიპი პასუხისმგებელი არ იქნება რაიმე სახის ირიბი, სპეციალური, სადამსჯელო, შემთხვევითი ან თანმიმდევრული დანაკარგისთვის, ზიანისთვის, ღირებულებისთვის ან ხარჯისთვის, რაც არ უნდა იყოს დაკავშირებული აშშ-სთან შესაძლებლობა ან ზარალი განჭვრეტადია. კანონით ნებადართული სრულყოფილად, მიკროჩიპის სრული პასუხისმგებლობა ყველა პრეტენზიაზე, რომელიც დაკავშირებულია ინფორმაციასთან ან მის გამოყენებასთან, არ აღემატება საკომისიოების ოდენობას, ასეთის არსებობის შემთხვევაში.

მიკროჩიპის მოწყობილობების გამოყენება სიცოცხლის მხარდაჭერისა და/ან უსაფრთხოების აპლიკაციებში მთლიანად მყიდველის რისკის ქვეშაა და მყიდველი თანახმაა დაიცვას, აანაზღაუროს და შეინახოს უვნებელი მიკროჩიპი ნებისმიერი და ყველა ზიანისგან, პრეტენზიისგან, სარჩელისგან ან ხარჯისგან. არანაირი ლიცენზია არ არის გადაცემული, ირიბად ან სხვაგვარად, ნებისმიერი მიკროჩიპის ინტელექტუალური საკუთრების უფლებით, თუ სხვა რამ არ არის მითითებული.

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile არის Arm Limited-ის (ან მისი შვილობილი კომპანიების) სავაჭრო ნიშნები ან რეგისტრირებული სავაჭრო ნიშნები აშშ-ში და/ან სხვაგან.

Microchip-ის ხარისხის მართვის სისტემების შესახებ ინფორმაციისთვის ეწვიეთ www.microchip.com/quality.

სავაჭრო ნიშნები

მიკროჩიპის სახელი და ლოგო, მიკროჩიპის ლოგო, Adaptec, AnyRate, AVR, AVR ლოგო, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq,LinkMDChe, KL maXTouch, MediaLB, megaAVR, Microsemi, Microsemi ლოგო, MOST, MOST ლოგო, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32 ლოგო, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SuperFST, Logo , Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron და XMEGA არის მიკროჩიპის ტექნოლოგიის რეგისტრირებული სავაჭრო ნიშნები, რომლებიც ინკორპორირებულია აშშ-ში და სხვა ქვეყნებში. 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 Wire logo, Quiet SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, WinPath და ZL არის აშშ-ში ჩართული მიკროჩიპის ტექნოლოგიის რეგისტრირებული სავაჭრო ნიშნები.

მიმდებარე კლავიშის ჩახშობა, AKS, ანალოგური ციფრული ხანისთვის, ნებისმიერი კონდენსატორი, AnyIn, AnyOut, გაძლიერებული გადართვა, BlueSky, BodyCom, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoPDEMICController, CryptoPDEMICController. , ECAN, ესპრესო T1S, EtherGREEN, GridTime, IdealBridge, სერიული პროგრამირება, ICSP, INICnet, ინტელექტუალური პარალელურობა, ჩიპებს შორის დაკავშირება, JitterBlocker, Knob-on-Display, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB სერტიფიცირებული ლოგო, MPLIB, MPLINK, MultiTRAK, NetDetach, NVM Express, NVMe, ყოვლისმომცველი კოდის გენერაცია, PICDEM, PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, REALMatri , Ripple ბლოკერი, RTAX, RTG4, SAM-ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, USBCheck VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect და ZENA არის Microchip Technology-ის სავაჭრო ნიშნები, რომლებიც ინკორპორირებულია აშშ-სა და სხვა ქვეყნებში.
SQTP არის Microchip Technology-ის მომსახურების ნიშანი, რომელიც დაფუძნებულია აშშ-ში
Adaptec ლოგო, Frequency on Demand, Silicon Storage Technology, Symmcom და Trusted Time არის Microchip Technology Inc.-ის რეგისტრირებული სავაჭრო ნიშნები სხვა ქვეყნებში.
GestIC არის Microchip Technology Germany II GmbH & Co. KG-ის რეგისტრირებული სავაჭრო ნიშანი, Microchip Technology Inc.-ის შვილობილი კომპანია, სხვა ქვეყნებში.
აქ ნახსენები ყველა სხვა სავაჭრო ნიშანი მათი შესაბამისი კომპანიების საკუთრებაა.
© 2014-2021, Microchip Technology Incorporated და მისი შვილობილი კომპანიები.

გაყიდვები და მომსახურება მსოფლიოში

ამერიკა

აზია/წყნარი ოკეანე

  • ავსტრალია - სიდნეი
    ტელ: 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
  • ჩინეთი - Xian
    ტელ: 86-29-8833-7252
  • ჩინეთი - Xiamen
    ტელ: 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
  • ტაივანი – ჰსინ ჩუ
    ტელ: 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 მოწყობილობაზე. გთხოვთ, გაეცნოთ შენიშვნას „Dual Partition Flash Program Memory“ თავის დასაწყისში მიმდინარე მოწყობილობის მონაცემთა ფურცელში, რათა შეამოწმოთ, აქვს თუ არა ეს დოკუმენტი მხარს უჭერს მოწყობილობას, რომელსაც იყენებთ. მოწყობილობის მონაცემთა ფურცლები და ოჯახის საცნობარო სახელმძღვანელოს სექციები ხელმისაწვდომია ჩამოსატვირთად Microchip Worldwide-დან Webსაიტი: http://www.microchip.com.

დოკუმენტები / რესურსები

MICROCHIP PIC24 ორმაგი დანაყოფი Flash პროგრამის მეხსიერება [pdf] მომხმარებლის სახელმძღვანელო
PIC24 ორმაგი დანაყოფი ფლეშ პროგრამის მეხსიერება, PIC24, ორმაგი დანაყოფი ფლეშ პროგრამის მეხსიერება, ფლეშ პროგრამის მეხსიერება, პროგრამის მეხსიერება

ცნობები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი არ გამოქვეყნდება. მონიშნულია აუცილებელი ველები *