Orodha ya maudhui:

Mfano wa Programu ya MTP Arduino: Hatua 5
Mfano wa Programu ya MTP Arduino: Hatua 5

Video: Mfano wa Programu ya MTP Arduino: Hatua 5

Video: Mfano wa Programu ya MTP Arduino: Hatua 5
Video: Nay Wa Mitego - Sauti Ya Watu (Official Music Video) 2024, Novemba
Anonim
Mfano wa Programu ya MTP Arduino
Mfano wa Programu ya MTP Arduino

Katika Agizo hili, tunaonyesha jinsi ya kutumia mchoro wa programu ya SLG46824 / 6 Arduino kupanga Dialog SLG46824 / 6 GreenPAK ™ Multiple-Time Programmable (MTP) kifaa.

Vifaa vingi vya GreenPAK vinaweza kusanidiwa kwa wakati mmoja (OTP), ikimaanisha kuwa mara tu benki yao ya Kumbukumbu isiyo ya Tete (NVM) imeandikwa, haiwezi kuandikwa tena. GreenPAK zilizo na huduma ya MTP, kama SLG46824 na SLG46826, zina aina tofauti ya benki ya kumbukumbu ya NVM ambayo inaweza kusanidiwa zaidi ya mara moja.

Tumeandika mchoro wa Arduino ambao unaruhusu mtumiaji kupanga MTP GreenPAK na maagizo kadhaa rahisi ya kufuatilia mfululizo. Katika Agizo hili tunatumia SLG46826 kama GreenPAK yetu na MTP.

Tunatoa nambari ya sampuli kwa Arduino Uno kutumia jukwaa la chanzo wazi kulingana na C / C ++. Wabunifu wanapaswa kuzidisha mbinu zinazotumiwa katika nambari ya Arduino kwa jukwaa lao maalum.

Kwa habari maalum kuhusu uainishaji wa ishara ya I2C, anwani ya I2C, na nafasi za kumbukumbu, tafadhali rejelea Mwongozo wa Programu ya GreenPAK iliyotolewa kwenye ukurasa wa bidhaa wa SLG46826. Maagizo haya hutoa utekelezaji rahisi wa mwongozo huu wa programu.

Hapo chini tulielezea hatua zinazohitajika kuelewa jinsi chip ya GreenPAK imewekwa. Walakini, ikiwa unataka tu kupata matokeo ya programu, pakua programu ya GreenPAK ili kuona Faili ya Ubunifu wa GreenPAK iliyokamilishwa tayari. Chomeka GreenPAK Development Kit kwenye kompyuta yako na hit program ili kuunda IC ya kawaida.

Hatua ya 1: Muunganisho wa Arduino-GreenPAK

Uunganisho wa Arduino-GreenPAK
Uunganisho wa Arduino-GreenPAK
Uunganisho wa Arduino-GreenPAK
Uunganisho wa Arduino-GreenPAK

Ili kupanga NVM ya SLG46826 GreenPAK yetu na mchoro wetu wa Arduino, kwanza tutahitaji kuunganisha pini nne za Arduino Uno na GreenPAK yetu. Unaweza kuunganisha pini hizi moja kwa moja na Adapter ya Soketi ya GreenPAK au kwa bodi ya kuzuka na GreenPAK iliyouzwa chini.

Tafadhali kumbuka kuwa vipatanishi vya nje vya I2C havionyeshwi kwenye Kielelezo 1. Tafadhali unganisha kontena la 4.7 kΩ kutoka kwa SCL na SDA hadi pato la 3.3 V la Arduino.

Hatua ya 2: Kusafirisha Takwimu za GreenPAK NVM Kutoka kwa Faili ya Kubuni ya GreenPAK

Kusafirisha Takwimu za GreenPAK NVM Kutoka kwa Faili ya Kubuni ya GreenPAK
Kusafirisha Takwimu za GreenPAK NVM Kutoka kwa Faili ya Kubuni ya GreenPAK
Kusafirisha Takwimu za GreenPAK NVM Kutoka kwa Faili ya Kubuni ya GreenPAK
Kusafirisha Takwimu za GreenPAK NVM Kutoka kwa Faili ya Kubuni ya GreenPAK
Kusafirisha Takwimu za GreenPAK NVM Kutoka kwa Faili ya Kubuni ya GreenPAK
Kusafirisha Takwimu za GreenPAK NVM Kutoka kwa Faili ya Kubuni ya GreenPAK

Tutaweka pamoja muundo rahisi sana wa GreenPAK kuonyesha jinsi ya kusafirisha data ya NVM. Ubunifu hapa chini ni mabadiliko ya kiwango rahisi ambapo pini za bluu upande wa kushoto zimefungwa na VDD (3.3v), wakati pini za manjano upande wa kulia zimefungwa na VDD2 (1.8v).

Ili kusafirisha habari kutoka kwa muundo huu, unahitaji kuchagua Faili → Export → Export NVM, kama inavyoonyeshwa kwenye Kielelezo 3.

Kisha utahitaji kuchagua Faili za Intel HEX (*.hex) kama aina ya faili na uhifadhi faili.

Sasa, utahitaji kufungua faili ya.hex na kihariri cha maandishi (kama Notepad ++). Ili kujifunza zaidi juu ya muundo wa faili ya HEX ya Intel na sintaksia, angalia ukurasa wake wa Wikipedia. Kwa programu tumizi hii tunavutiwa tu na sehemu ya data ya faili kama inavyoonyeshwa kwenye Kielelezo 5.

Angazia na unakili kaiti 256 za data ya usanidi wa NVM iliyoko ndani ya faili ya HEX. Kila mstari ambao tunaiga una herufi 32 kwa urefu, ambayo inalingana na ka 16.

Bandika habari kwenye sehemu iliyoangaziwa ya nvmString ya mchoro wa Arduino kama inavyoonyeshwa kwenye Kielelezo 6. Ikiwa unatumia Mdhibiti Mdhibiti asiye wa Arduino, unaweza kuandika kazi ili kuchanganua nvmData iliyohifadhiwa kwenye faili ya GreenPAK. GP6. (Ikiwa utafungua faili ya GreenPAK na kihariri cha maandishi, utaona kuwa tunahifadhi habari za mradi katika fomati ya XML inayoweza kupatikana kwa urahisi.)

Ili kuweka data ya EEPROM kwa muundo wako wa GreenPAK, chagua kizuizi cha EEPROM kutoka kwa jopo la vifaa, fungua jopo la mali yake, na ubonyeze "Weka Takwimu."

Sasa unaweza kuhariri kila ka katika EEPROM kibinafsi na kiolesura chetu cha GUI.

Mara tu data yako ya EEPROM ikiwekwa, unaweza kuipeleka kwenye faili ya HEX ukitumia njia ile ile iliyoelezewa hapo awali kwa kusafirisha data ya NVM. Ingiza kaiti hizi 256 za data ya EEPROM kwenye sehemu ya eepromString ya mchoro wa Arduino.

Kwa kila muundo wa kawaida, ni muhimu kuangalia mipangilio ya ulinzi ndani ya kichupo cha "Usalama" cha mipangilio ya mradi. Kichupo hiki kinasanidi bits za ulinzi kwa rejista za usanidi wa tumbo, NVM, na EEPROM. Chini ya usanidi fulani, kupakia mlolongo wa NVM kunaweza kufunga SLG46824 / 6 kwenye usanidi wake wa sasa na kuondoa utendaji wa MTP wa chip.

Hatua ya 3: Tumia Mchoro wa Arduino

Tumia Mchoro wa Arduino
Tumia Mchoro wa Arduino

Pakia mchoro kwa Arduino yako na ufungue mfuatiliaji wa serial na kiwango cha baud cha 115200. Sasa unaweza kutumia msukumo wa MENU mchoro kutekeleza amri kadhaa:

● Soma - inasoma data ya NVM ya kifaa au data ya EEPROM kwa kutumia anwani maalum ya mtumwa

● Futa - inafuta data ya kifaa ya NVM au EEPROM kwa kutumia anwani maalum ya mtumwa

● Andika - Futa kisha uandike data ya kifaa ya NVM au data ya EEPROM ukitumia anwani maalum ya mtumwa. Amri hii inaandika data iliyohifadhiwa kwenye safu ya nvmString au eepromString.

● Ping - inarudisha orodha ya anwani za watumwa ambazo zimeunganishwa na basi ya I2C

Matokeo ya maagizo haya yatachapishwa kwa kiweko cha mfuatiliaji wa serial.

Hatua ya 4: Vidokezo vya Programu na Mazoea Bora

Katika kipindi cha kuunga mkono SLG46824 / 6, tumeandika vidokezo vichache vya programu kusaidia kuzuia mitego ya kawaida inayohusiana na kufuta na kuandika kwa nafasi ya anwani ya NVM. Vifungu vifuatavyo vinaelezea mada hii kwa undani zaidi.

1. Utekelezaji Sahihi ya 16-Byte NVM Ukurasa Waandika:

Wakati wa kuandika data kwa SLM46824 / 6's NVM, kuna mbinu tatu za kuepuka:

● Ukurasa unaandika chini ya ka 16

● Ukurasa unaandika zaidi ya ka 16

● Ukurasa unaandika kwamba hauanzi kwenye rejista ya kwanza ndani ya ukurasa (IE: 0x10, 0x20, n.k.)

Ikiwa mbinu yoyote hapo juu inatumiwa, kiolesura cha MTP kitapuuza uandishi wa I2C ili kuepuka kupakia NVM na habari isiyo sahihi. Tunapendekeza kufanya usomaji wa I2C wa nafasi ya anwani ya NVM baada ya kuandika ili kudhibitisha uhamishaji sahihi wa data.

2. Kuhamisha Takwimu za NVM kwenye Rejista za Usanidi wa Matrix

Wakati NVM imeandikwa, rejista za usanidi wa matrix hazipakizi kiatomati na data mpya iliyoandikwa ya NVM. Uhamisho lazima uanzishwe kwa mikono kwa kuendesha baiskeli PAK VDD au kwa kutengeneza upya laini ukitumia I2C. Kwa kuweka rejista katika anwani 0xC8, kifaa kinawasha tena mlolongo wa Power-On Reset (POR) na kupakia tena data ya rejista kutoka NVM kwenye sajili.

3. Kuweka tena Anwani ya I2C baada ya Kufuta NVM:

Wakati NVM inafutwa, anwani ya NVM iliyo na anwani ya mtumwa ya I2C itawekwa 0000. Baada ya kufuta, chip itahifadhi anwani yake ya sasa ya watumwa ndani ya rejista za usanidi hadi kifaa kiweke upya kama ilivyoelezwa hapo juu. Mara tu chip inapowekwa tena, anwani ya mtumwa ya I2C lazima iwekwe kwenye anwani 0xCA ndani ya rejista za usanidi kila wakati GreenPAK inaendesha baisikeli ya umeme au kuweka upya. Hii lazima ifanyike hadi ukurasa mpya wa anwani ya mtumwa wa I2C umeandikwa katika NVM.

Hatua ya 5: Majadiliano ya Errata

Majadiliano ya Errata
Majadiliano ya Errata

Wakati wa kuandikia "Ukurasa wa kufuta Byte" (Anwani: 0xE3), SLG46824 / 6 hutoa ACK isiyo ya kufuata I2C baada ya sehemu ya "Takwimu" ya amri ya I2C. Tabia hii inaweza kutafsiriwa kama NACK kulingana na utekelezaji wa bwana wa I2C.

Ili kuzingatia tabia hii, tulibadilisha programu ya Arduino kwa kutoa maoni juu ya nambari iliyoonyeshwa kwenye Mchoro 11. Sehemu hii ya ukaguzi wa nambari kwa I2C ACK mwishoni mwa kila amri ya I2C katika kazi ya eraseChip (). Kazi hii hutumiwa kufuta kurasa za NVM na EEPROM. Kwa kuwa sehemu hii ya nambari iko kwenye kitanzi cha "kurudi -1;" laini husababisha MCU kutoka mapema mapema kwenye kazi.

Licha ya uwepo wa NACK, kazi za kufuta za NVM na EEPROM zitatekelezwa vizuri. Kwa ufafanuzi wa kina wa tabia hii, tafadhali rejelea "Toleo la 2: Tabia isiyo ya kufuata I2C ya Ufuataji wa Nambari ya NVM na EEPROM Erase Byte" katika hati ya makosa ya SLG46824 / 6 (Marekebisho XC) kwenye wavuti ya Dialog.

Hitimisho

Katika hii Inayoweza kufundishwa tunaelezea mchakato wa kutumia programu iliyotolewa ya Arduino kupakia masharti ya NVM na EEPROM kwa GreenPAK IC. Nambari iliyo kwenye Mchoro wa Arduino imesemwa vizuri, lakini ikiwa una maswali yoyote kuhusu mchoro, tafadhali wasiliana na mmoja wa Wahandisi wa Maombi ya Shamba au tuma swali lako kwenye mkutano wetu. Kwa habari ya kina zaidi kuhusu sajili na taratibu za programu ya MTP, tafadhali rejelea Mwongozo wa Programu ya Maongezi ya Maongezi.

Ilipendekeza: