Sisukord:
- Samm: Arduino-GreenPAK ühendused
- 2. samm: GreenPAK NVM -i andmete eksportimine GreenPAK -i disainifailist
- Samm: kasutage Arduino visandit
- 4. samm: programmeerimisnõuanded ja head tavad
- 5. samm: vigade arutelu
Video: MTP Arduino programmeerimise näide: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
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
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
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
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
„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:
Programmeerimise seadistamine C/C ++ -is: 5 sammu
Programmeerimise seadistamine C/C ++ -is: C ja C ++ on populaarsed programmeerimiskeeled, mis pakuvad kiiret juurdepääsu valemite koostamisele ja keeruliste probleemide lahendamisele minimaalsete kulutatud ressurssidega. Probleem on leida viis programmi koostamiseks ja käivitatavaks muutmiseks. Üks teie valikutest võib olla
Elektroonika ja programmeerimise hõlbustamine visuaalse DIY töölaua abil: 3 sammu
Elektroonika ja programmeerimise hõlbustamine Visual DIY töölaua abil: kas olete kunagi tahtnud inspireerida lapsi elektroonikat ja mikrokontrollereid tundma õppima? Kuid ühine probleem, millega sageli silmitsi seisame, on see, et väikelaste põhiteadmisi on üsna raske mõista. Seal on mõned trükkplaadid
Programmeerimise põhiõpetus: 6 sammu
Programmeerimise põhiõpetus: see õpetab teile, kuidas kirjutada lihtsat programmi Pythonis. See on mõeldud inimestele, kellel on põhilised arvutioskused ja kes pole kunagi varem programmeerinud. Te vajate järgmist. Windowsiga arvuti.2. Võimalus tarkvara installida. Ma
ESP8266 12X mooduli programmeerimise kolm lihtsat viisi: 5 sammu (koos piltidega)
ESP8266 12X mooduli programmeerimise 3 lihtsat viisi: kui te pole ESP8266 mikrokontrolleriga tuttav, tunnen ma tõesti, et olete ilma jäänud! Need asjad on uskumatud: need on odavad, võimsad ja mis kõige parem-neil on sisseehitatud WiFi! ESP8266 alustas oma teekonda WiFi lisana pardal
Programmeerimise alustamine vooskeemiga: 7 sammu
Programmeerimise alustamine vooskeemiga: kas hakkate oma projektides kasutama PIC -mikrokontrollereid? need on väga kasulikud, kuid väga masendavad, kui teie programm lihtsalt ei tööta. See on üks viis oma ideede sorteerimiseks, koostades vooskeemi. Nii teevad professionaalsed programmeerijad sageli