Përmbajtje:
- Hapi 1: Lidhjet Arduino-GreenPAK
- Hapi 2: Eksportimi i të dhënave GreenPAK NVM nga një skedar i projektimit GreenPAK
- Hapi 3: Përdorni Skicën Arduino
- Hapi 4: Këshilla për programimin dhe praktikat më të mira
- Hapi 5: Diskutim Errata
Video: Shembull i programimit të MTP Arduino: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:16
Në këtë Instructable, ne tregojmë se si të përdorim skicën e programimit SLG46824/6 Arduino për të programuar një pajisje Dialog SLG46824/6 GreenPAK ™ Multiple-Time Programmable (MTP).
Shumica e pajisjeve GreenPAK janë të programueshme një herë (OTP), që do të thotë se pasi të jetë shkruar banka e tyre e kujtesës jo të paqëndrueshme (NVM), ajo nuk mund të mbishkruhet. GreenPAK me funksionin MTP, si SLG46824 dhe SLG46826, kanë një lloj tjetër të bankës së kujtesës NVM që mund të programohet më shumë se një herë.
Ne kemi shkruar një skicë Arduino që lejon përdoruesin të programojë një MTP GreenPAK me disa komanda të thjeshta të monitorimit serik. Në këtë Instructable ne përdorim një SLG46826 si GreenPAK -un tonë me MTP.
Ne ofrojmë kodin shembull për Arduino Uno duke përdorur një platformë me burim të hapur të bazuar në C/C ++. Projektuesit duhet të ekstrapolojnë teknikat e përdorura në kodin Arduino për platformën e tyre specifike.
Për informacione specifike në lidhje me specifikimet e sinjalit I2C, adresimin e I2C dhe hapësirat e kujtesës, ju lutemi referojuni Udhëzuesit të Programimit të Sistemit GreenPAK të dhënë në faqen e produktit SLG46826. Ky udhëzues siguron një zbatim të thjeshtë të këtij udhëzuesi programimi.
Më poshtë kemi përshkruar hapat e nevojshëm për të kuptuar se si është programuar çipi GreenPAK. Sidoqoftë, nëse thjesht doni të merrni rezultatin e programimit, shkarkoni softuerin GreenPAK për të parë Skedarin e Dizajnit të GreenPAK të përfunduar tashmë. Lidheni GreenPAK Development Kit me kompjuterin tuaj dhe goditni programin për të krijuar IC të personalizuar.
Hapi 1: Lidhjet Arduino-GreenPAK
Për të programuar NVM të SLG46826 GreenPAK -it tonë me skicën tonë Arduino, së pari do të na duhet të lidhim katër kunja Arduino Uno me GreenPAK -un tonë. Ju mund t'i lidhni këto kunja drejtpërdrejt me Përshtatësin e GreenPAK Socket ose në një tabelë shpërthimi me GreenPAK të ngjitur.
Ju lutemi vini re se rezistorët e jashtëm të tërheqjes I2C nuk janë treguar në Figurën 1. Ju lutemi lidhni një rezistencë tërheqëse 4.7 kΩ nga SCL dhe SDA në daljen 3.3 V të Arduino.
Hapi 2: Eksportimi i të dhënave GreenPAK NVM nga një skedar i projektimit GreenPAK
Ne do të bashkojmë një dizajn shumë të thjeshtë GreenPAK për të ilustruar se si të eksportojmë të dhënat NVM. Dizajni më poshtë është një ndërrues i thjeshtë i nivelit ku kunjat blu në të majtë janë të lidhur me VDD (3.3v), ndërsa kunjat e verdhë në të djathtë janë të lidhura me VDD2 (1.8v).
Për të eksportuar informacionin nga ky dizajn, duhet të zgjidhni File → Export → Export NVM, siç tregohet në Figurën 3.
Atëherë do t'ju duhet të zgjidhni Intel HEX Files (*.hex) si lloj skedari dhe ta ruani skedarin.
Tani, do t'ju duhet të hapni skedarin hex me një redaktues teksti (si Notepad ++). Për të mësuar më shumë rreth formatit dhe sintaksës së skedarit HEX të Intel, shikoni faqen e tij në Wikipedia. Për këtë aplikacion ne jemi të interesuar vetëm për pjesën e të dhënave të skedarit siç tregohet në Figurën 5.
Theksoni dhe kopjoni 256 bajt të të dhënave të konfigurimit NVM të vendosura brenda skedarit HEX. Çdo rresht që po kopjojmë është i gjatë 32 karaktere, që korrespondon me 16 bajt.
Vendosni informacionin në seksionin e theksuar nvmString të skicës Arduino siç tregohet në Figurën 6. Nëse jeni duke përdorur një Mikrokontrollues jo Arduino, mund të shkruani një funksion për të analizuar nvmData të ruajtura në skedarin GreenPAK. GP6. (Nëse hapni një skedar GreenPAK me një redaktues teksti, do të shihni që ne ruajmë informacionin e projektit në një format XML të arritshëm lehtësisht.)
Për të vendosur të dhënat EEPROM për modelin tuaj GreenPAK, zgjidhni bllokun EEPROM nga paneli i përbërësve, hapni panelin e vetive të tij dhe klikoni "Vendosni të dhënat".
Tani mund të redaktoni secilin bajt në EEPROM individualisht me ndërfaqen tonë GUI.
Pasi të jenë vendosur të dhënat tuaja EEPROM, mund t'i eksportoni në një skedar HEX duke përdorur të njëjtën metodë të përshkruar më parë për eksportimin e të dhënave NVM. Futni këto 256 bajt të të dhënave EEPROM në seksionin eepromString të skicës Arduino.
Për secilin model të personalizuar, është e rëndësishme të kontrolloni cilësimet e mbrojtjes brenda skedës "Siguria" të cilësimeve të projektit. Kjo skedë konfiguron bitet e mbrojtjes për regjistrat e konfigurimit të matricës, NVM dhe EEPROM. Nën konfigurime të caktuara, ngarkimi i sekuencës NVM mund të bllokojë SLG46824/6 në konfigurimin e tij aktual dhe të heqë funksionalitetin MTP të çipit.
Hapi 3: Përdorni Skicën Arduino
Ngarko skicën në Arduino -n tuaj dhe hapni monitorin serik me një normë baud 115200. Tani mund të përdorni kërkesat MENU të skicës për të kryer disa komanda:
● Lexo - lexon ose të dhënat NVM të pajisjes ose të dhënat EEPROM duke përdorur adresën e caktuar të skllavit
● Fshi - fshin ose të dhënat NVM të pajisjes ose të dhënat EEPROM duke përdorur adresën e caktuar të skllavit
● Shkruaj - Fshin dhe pastaj shkruan ose të dhënat NVM të pajisjes ose të dhënat EEPROM duke përdorur adresën e skllavit të specifikuar. Kjo komandë shkruan të dhënat që ruhen në vargjet nvmString ose eepromString.
● Ping - kthen një listë të adresave të skllevërve të pajisjes që janë të lidhura me autobusin I2C
Rezultatet e këtyre komandave do të printohen në tastierën e monitorit serik.
Hapi 4: Këshilla për programimin dhe praktikat më të mira
Gjatë mbështetjes së SLG46824/6, ne kemi dokumentuar disa këshilla programimi për të ndihmuar në shmangien e kurtheve të zakonshme që lidhen me fshirjen dhe shkrimin në hapësirën e adresave NVM. Nënseksionet e mëposhtme e përshkruajnë këtë temë në mënyrë më të detajuar.
1. Ekzekutimi i faqes së saktë 16-Byte NVM shkruan:
Kur shkruani të dhëna në NVM të SLG46824/6, ekzistojnë tre teknika për të shmangur:
● Faqja shkruan me më pak se 16 bajt
● Page shkruan me më shumë se 16 bajt
● Faqja shkruan që nuk fillojnë në regjistrimin e parë brenda një faqeje (IE: 0x10, 0x20, etj.)
Nëse përdoret ndonjë nga teknikat e mësipërme, ndërfaqja MTP do të shpërfillë shkrimin I2C për të shmangur ngarkimin e NVM me informacion të pasaktë. Ne rekomandojmë kryerjen e një leximi I2C të hapësirës së adresës NVM pas shkrimit për të verifikuar transferimin e saktë të të dhënave.
2. Transferimi i të dhënave NVM në regjistrat e konfigurimit të matricës
Kur NVM është shkruar, regjistrat e konfigurimit të matricës nuk ngarkohen automatikisht me të dhënat e sapokrijuara NVM. Transferimi duhet të fillohet manualisht duke çiklizuar VDD -në e AKP -së ose duke gjeneruar një rivendosje të butë duke përdorur I2C. Duke vendosur regjistrin në adresën 0xC8, pajisja ri-mundëson sekuencën Reset Power-On Reset (POR) dhe ringarkon të dhënat e regjistrit nga NVM në regjistra.
3. Rivendosja e Adresës I2C pas Fshirjes NVM:
Kur NVM të fshihet, adresa NVM që përmban adresën e skllavit I2C do të vendoset në 0000. Pas fshirjes, çipi do të ruajë adresën e tij aktuale të skllavit brenda regjistrave të konfigurimit derisa pajisja të rivendoset siç përshkruhet më sipër. Pasi çipi të jetë i rivendosur, adresa e skllavit I2C duhet të vendoset në adresën 0xCA brenda regjistrave të konfigurimit sa herë që GreenPAK të ciklohet ose rivendoset në fuqi. Kjo duhet të bëhet derisa faqja e re e adresës së skllavit I2C të jetë shkruar në NVM.
Hapi 5: Diskutim Errata
Kur shkruani në "Fshi faqen e faqes" (Adresa: 0xE3), SLG46824/6 prodhon një ACK jo të pajtueshëm me I2C pas pjesës "Të dhëna" të komandës I2C. Kjo sjellje mund të interpretohet si një NACK në varësi të zbatimit të masterit I2C.
Për t'iu përshtatur kësaj sjelljeje, ne modifikuam programuesin Arduino duke komentuar kodin e treguar në Figurën 11. Ky seksion i kodit kontrollon një ACK I2C në fund të çdo komande I2C në funksionin eraseChip (). Ky funksion përdoret për të fshirë faqet NVM dhe EEPROM. Meqenëse ky seksion i kodit ndodhet në një lak For, "kthimi -1;" linja bën që MCU të dalë para kohe nga funksioni.
Pavarësisht nga prania e një NACK, funksionet e fshirjes NVM dhe EEPROM do të ekzekutohen siç duhet. Për një shpjegim të hollësishëm të kësaj sjelljeje, ju lutemi referojuni “Çështja 2: Sjellja ACK që nuk pajtohet me I2C për NVM dhe faqen e EEPROM Erase Byte” në dokumentin e gabimit SLG46824/6 (Revision XC) në faqen e internetit të Dialogut.
Përfundim
Në këtë Instructable ne përshkruajmë procesin e përdorimit të programuesit të siguruar Arduino për të ngarkuar vargjet e personalizuara NVM dhe EEPROM në një IC GreenPAK. Kodi në Arduino Sketch është komentuar plotësisht, por nëse keni ndonjë pyetje në lidhje me skicën, ju lutemi kontaktoni një nga Inxhinierët tanë të Aplikimit në Fushë ose postoni pyetjen tuaj në forumin tonë. Për informacion më të thelluar në lidhje me regjistrat dhe procedurat e programimit MTP, ju lutemi referojuni Udhëzuesit të Programimit të Sistemit të Dialogut.
Recommended:
Si të bëni sistemin tuaj operativ! (grumbull dhe Shembull Brenda): 5 hapa
Si të krijoni sistemin tuaj operativ! (grumbull dhe Shembull Brenda): Bëjeni tani
Shembull modern dhe i ri dhe më i lehtë i dollapit me tastierë Arduino Matrix 4x4: 3 hapa
Shembull modern dhe i ri dhe më i lehtë i dollapit me tastierë Arduino Matrix 4x4: Një shembull tjetër i përdorimit të një matricë LCD të tastierës 4x4 me një qark I2C
APP HYRS 2 - Këshilla të Pastra Përpara (+4 Shembull): 6 Hapa
APP HYRS 2 - Këshilla të Pastra Përpara (+4 Shembull): Ne do të shohim se si mund ta bëjmë Aplikacionin tuaj në AI2 të duket estetik :) Këtë herë pa kod, vetëm këshilla për një aplikacion të qetë si shembulli 4 në krye
IoT Guru Cloud - Shembull i thjeshtë i tabelës: 4 hapa
IoT Guru Cloud - Shembull i thjeshtë i grafikut: IoT Guru Cloud siguron një mori shërbimesh të pasme përmes REST API dhe ju mund t'i integroni këto thirrje REST në faqen tuaj të internetit me lehtësi. Me Highcharts, ju mund të shfaqni tabela të matjes tuaj thjesht me një telefonatë AJAX
Shembull i dollapit me tastierën Arduino Matrix 4x4: 6 Hapa
Shembull i dollapit me tastierën Arduino Matrix 4x4: 2 mënyra për të menaxhuar një tastierë me 16 butona me një kunja minimale