Բովանդակություն:
- Քայլ 1. Arduino-GreenPAK միացումներ
- Քայլ 2. GreenPAK NVM տվյալների արտահանում GreenPAK նախագծման ֆայլից
- Քայլ 3: Օգտագործեք Arduino ուրվագիծը
- Քայլ 4. mingրագրավորման խորհուրդներ և լավագույն փորձ
- Քայլ 5. Errata- ի քննարկում
Video: MTP Arduino ծրագրավորման օրինակ. 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Այս Ուղեցույցում մենք ցույց ենք տալիս, թե ինչպես օգտագործել SLG46824/6 Arduino ծրագրավորման ուրվագիծը ՝ Dialog SLG46824/6 GreenPAK ™ Multiple-Time Programmable (MTP) սարք ծրագրավորելու համար:
GreenPAK սարքերի մեծամասնությունը մեկանգամյա ծրագրավորվող է (OTP), ինչը նշանակում է, որ երբ գրվում է դրանց ոչ-անկայուն հիշողության բանկը (NVM), այն չի կարող վերագրվել: MTP գործառույթով GreenPAK- երը, ինչպես SLG46824 և SLG46826, ունեն տարբեր տեսակի NVM հիշողության բանկ, որը կարող է ծրագրավորվել մեկից ավելի անգամ:
Մենք գրել ենք Arduino- ի ուրվագիծ, որը թույլ է տալիս օգտվողին ծրագրավորել MTP GreenPAK- ը մի քանի սերիական մոնիտորի պարզ հրամաններով: Այս հրահանգում մենք օգտագործում ենք SLG46826 որպես մեր GreenPAK ՝ MTP- ով:
Մենք տրամադրում ենք օրինակելի կոդը Arduino Uno- ի համար ՝ օգտագործելով բաց կոդով հարթակ ՝ հիմնված C/C ++-ի վրա: Դիզայներները պետք է արտացոլեն Arduino ծածկագրում օգտագործվող տեխնիկան իրենց հատուկ հարթակի համար:
I2C ազդանշանների բնութագրերի, I2C հասցեագրման և հիշողության տարածքների վերաբերյալ հատուկ տեղեկատվության համար խնդրում ենք հղում կատարել GreenPAK համակարգային ծրագրավորման ուղեցույցին, որը տրամադրված է SLG46826 արտադրանքի էջում: Այս հրահանգը ապահովում է այս ծրագրավորման ուղեցույցի պարզ իրականացումը:
Ստորև մենք նկարագրեցինք անհրաժեշտ քայլերը `հասկանալու համար, թե ինչպես է ծրագրավորվել GreenPAK չիպը: Այնուամենայնիվ, եթե դուք պարզապես ցանկանում եք ստանալ ծրագրավորման արդյունքը, ներբեռնեք GreenPAK ծրագիրը ՝ արդեն ավարտված GreenPAK դիզայնի ֆայլը դիտելու համար: Միացրեք GreenPAK Development Kit- ը ձեր համակարգչին և հարվածեք ծրագրին `անհատականացված IC ստեղծելու համար:
Քայլ 1. Arduino-GreenPAK միացումներ
Մեր SLG46826 GreenPAK- ի NVM- ն Arduino էսքիզով ծրագրավորելու համար նախ պետք է Arduino Uno- ի չորս կապում միացնենք մեր GreenPAK- ին: Դուք կարող եք այս կապումներն ուղղակիորեն միացնել GreenPAK վարդակից ադապտերին կամ GreenPAK- ի հետ միացված ջարդման տախտակին:
Խնդրում ենք նկատի ունենալ, որ արտաքին I2C ձգվող դիմադրիչները ցույց չեն տրված Նկար 1 -ում: Խնդրում ենք միացնել 4.7 kΩ ձգվող դիմադրություն ինչպես SCL- ից, այնպես էլ SDA- ից Arduino- ի 3.3 Վ ելքային հզորությանը:
Քայլ 2. GreenPAK NVM տվյալների արտահանում GreenPAK նախագծման ֆայլից
Մենք կկազմենք GreenPAK- ի շատ պարզ դիզայն ՝ պատկերելու համար, թե ինչպես արտահանել NVM տվյալները: Ստորև ներկայացված դիզայնը պարզ մակարդակի փոփոխիչ է, որտեղ ձախ կապույտ կապումներն ամրացված են VDD- ով (3.3v), իսկ աջից դեղին կապում `VDD2 (1.8v):
Այս դիզայնից տեղեկատվություն արտահանելու համար հարկավոր է ընտրել Ֆայլ → Արտահանել → Արտահանել NVM, ինչպես ցույց է տրված Նկար 3 -ում:
Դրանից հետո ձեզ հարկավոր է ընտրել Intel HEX ֆայլեր (*.hex) որպես ֆայլի տեսակ և պահպանել ֆայլը:
Այժմ, ձեզ հարկավոր է բացել.hex ֆայլը տեքստային խմբագրիչով (ինչպես Notepad ++): Intel- ի HEX ֆայլի ձևաչափի և շարահյուսության մասին ավելին իմանալու համար այցելեք նրա Վիքիպեդիայի էջը: Այս հավելվածի համար մեզ հետաքրքրում է միայն ֆայլի տվյալների հատվածը, ինչպես ցույց է տրված Նկար 5 -ում:
Նշեք և պատճենեք HEX ֆայլի մեջ տեղակայված NVM կազմաձևման տվյալների 256 բայթ: Յուրաքանչյուր տող, որը մենք պատճենում ենք, ունի 32 նիշ, որը համապատասխանում է 16 բայթ:
Տեղադրեք տեղեկատվությունը Arduino- ի էսքիզի ընդգծված nvmString բաժնում, ինչպես ցույց է տրված Նկար 6-ում: Եթե օգտագործում եք ոչ Arduino միկրոկառավարիչ, կարող եք գրել գործառույթ ՝ GreenPAK. GP6 ֆայլում պահված nvmData- ի վերլուծության համար: (Եթե GreenPAK ֆայլը բացեք տեքստային խմբագրիչով, կտեսնեք, որ մենք նախագծի տեղեկատվությունը պահում ենք հեշտ հասանելի XML ձևաչափով):
EEPROM- ի տվյալները ձեր GreenPAK նախագծի համար սահմանելու համար բաղադրիչների վահանակից ընտրեք EEPROM բլոկը, բացեք դրա հատկությունների վահանակը և կտտացրեք «Սահմանել տվյալները»:
Այժմ կարող եք EEPROM- ի յուրաքանչյուր բայթ առանձին խմբագրել մեր GUI ինտերֆեյսի միջոցով:
Երբ ձեր EEPROM տվյալները կարգավորվեն, կարող եք դրանք արտահանել HEX ֆայլ ՝ օգտագործելով NVM տվյալների արտահանման համար նախկինում նկարագրված նույն մեթոդը: Տեղադրեք այս 256 բայթ EEPROM տվյալների Arduino ուրվագծի eepromString բաժնում:
Յուրաքանչյուր անհատական դիզայնի համար կարևոր է ստուգել պաշտպանության կարգավորումները ծրագրի պարամետրերի «Անվտանգություն» ներդիրում: Այս ներդիրը կարգավորում է մատրիցային կազմաձևման գրանցամատյանների, NVM- ի և EEPROM- ի պաշտպանության բիթերը: Որոշ կոնֆիգուրացիաների դեպքում NVM հաջորդականության վերբեռնումը կարող է կողպել SLG46824/6 -ը իր ընթացիկ կազմաձևին և հեռացնել չիպի MTP ֆունկցիոնալությունը:
Քայլ 3: Օգտագործեք Arduino ուրվագիծը
Վերբեռնեք էսքիզը ձեր Arduino- ում և բացեք սերիական մոնիտորը 115200 բաուդ արագությամբ: Այժմ դուք կարող եք օգտագործել էսքիզի MENU- ի հուշումները ՝ մի քանի հրաման կատարելու համար.
● Կարդալ - կարդում է կամ սարքի NVM տվյալները, կամ EEPROM- ի տվյալները `օգտագործելով նշված ստրուկի հասցեն
● raseնջել - ջնջում է կամ սարքի NVM տվյալները կամ EEPROM տվյալները ՝ օգտագործելով նշված ստրուկի հասցեն
● Գրեք - rasesնջում և այնուհետև գրում է կամ սարքի NVM տվյալները կամ EEPROM տվյալները ՝ օգտագործելով նշված ստրուկի հասցեն: Այս հրամանը գրում է այն տվյալները, որոնք պահվում են nvmString կամ eepromString զանգվածներում:
● Ping - վերադարձնում է սարքի ստրուկ հասցեների ցանկը, որոնք միացված են I2C ավտոբուսին
Այս հրամանների արդյունքները տպվելու են սերիական մոնիտորի վահանակում:
Քայլ 4. mingրագրավորման խորհուրդներ և լավագույն փորձ
SLG46824/6 -ին աջակցելու ընթացքում մենք փաստաթղթավորեցինք մի քանի ծրագրավորման խորհուրդներ, որոնք կօգնեն խուսափել NVM հասցեների տարածքի ջնջման և գրելու հետ կապված ընդհանուր որոգայթներից: Հետևյալ ենթաբաժիններն ավելի մանրամասն նկարագրում են այս թեման:
1. cutշգրիտ 16 բայթ NVM էջը գրում է.
SLG46824/6 -ի NVM- ին տվյալներ գրելիս խուսափելու երեք եղանակ կա.
● Էջը գրում է 16 բայթից պակաս
● Էջը գրում է ավելի քան 16 բայթ
● Էջը գրում է, որ չի սկսվում էջի առաջին գրանցումից (IE: 0x10, 0x20 և այլն)
Եթե վերը նշված մեթոդներից որևէ մեկն օգտագործվում է, MTP ինտերֆեյսը անտեսում է I2C գրությունը, որպեսզի խուսափի NVM- ի սխալ տեղեկատվությամբ բեռնումից: Մենք խորհուրդ ենք տալիս գրելուց հետո կատարել NVM հասցեի տարածքի I2C ընթերցում `տվյալների ճիշտ փոխանցումը ստուգելու համար:
2. NVM Տվյալների փոխանցում Մատրիցայի կազմաձևման գրանցամատյաններում
Երբ NVM- ն գրված է, մատրիցի կազմաձևման գրանցամատյանները ինքնաբերաբար չեն վերբեռնվում նոր գրված NVM տվյալներով: Փոխանցումը պետք է ձեռնարկվի ձեռքով `PAK VDD- ի հեծանվավազքի միջոցով կամ I2C- ի միջոցով փափուկ վերականգնում առաջացնելով: 0xC8 հասցեում գրանցամատյան սահմանելով ՝ սարքը նորից միացնում է Power-On Reset (POR) հաջորդականությունը և գրանցիչի տվյալները վերաբեռնում NVM- ից գրանցամատյաններում:
3. Վերականգնել I2C հասցեն NVM ջնջումից հետո.
Երբ NVM- ը ջնջվի, N2M հասցեն պարունակող NVM հասցեն կսահմանվի 0000: theնջումից հետո չիպը կպահպանի իր ընթացիկ ստրուկի հասցեն կազմաձևման գրանցամատյաններում, մինչև սարքը չվերակայվի, ինչպես նկարագրված է վերևում: Չիպը վերակայվելուց հետո I2C ստրուկի հասցեն պետք է տեղադրվի 0xCA հասցեում ՝ կազմաձևման գրանցամատյաններում, ամեն անգամ, երբ GreenPAK- ը հոսանքահարվում կամ զրոյացվում է: Դա պետք է արվի, քանի դեռ N2M- ում գրված չէ I2C ստրուկի հասցեի էջը:
Քայլ 5. Errata- ի քննարկում
«Էջի ջնջման բայթ» (Հասցե ՝ 0xE3) գրելիս SLG46824/6-ը I2C հրամանի «Տվյալներ» հատվածից հետո արտադրում է I2C- ին չհամապատասխանող ACK: Այս պահվածքը կարող է մեկնաբանվել որպես NACK ՝ կախված I2C վարպետի իրականացումից:
Այս վարքագծին հարմարվելու համար մենք փոփոխեցինք Arduino ծրագրավորողը `մեկնաբանելով Նկար 11 -ում նշված կոդը: Այս ծածկագրի հատվածը ստուգում է I2C ACK- ը eraseChip () գործառույթի յուրաքանչյուր I2C հրամանի վերջում: Այս գործառույթը օգտագործվում է NVM և EEPROM էջերը ջնջելու համար: Քանի որ կոդի այս հատվածը գտնվում է For loop- ում, «վերադարձ -1;» գծի պատճառով MCU- ն վաղաժամ դուրս է գալիս գործառույթից:
Չնայած NACK- ի առկայությանը, NVM և EEPROM ջնջման գործառույթները ճիշտ կիրականացվեն: Այս վարքագծի մանրամասն բացատրության համար խնդրում ենք անդրադառնալ «Թողարկում 2. NVM- ի և EEPROM էջի ջնջման բայթ ոչ I2C- ի համաձայն ACK վարքագծին» SLG46824/6 սխալի փաստաթղթում (Revision XC) ՝ Dialog- ի կայքում:
Եզրակացություն
Այս Instructable- ում մենք նկարագրում ենք տրամադրված Arduino ծրագրավորողի օգտագործման գործընթացը GreenPAK IC- ում մաքսային NVM և EEPROM տողերը վերբեռնելու համար: Arduino Sketch- ի ծածկագիրը մանրակրկիտ մեկնաբանված է, բայց եթե էսքիզին վերաբերող որևէ հարց ունեք, դիմեք մեր դաշտային կիրառման ճարտարագետներից մեկին կամ ձեր հարցը տեղադրեք մեր ֆորումում: MTP ծրագրավորման գրանցամատյանների և ընթացակարգերի վերաբերյալ ավելի մանրամասն տեղեկությունների համար դիմեք Dialog's In-System Programming Guide- ին:
Խորհուրդ ենք տալիս:
Ինչպես կատարել ձեր սեփական OS- ն: (խմբաքանակ և օրինակ ներսում). 5 քայլ
Ինչպես կատարել ձեր սեփական OS- ն: (խմբաքանակ և օրինակ ներսում). Ստեղծեք այն հիմա:
Arduino Matrix ստեղնաշարի կողպեքի ժամանակակից և նոր և ավելի հեշտ օրինակ 4x4: 3 քայլ
Arduino Matrix ստեղնաշարով կողպեքի արդիական և նոր և ավելի հեշտ օրինակ 4x4. I2C միացումով LCD ստեղնաշարի 4x4 մատրիցա օգտագործելու մեկ այլ օրինակ:
APP INVENTOR 2 - Մաքուր առջևի խորհուրդներ (+4 օրինակ) ՝ 6 քայլ
APP INVENTOR 2 - Մաքուր առջևի խորհուրդներ (+4 օրինակ). Մենք կտեսնենք, թե ինչպես կարող ենք ձեր հավելվածը AI2- ում էսթետիկ տեսք ունենալ :) Այս անգամ կոդ չկա, միայն խորհուրդներ են տրվում հարթ ծրագրի համար, ինչպիսին է վերևի 4 օրինակը:
IoT Guru Cloud - Պարզ գրաֆիկի օրինակ. 4 քայլ
IoT Guru Cloud - Պարզ գծապատկերային օրինակ. IoT Guru Cloud- ը տրամադրում է մի շարք հետնապահ ծառայություններ REST API- ի միջոցով, և դուք կարող եք հեշտությամբ ինտեգրվել այս REST զանգերը ձեր վեբ էջին: Highcharts- ի միջոցով դուք կարող եք ցուցադրել ձեր չափման գծապատկերները պարզապես AJAX կանչով
Arduino Matrix ստեղնաշարի կողպեքի օրինակ 4x4: 6 քայլ
Arduino Matrix ստեղնաշարի կողպեքի օրինակ 4x4: 2 եղանակ ՝ նվազագույն կապումներով 16 սեղմիչ ստեղնաշար կառավարելու համար