Përmbajtje:

Shembull i programimit të MTP Arduino: 5 hapa
Shembull i programimit të MTP Arduino: 5 hapa

Video: Shembull i programimit të MTP Arduino: 5 hapa

Video: Shembull i programimit të MTP Arduino: 5 hapa
Video: Мобильный термо принтер MPT-2 c Bluetooth и USB - IOS Android Windows 2024, Nëntor
Anonim
Shembull i programimit të MTP Arduino
Shembull i programimit të MTP Arduino

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

Lidhjet Arduino-GreenPAK
Lidhjet Arduino-GreenPAK
Lidhjet Arduino-GreenPAK
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

Eksportimi i të dhënave GreenPAK NVM nga një skedar i projektimit GreenPAK
Eksportimi i të dhënave GreenPAK NVM nga një skedar i projektimit GreenPAK
Eksportimi i të dhënave GreenPAK NVM nga një skedar i projektimit GreenPAK
Eksportimi i të dhënave GreenPAK NVM nga një skedar i projektimit GreenPAK
Eksportimi i të dhënave GreenPAK NVM nga një skedar i projektimit GreenPAK
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

Përdorni Skicën Arduino
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

Diskutim Errata
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: