
Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:41

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


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



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

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

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:
Kuinka tehdä oma käyttöjärjestelmä! (erä ja esimerkki sisällä): 5 vaihetta

Kuinka tehdä oma käyttöjärjestelmä! (erä ja esimerkki sisällä): Tee se nyt
APP INVENTOR 2 - Puhdista etuvinkit (+4 esimerkki): 6 vaihetta

APP INVENTOR 2 - Puhtaat etuvinkit (+4 esimerkki): Katsomme, miten voimme saada sovelluksesi AI2: lla näyttämään esteettiseltä :) Ei koodia tällä kertaa, vain vinkkejä sujuvasta sovelluksesta, kuten yllä oleva 4 esimerkki
IoT Guru Cloud - Yksinkertainen kaavio Esimerkki: 4 vaihetta

IoT Guru Cloud - Yksinkertainen kaavio Esimerkki: IoT Guru Cloud tarjoaa joukon taustapalveluja REST -sovellusliittymän kautta ja voit integroida nämä REST -puhelut helposti verkkosivullesi. Highchartsin avulla voit näyttää mittauskaavioita yksinkertaisesti AJAX -puhelun avulla
Eagle hakata/temppuja: Esimerkki TB6600 CNC -myllyn askelmoottorin ohjain: 7 vaihetta

Eagle Hacks/temppuja: Esimerkki TB6600 CNC -myllyaskelmoottorin ohjain: Tämä tekee siitä hyvän projektin näyttää muutamia temppuja, jotka helpottavat elämääsi piirilevyjen luomisessa. Eagle, valitsen yksinkertaisen projektin, jonka tein Kickstarterilleni. Tarvitsin ulkoa
Esimerkki kaapista Arduino Matrix -näppäimistöllä 4x4: 6 vaihetta

Esimerkki kaapista Arduino Matrix -näppäimistöllä 4x4: 2 tapaa hallita 16 painikkeen näppäimistöä, joissa on vähintään nastat