Агуулгын хүснэгт:
- Алхам 1: Arduino-GreenPAK холболтууд
- Алхам 2: GreenPAK NVM өгөгдлийг GreenPAK дизайны файлаас экспортлох
- Алхам 3: Arduino Sketch -ийг ашиглана уу
- Алхам 4: Програмчлалын зөвлөмж ба шилдэг туршлага
- Алхам 5: Алдаатай хэлэлцүүлэг
Видео: MTP Arduino програмчлалын жишээ: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Энэхүү зааварчилгаанд бид SLG46824/6 Arduino програмчлалын ноорог ашиглан Dialog SLG46824/6 GreenPAK ™ олон удаа програмчлагдах (MTP) төхөөрөмжийг програмчлах аргыг харуулав.
Ихэнх GreenPAK төхөөрөмжүүд нь нэг удаагийн програмчлах боломжтой (OTP) бөгөөд энэ нь тэдний дэгдэмхий бус санах ойн банкийг (NVM) бичсэний дараа үүнийг дарж бичих боломжгүй гэсэн үг юм. SLG46824 ба SLG46826 гэх мэт MTP онцлогтой GreenPAK -ууд өөр өөр төрлийн NVM санах ойн банктай бөгөөд үүнийг нэгээс олон удаа програмчлах боломжтой.
Бид хэрэглэгчдэд MTP GreenPAK програмыг сериал дэлгэцийн цөөн хэдэн команд ашиглан програмчлах боломжийг олгодог Arduino ноорог бичсэн. Энэхүү зааварт бид SLG46826 -ийг MTP -тэй GreenPAK болгон ашигладаг.
Бид C/C ++ дээр суурилсан нээлттэй эхийн платформ ашиглан Arduino Uno-ийн дээжийн кодыг өгдөг. Загвар зохион бүтээгчид Arduino кодонд ашигладаг техник технологийг тусгай платформдоо зориулан гаргах ёстой.
I2C дохионы тодорхойлолт, I2C хаяглалт, санах ойн орон зайны талаар тодорхой мэдээлэл авахыг хүсвэл SLG46826 бүтээгдэхүүний хуудсан дээр байрлуулсан GreenPAK системийн програмчлалын гарын авлагаас лавлана уу. Энэхүү зааварчилгаа нь энэхүү програмчлалын гарын авлагын энгийн хэрэгжилтийг хангаж өгдөг.
GreenPAK чипийг хэрхэн програмчилсаныг ойлгох шаардлагатай алхмуудыг бид доор тайлбарласан болно. Гэсэн хэдий ч хэрэв та програмчлалын үр дүнг авахыг хүсч байвал GreenPAK програмыг татаж аваад аль хэдийн дууссан GreenPAK дизайны файлыг үзнэ үү. GreenPAK Development Kit -ийг компьютерт холбоод, тусгай IC үүсгэхийн тулд програмыг дарна уу.
Алхам 1: Arduino-GreenPAK холболтууд
SLG46826 GreenPAK -ийн NVM -ийг Arduino ноорогоор програмчлахын тулд эхлээд GreenPAK -тэй дөрвөн Arduino Uno тээглүүр холбох шаардлагатай болно. Та эдгээр тээглүүрийг шууд GreenPAK залгуур адаптер эсвэл GreenPAK -ийг гагнасан таслагч самбартай холбож болно.
Гадаад I2C татах эсэргүүцлийг Зураг 1 -д үзүүлээгүй болохыг анхаарна уу. SCL ба SDA хоёулангийнх нь 4.7 кОм -ийн эсэргүүцэх хүчдэлийг Arduino -ийн 3.3 В -ийн гаралт руу холбоно уу.
Алхам 2: GreenPAK NVM өгөгдлийг GreenPAK дизайны файлаас экспортлох
Бид NVM өгөгдлийг хэрхэн экспортлохыг харуулахын тулд маш энгийн GreenPAK загварыг нэгтгэх болно. Доорх загвар нь зүүн талын цэнхэр тээглүүрийг VDD (3.3v), баруун талын шар тээглүүрийг VDD2 (1.8v) -тэй холбосон энгийн түвшний шилжүүлэгч юм.
Энэхүү дизайны мэдээллийг экспортлохын тулд та Зураг 3 -т үзүүлсэн шиг File → Export → Export NVM -ийг сонгох хэрэгтэй.
Дараа нь та Intel HEX Files (*.hex) файлын төрлийг сонгоод файлыг хадгалах хэрэгтэй болно.
Одоо та.hex файлыг текст засварлагчаар (Notepad ++ гэх мэт) нээх хэрэгтэй болно. Intel -ийн HEX файлын формат, синтаксийн талаар илүү ихийг мэдэхийн тулд Википедиа хуудсыг үзнэ үү. Энэхүү програмын хувьд бид зөвхөн Зураг 5 -т үзүүлсэн файлын өгөгдлийн хэсгийг сонирхож байна.
HEX файл дотор байрлах 256 байтын NVM тохиргооны өгөгдлийг тодруулж хуулна уу. Бидний хуулж буй мөр бүр 32 тэмдэгт бөгөөд энэ нь 16 байттай тохирч байна.
Зураг дээр үзүүлсэн шиг Arduino ноорогны тодруулсан nvmString хэсэгт мэдээллийг оруулна уу. Хэрэв та Arduino бус микроконтроллер ашиглаж байгаа бол GreenPAK. GP6 файлд хадгалагдсан nvmData-ийг задлах функц бичиж болно. (Хэрэв та GreenPAK файлыг текст засварлагчаар нээвэл бид төслийн мэдээллийг хялбархан хүртээмжтэй XML форматаар хадгалж байгааг харах болно.)
GreenPAK дизайныхаа EEPROM өгөгдлийг тохируулахын тулд бүрэлдэхүүн хэсгийн самбараас EEPROM блокыг сонгоод шинж чанаруудын самбарыг нээгээд "Өгөгдөл тохируулах" дээр дарна уу.
Одоо та EEPROM дахь байт бүрийг тус тусад нь GUI интерфэйсээр засах боломжтой.
Таны EEPROM өгөгдлийг тохируулсны дараа та NVM өгөгдлийг экспортлоход өмнө тайлбарласан аргыг ашиглан HEX файл руу экспортлох боломжтой. Эдгээр 256 байт EEPROM өгөгдлийг Arduino эскизийн eepromString хэсэгт оруулна уу.
Захиалгат загвар бүрийн хувьд төслийн тохиргооны "Аюулгүй байдал" таб доторх хамгаалалтын тохиргоог шалгах нь чухал юм. Энэ таб нь матрицын тохиргооны бүртгэл, NVM, EEPROM -ийн хамгаалалтын битүүдийг тохируулдаг. Тодорхой тохиргооны дагуу NVM дарааллыг байршуулах нь SLG46824/6 -ийг одоогийн тохиргоонд түгжиж, чипний MTP функцийг устгах боломжтой.
Алхам 3: Arduino Sketch -ийг ашиглана уу
Ноорогоо Arduino дээрээ байршуулаад цуваа дэлгэцийг 115200 baud хурдтайгаар нээнэ үү. Одоо та ноорог зургийн MENU командыг ашиглан хэд хэдэн тушаалыг гүйцэтгэж болно.
● Унших - заасан slave хаягийг ашиглан төхөөрөмжийн NVM өгөгдөл эсвэл EEPROM өгөгдлийг уншдаг
● Erase - тогтоосон туслах хаягийг ашиглан төхөөрөмжийн NVM өгөгдөл эсвэл EEPROM өгөгдлийг устгадаг
● Бичих - Тухайн боолын хаягийг ашиглан төхөөрөмжийн NVM өгөгдөл эсвэл EEPROM өгөгдлийг устгаад бичнэ. Энэ тушаал нь nvmString эсвэл eepromString массивт хадгалагдсан өгөгдлийг бичдэг.
● Ping - I2C автобусанд холбогдсон төхөөрөмжийн боол хаягуудын жагсаалтыг буцаана
Эдгээр командын үр дүнг цуваа мониторын консол дээр хэвлэх болно.
Алхам 4: Програмчлалын зөвлөмж ба шилдэг туршлага
SLG46824/6 -ийг дэмжих явцад бид NVM хаягийн орон зайг устгах, бичихтэй холбоотой нийтлэг бэрхшээлээс зайлсхийхэд туслах хэд хэдэн програмчлалын зөвлөмжийг баримтжуулсан болно. Дараах дэд бүлгүүдэд энэ сэдвийг илүү нарийвчлан харуулав.
1. Нарийвчилсан 16 байтын NVM хуудас бичих:
SLG46824/6 -ийн NVM -д өгөгдөл бичихдээ үүнээс зайлсхийх гурван арга байдаг.
● Хуудас 16 байтаас бага хэмжээтэй бичдэг
● Хуудас 16 -аас дээш байтаар бичдэг
● Хуудас нь хуудасны эхний бүртгэлээс эхэлдэггүй бичдэг (IE: 0x10, 0x20 гэх мэт)
Хэрэв дээр дурдсан аргуудын аль нэгийг ашиглавал MTP интерфэйс нь NVM -ийг буруу мэдээллээр ачаалахгүйн тулд I2C бичихийг үл тоомсорлох болно. Өгөгдлийн зөв дамжуулалтыг шалгахын тулд бичиж дууссаны дараа NVM хаягийн орон зайг I2C уншихыг зөвлөж байна.
2. NVM өгөгдлийг матрицын тохиргооны бүртгэлд шилжүүлэх
NVM -ийг бичих үед матрицын тохиргооны бүртгэлийг шинээр бичсэн NVM өгөгдлөөр автоматаар дахин ачаалдаггүй. PAK VDD -ийг дугуй унах эсвэл I2C ашиглан зөөлөн дахин тохируулах замаар шилжүүлэх ажлыг гараар эхлүүлэх ёстой. Бүртгэлийг 0xC8 хаягаар тохируулснаар төхөөрөмж нь Power-On Reset (POR) дарааллыг дахин идэвхжүүлж, бүртгэлийн өгөгдлийг NVM-ээс регистрүүдэд дахин ачаална.
3. NVM арилгасны дараа I2C хаягийг дахин тохируулах:
NVM -ийг устгасны дараа I2C боомтын хаягийг агуулсан NVM хаягийг 0000 болгож тохируулна. Устгасны дараа чип нь дээр дурдсанчлан төхөөрөмжийг дахин тохируулах хүртэл тохиргооны бүртгэл доторх одоогийн боолын хаягийг хадгална. Чипийг дахин тохируулсны дараа GreenPAK-ийг цахилгаан эргүүлэх эсвэл дахин тохируулах бүрт I2C боолын хаягийг тохиргооны бүртгэл дотор 0xCA хаягаар тохируулах ёстой. Үүнийг IVC шинэ боолын хаягийн хуудсыг NVM дээр бичих хүртэл хийх ёстой.
Алхам 5: Алдаатай хэлэлцүүлэг
"Хуудас устгах байт" (Хаяг: 0xE3) руу бичихдээ SLG46824/6 нь I2C командын "Өгөгдөл" хэсгийн дараа I2C-тэй нийцдэггүй ACK гаргадаг. Энэ зан үйлийг I2C мастерын хэрэгжилтээс хамааран NACK гэж тайлбарлаж болно.
Энэ зан төлөвт нийцүүлэхийн тулд бид Arduino програмистыг 11 -р зурагт үзүүлсэн кодыг тайлбарлаж өөрчилсөн бөгөөд кодын энэ хэсэгт eraseChip () функцын I2C команд бүрийн төгсгөлд I2C ACK байгаа эсэхийг шалгадаг. Энэ функц нь NVM болон EEPROM хуудсыг устгахад хэрэглэгддэг. Кодын энэ хэсэг For циклд байрладаг тул "return -1;" шугам нь MCU -ийг хугацаанаас нь өмнө орхиход хүргэдэг.
NACK байгаа хэдий ч NVM ба EEPROM арилгах функцууд зохих ёсоор гүйцэтгэх болно. Энэ зан үйлийн талаар дэлгэрэнгүй тайлбар авахыг хүсвэл Dialog вэбсайт дээрх SLG46824/6 алдааны баримт бичигт (Revision XC) "Асуудал 2: NVM ба EEPROM хуудас устгах байтын I2C стандартад нийцэхгүй ACK зан төлөв" -ийг лавлана уу.
Дүгнэлт
Энэхүү гарын авлагад бид өгсөн Arduino програмистыг ашиглан өөрчлөн NVM ба EEPROM мөрүүдийг GreenPAK IC руу байршуулах үйл явцыг тайлбарласан болно. Arduino Sketch дээрх кодыг нарийвчлан тайлбарласан болно, гэхдээ хэрэв танд ноорогтой холбоотой асуулт байвал манай хээрийн хэрэглээний инженерүүдийн аль нэгтэй холбоо барина уу эсвэл асуултаа манай форум дээр байрлуулна уу. MTP програмчлалын бүртгэл, процедурын талаар илүү дэлгэрэнгүй мэдээлэл авахыг хүсвэл Dialog-ийн системийн програмчлалын гарын авлагаас лавлана уу.
Зөвлөмж болгож буй:
Өөрийнхөө OS -ийг хэрхэн яаж хийх вэ! (Багц ба доторх жишээ): 5 алхам
Өөрийнхөө OS -ийг хэрхэн яаж хийх вэ! (Багц ба доторх жишээ): Яг одоо хийгээрэй
Цэвэр өгөгдлийг ашиглан жишээ дэвсгэр хянагч: 4 алхам
Цэвэр өгөгдлийг ашиглан дээжийн дэвсгэр хянагч: Энэхүү зааварчилгаанд би хуучин Roland электрон бөмбөрийн иж бүрдэл багажийг дагалдах анхны бөмбөрийн модульгүйгээр дуу чимээ гаргах боломжийг олгодог хянагчийг бий болгох болно. Би цэвэр өгөгдлийг ашиглан ачаалах нөхөөс үүсгэх болно зарим wav файлууд, дараа нь p
APP INVENTOR 2 - Урд талын цэвэр зөвлөмж (+4 жишээ): 6 алхам
APP INVENTOR 2 - Цэвэр урд талын зөвлөмжүүд (+4 жишээ): Бид таны AI2 дээрх аппыг хэрхэн гоо зүйн харагдуулахыг харах болно. :) Энэ удаад код байхгүй, зөвхөн 4 -р жишээ шиг гөлгөр програмын зөвлөмжүүд
IoT Guru Cloud - Энгийн диаграмын жишээ: 4 алхам
IoT Guru Cloud - Энгийн диаграмын жишээ: IoT Guru Cloud нь REST API -ээр дамжуулан олон тооны арын үйлчилгээ үзүүлдэг бөгөөд та эдгээр REST дуудлагыг вэб хуудсандаа хялбархан нэгтгэх боломжтой. Highcharts -ийн тусламжтайгаар та хэмжлийн хүснэгтийг AJAX дуудлагаар харуулах боломжтой
TFT 1.44 Arduino Nano - Бусад жишээ: 4 алхам
TFT 1.44 Arduino Nano - Бусад жишээ: Энэхүү гарын авлагад бид Robo -Geek иж бүрдлүүдээс TFT 1.44 болон Arduino Nano ашиглан хийж болох бусад жишээг авч үзэх болно. /www.instructables.com/id/Using-TFT-144-Wit… Хэрэв та Ar-д шинээр орсон бол