Sisällysluettelo:

Esimerkki MTP Arduino -ohjelmoinnista: 5 vaihetta
Esimerkki MTP Arduino -ohjelmoinnista: 5 vaihetta

Video: Esimerkki MTP Arduino -ohjelmoinnista: 5 vaihetta

Video: Esimerkki MTP Arduino -ohjelmoinnista: 5 vaihetta
Video: 30 Ultimate Windows 10 -vinkkejä ja -vinkkejä vuodelle 2020 2024, Heinäkuu
Anonim
Esimerkki MTP Arduino -ohjelmoinnista
Esimerkki MTP Arduino -ohjelmoinnista

Tässä opetusohjelmassa näytämme, kuinka ohjelmointiluonnoksen SLG46824/6 avulla voidaan ohjelmoida Dialog SLG46824/6 GreenPAK ™ -moninkertaisesti ohjelmoitava (MTP) laite.

Useimmat GreenPAK-laitteet ovat kertakäyttöisiä (OTP), mikä tarkoittaa, että kun niiden haihtumaton muistipankki (NVM) on kirjoitettu, sitä ei voi korvata. GreenPAK -laitteissa, joissa on MTP -ominaisuus, kuten SLG46824 ja SLG46826, on erityyppinen NVM -muistipankki, joka voidaan ohjelmoida useammin kuin kerran.

Olemme kirjoittaneet Arduino -luonnoksen, jonka avulla käyttäjä voi ohjelmoida MTP GreenPAK -ohjelman muutamalla yksinkertaisella sarjamonitorikomennolla. Tässä ohjekirjassa käytämme SLG46826: ta GreenPAKina MTP: n kanssa.

Tarjoamme näytekoodin Arduino Unolle avoimen lähdekoodin alustalla, joka perustuu C/C ++: een. Suunnittelijoiden tulisi ekstrapoloida Arduino -koodissa käytetyt tekniikat omaan alustaansa.

Lisätietoja I2C-signaalitiedoista, I2C-osoitteista ja muistitiloista on SLG46826-tuotesivulla olevassa GreenPAK-järjestelmän ohjelmointioppaassa. Tämä opas sisältää yksinkertaisen toteutuksen tästä ohjelmointioppaasta.

Seuraavassa kuvataan vaiheet, jotka tarvitaan ymmärtämään, miten GreenPAK -siru on ohjelmoitu. Jos haluat vain saada ohjelmoinnin tuloksen, lataa GreenPAK -ohjelmisto nähdäksesi jo valmistuneen GreenPAK -suunnittelutiedoston. Liitä GreenPAK Development Kit tietokoneeseen ja luo ohjelma mukautetun IC -ohjelman avulla.

Vaihe 1: Arduino-GreenPAK-yhteydet

Arduino-GreenPAK-yhteydet
Arduino-GreenPAK-yhteydet
Arduino-GreenPAK-yhteydet
Arduino-GreenPAK-yhteydet

Jotta voimme ohjelmoida SLG46826 GreenPAK -laitteemme NVM: n Arduino -luonnoksellamme, meidän on ensin liitettävä neljä Arduino Uno -tappia GreenPAK -laitteeseemme. Voit liittää nämä nastat suoraan GreenPAK -pistorasiasovittimeen tai katkaisulautaan, jossa GreenPAK on juotettu.

Huomaa, että ulkoisia I2C -vetovastuksia ei ole esitetty kuvassa 1. Liitä 4,7 kΩ: n vetovastus sekä SCL: stä että SDA: sta Arduinon 3,3 V: n lähtöön.

Vaihe 2: GreenPAK NVM -tietojen vieminen GreenPAK -suunnittelutiedostosta

GreenPAK NVM -tietojen vieminen GreenPAK -suunnittelutiedostosta
GreenPAK NVM -tietojen vieminen GreenPAK -suunnittelutiedostosta
GreenPAK NVM -tietojen vieminen GreenPAK -suunnittelutiedostosta
GreenPAK NVM -tietojen vieminen GreenPAK -suunnittelutiedostosta
GreenPAK NVM -tietojen vieminen GreenPAK -suunnittelutiedostosta
GreenPAK NVM -tietojen vieminen GreenPAK -suunnittelutiedostosta

Kokosimme hyvin yksinkertaisen GreenPAK -mallin havainnollistamaan NVM -tietojen viemistä. Alla oleva malli on yksinkertainen tasonsiirto, jossa vasemmalla olevat siniset nastat on sidottu VDD: hen (3.3v), kun taas keltaiset nastat oikealla on sidottu VDD2: een (1.8v).

Jos haluat viedä tiedot tästä mallista, valitse Tiedosto → Vie → Vie NVM, kuten kuvassa 3.

Tämän jälkeen sinun on valittava tiedostotyypiksi Intel HEX Files (*.hex) ja tallennettava tiedosto.

Nyt sinun on avattava.hex -tiedosto tekstieditorilla (kuten Notepad ++). Lisätietoja Intelin HEX -tiedostomuodosta ja syntaksista on sen Wikipedia -sivulla. Tässä sovelluksessa olemme kiinnostuneita vain tiedoston dataosasta, kuten kuvassa 5 on esitetty.

Korosta ja kopioi HEX -tiedostossa olevat 256 tavun NVM -määritystiedot. Jokainen kopioitava rivi on 32 merkkiä pitkä, mikä vastaa 16 tavua.

Liitä tiedot Arduino-luonnoksen korostettuun nvmString -osioon, kuten kuvassa 6. Jos käytät muuta kuin Arduino-mikrokontrolleria, voit kirjoittaa funktion, joka jäsentää GreenPAK. GP6-tiedostoon tallennetut nvmData-tiedot. (Jos avaat GreenPAK-tiedoston tekstieditorilla, huomaat, että tallennamme projektitiedot helposti saatavilla olevaan XML-muotoon.)

Jos haluat asettaa EEPROM -tiedot GreenPAK -mallillesi, valitse EEPROM -lohko komponenttipaneelista, avaa sen ominaisuuspaneeli ja napsauta "Aseta tiedot".

Nyt voit muokata kutakin tavua EEPROMissa erikseen GUI -käyttöliittymämme avulla.

Kun EEPROM -tiedot on asetettu, voit viedä ne HEX -tiedostoon samalla menetelmällä, joka on kuvattu aiemmin NVM -tietojen viemiseksi. Lisää nämä 256 tavua EEPROM -dataa Arduino -luonnoksen eepromString -osioon.

Jokaisen mukautetun mallin kohdalla on tärkeää tarkistaa suojausasetukset projekti -asetusten Suojaus -välilehdestä. Tämä välilehti määrittää matriisikokoonpanorekisterien, NVM: n ja EEPROM: n suojabitit. Tietyissä kokoonpanoissa NVM -sekvenssin lataaminen voi lukita SLG46824/6: n nykyiseen kokoonpanoonsa ja poistaa sirun MTP -toiminnot.

Vaihe 3: Käytä Arduino -luonnosta

Käytä Arduino -luonnosta
Käytä Arduino -luonnosta

Lataa luonnos Arduinoosi ja avaa sarjamonitori 115200 baudinopeudella. Nyt voit käyttää luonnoksen MENU -kehotteita useiden komentojen suorittamiseen:

● Lue - lukee joko laitteen NVM- tai EEPROM -tiedot määritetyn orjaosoitteen avulla

● Poista - poistaa joko laitteen NVM- tai EEPROM -tiedot määritetyn orjaosoitteen avulla

● Kirjoita - Poistaa ja kirjoittaa joko laitteen NVM- tai EEPROM -tiedot määritetyn orjaosoitteen avulla. Tämä komento kirjoittaa tiedot, jotka on tallennettu matriiseihin nvmString tai eepromString.

● Ping - palauttaa luettelon laitteen orjaosoitteista, jotka on kytketty I2C -väylään

Näiden komentojen tulokset tulostetaan sarjamonitorikonsoliin.

Vaihe 4: Ohjelmointivihjeitä ja parhaita käytäntöjä

SLG46824/6: n tukemisen aikana olemme dokumentoineet muutamia ohjelmointivinkkejä, jotka auttavat välttämään yleisiä sudenkuoppia, jotka liittyvät poistamiseen ja NVM -osoitetilaan kirjoittamiseen. Seuraavissa osioissa hahmotellaan tätä aihetta yksityiskohtaisemmin.

1. Tarkan 16-tavuisen NVM-sivukirjoituksen suorittaminen:

Kun kirjoitat tietoja SLG46824/6: n NVM: ään, voit välttää kolme tekniikkaa:

● Sivu kirjoittaa alle 16 tavulla

● Sivu kirjoittaa yli 16 tavulla

● Sivun kirjoitukset, jotka eivät ala sivun ensimmäisestä rekisteristä (IE: 0x10, 0x20 jne.)

Jos käytetään jotakin edellä mainituista tekniikoista, MTP -liitäntä jättää I2C -kirjoituksen huomiotta välttääkseen NVM: n lataamisen väärillä tiedoilla. Suosittelemme suorittamaan I2C -lukemisen NVM -osoitetilasta kirjoittamisen jälkeen oikean tiedonsiirron tarkistamiseksi.

2. NVM -tietojen siirtäminen Matrix Configuration -rekisteriin

Kun NVM on kirjoitettu, matriisikokoonpanorekisterit eivät lataudu automaattisesti uusilla NVM -tiedoilla. Siirto on aloitettava manuaalisesti polkupyörällä PAK VDD tai luomalla pehmeä nollaus käyttämällä I2C: tä. Asettamalla rekisterin osoitteeseen 0xC8 laite ottaa POR-käynnistysjakson uudelleen käyttöön ja lataa rekisteritiedot uudelleen NVM: stä rekistereihin.

3. I2C -osoitteen nollaus NVM -poiston jälkeen:

Kun NVM poistetaan, I2C -orjaosoitteen sisältävä NVM -osoite asetetaan arvoon 0000. Tyhjennyksen jälkeen siru säilyttää nykyisen orjaosoitteensa kokoonpanorekisterissä, kunnes laite nollataan yllä kuvatulla tavalla. Kun siru on nollattu, I2C-orjaosoite on asetettava määritysrekisterien osoitteeseen 0xCA joka kerta, kun GreenPAK käynnistetään tai nollataan. Tämä on tehtävä, kunnes uusi I2C -orjaosoitesivu on kirjoitettu NVM: ään.

Vaihe 5: Errata -keskustelu

Errata -keskustelu
Errata -keskustelu

Kun kirjoitetaan sivunpoistotavuun (osoite: 0xE3), SLG46824/6 tuottaa ei-I2C-yhteensopivan ACK: n I2C-komennon "Data" -osan jälkeen. Tämä käyttäytyminen voidaan tulkita NACKiksi riippuen I2C -masterin toteutuksesta.

Tämän käyttäytymisen huomioon ottamiseksi muutimme Arduino -ohjelmoijaa kommentoimalla kuviossa 11 näytetyn koodin. Tätä toimintoa käytetään NVM- ja EEPROM -sivujen pyyhkimiseen. Koska tämä koodiosa sijaitsee For -silmukassa, "return -1;" linja saa MCU: n poistumaan toiminnasta ennenaikaisesti.

NACK -läsnäolosta huolimatta NVM- ja EEPROM -poistotoiminnot toimivat oikein. Lisätietoja tästä toiminnasta on Dialogin verkkosivuston SLG46824/6-virheasiakirjan (versio XC) kohdassa”Ongelma 2: Ei-I2C-yhteensopiva ACK-käyttäytyminen NVM- ja EEPROM-sivun poistotavulle”.

Johtopäätös

Tässä ohjeessa kuvataan prosessi, jolla toimitettua Arduino -ohjelmoijaa käytetään mukautettujen NVM- ja EEPROM -merkkijonojen lataamiseen GreenPAK IC -laitteeseen. Arduino -luonnoksen koodi on kommentoitu perusteellisesti, mutta jos sinulla on kysyttävää luonnoksesta, ota yhteyttä kenttäsovellusinsinööreihimme tai lähetä kysymyksesi foorumillemme. Lisätietoja MTP-ohjelmointirekistereistä ja -menettelyistä on Dialogin järjestelmän sisäisessä ohjelmointioppaassa.

Suositeltava: