Satura rādītājs:

MTP Arduino programmēšanas piemērs: 5 soļi
MTP Arduino programmēšanas piemērs: 5 soļi

Video: MTP Arduino programmēšanas piemērs: 5 soļi

Video: MTP Arduino programmēšanas piemērs: 5 soļi
Video: MTP 12103 COMPUTER PROGRAMMING 2024, Novembris
Anonim
MTP Arduino programmēšanas piemērs
MTP Arduino programmēšanas piemērs

Šajā pamācībā mēs parādām, kā izmantot SLG46824/6 Arduino programmēšanas skici, lai programmētu Dialog SLG46824/6 GreenPAK ™ vairākkārt programmējamu (MTP) ierīci.

Lielākā daļa GreenPAK ierīču ir vienreizēji programmējamas (OTP), kas nozīmē, ka pēc to gaistošās atmiņas bankas (NVM) ierakstīšanas to nevar pārrakstīt. GreenPAK ar MTP funkciju, piemēram, SLG46824 un SLG46826, ir cita veida NVM atmiņas banka, kuru var ieprogrammēt vairāk nekā vienu reizi.

Mēs esam uzrakstījuši Arduino skici, kas ļauj lietotājam programmēt MTP GreenPAK ar dažām vienkāršām sērijas monitora komandām. Šajā instrukcijā mēs izmantojam SLG46826 kā mūsu GreenPAK ar MTP.

Mēs piedāvājam Arduino Uno koda paraugu, izmantojot atvērtā koda platformu, kuras pamatā ir C/C ++. Dizaineriem vajadzētu ekstrapolēt Arduino kodā izmantotās metodes savai konkrētajai platformai.

Lai iegūtu specifisku informāciju par I2C signāla specifikācijām, I2C adresēšanu un atmiņas vietām, lūdzu, skatiet GreenPAK sistēmas programmēšanas rokasgrāmatu, kas sniegta SLG46826 produkta lapā. Šī pamācība nodrošina vienkāršu šīs programmēšanas rokasgrāmatas ieviešanu.

Zemāk mēs aprakstījām darbības, kas vajadzīgas, lai saprastu, kā ir ieprogrammēta GreenPAK mikroshēma. Tomēr, ja vēlaties tikai iegūt programmēšanas rezultātu, lejupielādējiet GreenPAK programmatūru, lai apskatītu jau pabeigto GreenPAK dizaina failu. Pievienojiet GreenPAK attīstības komplektu datoram un nospiediet programmu, lai izveidotu pielāgotu IC.

1. darbība: Arduino-GreenPAK savienojumi

Arduino-GreenPAK savienojumi
Arduino-GreenPAK savienojumi
Arduino-GreenPAK savienojumi
Arduino-GreenPAK savienojumi

Lai ieprogrammētu mūsu SLG46826 GreenPAK NVM ar mūsu Arduino skici, mums vispirms ir jāpievieno četras Arduino Uno tapas mūsu GreenPAK. Jūs varat savienot šīs tapas tieši ar GreenPAK kontaktligzdas adapteri vai sadalīšanas plāksni, ja GreenPAK ir pielodēts.

Lūdzu, ņemiet vērā, ka ārējie I2C pacelšanas rezistori nav parādīti 1. attēlā. Lūdzu, pievienojiet 4,7 kΩ uzvilkšanas rezistoru gan no SCL, gan no SDA Arduino 3,3 V izejai.

2. darbība. GreenPAK NVM datu eksportēšana no GreenPAK dizaina faila

GreenPAK NVM datu eksportēšana no GreenPAK dizaina faila
GreenPAK NVM datu eksportēšana no GreenPAK dizaina faila
GreenPAK NVM datu eksportēšana no GreenPAK dizaina faila
GreenPAK NVM datu eksportēšana no GreenPAK dizaina faila
GreenPAK NVM datu eksportēšana no GreenPAK dizaina faila
GreenPAK NVM datu eksportēšana no GreenPAK dizaina faila

Mēs apkoposim ļoti vienkāršu GreenPAK dizainu, lai ilustrētu, kā eksportēt NVM datus. Tālāk redzamais dizains ir vienkāršs līmeņa pārslēdzējs, kur zilās tapas kreisajā pusē ir piesaistītas VDD (3.3v), bet dzeltenās tapas labajā pusē ir saistītas ar VDD2 (1.8v).

Lai eksportētu informāciju no šī dizaina, jums jāizvēlas Fails → Eksportēt → Eksportēt NVM, kā parādīts 3. attēlā.

Pēc tam kā faila tips jāizvēlas Intel HEX faili (*.hex) un jāsaglabā fails.

Tagad jums būs jāatver.hex fails ar teksta redaktoru (piemēram, Notepad ++). Lai uzzinātu vairāk par Intel HEX faila formātu un sintaksi, skatiet tās Wikipedia lapu. Šai lietojumprogrammai mūs interesē tikai faila datu daļa, kā parādīts 5. attēlā.

Iezīmējiet un nokopējiet 256 baitus NVM konfigurācijas datu, kas atrodas HEX failā. Katra mūsu kopējamā rinda ir 32 rakstzīmes gara, kas atbilst 16 baitiem.

Ielīmējiet informāciju Arduino skices iezīmētajā sadaļā nvmString , kā parādīts 6. attēlā. Ja izmantojat citu Arduino mikrokontrolleri, varat uzrakstīt funkciju, lai parsētu GreenPAK. GP6 failā saglabātos nvmData datus. (Ja atverat GreenPAK failu ar teksta redaktoru, jūs redzēsiet, ka mēs glabājam informāciju par projektu viegli pieejamā XML formātā.)

Lai iestatītu EEPROM datus savam GreenPAK dizainam, komponentu panelī atlasiet EEPROM bloku, atveriet tā rekvizītu paneli un noklikšķiniet uz "Iestatīt datus".

Tagad jūs varat rediģēt katru baitu EEPROM atsevišķi, izmantojot mūsu GUI saskarni.

Kad jūsu EEPROM dati ir iestatīti, varat tos eksportēt uz HEX failu, izmantojot to pašu metodi, kas iepriekš aprakstīta NVM datu eksportēšanai. Ievietojiet šos 256 baitus EEPROM datu Arduino skices sadaļā eepromString.

Katram pielāgotajam dizainam ir svarīgi pārbaudīt aizsardzības iestatījumus projekta iestatījumu cilnē “Drošība”. Šī cilne konfigurē matricas konfigurācijas reģistru, NVM un EEPROM aizsardzības bitus. Noteiktās konfigurācijās, augšupielādējot NVM secību, SLG46824/6 var tikt bloķēta pašreizējā konfigurācijā un noņemta mikroshēmas MTP funkcionalitāte.

3. darbība: izmantojiet Arduino skici

Izmantojiet Arduino skici
Izmantojiet Arduino skici

Augšupielādējiet skici savā Arduino un atveriet seriālo monitoru ar 115200 bodu ātrumu. Tagad varat izmantot skices izvēlni MENU, lai izpildītu vairākas komandas:

● Lasīt - nolasa vai nu ierīces NVM datus, vai EEPROM datus, izmantojot norādīto vergu adresi

● Dzēst - dzēš ierīces NVM datus vai EEPROM datus, izmantojot norādīto vergu adresi

● Rakstīt - dzēš un pēc tam raksta ierīces NVM datus vai EEPROM datus, izmantojot norādīto vergu adresi. Šī komanda raksta datus, kas tiek saglabāti masīvos nvmString vai eepromString.

● Ping - atgriež ierīču vergu adrešu sarakstu, kas ir pievienotas I2C kopnei

Šo komandu rezultāti tiks izdrukāti seriālā monitora konsolē.

4. solis: programmēšanas padomi un paraugprakse

Atbalstot SLG46824/6, mēs esam dokumentējuši dažus programmēšanas padomus, lai palīdzētu izvairīties no bieži sastopamām kļūdām, kas saistītas ar dzēšanu un rakstīšanu NVM adrešu telpā. Turpmākajās apakšnodaļās šī tēma ir izklāstīta sīkāk.

1. Precīza 16 baitu NVM lapu rakstīšana:

Rakstot datus SLG46824/6 NVM, ir jāizvairās no trim paņēmieniem:

● Lapas raksta ar mazāk nekā 16 baitiem

● Lapas raksta ar vairāk nekā 16 baitiem

● Lapas rakstīšana, kas nesākas lapas pirmajā reģistrā (IE: 0x10, 0x20 utt.)

Ja tiek izmantota kāda no iepriekš minētajām metodēm, MTP saskarne neņem vērā I2C rakstīšanu, lai izvairītos no NVM ielādes ar nepareizu informāciju. Lai pārbaudītu pareizu datu pārsūtīšanu, iesakām pēc rakstīšanas veikt NVM adrešu telpas I2C lasīšanu.

2. NVM datu pārsūtīšana Matricas konfigurācijas reģistros

Kad NVM ir rakstīts, matricas konfigurācijas reģistri netiek automātiski atkārtoti ielādēti ar tikko ierakstītajiem NVM datiem. Pārsūtīšana jāuzsāk manuāli, veicot PAK VDD riteņbraukšanu vai ģenerējot mīksto atiestatīšanu, izmantojot I2C. Iestatot reģistru adresē 0xC8, ierīce atkārtoti iespējo Power-On Reset (POR) secību un atkārtoti ielādē reģistra datus no NVM reģistros.

3. I2C adreses atiestatīšana pēc NVM dzēšanas:

Kad NVM tiek izdzēsts, NVM adrese, kurā ir I2C vergu adrese, tiks iestatīta uz 0000. Pēc dzēšanas mikroshēma saglabās savu pašreizējo vergu adresi konfigurācijas reģistros, līdz ierīce tiks atiestatīta, kā aprakstīts iepriekš. Kad mikroshēma ir atiestatīta, I2C vergu adrese ir jāiestata konfigurācijas reģistru adresē 0xCA katru reizi, kad GreenPAK tiek ieslēgts vai atiestatīts. Tas jādara, līdz jaunā I2C vergu adreses lapa ir ierakstīta NVM.

5. solis: kļūdaina diskusija

Errata diskusija
Errata diskusija

Rakstot uz “Lapas dzēšanas baitu” (adrese: 0xE3), SLG46824/6 pēc I2C komandas daļas “Dati” izveido ar I2C nesaderīgu ACK. Šo uzvedību var interpretēt kā NACK atkarībā no I2C meistara ieviešanas.

Lai pielāgotos šai uzvedībai, mēs modificējām Arduino programmētāju, komentējot 11. attēlā redzamo kodu. Šī koda sadaļa pārbauda I2C ACK katras I2C komandas beigās eraseChip () funkcijā. Šo funkciju izmanto NVM un EEPROM lapu dzēšanai. Tā kā šī koda sadaļa atrodas cilpā For, atgriešanās -1; līnija liek MCU priekšlaicīgi iziet no funkcijas.

Neskatoties uz NACK klātbūtni, NVM un EEPROM dzēšanas funkcijas darbosies pareizi. Lai iegūtu detalizētu šīs darbības skaidrojumu, lūdzu, skatiet sadaļu “2. problēma: ar I2C neatbilstoša ACK uzvedība NVM un EEPROM lapas dzēšanas baitam” Dialog tīmekļa vietnē SLG46824/6 kļūdu dokumentā (XC redakcija).

Secinājums

Šajā pamācībā mēs aprakstām procesu, kā izmantot piedāvāto Arduino programmētāju, lai augšupielādētu pielāgotas NVM un EEPROM virknes GreenPAK IC. Arduino skices kods ir rūpīgi komentēts, bet, ja jums ir kādi jautājumi par skici, lūdzu, sazinieties ar kādu no mūsu lauka lietojumprogrammu inženieriem vai ievietojiet savu jautājumu mūsu forumā. Lai iegūtu padziļinātu informāciju par MTP programmēšanas reģistriem un procedūrām, lūdzu, skatiet Dialog sistēmas programmēšanas rokasgrāmatu.

Ieteicams: