Sisukord:

MTP Arduino programmeerimise näide: 5 sammu
MTP Arduino programmeerimise näide: 5 sammu

Video: MTP Arduino programmeerimise näide: 5 sammu

Video: MTP Arduino programmeerimise näide: 5 sammu
Video: MTP 12103 COMPUTER PROGRAMMING 2024, Juuli
Anonim
MTP Arduino programmeerimise näide
MTP Arduino programmeerimise näide

Selles juhendis näitame, kuidas kasutada programmeerimisvisandit SLG46824/6 Arduino Dialog SLG46824/6 GreenPAK ™ mitme korraga programmeeritava (MTP) seadme programmeerimiseks.

Enamik GreenPAK-seadmeid on ühekordselt programmeeritavad (OTP), mis tähendab, et kui nende püsimälu pank (NVM) on kirjutatud, ei saa seda üle kirjutada. MTP -funktsiooniga GreenPAK -idel, nagu SLG46824 ja SLG46826, on erinevat tüüpi NVM -mälupank, mida saab programmeerida mitu korda.

Oleme kirjutanud Arduino visandi, mis võimaldab kasutajal programmeerida MTP GreenPAK mõne lihtsa seeriamonitori käsuga. Selles juhendis kasutame SLG46826 oma GreenPAKina koos MTP -ga.

Pakume Arduino Uno näidiskoodi, kasutades avatud lähtekoodiga platvormi, mis põhineb C/C ++ -l. Disainerid peaksid oma konkreetse platvormi jaoks ekstrapoleerima Arduino koodis kasutatud tehnikad.

Täpsemat teavet I2C signaali spetsifikatsioonide, I2C aadresside ja mäluruumide kohta leiate SLG46826 tootelehelt leiate GreenPAK süsteemisisese programmeerimise juhendist. See juhend pakub selle programmeerimisjuhendi lihtsat rakendamist.

Allpool kirjeldasime samme, mida on vaja mõista, kuidas GreenPAK kiip on programmeeritud. Kui aga soovite lihtsalt programmeerimise tulemust saada, laadige GreenPAKi tarkvara alla, et vaadata juba valminud GreenPAK disainifaili. Ühendage GreenPAK arenduskomplekt arvutiga ja klõpsake kohandatud IC loomiseks programmi.

Samm: Arduino-GreenPAK ühendused

Arduino-GreenPAK ühendused
Arduino-GreenPAK ühendused
Arduino-GreenPAK ühendused
Arduino-GreenPAK ühendused

Meie SLG46826 GreenPAK NVM -i programmeerimiseks meie Arduino eskiisiga peame kõigepealt ühendama GreenPAKiga neli Arduino Uno tihvti. Saate need tihvtid ühendada otse GreenPAK -pistikupesaadapteriga või purunemisplaadiga, kui GreenPAK on joodetud.

Pange tähele, et väliseid I2C tõmbetakistusi pole joonisel 1 näidatud. Ühendage 4,7 kΩ tõmbetakisti nii SCL -st kui ka SDA -st Arduino 3,3 V väljundiga.

2. samm: GreenPAK NVM -i andmete eksportimine GreenPAK -i disainifailist

GreenPAK NVM -i andmete eksportimine GreenPAK -i disainifailist
GreenPAK NVM -i andmete eksportimine GreenPAK -i disainifailist
GreenPAK NVM -i andmete eksportimine GreenPAK -i disainifailist
GreenPAK NVM -i andmete eksportimine GreenPAK -i disainifailist
GreenPAK NVM -i andmete eksportimine GreenPAK -i disainifailist
GreenPAK NVM -i andmete eksportimine GreenPAK -i disainifailist

Koostame väga lihtsa GreenPAK -disaini, et illustreerida NVM -i andmete eksportimist. Allolev disain on lihtne taseme nihutaja, kus vasakpoolsed sinised tihvtid on seotud VDD -ga (3,3 V) ja paremal olevad kollased nööpnõelad VDD2 -ga (1,8 V).

Selle kujunduse teabe eksportimiseks peate valima Fail → Ekspordi → Ekspordi NVM, nagu on näidatud joonisel 3.

Seejärel peate failitüübiks valima Intel HEX Files (*.hex) ja faili salvestama.

Nüüd peate avama.hex -faili tekstiredaktoriga (nt Notepad ++). Inteli HEX -failivormingu ja süntaksi kohta lisateabe saamiseks vaadake selle Wikipedia lehte. Selle rakenduse puhul oleme huvitatud ainult faili andmeosast, nagu on näidatud joonisel 5.

Tõstke esile ja kopeerige 256 baiti NVM -i konfiguratsiooniandmeid, mis asuvad HEX -failis. Iga kopeeritav rida on 32 tähemärki pikk, mis vastab 16 baidile.

Kleepige teave Arduino visandi esiletõstetud jaotisse nvmString , nagu on näidatud joonisel 6. Kui kasutate mitte-Arduino mikrokontrollerit, võite kirjutada funktsiooni GreenPAK. GP6 faili salvestatud nvmData sõelumiseks. (Kui avate GreenPAK-faili tekstiredaktoriga, näete, et salvestame projekti teabe hõlpsasti juurdepääsetavas XML-vormingus.)

EPAROM -andmete seadistamiseks oma GreenPAK -i kujundusele valige komponentide paneelilt EEPROM -plokk, avage selle atribuutide paneel ja klõpsake "Set Data".

Nüüd saate meie GUI liidese abil iga baiti EEPROMis eraldi muuta.

Kui teie EEPROM -andmed on seatud, saate need eksportida HEX -faili, kasutades sama meetodit, mida varem NVM -andmete eksportimisel kirjeldati. Sisestage need 256 baiti EEPROMi andmeid Arduino visandi jaotisse eepromString.

Iga kohandatud kujunduse puhul on oluline kontrollida kaitseseadeid projektiseadete vahekaardil „Turvalisus”. Sellel vahekaardil konfigureeritakse maatriksi konfiguratsiooniregistrite, NVM -i ja EEPROM -i kaitsebitte. Teatud konfiguratsioonide korral võib NVM -i jada üleslaadimine lukustada SLG46824/6 praeguse konfiguratsiooni ja eemaldada kiibi MTP -funktsioonid.

Samm: kasutage Arduino visandit

Kasutage Arduino visandit
Kasutage Arduino visandit

Laadige eskiis oma Arduinole üles ja avage jadamonitor 115200 -bitise kiirusega. Nüüd saate visandi menüüviipade abil teha mitmeid käske:

● Loe - loeb kas seadme NVM -i andmeid või EEPROM -andmeid, kasutades määratud alam -aadressi

● Kustuta - kustutab seadme NVM -i andmed või EEPROM -andmed, kasutades määratud alam -aadressi

● Kirjutamine - kustutab ja kirjutab seejärel seadme NVM -i andmed või EEPROM -andmed, kasutades määratud alam -aadressi. See käsk kirjutab andmed, mis on salvestatud massiividesse nvmString või eepromString.

● Ping - tagastab I2C siiniga ühendatud seadme alam -aadresside loendi

Nende käskude tulemused prinditakse jadamonitori konsoolile.

4. samm: programmeerimisnõuanded ja head tavad

SLG46824/6 toetamise käigus oleme dokumenteerinud mõned programmeerimisnõuanded, mis aitavad vältida levinud lõkse, mis on seotud NVM -i aadressiruumi kustutamise ja kirjutamisega. Järgmistes alajaotustes kirjeldatakse seda teemat üksikasjalikumalt.

1. Täpse 16-baidise NVM-i lehekirjutuse täitmine:

SLG46824/6 NVM -i andmete kirjutamisel tuleb vältida kolme tehnikat:

● Lehekülje kirjutamine vähem kui 16 baidiga

● Lehekülg kirjutab rohkem kui 16 baidiga

● Lehekirjutused, mis ei alga lehe esimesest registrist (IE: 0x10, 0x20 jne)

Kui kasutatakse mõnda ülaltoodud tehnikat, eirab MTP -liides I2C kirjutamist, et vältida NVM -i vale teabe laadimist. Õige andmeedastuse kontrollimiseks soovitame pärast kirjutamist läbi viia NVM -i aadressiruumi I2C -lugemine.

2. NVM -i andmete ülekandmine maatriksi konfiguratsiooniregistritesse

Kui NVM on kirjutatud, ei laadita maatriksikonfiguratsiooni registreid automaatselt uuesti koos äsja kirjutatud NVM -andmetega. Ülekanne tuleb algatada käsitsi, tsükliga PAK VDD või genereerides pehme lähtestamise I2C abil. Seadistades registri aadressile 0xC8, lubab seade uuesti Power-On Reset (POR) jada ja laadib registriandmed uuesti NVM-ist registritesse.

3. I2C -aadressi lähtestamine pärast NVM -i kustutamist:

Kui NVM kustutatakse, määratakse I2C alam -aadressi sisaldav NVM -i aadress 0000. Pärast kustutamist säilitab kiip oma praeguse alam -aadressi konfiguratsiooniregistrites, kuni seade lähtestatakse ülalkirjeldatud viisil. Kui kiip on lähtestatud, tuleb I2C alam-aadress seadistada konfiguratsiooniregistrite aadressile 0xCA iga kord, kui GreenPAK lülitatakse sisse või lähtestatakse. Seda tuleb teha seni, kuni uus I2C alam -aadressileht on NVM -i kirjutatud.

5. samm: vigade arutelu

Errata arutelu
Errata arutelu

„Lehe kustutamise baiti” (aadress: 0xE3) kirjutamisel tekitab SLG46824/6 pärast I2C käsu osa „Andmed” mitte I2C-ga ühilduva ACK. Seda käitumist võib tõlgendada NACK -na, sõltuvalt I2C -põhiseadme rakendusest.

Selle käitumise kohandamiseks muutsime Arduino programmeerijat, kommenteerides joonisel 11 näidatud koodi. See koodi jaotis kontrollib I2C ACK -i iga funktsiooni I2C käskluse lõpus funktsioonis eraseChip (). Seda funktsiooni kasutatakse NVM- ja EEPROM -lehtede kustutamiseks. Kuna see koodiosa asub ahelas For, tagastatakse -1; rida põhjustab MCU funktsioonist enneaegselt väljumise.

Vaatamata NACK -i olemasolule töötavad NVM ja EEPROM kustutusfunktsioonid korralikult. Selle käitumise üksikasjaliku selgituse saamiseks vaadake dialoogi veebisaidi SLG46824/6 vigade dokumendis (versioon XC) jaotist „Väljaanne 2: mitte-I2C-ühilduv ACK-käitumine NVM-i ja EEPROM-i lehe kustutamise baidi jaoks”.

Järeldus

Selles juhendis kirjeldame pakutava Arduino programmeerija kasutamise protsessi kohandatud NVM- ja EEPROM -stringide üleslaadimiseks GreenPAK IC -le. Arduino visandis sisalduvat koodi kommenteeritakse põhjalikult, kuid kui teil on eskiisi kohta küsimusi, võtke ühendust mõne meie rakenduseinseneriga või postitage oma küsimus meie foorumisse. Põhjalikumat teavet MTP programmeerimisregistrite ja -protseduuride kohta leiate Dialogi süsteemisisese programmeerimise juhendist.

Soovitan: