Talaan ng mga Nilalaman:

Halimbawa ng Programming ng MTP Arduino: 5 Mga Hakbang
Halimbawa ng Programming ng MTP Arduino: 5 Mga Hakbang

Video: Halimbawa ng Programming ng MTP Arduino: 5 Mga Hakbang

Video: Halimbawa ng Programming ng MTP Arduino: 5 Mga Hakbang
Video: Pano nga ba maghanap ng Thesis Title or Capstone Title | Tagalog Tutorial 2024, Nobyembre
Anonim
Halimbawa ng Programming ng MTP Arduino
Halimbawa ng Programming ng MTP Arduino

Sa Instructable na ito, ipinapakita namin kung paano gamitin ang SLG46824 / 6 Arduino program sketch upang mai-program ang isang Dialog SLG46824 / 6 GreenPAK ™ Multiple-Time Programmable (MTP) na aparato.

Karamihan sa mga aparato ng GreenPAK ay One-Time Programmable (OTP), nangangahulugang sa sandaling nakasulat ang kanilang Non-Volatile Memory bank (NVM), hindi na ito maaaring mapapatungan. Ang mga GreenPAK na may tampok na MTP, tulad ng SLG46824 at SLG46826, ay may iba't ibang uri ng NVM memory bank na maaaring mai-program nang higit sa isang beses.

Nagsulat kami ng isang Arduino sketch na nagpapahintulot sa gumagamit na mag-program ng isang MTP GreenPAK na may ilang simpleng mga serial monitor command. Sa Instructable na ito gumagamit kami ng isang SLG46826 bilang aming GreenPAK na may MTP.

Nagbibigay kami ng sample code para sa Arduino Uno gamit ang isang open-source platform batay sa C / C ++. Dapat i-extrapolate ng mga taga-disenyo ang mga diskarteng ginamit sa Arduino code para sa kanilang tukoy na platform.

Para sa tiyak na impormasyon tungkol sa mga pagtutukoy ng signal ng I2C, pagtugon sa I2C, at mga puwang ng memorya, mangyaring sumangguni sa GreenPAK In-System Programming Guide na ibinigay sa pahina ng produkto ng SLG46826. Nagbibigay ang Instructable na ito ng isang simpleng pagpapatupad ng gabay sa programa na ito.

Sa ibaba inilarawan namin ang mga hakbang na kinakailangan maunawaan kung paano nai-program ang chip ng GreenPAK. Gayunpaman, kung nais mo lamang makuha ang resulta ng pag-program, mag-download ng GreenPAK software upang matingnan ang natapos na GreenPAK Design File. I-plug ang GreenPAK Development Kit sa iyong computer at pindutin ang programa upang likhain ang pasadyang IC.

Hakbang 1: Mga Koneksyon ng Arduino-GreenPAK

Mga Koneksyon ng Arduino-GreenPAK
Mga Koneksyon ng Arduino-GreenPAK
Mga Koneksyon ng Arduino-GreenPAK
Mga Koneksyon ng Arduino-GreenPAK

Upang ma-program ang NVM ng aming SLG46826 GreenPAK sa aming sketch ng Arduino, kakailanganin muna naming ikonekta ang apat na Arduino Uno na pin sa aming GreenPAK. Maaari mong ikonekta ang mga pin na direkta sa GreenPAK Socket Adapter o sa isang breakout board na may solder na pababa sa GreenPAK.

Mangyaring tandaan na ang panlabas na I2C pull up resistors ay hindi ipinakita sa Larawan 1. Mangyaring ikonekta ang isang 4.7 kΩ pull up risistor mula sa parehong SCL at SDA sa output ng 3.3 V ng Arduino.

Hakbang 2: Pag-export ng Data ng GreenPAK NVM Mula sa isang File ng Disenyo ng GreenPAK

Pag-export ng Data ng GreenPAK NVM Mula sa isang GreenPAK Design File
Pag-export ng Data ng GreenPAK NVM Mula sa isang GreenPAK Design File
Pag-export ng Data ng GreenPAK NVM Mula sa isang GreenPAK Design File
Pag-export ng Data ng GreenPAK NVM Mula sa isang GreenPAK Design File
Pag-export ng Data ng GreenPAK NVM Mula sa isang GreenPAK Design File
Pag-export ng Data ng GreenPAK NVM Mula sa isang GreenPAK Design File

Pagsasama-sama namin ang isang napaka-simpleng disenyo ng GreenPAK upang ilarawan kung paano i-export ang data ng NVM. Ang disenyo sa ibaba ay isang simpleng shifter sa antas kung saan ang mga asul na pin sa kaliwa ay nakatali sa VDD (3.3v), habang ang mga dilaw na pin sa kanan ay nakatali sa VDD2 (1.8v).

Upang mai-export ang impormasyon mula sa disenyo na ito, kailangan mong piliin ang File → I-export → I-export ang NVM, tulad ng ipinakita sa Larawan 3.

Kakailanganin mong piliin ang Intel HEX Files (*.hex) bilang uri ng file at i-save ang file.

Ngayon, kakailanganin mong buksan ang.hex file gamit ang isang text editor (tulad ng Notepad ++). Upang matuto nang higit pa tungkol sa format ng HEX file at syntax ng Intel, tingnan ang pahina ng Wikipedia. Para sa application na ito interesado lamang kami sa bahagi ng data ng file tulad ng ipinakita sa Larawan 5.

I-highlight at kopyahin ang 256 bytes ng data ng pagsasaayos ng NVM na matatagpuan sa loob ng HEX file. Ang bawat linya na kinokopya namin ay 32 character ang haba, na tumutugma sa 16 bytes.

I-paste ang impormasyon sa naka-highlight na seksyong nvmString ng sketch ng Arduino tulad ng ipinakita sa Larawan 6. Kung gumagamit ka ng isang hindi-Arduino Microcontroller, maaari kang magsulat ng isang pagpapaandar upang ma-parse ang nvmData na nai-save sa GreenPAK. GP6 file. (Kung magbubukas ka ng isang file ng GreenPAK gamit ang isang text editor, makikita mo na nag-iimbak kami ng impormasyon ng proyekto sa isang madaling ma-access na format ng XML.)

Upang maitakda ang data ng EEPROM para sa iyong disenyo ng GreenPAK, piliin ang bloke ng EEPROM mula sa mga panel ng sangkap, buksan ang panel ng mga katangian nito, at i-click ang "Itakda ang Data."

Ngayon ay maaari mong i-edit ang bawat byte sa EEPROM nang paisa-isa sa aming interface ng GUI.

Kapag naitakda ang iyong data sa EEPROM, maaari mo itong i-export sa isang HEX file gamit ang parehong pamamaraan na inilarawan dati para sa pag-export ng data ng NVM. Ipasok ang 256 bytes ng data ng EEPROM sa seksyong eepromString ng Arduino sketch.

Para sa bawat pasadyang disenyo, mahalagang suriin ang mga setting ng proteksyon sa loob ng tab na "Seguridad" ng mga setting ng proyekto. Ang tab na ito ay nag-configure ng mga bit ng proteksyon para sa mga rehistro ng pagsasaayos ng matrix, ang NVM, at ang EEPROM. Sa ilalim ng ilang mga pagsasaayos, ang pag-upload ng pagkakasunud-sunod ng NVM ay maaaring i-lock ang SLG46824 / 6 sa kasalukuyang pagsasaayos at alisin ang pagpapaandar ng MTP ng maliit na tilad.

Hakbang 3: Gamitin ang Arduino Sketch

Gamitin ang Arduino Sketch
Gamitin ang Arduino Sketch

I-upload ang sketch sa iyong Arduino at buksan ang serial monitor gamit ang 115200 baud rate. Maaari mo na ngayong gamitin ang mga prompt ng MENU ng sketch upang magsagawa ng maraming mga utos:

● Basahin - binabasa ang alinman sa data ng NVM ng aparato o data ng EEPROM gamit ang tinukoy na address ng alipin

● Burahin - burahin ang alinman sa data ng NVM ng aparato o data ng EEPROM gamit ang tinukoy na address ng alipin

● Isulat - Binubura at pagkatapos ay nagsusulat ng alinman sa data ng NVM ng aparato o data ng EEPROM gamit ang tinukoy na address ng alipin. Nagsusulat ang utos na ito ng data na nai-save sa mga nvmString o eepromString arrays.

● Ping - nagbabalik ng isang listahan ng mga address ng alipin ng aparato na nakakonekta sa I2C bus

Ang mga resulta ng mga utos na ito ay mai-print sa serial monitor console.

Hakbang 4: Mga Tip sa Programming at Pinakamahusay na Kasanayan

Sa kurso ng pagsuporta sa SLG46824 / 6, naitala namin ang ilang mga tip sa programa upang makatulong na maiwasan ang mga karaniwang pitfalls na nauugnay sa pagbura at pagsusulat sa puwang ng address ng NVM. Ang sumusunod na mga subseksyon ay binabalangkas ang paksang ito nang mas detalyado.

1. Pagpapatupad ng Tiyak na 16-Byte NVM na Pahina Sumulat:

Kapag nagsusulat ng data sa SLG46824 / 6's NVM, mayroong tatlong mga diskarte upang maiwasan:

● Nagsusulat ang pahina na may mas mababa sa 16 bytes

● Nagsusulat ang pahina ng higit sa 16 byte

● Nagsusulat ang pahina na hindi nagsisimula sa unang pagrehistro sa loob ng isang pahina (IE: 0x10, 0x20, atbp.)

Kung ang alinman sa mga diskarteng nasa itaas ay ginamit, babalewalain ng interface ng MTP ang pagsulat ng I2C upang maiwasan ang paglo-load ng NVM ng maling impormasyon. Inirerekumenda namin ang pagsasagawa ng isang I2C na nabasa sa puwang ng address ng NVM pagkatapos ng pagsusulat upang mapatunayan ang tamang paglilipat ng data.

2. Paglilipat ng Data ng NVM sa Mga Rehistro ng Pag-configure ng Matrix

Kapag nakasulat ang NVM, ang mga rehistro ng pagsasaayos ng matrix ay hindi awtomatikong nai-reload sa bagong nakasulat na data ng NVM. Ang paglilipat ay dapat na sinimulan nang manu-mano sa pamamagitan ng pagbibisikleta ng PAK VDD o sa pamamagitan ng pagbuo ng isang malambot na pag-reset gamit ang I2C. Sa pamamagitan ng pagtatakda ng rehistro sa address 0xC8, muling binibigyang-daan ng aparato ang pagkakasunud-sunod ng Power-On Reset (POR) at na-reload ang data ng rehistro mula sa NVM sa mga rehistro.

3. Pag-reset ng I2C Address pagkatapos ng isang NVM Erase:

Kapag ang NVM ay nabura, ang address ng NVM na naglalaman ng address ng alipin ng I2C ay itatakda sa 0000. Matapos ang burahin, mapanatili ng maliit na tilad ang kasalukuyang address ng alipin sa loob ng mga rehistro ng pagsasaayos hanggang sa ma-reset ang aparato tulad ng inilarawan sa itaas. Kapag na-reset ang chip, ang address ng alipin ng I2C ay dapat itakda sa address na 0xCA sa loob ng mga rehistro ng pagsasaayos sa tuwing ang GreenPAK ay power-cycled o i-reset. Dapat itong gawin hanggang ang bagong pahina ng alipin ng I2C ay nakasulat sa NVM.

Hakbang 5: Talakayan sa Errata

Talakayan sa Errata
Talakayan sa Errata

Kapag sumusulat sa "Page Erase Byte" (Address: 0xE3), ang SLG46824 / 6 ay gumagawa ng isang hindi sumusunod na IKC na ACK pagkatapos ng "Data" na bahagi ng utos ng I2C. Ang pag-uugali na ito ay maaaring bigyang kahulugan bilang isang NACK depende sa pagpapatupad ng master ng I2C.

Upang mapaunawa ang pag-uugali na ito, binago namin ang programmer ng Arduino sa pamamagitan ng pagkomento sa code na ipinakita sa Larawan 11. Ang seksyong ito ng code ay sumusuri para sa isang I2C ACK sa pagtatapos ng bawat utos ng I2C sa eraseChip () na pagpapaandar. Ang pagpapaandar na ito ay ginagamit upang burahin ang mga pahina ng NVM at EEPROM. Dahil ang seksyon ng code na ito ay matatagpuan sa isang Para sa loop, ang "return -1;" sanhi ng linya upang ang MCU na maagang lumabas sa pagpapaandar.

Sa kabila ng pagkakaroon ng isang NACK, ang mga function na burahin ang NVM at EEPROM ay naisasagawa nang maayos. Para sa isang detalyadong paliwanag sa pag-uugaling ito, mangyaring sumangguni sa "Isyu 2: Hindi-I2C Sumunod na Pag-uugali ng ACK para sa NVM at EEPROM Page Erase Byte" sa SLG46824 / 6 errata document (Revision XC) sa website ng Dialog.

Konklusyon

Sa Instructable na ito inilalarawan namin ang proseso ng paggamit ng ibinigay na programmer ng Arduino upang mag-upload ng mga pasadyang string ng NVM at EEPROM sa isang GreenPAK IC. Ang code sa Arduino Sketch ay lubusang nagkomento, ngunit kung mayroon kang anumang mga katanungan tungkol sa sketch, mangyaring makipag-ugnay sa isa sa aming mga Field Application Engineers o i-post ang iyong katanungan sa aming forum. Para sa higit na malalim na impormasyon tungkol sa mga rehistro at pamamaraan ng MTP na programa, mangyaring mag-refer sa Patnubay sa Programming ng In-System ng Dialog.

Inirerekumendang: