Mundarija:

MTP Arduino dasturlash misoli: 5 qadam
MTP Arduino dasturlash misoli: 5 qadam

Video: MTP Arduino dasturlash misoli: 5 qadam

Video: MTP Arduino dasturlash misoli: 5 qadam
Video: MTP 12103 COMPUTER PROGRAMMING 2024, Iyul
Anonim
MTP Arduino dasturlash misoli
MTP Arduino dasturlash misoli

Ushbu yo'riqnomada SLG46824/6 GreenPAK ™ Multiple-Time Programmable (MTP) Dialog qurilmasini dasturlash uchun SLG46824/6 Arduino dasturlash eskizidan qanday foydalanish ko'rsatiladi.

Ko'pgina GreenPAK qurilmalari bir martalik dasturlashtiriladigan (OTP), ya'ni ularning doimiy xotira banki (NVM) yozilgandan so'ng, uni qayta yozib bo'lmaydi. SLG46824 va SLG46826 kabi MTP xususiyatiga ega GreenPAK -larda bir necha marta dasturlash mumkin bo'lgan boshqa turdagi NVM xotira banki mavjud.

Biz Arduino eskizini yozdik, u foydalanuvchiga bir nechta oddiy ketma -ket monitorli buyruqlar yordamida GreenPAK MTP -ni dasturlash imkonini beradi. Ushbu qo'llanmada biz SLG46826 -ni MTP -ga ega GreenPAK sifatida ishlatamiz.

Biz C/C ++ ga asoslangan ochiq kodli platforma yordamida Arduino Uno uchun namuna kodini taqdim etamiz. Dizaynerlar o'zlarining platformalari uchun Arduino kodida ishlatiladigan texnikani ekstrapolyatsiya qilishlari kerak.

I2C signallari, I2C manzillari va xotira bo'shliqlari haqida aniq ma'lumot olish uchun SLG46826 mahsulot sahifasida berilgan GreenPAK tizimli dasturlash qo'llanmasiga murojaat qiling. Bu ko'rsatma ushbu dasturlash qo'llanmasining sodda bajarilishini ta'minlaydi.

Quyida biz GreenPAK chipining qanday dasturlashtirilganligini tushunish uchun zarur bo'lgan qadamlarni tasvirlab berdik. Ammo, agar siz dasturlash natijasini olishni xohlasangiz, GreenPAK dasturini yuklab oling va tugallangan GreenPAK dizayn faylini ko'ring. GreenPAK Development Kit -ni kompyuteringizga ulang va maxsus IC yaratish uchun dasturni bosing.

1-qadam: Arduino-GreenPAK ulanishlari

Arduino-GreenPAK ulanishlari
Arduino-GreenPAK ulanishlari
Arduino-GreenPAK ulanishlari
Arduino-GreenPAK ulanishlari

SLG46826 GreenPAK NVM -ni Arduino eskizi bilan dasturlash uchun biz avval GreenPAK -ga to'rtta Arduino Uno pinini ulashimiz kerak bo'ladi. Siz bu pinlarni to'g'ridan -to'g'ri GreenPAK soket adapteriga yoki GreenPAK lehimlangan bo'lakka ulashingiz mumkin.

E'tibor bering, tashqi I2C tortish rezistorlari 1 -rasmda ko'rsatilmagan. Iltimos, SCL va SDA -dan Arduino -ning 3,3 V kuchlanishiga 4,7 kΩ kuchlanishli qarshilikni ulang.

2 -qadam: GreenPAK NVM ma'lumotlarini GreenPAK dizayn faylidan eksport qilish

GreenPAK NVM ma'lumotlarini GreenPAK dizayn faylidan eksport qilish
GreenPAK NVM ma'lumotlarini GreenPAK dizayn faylidan eksport qilish
GreenPAK NVM ma'lumotlarini GreenPAK dizayn faylidan eksport qilish
GreenPAK NVM ma'lumotlarini GreenPAK dizayn faylidan eksport qilish
GreenPAK NVM ma'lumotlarini GreenPAK dizayn faylidan eksport qilish
GreenPAK NVM ma'lumotlarini GreenPAK dizayn faylidan eksport qilish

Biz NVM ma'lumotlarini qanday eksport qilishni ko'rsatish uchun GreenPAK -ning juda oddiy dizaynini yig'amiz. Quyidagi konstruktsiya oddiy darajali siljitgich bo'lib, u erda chapdagi ko'k pinlar VDD (3.3v) ga, o'ngdagi sariq pinlar VDD2 ga (1.8v) bog'langan.

Ushbu dizayndagi ma'lumotlarni eksport qilish uchun 3 -rasmda ko'rsatilgandek Fayl → Eksport → NVM -ni eksport qilish -ni tanlash kerak.

Keyin fayl turi sifatida Intel HEX Files (*.hex) ni tanlashingiz va faylni saqlashingiz kerak bo'ladi.

Endi siz.hex faylini matn muharriri bilan ochishingiz kerak bo'ladi (Notepad ++ kabi). Intelning HEX fayl formati va sintaksisi haqida ko'proq bilish uchun uning Vikipediya sahifasiga qarang. Bu ilova uchun biz faqat 5 -rasmda ko'rsatilgan faylning ma'lumotlar qismi bilan qiziqamiz.

HEX fayli ichida joylashgan 256 baytlik NVM konfiguratsiya ma'lumotlarini ajratib ko'rsatish va nusxalash. Biz nusxa ko'chirayotgan har bir satr 32 belgidan iborat bo'lib, 16 baytga to'g'ri keladi.

Ma'lumotni 6-rasmda ko'rsatilgandek Arduino eskizining ajratilgan nvmString bo'limiga joylashtiring. Agar siz Arduino bo'lmagan mikrokontrollerdan foydalansangiz, GreenPAK. GP6 faylida saqlangan nvmDatani tahlil qilish funktsiyasini yozishingiz mumkin. (Agar siz GreenPAK faylini matn muharriri bilan ochsangiz, biz loyiha ma'lumotlarini XML formatida osonlik bilan saqlayotganimizni ko'rasiz.)

GreenPAK dizayni uchun EEPROM ma'lumotlarini o'rnatish uchun komponentlar panelidan EEPROM blokini tanlang, uning xususiyatlar panelini oching va "Ma'lumotlarni o'rnatish" tugmasini bosing.

Endi siz GEI interfeysi yordamida EEPROM -dagi har bir baytni alohida tahrir qilishingiz mumkin.

EEPROM ma'lumotlari o'rnatilgandan so'ng, siz NVM ma'lumotlarini eksport qilish uchun ilgari tasvirlangan usul yordamida uni HEX faylga eksport qilishingiz mumkin. Ushbu 256 bayt EEPROM ma'lumotlarini Arduino eskizining eepromString bo'limiga joylashtiring.

Har bir maxsus dizayn uchun loyiha sozlamalarining "Xavfsizlik" yorlig'idagi himoya parametrlarini tekshirish muhim. Ushbu yorliq matritsa konfiguratsiya registrlari, NVM va EEPROM uchun himoya bitlarini sozlaydi. Muayyan konfiguratsiyalarda NVM ketma -ketligini yuklash SLG46824/6 ni hozirgi konfiguratsiyasiga qulflashi va chipning MTP funksiyasini o'chirib qo'yishi mumkin.

3 -qadam: Arduino eskizidan foydalaning

Arduino eskizidan foydalaning
Arduino eskizidan foydalaning

Eskizni Arduino -ga yuklang va ketma -ket monitorni 115200 bod tezligi bilan oching. Endi siz bir nechta buyruqlarni bajarish uchun eskizning MENU ko'rsatmalaridan foydalanishingiz mumkin:

● O'qish - qurilmaning NVM ma'lumotlarini yoki EEPROM ma'lumotlarini ko'rsatilgan qulli manzil yordamida o'qiydi

● O'chirish - ko'rsatilgan xizmat ko'rsatuvchi manzil yordamida qurilmaning NVM ma'lumotlarini yoki EEPROM ma'lumotlarini o'chiradi

● Yozish - ko'rsatilgan qulli manzil yordamida qurilmaning NVM ma'lumotlarini yoki EEPROM ma'lumotlarini o'chiradi va yozadi. Bu buyruq nvmString yoki eepromString massivlarida saqlangan ma'lumotlarni yozadi.

● Ping - I2C avtobusiga ulangan qurilmaning qul manzillari ro'yxatini qaytaradi

Bu buyruqlar natijalari ketma -ket monitor konsolida chop etiladi.

4 -qadam: dasturlash bo'yicha maslahatlar va eng yaxshi amaliyotlar

SLG46824/6 -ni qo'llab -quvvatlash jarayonida biz NVM manzil maydonini o'chirish va yozish bilan bog'liq keng tarqalgan xatolardan qochish uchun dasturlash bo'yicha bir nechta maslahatlarni hujjatlashtirdik. Quyidagi bo'limlarda bu mavzu batafsilroq tasvirlangan.

1. NVM 16 baytli aniq sahifani bajarish:

SLG46824/6 NVM -ga ma'lumotlarni yozishda, uchta texnikadan qochish kerak:

● Sahifa 16 baytdan kam yozadi

● Sahifa 16 baytdan ortiq yozadi

● Sahifa sahifadagi birinchi registrda boshlanmaydigan yozuvlarni yozadi (IE: 0x10, 0x20 va boshqalar).

Agar yuqoridagi usullardan birortasi ishlatilsa, MTP interfeysi NVMni noto'g'ri ma'lumot yuklamaslik uchun I2C yozishni inobatga olmaydi. Ma'lumotlarning to'g'ri uzatilishini tekshirish uchun yozilgandan so'ng NVM manzil maydonining I2C o'qilishini tavsiya qilamiz.

2. NVM ma'lumotlarini Matrix konfiguratsiya registrlariga o'tkazish

NVM yozilganda matritsa konfiguratsiya registrlari avtomatik ravishda yangi yozilgan NVM ma'lumotlari bilan yuklanmaydi. O'tkazish PAK VDD velosipedida yoki I2C yordamida yumshoq qayta o'rnatish orqali qo'lda boshlanishi kerak. 0xC8 manzilida registrni o'rnatgan holda, qurilma qayta yoqish (POR) ketma-ketligini qayta yoqadi va registr ma'lumotlarini NVMdan registrlarga qayta yuklaydi.

3. NVM o'chirilgandan so'ng I2C manzilini tiklash:

NVM o'chirilganda, I2C qulli manzilini o'z ichiga olgan NVM manzili 0000 ga o'rnatiladi. O'chirilgandan so'ng, qurilma konfiguratsiya registrlarida, qurilma yuqorida ta'riflanganidek qayta tiklanmaguncha, joriy qul manzilini saqlaydi. Chip qayta o'rnatilgandan so'ng, GreenPAK har safar yoqilganda yoki qayta o'rnatilganda I2C qul manzili konfiguratsiya registrlarida 0xCA manziliga o'rnatilishi kerak. Bu NVMda yangi I2C qul manzili sahifasi yozilmaguncha amalga oshirilishi kerak.

5 -qadam: Xatolarni muhokama qilish

Xatolarni muhokama qilish
Xatolarni muhokama qilish

"Sahifani o'chirish baytiga" yozishda (Manzil: 0xE3), SLG46824/6 I2C buyrug'ining "Ma'lumotlar" qismidan keyin I2C ga mos kelmaydigan ACK ishlab chiqaradi. Bu xatti -harakatlar I2C master dasturiga qarab NACK sifatida talqin qilinishi mumkin.

Bu xatti -harakatlarga moslashish uchun biz Arduino dasturchisini 11 -rasmda ko'rsatilgan kodni sharhlab o'zgartirdik. Kodning bu bo'limi eraseChip () funktsiyasidagi har bir I2C buyrug'i oxirida I2C ACK ni tekshiradi. Bu funksiya NVM va EEPROM sahifalarini o'chirish uchun ishlatiladi. Kodning bu qismi For ko'chasida joylashganligi uchun "return -1;" chiziq MCU funktsiyasidan muddatidan oldin chiqib ketishiga olib keladi.

NACK mavjudligiga qaramay, NVM va EEPROM o'chirish funktsiyalari to'g'ri bajariladi. Bu xatti-harakatni batafsil tushuntirish uchun Dialog veb-saytidagi SLG46824/6 xato hujjati (Revision XC) "2-masala: NVM va EEPROM sahifalarini o'chirish bayti uchun I2C-ga mos kelmaydigan ACK xatti-harakati" ga murojaat qiling.

Xulosa

Ushbu qo'llanmada biz GreenPAK IC -ga maxsus NVM va EEPROM satrlarini yuklash uchun taqdim etilgan Arduino dasturchisidan foydalanish jarayonini tasvirlaymiz. Arduino Sketch -dagi kod to'liq sharhlangan, lekin agar sizda eskizga oid savollaringiz bo'lsa, iltimos, bizning dala dastur muhandislarimizdan biriga murojaat qiling yoki savolingizni bizning forumga joylashtiring. MTP dasturlari registrlari va protseduralari haqida batafsil ma'lumot olish uchun, iltimos, Dialog tizimidagi dasturlash qo'llanmasiga murojaat qiling.

Tavsiya: