Isi kandungan:
- Langkah 1: Sambungan Arduino-GreenPAK
- Langkah 2: Mengeksport Data GreenPAK NVM Dari Fail Reka Bentuk GreenPAK
- Langkah 3: Gunakan Sketsa Arduino
- Langkah 4: Petua dan Amalan Terbaik Pengaturcaraan
- Langkah 5: Perbincangan Errata
Video: Pengaturcaraan MTP Arduino Contoh: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Dalam Instructable ini, kami menunjukkan cara menggunakan sketsa pengaturcaraan SLG46824 / 6 Arduino untuk memprogramkan peranti Dialog SLG46824 / 6 GreenPAK ™ Multiple-Time Programmable (MTP).
Sebilangan besar peranti GreenPAK adalah One-Time Programmable (OTP), yang bermaksud bahawa apabila bank Memori Tidak Volatil (NVM) ditulis, ia tidak dapat ditimpa. GreenPAK dengan ciri MTP, seperti SLG46824 dan SLG46826, mempunyai jenis bank memori NVM yang berbeza yang dapat diprogram lebih dari sekali.
Kami telah menulis lakaran Arduino yang membolehkan pengguna memprogram MTP GreenPAK dengan beberapa perintah monitor bersiri yang mudah. Dalam Instructable ini kami menggunakan SLG46826 sebagai GreenPAK kami dengan MTP.
Kami menyediakan contoh kod untuk Arduino Uno menggunakan platform sumber terbuka berdasarkan C / C ++. Pereka harus memperkirakan teknik yang digunakan dalam kod Arduino untuk platform khusus mereka.
Untuk maklumat khusus mengenai spesifikasi isyarat I2C, alamat I2C, dan ruang memori, sila rujuk Panduan Pengaturcaraan Dalam Sistem GreenPAK yang disediakan di halaman produk SLG46826. Instructable ini menyediakan pelaksanaan ringkas panduan pengaturcaraan ini.
Di bawah ini kami menerangkan langkah-langkah yang diperlukan untuk memahami bagaimana cip GreenPAK telah diprogramkan. Namun, jika anda hanya ingin mendapatkan hasil pengaturcaraan, muat turun perisian GreenPAK untuk melihat Fail Reka Bentuk GreenPAK yang sudah siap. Pasang GreenPAK Development Kit ke komputer anda dan tekan program untuk membuat IC tersuai.
Langkah 1: Sambungan Arduino-GreenPAK
Untuk memprogram NVM GreenPAK SLG46826 kami dengan lakaran Arduino kami, pertama-tama kami perlu menyambungkan empat pin Arduino Uno ke GreenPAK kami. Anda boleh menyambungkan pin ini terus ke Adaptor Soket GreenPAK atau ke papan pelarian dengan pematerian GreenPAK ke bawah.
Perhatikan bahawa perintang tarik I2C luaran tidak ditunjukkan dalam Rajah 1. Sila sambungkan perintang tarik 4.7 kΩ dari kedua SCL dan SDA ke output 3.3 V Arduino.
Langkah 2: Mengeksport Data GreenPAK NVM Dari Fail Reka Bentuk GreenPAK
Kami akan mengumpulkan reka bentuk GreenPAK yang sangat sederhana untuk menggambarkan cara mengeksport data NVM. Reka bentuk di bawah adalah pergeseran tahap sederhana di mana pin biru di sebelah kiri diikat pada VDD (3.3v), sementara pin kuning di sebelah kanan diikat pada VDD2 (1.8v).
Untuk mengeksport maklumat dari reka bentuk ini, anda perlu memilih Fail → Eksport → Eksport NVM, seperti yang ditunjukkan pada Gambar 3.
Anda kemudian perlu memilih Intel HEX Files (*.hex) sebagai jenis fail dan menyimpan failnya.
Sekarang, anda perlu membuka fail.hex dengan penyunting teks (seperti Notepad ++). Untuk mengetahui lebih lanjut mengenai format dan sintaks fail HEX Intel, lihat halaman Wikipedia-nya. Untuk aplikasi ini, kami hanya tertarik pada bahagian data file seperti yang ditunjukkan pada Gambar 5.
Sorot dan salin 256 bait data konfigurasi NVM yang terletak di dalam fail HEX. Setiap baris yang kami salin panjangnya 32 aksara, yang sepadan dengan 16 bait.
Tempelkan maklumat ke bahagian nvmString yang disorot pada lakaran Arduino seperti yang ditunjukkan pada Gambar 6. Jika anda menggunakan Mikrokontroler bukan Arduino, anda dapat menulis fungsi untuk menguraikan nvmData yang disimpan dalam fail GreenPAK. GP6. (Sekiranya anda membuka fail GreenPAK dengan editor teks, anda akan melihat bahawa kami menyimpan maklumat projek dalam format XML yang mudah diakses.)
Untuk menetapkan data EEPROM untuk reka bentuk GreenPAK anda, pilih blok EEPROM dari panel komponen, buka panel sifatnya, dan klik "Tetapkan Data."
Kini anda boleh mengedit setiap bait di EEPROM secara berasingan dengan antara muka GUI kami.
Setelah data EEPROM anda ditetapkan, anda boleh mengeksportnya ke fail HEX menggunakan kaedah yang sama seperti yang dijelaskan sebelumnya untuk mengeksport data NVM. Masukkan 256 bait data EEPROM ini ke bahagian eepromString pada lakaran Arduino.
Untuk setiap reka bentuk khusus, penting untuk memeriksa tetapan perlindungan dalam tab "Keamanan" tetapan projek. Tab ini mengkonfigurasi bit perlindungan untuk daftar konfigurasi matriks, NVM, dan EEPROM. Di bawah konfigurasi tertentu, memuat naik urutan NVM dapat mengunci SLG46824 / 6 ke konfigurasi semasa dan menghapus fungsi MTP cip.
Langkah 3: Gunakan Sketsa Arduino
Muat naik lakaran ke Arduino anda dan buka monitor bersiri dengan kadar baud 115200. Sekarang anda boleh menggunakan arahan MENU lakaran untuk melakukan beberapa arahan:
● Baca - membaca data NVM peranti atau data EEPROM menggunakan alamat hamba yang ditentukan
● Padam - menghapus data NVM peranti atau data EEPROM menggunakan alamat hamba yang ditentukan
● Tulis - Padam dan kemudian tulis sama ada data NVM peranti atau data EEPROM menggunakan alamat hamba yang ditentukan. Perintah ini menulis data yang disimpan dalam array nvmString atau eepromString.
● Ping - mengembalikan senarai alamat hamba peranti yang disambungkan ke bas I2C
Hasil arahan ini akan dicetak ke konsol monitor bersiri.
Langkah 4: Petua dan Amalan Terbaik Pengaturcaraan
Selama mendukung SLG46824 / 6, kami telah mendokumentasikan beberapa petua pengaturcaraan untuk membantu mengelakkan perangkap umum yang berkaitan dengan penghapusan dan penulisan ke ruang alamat NVM. Bahagian-bahagian berikut menggariskan topik ini dengan lebih terperinci.
1. Melaksanakan Penulisan Halaman NVM 16-Byte Tepat:
Semasa menulis data ke NVM SLG46824 / 6, ada tiga teknik untuk mengelakkan:
● Halaman menulis dengan kurang daripada 16 bait
● Halaman menulis dengan lebih daripada 16 bait
● Halaman menulis bahawa jangan bermula pada daftar pertama dalam halaman (IE: 0x10, 0x20, dll.)
Sekiranya ada teknik di atas digunakan, antara muka MTP akan mengabaikan penulisan I2C untuk mengelakkan memuat NVM dengan maklumat yang salah. Kami mengesyorkan melakukan pembacaan I2C ruang alamat NVM setelah menulis untuk mengesahkan pemindahan data yang betul.
2. Memindahkan Data NVM ke dalam Matrix Configuration Register
Semasa NVM ditulis, daftar konfigurasi matriks tidak dimuat semula secara automatik dengan data NVM yang baru ditulis. Pemindahan mesti dilakukan secara manual dengan mengitar PAK VDD atau dengan membuat soft reset menggunakan I2C. Dengan menetapkan daftar di alamat 0xC8, peranti mengaktifkan semula urutan Power-On Reset (POR) dan memuatkan semula data pendaftaran dari NVM ke dalam daftar.
3. Menetapkan semula Alamat I2C selepas NVM Erase:
Apabila NVM dihapus, alamat NVM yang mengandungi alamat hamba I2C akan ditetapkan ke 0000. Setelah penghapusan, cip akan mengekalkan alamat budaknya sekarang dalam daftar konfigurasi sehingga peranti diset semula seperti yang dijelaskan di atas. Setelah cip diset semula, alamat hamba I2C mesti ditetapkan dalam alamat 0xCA dalam daftar konfigurasi setiap kali GreenPAK dihidupkan atau diatur semula. Ini mesti dilakukan sehingga halaman alamat hamba I2C baru ditulis di NVM.
Langkah 5: Perbincangan Errata
Semasa menulis ke "Page Erase Byte" (Alamat: 0xE3), SLG46824 / 6 menghasilkan ACK yang tidak sesuai dengan I2C setelah bahagian "Data" dari perintah I2C. Tingkah laku ini mungkin ditafsirkan sebagai NACK bergantung pada pelaksanaan master I2C.
Untuk menampung tingkah laku ini, kami mengubah suai pengaturcara Arduino dengan memberi komen mengenai kod yang ditunjukkan dalam Rajah 11. Bahagian kod ini memeriksa untuk I2C ACK pada akhir setiap arahan I2C dalam fungsi eraseChip (). Fungsi ini digunakan untuk menghapus halaman NVM dan EEPROM. Oleh kerana bahagian kod ini terletak di gelung For, "return -1;" garis menyebabkan MCU keluar dari fungsi sebelum waktunya.
Walaupun terdapat NACK, fungsi penghapusan NVM dan EEPROM akan berjalan dengan baik. Untuk penjelasan terperinci mengenai tingkah laku ini, rujuk "Isu 2: Tingkah Laku ACK Tidak Patuh I2C untuk NVM dan EEPROM Page Erase Byte" dalam dokumen errata SLG46824 / 6 (Revisi XC) di laman web Dialog.
Kesimpulannya
Dalam Instructable ini kami menerangkan proses penggunaan pengaturcara Arduino yang disediakan untuk memuat naik rentetan NVM dan EEPROM tersuai ke IC GreenPAK. Kod dalam Sketsa Arduino dikomentari dengan teliti, tetapi jika anda mempunyai pertanyaan mengenai lakaran tersebut, sila hubungi salah satu Jurutera Aplikasi Lapangan kami atau hantar pertanyaan anda di forum kami. Untuk maklumat yang lebih mendalam mengenai daftar dan prosedur pengaturcaraan MTP, sila rujuk Panduan Pengaturcaraan Dalam Sistem Dialog.
Disyorkan:
Contoh Kod Mash Up Arduino: 6 Langkah (dengan Gambar)
Contoh Mash Up Arduino Code: Tutorial ini melalui proses menggabungkan lakaran sampel Arduino untuk membuat prototaip projek yang berfungsi. Membangunkan kod untuk projek anda boleh menjadi bahagian yang paling menakutkan, terutamanya jika anda belum melakukannya seribu kali. Sekiranya
Jam Tangan Pengaturcaraan ATtiny85 Aktiviti Bergetar yang Boleh Dipakai & Pengaturcaraan ATtiny85 Dengan Arduino Uno: 4 Langkah (dengan Gambar)
Jam Tangan Pengaturcaraan & Pengaturcaraan Aktiviti Getaran ATtiny85 ATtiny85 Dengan Arduino Uno: Bagaimana membuat jam tangan aktiviti yang boleh dipakai? Ini adalah alat yang boleh dipakai yang direka untuk bergetar ketika mengesan genangan. Adakah anda menghabiskan sebahagian besar masa anda di komputer seperti saya? Adakah anda duduk berjam-jam tanpa menyedarinya? Maka peranti ini adalah
Moden dan Baru dan Lebih Mudah Contoh Locker Dengan Arduino Matrix Keypad 4x4: 3 Langkah
Moden dan Baru dan Lebih Mudah Contoh Locker Dengan Arduino Matrix Keypad 4x4: Contoh lain menggunakan papan kekunci LCD matriks 4x4 dengan litar I2C
Contoh Locker With Arduino Matrix Keypad 4x4: 6 Langkah
Contoh Locker With Arduino Matrix Keypad 4x4: 2 cara mengurus papan kekunci 16 butang tekan dengan minimum pin
Arduino Termurah -- Arduino terkecil -- Arduino Pro Mini -- Pengaturcaraan -- Arduino Neno: 6 Langkah (dengan Gambar)
Arduino Termurah || Arduino terkecil || Arduino Pro Mini || Pengaturcaraan || Arduino Neno: …………………………. Sila Langgan saluran YouTube saya untuk lebih banyak video ……. Projek ini adalah mengenai bagaimana untuk menghubungkan arduino terkecil dan termurah yang pernah ada. Arduino terkecil dan termurah adalah arduino pro mini. Ia serupa dengan arduino