Obsah:
- Krok 1: Pripojenia Arduino-GreenPAK
- Krok 2: Export údajov GreenPAK NVM zo súboru návrhu GreenPAK
- Krok 3: Použite skicu Arduino
- Krok 4: Programovacie tipy a osvedčené postupy
- Krok 5: Diskusia Errata
Video: Príklad programovania MTP Arduino: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
V tomto návode vám ukážeme, ako použiť programovaciu skicu SLG46824/6 Arduino na programovanie zariadenia Dialog SLG46824/6 GreenPAK ™ Multiple-Time Programmable (MTP).
Väčšina zariadení GreenPAK je jednorazovo programovateľných (OTP), čo znamená, že akonáhle je ich banka energeticky nezávislej pamäte (NVM) zapísaná, nemožno ju prepísať. GreenPAK s funkciou MTP, podobne ako SLG46824 a SLG46826, majú iný typ pamäťovej banky NVM, ktorú je možné naprogramovať viackrát.
Napísali sme skicu Arduino, ktorá umožňuje používateľovi naprogramovať MTP GreenPAK pomocou niekoľkých jednoduchých príkazov sériového monitora. V tomto návode používame SLG46826 ako náš GreenPAK s MTP.
Ponúkame ukážkový kód pre Arduino Uno pomocou open-source platformy založenej na C/C ++. Dizajnéri by mali extrapolovať techniky používané v kóde Arduino pre svoju konkrétnu platformu.
Konkrétne informácie o špecifikáciách signálu I2C, adresovaní I2C a pamäťových priestoroch nájdete v In-System Programming Guide spoločnosti GreenPAK, ktorá sa nachádza na stránke produktu SLG46826. Tento návod poskytuje jednoduchú implementáciu tohto sprievodcu programovaním.
Ďalej sme popísali potrebné kroky, aby ste pochopili, ako bol čip GreenPAK naprogramovaný. Ak však chcete získať iba výsledok programovania, stiahnite si softvér GreenPAK a zobrazte už dokončený súbor návrhu GreenPAK. Pripojte vývojovú súpravu GreenPAK k počítaču a kliknutím na program vytvorte vlastný integrovaný obvod.
Krok 1: Pripojenia Arduino-GreenPAK
Na programovanie NVM nášho SLG46826 GreenPAK pomocou našej skici Arduino budeme najskôr musieť pripojiť štyri piny Arduino Uno k nášmu GreenPAK. Tieto piny môžete pripojiť priamo k zásuvkovému adaptéru GreenPAK alebo k oddeľovacej doske so spájkovaným GreenPAK.
Vezmite prosím na vedomie, že externé pull -up rezistory I2C nie sú na obrázku 1. Pripojte 4,7 kΩ pull -up odpor z SCL aj SDA k 3,3 V výstupu Arduina.
Krok 2: Export údajov GreenPAK NVM zo súboru návrhu GreenPAK
Zostavíme veľmi jednoduchý dizajn GreenPAK, ktorý ilustruje, ako exportovať údaje NVM. Nasledujúci dizajn je jednoduchý radič úrovní, kde sú modré kolíky vľavo viazané na VDD (3,3v), zatiaľ čo žlté kolíky napravo sú viazané na VDD2 (1,8v).
Ak chcete exportovať informácie z tohto návrhu, musíte vybrať Súbor → Exportovať → Exportovať NVM, ako je znázornené na obrázku 3.
Potom budete musieť vybrať typ súboru Intel HEX Files (*.hex) a uložiť súbor.
Teraz budete musieť otvoriť súbor.hex v textovom editore (napríklad Notepad ++). Ak sa chcete dozvedieť viac o formáte a syntaxi súboru HEX spoločnosti Intel, navštívte jeho stránku Wikipedia. Pre túto aplikáciu nás zaujíma iba dátová časť súboru, ako je znázornené na obrázku 5.
Zvýraznite a skopírujte 256 bajtov konfiguračných údajov NVM umiestnených v súbore HEX. Každý riadok, ktorý kopírujeme, má 32 znakov, čo zodpovedá 16 bajtom.
Vložte informácie do zvýraznenej sekcie nvmString náčrtu Arduino, ako je znázornené na obrázku 6. Ak používate mikrokontrolér, ktorý nie je Arduino, môžete napísať funkciu na analýzu nvmData uložených v súbore GreenPAK. GP6. (Ak otvoríte súbor GreenPAK pomocou textového editora, uvidíte, že informácie o projekte ukladáme v ľahko prístupnom formáte XML.)
Ak chcete nastaviť údaje EEPROM pre svoj návrh GreenPAK, vyberte blok EEPROM na paneli komponentov, otvorte panel vlastností a kliknite na „Nastaviť údaje“.
Teraz môžete každý bajt v EEPROM upravovať jednotlivo pomocou nášho rozhrania GUI.
Akonáhle sú vaše údaje EEPROM nastavené, môžete ich exportovať do súboru HEX pomocou rovnakého postupu, aký bol predtým popísaný pri exporte údajov NVM. Vložte týchto 256 bajtov údajov EEPROM do sekcie eepromString náčrtu Arduino.
Pri každom vlastnom dizajne je dôležité skontrolovať nastavenia ochrany na karte „Zabezpečenie“v nastaveniach projektu. Táto karta konfiguruje ochranné bity pre maticové konfiguračné registre, NVM a EEPROM. V určitých konfiguráciách môže nahranie sekvencie NVM zablokovať SLG46824/6 do aktuálnej konfigurácie a odstrániť funkčnosť MTP čipu.
Krok 3: Použite skicu Arduino
Nahrajte skicu do svojho Arduina a otvorte sériový monitor s prenosovou rýchlosťou 115 200 baudov. Teraz môžete pomocou výziev MENU skice vykonávať niekoľko príkazov:
● Čítať - číta údaje NVM zariadenia alebo údaje EEPROM pomocou zadanej adresy slave
● Vymazať - vymaže údaje NVM zariadenia alebo údaje EEPROM pomocou zadanej adresy slave
● Zápis - Vymaže a potom zapíše buď údaje NVM zariadenia, alebo údaje EEPROM pomocou zadanej adresy slave. Tento príkaz zapíše údaje, ktoré sú uložené v poliach nvmString alebo eepromString.
● Ping - vráti zoznam adries slave zariadení, ktoré sú pripojené k zbernici I2C
Výsledky týchto príkazov sa vytlačia na konzolu sériového monitora.
Krok 4: Programovacie tipy a osvedčené postupy
V priebehu podpory SLG46824/6 sme zdokumentovali niekoľko programovacích tipov, ktoré vám pomôžu vyhnúť sa bežným nástrahám spojeným s vymazaním a zápisom do adresného priestoru NVM. Nasledujúce podsekcie podrobnejšie rozoberajú túto tému.
1. Vykonanie presných 16-bajtových zápisov stránky NVM:
Pri zápise údajov do NVM SLG46824/6 existujú tri techniky, ktorým sa treba vyhnúť:
● Stránka zapisuje menej ako 16 bajtov
● Stránka zapisuje viac ako 16 bajtov
● Stránka píše, že sa nezačína prvým registrom na stránke (IE: 0x10, 0x20 atď.)
Ak sa použije niektorá z vyššie uvedených techník, rozhranie MTP bude ignorovať zápis I2C, aby sa zabránilo načítaniu NVM nesprávnymi informáciami. Po zápise odporúčame vykonať I2C čítanie adresného priestoru NVM, aby ste overili správny prenos údajov.
2. Prenos údajov NVM do registrov konfigurácie matice
Keď je zapísaný NVM, maticové konfiguračné registre sa automaticky znova nenačítajú s novo zapísanými údajmi NVM. Prenos sa musí začať manuálne cyklovaním PAK VDD alebo vygenerovaním mäkkého resetu pomocou I2C. Nastavením registra na adrese 0xC8 zariadenie znova povolí sekvenciu Power-On Reset (POR) a znova zavedie údaje registra z NVM do registrov.
3. Resetovanie adresy I2C po vymazaní NVM:
Keď je NVM vymazaný, adresa NVM obsahujúca adresu I2C slave bude nastavená na 0000. Po vymazaní si čip zachová svoju aktuálnu adresu slave v konfiguračných registroch, kým sa zariadenie resetuje, ako je popísané vyššie. Akonáhle bol čip resetovaný, adresa I2C slave musí byť nastavená na adrese 0xCA v konfiguračných registroch vždy, keď je GreenPAK napájaný alebo resetovaný. To sa musí vykonať, kým nebude do NVM zapísaná nová stránka s adresou slave I2C.
Krok 5: Diskusia Errata
Pri zápise na „Bajt vymazania stránky“(adresa: 0xE3), SLG46824/6 produkuje ACK, ktorý nie je kompatibilný s I2C, za časť „Data“príkazu I2C. Toto správanie môže byť interpretované ako NACK v závislosti od implementácie hlavného I2C.
Aby sme sa vyhli tomuto správaniu, upravili sme programátor Arduino komentovaním kódu zobrazeného na obrázku 11. Táto časť kódu kontroluje I2C ACK na konci každého príkazu I2C vo funkcii eraseChip (). Táto funkcia sa používa na vymazanie stránok NVM a EEPROM. Pretože je táto časť kódu umiestnená v slučke For, „return -1;“riadok spôsobí, že MCU predčasne ukončí funkciu.
Napriek prítomnosti NACK, funkcie mazania NVM a EEPROM budú správne fungovať. Podrobné vysvetlenie tohto správania nájdete v časti „Problém 2: Správanie ACK, ktoré nie je v súlade s I2C pre bajt vymazania stránky NVM a EEPROM“v dokumente errata SLG46824/6 (Revízia XC) na webovej stránke Dialog.
Záver
V tomto návode popisujeme proces použitia dodaného programátora Arduino na nahranie vlastných reťazcov NVM a EEPROM do IC GreenPAK. Kód v náčrte Arduino je dôkladne okomentovaný, ale ak máte akékoľvek otázky týkajúce sa náčrtu, kontaktujte jedného z našich terénnych aplikačných inžinierov alebo uverejnite svoju otázku na našom fóre. Podrobnejšie informácie o registroch a postupoch programovania MTP nájdete v In-System Programming Guide spoločnosti Dialog.
Odporúča:
Zaujímavé pokyny pre programovanie programovania pre návrhára-ovládanie farieb: 10 krokov
Zaujímavé pokyny pre programovanie programovania pre návrhárov-Ovládanie farieb: V predchádzajúcich kapitolách sme si povedali viac o tom, ako použiť kód na tvarovanie, a nie o znalostné body o farbe. V tejto kapitole sa pokúsime hlbšie preskúmať tento aspekt znalostí
[Prod] TS 2x20W - Parametre programovania Bluetooth Pour Enceintes Craft 'n Sound: 9 krokov
[Produkcia] TS 2x20W - Parametre programovania Technológia Bluetooth Vyrába zvuk: Les enceintes Craft 'n Sound Interegrant un DSP (Digital Sound Processor = Traitement Numérique du Son), množstvo zvukových signálov a výšok a ďalších le paramétrer précisément, selon le type et les volumes de l'enceinte, les haut-par
Vylepšenia programovania vlakov v MATLABe: 6 krokov
Vylepšenia programovania vlakov v MATLAB: Cieľ: Cieľom tohto programovaného systému je pozrieť sa na Arduino v malom meradle a vo väčšej miere aplikovať kódovanie, aby sa potenciálne rozšírili určité bezpečnostné funkcie železničných systémov Amtrak. Aby sme to urobili, pridali sme snímač pôdnej vlhkosti
Stopky bez programovania: 5 krokov
Zastavte sledovanie bez programovania: Hej, chlapci, pre všetkých začiatočníkov je tu skvelý projekt, ktorý môžete vytvoriť bez programovania. Je to jednoduché a tiež efektívne z hľadiska nákladov. Predtým, ako začneme, pozrime sa na zoznam dielov: Použité integrované obvody: 1) 555 časovač- x12) CD 4081BE (A g
Úvod do programovania 8051 s AT89C2051 (hosťujúca hviezda: Arduino): 7 krokov (s obrázkami)
Úvod do programovania 8051 s AT89C2051 (hosťujúca hviezda: Arduino): 8051 (tiež známy ako MCS-51) je dizajn MCU z 80. rokov, ktorý je dnes stále populárny. Moderné mikrokontroléry kompatibilné s 8051 sú k dispozícii od viacerých dodávateľov, všetkých tvarov a veľkostí a so širokou škálou periférií. V tomto návode