Jam tangan pintar lain dengan tangan Anda sendiri


Terinspirasi beberapa waktu lalu oleh artikel "Jam tangan pintar dengan tangan Anda sendiri untuk 1500r." , Saya juga memutuskan untuk mencoba membuat perangkat yang serupa.


Artikel ini tidak diposisikan sebagai panduan untuk tindakan atau instruksi, tetapi lebih sebagai indikasi poin-poin utama yang harus saya hadapi. Mungkin bagi seseorang itu akan berfungsi sebagai sumber inspirasi dan informasi berguna.


Pemilihan komponen, tata letak PCB, penyolderan dalam kondisi yang keras, kasing cetak 3D dan JavaScript pada jam tangan - di bawah potongan. Selamat datang!


Persyaratan


  • Anda perlu mengetahui waktu tanpa harus masuk ke saku Anda di belakang ponsel
  • Harus ada tanda terima notifikasi panggilan masuk, SMS dan notifikasi dari kurir instan
  • Daya tahan baterai harus setidaknya seminggu
  • Jadilah sekompak mungkin

Sudah berdasarkan daftar kecil persyaratan ini, Anda dapat mulai memilih komponen dan mengklarifikasi fitur teknis dari implementasi. Anggaran proyek untuk waktu dan keuangan tidak terbatas, produksi massal tidak direncanakan, sehingga Anda dapat berjalan-jalan dan tidak benar-benar khawatir tentang menghemat setiap sen.


Selain rencana umum, ada juga yang murni teknis:


  • Membuat dan menjalankan aplikasi khusus pada jam. Seperti Pebble . Secara umum, selanjutnya, jam akan semakin menyerupai klon Pebble, tetapi mengapa tidak
  • Memori untuk aplikasi dan datanya
  • Kontrol tingkat daya yang memadai sehingga arloji tidak tiba-tiba padam saat baterai habis, tetapi menunjukkan "tongkat" dan memperingatkan terlebih dahulu
  • Accelerometer, giroskop, dan magnetometer untuk pelacakan penuh pergerakan pengguna. Untuk dapat membuat pedometer atau jam alarm pintar yang memantau fase tidur dengan kehadiran gerakan

Semua ini akhirnya mengkristal menjadi diagram kecil:



Mikrokontroler menggabungkan BLE 4.x untuk komunikasi dengan telepon pintar, bus I²C dan SPI untuk sensor dan layar dengan memori, mengendalikan getaran dan merespons penekanan tombol, semuanya ditenagai oleh baterai Li-Po.


Sekarang Anda dapat memulai proses memilih chip dan komponen. Dalam hal input tenaga kerja dan waktu yang dihabiskan, itu adalah proses yang paling sulit dan panjang, perlu untuk membandingkan banyak, mencari, dan menyelam dengan cepat ke tempat saya belum pernah berenang sebelumnya.


Pemilihan Komponen


Mikrokontroler


Pertama-tama, Anda harus memilih pengontrol yang akan menjadi "otak" perangkat dan semua yang ada di papan akan melayani dia untuk kebaikan.


Untuk membuat perangkat lebih kompak, perlu untuk menggunakan sesedikit mungkin komponen dan modul. Di sini berbagai sistem pada sebuah chip datang untuk menyelamatkan, yang menggabungkan fungsi modul bluetooth dan mikrokontroler.


Apa yang ditawarkan pasar kepada kita?

gambar
Sumber: www.argenox.com


  • Cypress PSoC BLE core ARM Cortex-M0, BLE 4.2, FLASH 256kB, RAM 32kB, banyak periferal dan balun terintegrasi, berbagai tegangan suplai: 1,9-5 volt
  • Texas Insturments CC2541 - BLE 4.0 dan 8051-core, FLASH 256kB, RAM 8kB
  • Texas Instruments CC2640 - BLE 4.1, Cortex-M3, FLASH 128kB, RAM 20kB
  • Dialog DA-14580 - Cortex-M0, BLE 4.1, 16 MHz, 42 + 8kB RAM, 32kB OTP (memori terprogram satu kali, tetapi dimungkinkan untuk menjalankan kode dari SPI FLASH eksternal), chip terkecil dan paling sedikit mengkonsumsi di atas
  • SiLabs EFR32 - Cortex-M4F, 40 MHz, BLE 4.x, Bluetooth 5, hingga 1MB FLASH, hingga 256kB RAM
  • Nordic nRF52832 - Cortex-M4F, 64MHz, BLE 4.x, Bluetooth 5, FLASH 512kB, RAM 64kB, emulasi tag NFC, balon terintegrasi

Dalam tumpukan keputusan yang lezat dan tidak terlalu, pilihan jatuh pada nRF52832 , chip ini ternyata menjadi yang paling produktif dan cukup nyaman dalam hal perumahan (6x6mm 48-pin QFN). Pilihan chic yang sangat menyederhanakan perkabelan papan adalah kemampuan untuk secara terprogram menetapkan periferal apa pun ke pin GPIO mana pun. Ini adalah sesuatu yang tidak dimiliki banyak mikrokontroler. Berkat dukungan NFC, Anda dapat menambahkan fungsionalitas emulator NFC ke arloji dan menjahit semua kartu pass Anda ke arloji.



Datasheet mengatakan bahwa ada RTC bawaan (jam waktu nyata), ini nyaman. Tetapi kemudian ternyata ini bukan jam, tapi Penghitung Waktu Nyata, yaitu. Ini adalah penghitung waktu yang paling umum, beroperasi dari kuarsa 32.768 kHz, termasuk dalam mode tidur. Oleh karena itu, dalam revisi perangkat berikutnya, saya akan menggunakan chip terpisah untuk RTC, misalnya, STMicroelectronics M41T62LC6F . Ini memiliki kuarsa bawaan pada 32.768 kHz dan bekerja pada antarmuka I²C.


Papan debug nRF52-DK harganya cukup murah , sekitar 4 ribu. rubel. Pada Aliexpress dapat ditemukan untuk ~ 3tys.


Ngomong-ngomong

Karena perangkat ini tidak melibatkan produksi massal dan penjualan pasar apa pun, menggambar papan Anda sendiri dan membangun solusi Anda di BLE SoC adalah tugas yang agak menarik tanpa konsekuensi serius. Bagi mereka yang ingin cepat memasuki pasar, disarankan untuk menggunakan modul pra-sertifikasi yang sudah jadi .


Ada beberapa alasan untuk ini dan mereka terkait dengan radio: untuk setiap perangkat elektronik baru di pasar, perlu untuk mendapatkan izin dan lulus sertifikasi dari regulator seperti CE dan FCC .
Logo regulator, sering ditemukan pada case perangkat


Kegembiraan yang menyertainya meliputi tata letak khusus papan, dengan mempertimbangkan karakteristik propagasi sinyal dengan frekuensi 2,4 GHz, perisai, pengukuran dalam ruang anechoic, pencocokan impedansi, dan sihir microwave lainnya. Dalam modul yang sudah jadi, semua pekerjaan ini telah dilakukan oleh pengembangnya, pengguna hanya perlu menanamkan modul dalam solusinya dan tidak perlu mensertifikasi apa pun.


Resonator kuarsa


Resonator kuarsa terhubung ke chip nRF52832 yang dipilih:


  1. Pada 32MHz untuk clocking inti dan radio, diperlukan
  2. Pada 32.768 kHz untuk clock timer jam dan slot waktu BLE selama mode tidur. Opsional, tetapi koneksinya mengurangi konsumsi daya (slot waktu dapat dibuat lebih pendek) dan meningkatkan keakuratan clock RTC.

Kedua jenis kuarsa tersebut diperintahkan dalam perumahan pemasangan permukaan dengan Aliexpress:


Gambar


Tampilan


Agar jam terus berdetak tanpa mengisi ulang selama setidaknya satu minggu, perlu untuk menyelesaikan masalah bahwa matriks tampilan mengkonsumsi banyak arus dalam mode operasi. Seperti yang saya pahami, produsen arloji memecahkan masalah ini dengan dua cara:


  1. Nyalakan tampilan dan tampilkan konten hanya ketika gelombang tangan terjadi dan layar arloji jatuh ke bidang penglihatan pengguna, atau ketika perhatian pengguna telah tertarik, misalnya, dengan pemberitahuan atau jam alarm
  2. Tampilkan konten secara terus-menerus, menggunakan tampilan yang secara praktis tidak menggunakan arus untuk menampilkan gambar, dan mengkonsumsinya hanya untuk memperbarui konten. Anda tidak perlu pergi jauh untuk contoh: ini adalah e-ink , Memory LCD atau IMOD / mirasol

Apa yang ditawarkan pasar kepada kita?

Untuk opsi ketika tampilan sebagian besar waktu adalah pekerjaan Malevich, ada opsi seperti di pasar: OLED, TFT, Amoled, modul telepon LCD (Nokia, Siemens, dll.). Masih menemukan tampilan dengan diagonal yang cocok.


Contoh:


  • Layar OLED kecil , seperti pada Ali Express membutuhkan biaya satu sen.
    Sekelompok minus: diagonal kecil, monokrom, konsumsi 10-20mA, modul besar. Tanpa papan modul - loop lebar dan lautan pengikat, yang akan menyerap sebagian besar area di papan.
  • TFT LCD, mis. ILI9341 . Dari minus: konsumsi, loop lebar

Layar pada E-Ink segera menghilang, karena kecepatan pembaruan layar terlalu lambat, monokrom dan, kemungkinan besar, sulit untuk menemukan tampilan E-Ink yang cukup kecil di pasar terbuka.


Jika Anda melihat Pebble , Anda dapat melihat bahwa ia menggunakan tampilan "Selalu menyala". Pebble Classic menggunakan layar LCD Memori SHARP monokrom, Pebble Time menggunakan layar warna (64 warna) menggunakan teknologi serupa, tetapi diproduksi oleh JDI , itu tidak dijual.


Mengenai IMOD / Mirasol, Qualcomm tidak dapat menemukan apa pun selain brosur pemasaran dan jam tangan Toq dari Qualcomm .


Saya ingin mengambil tampilan warna seperti Pebble Time. Analog terdekat, yang dijual bebas, adalah SHARP LS013B7DH06 ( datasheet-nya ).



Karakteristik


  • Diagonal 1,33 "
  • Resolusi: 128x128, 8 warna (3 bit per piksel)
  • Dimensi: 26.82x31.3mm
  • Antarmuka: SPI
  • Tegangan suplai: 5V, tetapi level logika SPI dari 2.7V

Penyergapan terjadi dengan tegangan suplai, karena baterai Li-Po tidak mendapatkan tegangan 5V yang diperlukan tanpa tambahan boost converter. Tetapi arus pada tampilan sangat sedikit dan mendapatkan 5V yang diperlukan cukup sederhana menggunakan pompa pengisian jenis Linear LTC1754-5 :



Fitur lain adalah kebutuhan untuk mengganti status pin EXTCOMIN (External COM Inversion) setidaknya sekali dalam satu detik dari level tinggi ke level rendah dan sebaliknya, sehingga muatan tidak menumpuk di panel layar dan gambar tidak membeku pada satu titik. Untuk tujuan ini, Anda dapat membuang PWM (PWM) built-in mikrokontroler, disetel ke siklus tugas 50% (gelombang persegi) dan frekuensi 1Hz atau lebih tinggi, atau generator gelombang persegi (termasuk eksternal) lainnya.


Layar terhubung ke papan menggunakan kabel kecil, sangat nyaman untuk menggunakan konektor FPC 10-pin dalam peningkatan 0,5mm, misalnya, Hirose FH12-10S-0.5SH :



Modul tampilan tidak memiliki lampu latar sendiri dan tidak bersinar melalui LED seperti layar LCD biasa, jadi untuk sekarang kita tidak punya waktu untuk menonton jam tanpa lampu latar. Jika seseorang terbiasa dengan proses membuat modul lampu latar untuk jenis layar ini, harap balas.


Baterai


Saya harus meluangkan waktu untuk memilih baterai ukuran yang tepat dari kisaran ukuran standar. Saya mencari baterai lithium-polimer dengan tegangan 3.7V dan dengan kapasitas sekitar 100mAh.


Baterai itu direncanakan ditempatkan di bawah papan, mengetahui ukuran papan, Anda dapat dengan mudah mengambil baterai yang cocok dan tidak akan menonjol apa pun.


Apa yang ditawarkan pasar?

Di Aliexpress, Anda dapat memesan sejumlah besar baterai untuk hampir semua ukuran, yang terpenting adalah mengetahui sistem pengkodean untuk nama mereka. Dan itu seperti ini: HHWWLL, di mana HH adalah ketebalan (tinggi) baterai dalam sepersepuluh milimeter, WW adalah lebarnya dan LL adalah panjangnya dalam milimeter.


Contoh: 402025 - baterai dengan ketebalan 4mm dan ukuran 20x25mm


Baterai 302025 (3x20x25mm) dengan kapasitas 110mAh dipilih dan dipesan di Aliexpress.



Nutrisi


Karena baterai lithium-polimer masuk akal untuk melepaskan hanya hingga 3 volt, diputuskan untuk memberi daya seluruh sirkuit dari 3V yang stabil dan jika tegangan pada baterai turun di bawah 3V, maka matikan regulator daya utama untuk chip perlindungan ( Maxim MAX809TEUR + T ).


Tegangan total pasokan 3V cocok dengan rentang daya semua elemen rangkaian, kecuali untuk tampilan, yang membutuhkan 5V. Oleh karena itu, layar ini didukung melalui konverter boost Linear LTC1754-5 langsung dari baterai.


Jika Anda melihat kurva debit jenis baterai ini,


dapat dilihat bahwa seluruh kapasitas baterai jatuh pada kisaran tegangan dari ~ 4V ke 3V, sehingga konverter step-down 3V konvensional akan cukup untuk menyediakan sistem dengan tegangan stabil dan pada saat yang sama secara efektif menyedot semua energi dari baterai tanpa meninggalkan apa pun, tetapi tanpa pengisian berlebih .


Texas Instruments TPS78230DRVT dipilih sebagai konverter step-down, ia memiliki arus operasi kecil 500nA dan arus maksimum 150mA, yang cukup memadai. Kasing SON-6 ringkas dan cukup berbayar:



Pengisian Baterai


Diputuskan untuk mengisi daya baterai melalui port microUSB standar ( Molex 47346-0001 ), tetapi tidak cukup hanya menghubungkan baterai langsung ke bus USB 5V dan mengisinya seperti itu, perlu untuk memastikan proses pengisian yang benar, dibagi menjadi beberapa fase: prakondisi, arus konstan, konstan tegangan


Profil pengisian daya khas untuk baterai 180mAh


Penjelasan yang bagus tentang proses pengisian daya di EEVBlog

Solusi populer untuk mengisi daya baterai berkapasitas kecil (hingga 500mAh) adalah chip Microchip MCP73831 . Arus pengisian (tergantung pada kapasitas baterai) diprogram oleh resistor, ada keluaran tri-state atau open-drain untuk memberi tahu Anda tentang awal dan akhir proses pengisian.


Saya juga memilih chip lain - Maxim MAX1555EZK-T . Ini memiliki arus pengisian tetap 100mAh dan memiliki rumah yang sama dengan chip microchip, dan pada saat yang sama membutuhkan minimum komponen eksternal dan memiliki keluaran saluran terbuka untuk memberi tahu tentang proses pengisian:



Gambar lembar data


Dalam revisi papan berikutnya, saya masih akan beralih ke chip microchip, karena arus pengisian 100mA untuk baterai 110mAh mungkin agak banyak.


Pengontrol kapasitas baterai


Ada beberapa teknik untuk memantau tingkat pengisian baterai yang agak berbeda dalam pelaksanaan dan keakuratan hasil akhir (dalam sumber bahasa Inggris ini disebut Status Pengisian):


Daftar
  1. Ukur apa yang disebut buka voltase sirkuit / OCV (voltase pada pelat) baterai melalui ADC dan buat kesimpulan tentang kapasitas baterai. Paling sering, perlu untuk mentransfer rentang tegangan ke area yang dapat diterima untuk operasi ADC menggunakan pembagi tegangan. Kerugian dari pendekatan ini adalah bahwa grafik tegangan versus kapasitas untuk baterai lithium-polimer cukup datar, dan bacaan itu sendiri berubah dengan setiap siklus dan tunduk pada kebisingan dan ketidakmampuan untuk mengukur tegangan sebenarnya pada pelat karena pengaruh arus beban


  2. Cara lain adalah mengukur arus yang mengalir masuk dan keluar dari baterai alih-alih mengukur tegangan melintasi pelat. Ini yang disebut penghitungan coulomb. Solusi tipikal adalah mengintegrasikan nilai penurunan tegangan pada resistor shunt resistansi kecil (sekitar 100mOhm). Mengetahui kapasitas baterai, dari arus yang mengalir keluar untuk jangka waktu tertentu, kita dapat menyimpulkan berapa banyak energi yang tersisa di baterai (mengabaikan self-discharge). Kerugian dari pendekatan ini adalah bahwa self-discharge tidak diperhitungkan, serta fakta bahwa kapasitas baterai yang sebenarnya berubah dengan setiap siklus pengisian-debit. Secara kasar, arus lebih sedikit dari baterai daripada mengalir ke saat pengisian. Karena itu, seiring waktu, kesalahan dalam pembacaan pasti akan menumpuk


  3. Kombinasi metode pertama dan kedua: pengukuran dan tegangan pada pelat dan arus yang mengalir. Kombinasi yang kompeten dari kedua pendekatan akan membantu untuk membangun model yang akan mengevaluasi kapasitas baterai dengan akurasi yang baik. Agar pendekatan ini bekerja, perlu untuk menghasilkan setidaknya satu siklus charge-discharge untuk mengumpulkan data tentang ketergantungan tegangan melintasi pelat pada kapasitansi. Selain itu, setiap siklus berikutnya harus melakukan perubahan pada model baterai sehingga kesalahan tidak menumpuk. Ada artikel di mana orang memberi tahu bagaimana, menggunakan filter Kalman, data dari berbagai pengukuran digabungkan untuk memprediksi biaya yang tersisa ( [1] , [2] )

Apa yang ditawarkan pasar kepada kita?
  • Maxim MAX17043 - menggunakan algoritma kepemilikan untuk tegangan pada pelat, membangun model baterai di dalamnya. Menjanjikan keakuratan dalam mengukur sisa biaya 3%. Antarmuka I²C. Tubuh bagus dan kecil
  • OnSemi LC709203F - mengukur OCV, antarmuka I²C, akurasi 2,8%, ada kompensasi suhu melalui termistor eksternal. Mahal dan buruk di Rusia
  • Texas Instruments BQ27621 - mengukur tegangan pada pelat, I²C, akurasi tidak ditentukan, mahal, paket BGA
  • Texas Instruments BQ27421 - secara bersamaan mengukur tegangan dan arus yang mengalir. Antarmuka I²C, akurasi tidak ditentukan, mahal, paket BGA
  • Linear LTC2941 - mengukur arus yang mengalir, antarmuka I²C, akurasi 1%, tambahan memerlukan resistor shunt eksternal (built-in di LTC2941-1), housing: 2x3mm DFN-6

Dari opsi yang tersedia, chip Linear LTC2941 dipilih untuk kasus terkecil, tetapi berbayar dan algoritme kerja yang jelas. Dipesan di Aliexpress.


Gambar lembar data

gambar
Sumber: Teknologi Linear


Microcircuit menggunakan teknik penghitung coulomb dan menghitung arus yang mengalir dengan akurasi 1%, bekerja melalui antarmuka I²C (SMBus) dan memiliki rumah yang kecil namun nyaman: 2x3mm DFN-6:


Melalui I²C di dalam sirkuit mikro, Anda dapat mengatur nilai dari counter meter saat ini, serta mengatur atau membaca nilai dari counter itu sendiri. Penghitung adalah 16-bit dan meningkat ketika arus mengalir ke baterai dan berkurang ketika arus mengalir dari baterai. Nilai penghitung maksimum (0xFFFF) dapat diambil sebagai baterai yang terisi penuh, dan minimum (0x0000) sebagai yang terisi penuh. Dengan pre-selector counter yang dipilih dengan baik, dimungkinkan untuk mencapai bahwa counter mencapai maksimum selama pengisian dan mencapai nol ketika baterai benar-benar habis. Dimungkinkan untuk menetapkan batas nilai penghitung, di bawah ini mikrosirkuit akan membunyikan alarm dan memberikan interupsi.


Akselerometer


Di antara banyak pilihan di pasar, sebuah chip yang cukup populer dipilih: InvenSense MPU-9250 . Ini adalah sistem dalam kasing (SiP), yang menggabungkan MEMS-Accelerometer, MEMS-giroskop dan chip magnetometer.



Karakteristik
  • Tegangan suplai dari 2.4V ke 3.6V
  • Accelerometer MEMS 16-bit tiga sumbu dengan rentang pengukuran ± 2g, ± 4g, ± 8g, ± 16g
  • Giroskop MEMS tiga-sumbu 16-bit hingga 2000 ° / detik
  • Magnetometer 16-bit tiga sumbu dengan rentang pengukuran hingga ± 4800μT
  • Filter Digital Bawaan
  • Antarmuka I²C dan SPI
  • Interupsi yang dapat diprogram
  • Co-prosesor untuk membaca DMP (Digital Motion Processor)

Chip ini sangat baik, tetapi pada akhirnya tampaknya itu adalah pembunuhan yang berlebihan dan akselerometer sederhana sudah cukup untuk digunakan dalam arloji. Misalnya, Analog ADXL362 - menurut pabrikan, ini adalah accelerometer MEMS tiga-sumbu yang paling ekonomis.


Memori flash


Diputuskan untuk menggunakan memori SPI-FLASH eksternal untuk aplikasi dan data. Dari berbagai opsi, chip Winbond W25Q256FV dalam paket WSON-8 yang ringkas dipilih:



Jumlah memori flash adalah 256 megabita (atau 32 megabita), itu sudah cukup. Memori dibagi menjadi halaman 256 byte, dikelompokkan ke dalam sektor 4 kilobyte dan blok 32 kilobyte. Dalam mode aktif (membaca atau menulis) ia mengkonsumsi hingga 20mA, dalam mode siaga - kurang dari 1μA.


Seperti dengan accelerometer, kemudian mulai terlihat bahwa 32 megabita juga merupakan kerja keras dan Anda dapat menggunakan memori FLASH built-in dari mikrokontroler, itu sudah memiliki 512 kilobyte. .



, ( Pebble, ). . , :


Wealth Metal TD-26EA :



: &


, .


Omron B3U-3000P :



.



, , .


Aliexpress , 3V (HxWxL) 3x3x12mm:


Gambar


, 100mA .



- , - . , , . , . , .


- 2.4GHz Johanson 2450AT18B100 :


, , Johanson , , Nordic. nRF52 Johanson Johanson 2450FM07A0029 , - LC- .


Antena dipesan pada Aliexpress dengan pita 10pcs. untuk 214r / tape.


Yang lainnya


Komponen pasif untuk suspender dan strapping sebagian besar adalah chip berukuran 0402 dan 0603 dan dipesan dalam Elitan . Selain komponen pasif, ada dua transistor dan sepasang dioda di papan tulis. Mereka berpartisipasi dalam mengendalikan motor getaran, serta di sirkuit daya, memisahkan daya USB dan baterai .


Sirkuit dan papan


Tampilan papan di tangkapan layar sedikit berbeda dari yang dipesan dan ada di foto perangkat. Tangkapan layar papan hanya revisi sedikit kemudian dengan perubahan kecil.


Setelah memutuskan untuk mencoba sesuatu yang baru, saya menggambar sirkuit dan papan tidak di DipTrace biasa, tetapi di cloud EDA Upverter: tautan ke desain .


Upverter memungkinkan Anda untuk melakukan desain papan dan sirkuit ujung-ke-ujung secara bersamaan, sehingga beberapa elemen pengkabelan dilakukan sesuai dengan skema, dan bagian dari rangkaian dirancang dengan mempertimbangkan fitur-fitur pengkabelan.


Fitur pembunuh lainnya dari Upverter adalah perpustakaan besar komponen, yang dibuat dengan cermat oleh bot dan sekelompok orang India. Ternyata menjadi sangat nyaman untuk mengambil bagian yang sudah ditarik dan hanya memeriksa bahwa semuanya lebih atau kurang benar, daripada sepenuhnya menggambar simbol dan jejak diri Anda.


Pertama, saya memutuskan untuk mengatur komponen, posisi yang akan diperbaiki secara tepat: tombol, port microUSB dan konektor untuk layar. Saya tidak membuat lubang pemasangan, dengan harapan bahwa papan akan dijepit oleh kasing dan tidak ada yang menggantung.


Setelah lokasi elemen tetap, ikuti "aturan praktis" dan kami akan mengembangbiakkan radio terlebih dahulu. Antena chip memiliki area keepout kecil di dekatnya, di dalam dan di bawahnya tidak direkomendasikan untuk menempatkan trek dan poligon di semua lapisan, jadi ada baiknya Anda menempatkan antena di tepi papan, lebih disukai lebih dekat ke salah satu sudut. Sebenarnya, lokasi antena menentukan lokasi mikrokontroler. Sehingga panjang konduktor dari port keluaran antena pada chip ke antena itu sendiri sekecil mungkin (dengan mempertimbangkan komponen yang cocok), kami menempatkan pengontrol lebih dekat ke tepi di mana antena akan berada.


Semua komponen lain dapat ditemukan (tanpa melupakan akal sehat) dengan cukup bebas. Hal ini disebabkan oleh fakta bahwa posisi port untuk periferal digital mikrokontroler nRF52 dapat ditentukan secara terprogram.


Dalam sedikit pengalaman saya, pengaturan timbal balik komponen yang sukses adalah 90% sukses dan menentukan kualitas kabel lebih lanjut, sehingga proses ini harus diberi perhatian khusus.


Tangkapan layar papan (poligon tidak kebanjiran, tampilan bawah)


Untuk lebih jelasnya, saya melukis perkiraan topologi bidang-bidang utama:



Papan empat lapis, menempatkan komponen yang dipilih di papan dan melarutkan koneksi mereka adalah masalah beberapa malam, dan kemudian butuh sekitar satu minggu untuk terjebak di papan, mencari kesalahan, memeriksa lembar data dengan santai dan membaca kembali untuk menghindari kejutan tiba-tiba.


Dewan ditarik dengan mempertimbangkan standar teknologi dari produsen papan, yang menjadi OSHPark.com Amerika:


  • Konduktor / Izin: 5/5 Mil
  • Vias: 10/4 mil hole / pad
  • Bahan: FR408
  • Selesai: perendaman emas dengan sublayer nikel (ENIG)
  • Vias buta dan transisi lapisan bagian dalam (buras vias) tidak didukung. Dan kita tidak perlu

Pada saat yang sama, harganya $ 10 per sq. inci dan jumlah papan dalam urutan - 3pcs. Ini adalah motherboard yang sangat berkualitas tinggi dan murah (untuk prototipe) dengan topeng ungu yang dikenali, saya sarankan kepada semua orang yang tidak kritis untuk menunggu dua minggu untuk motherboard bilateral atau empat lapis mereka selama sebulan.


Memesan tangkapan layar


Akibatnya, untuk tiga biaya saya harus membayar $ 14 dan sebulan kemudian mengambilnya melalui pos.


Foto papan tanpa komponen



Semua komponen terletak di sisi bawah papan, di sisi atas papan terletak modul display, di mana terdapat koil NFC datar, yang memungkinkan Anda menghemat beberapa milimeter tinggi dan memastikan tampilan layar yang halus dan rapat.


Ternyata sandwich seperti itu


Di sisi atas papan ada juga banyak titik uji, bantalan uji, di mana I²C, jalur bus SPI, jalur interupsi, dan beberapa sinyal kontrol terhubung. Osiloskop atau penganalisa logika dapat dihubungkan ke platform ini dan fitur ini sangat menyederhanakan driver penulisan dan debugging firmware. Juga di sisi atas papan adalah antarmuka debug JTAG (SWD) untuk flashing dan debugging melalui Segger JLink, yang termasuk dalam kit nRF52-DK, dan bantalan untuk menyolder koil antena NFC.


Perakitan dan penyolderan


Jika Anda mengikuti seluruh proses pemasangan permukaan, maka Anda perlu memesan stensil smd (stensil smd) dan pasta solder, oleskan pasta solder melalui stensil, atur komponen, dan kirim ke oven reflow .


Tapi saya tidak punya tungku, juga stensil. Dan keinginan untuk main-main dengan dia dan pasta solder juga. Saya ingin segera membuat prototipe dan mulai menguji dan menulis perangkat lunak. Oleh karena itu, saya menyolder semua komponen secara manual, yang terkecil adalah chip berukuran 0402, mengoleskan pasta dengan jarum, menempatkan komponen dengan pinset vakum dan menyoldernya dengan pengering rambut.


Hasilnya bisa dilihat di foto:



Tombol tidak disolder, dan bukannya beberapa chip berkaki tiga - jumper.
Saya minta maaf atas foto-foto berkualitas rendah, yang diambil di atas batu bata.


Foto melalui kaca pembesar x30


Anda dapat melihat komponen yang sedikit diputar dan di tempat-tempat kelebihan solder. Ini tidak dapat dihindari dengan instalasi manual dan aplikasi pasta.


Segera setelah papan dipasang, saya meraih tester di tangan saya dan mulai membunyikan semua yang saya bisa capai untuk korsleting. Setelah memastikan bahwa ia tampaknya tidak pendek, ia menghubungkan kabel USB. Tidak ada asap, chip tidak memanas, tegangan pada port USB adalah 5 volt, output muatan 4.2V, tegangan setelah LDO tepat tiga volt. Sepertinya berhasil.


Bahkan ketika ditenagai sepenuhnya, perangkat, tentu saja, sama sekali tidak menunjukkan tanda-tanda kehidupan. Sekarang Anda perlu menghirup jiwa - firmware (atau "sistem operasi", seperti beberapa produsen arloji: WatchOS, PebbleOS, dll.).


Langkah selanjutnya dalam tes ini adalah menghubungkan debugger JLink yang dibangun ke nRF52-DK melalui antarmuka SWD. Kami menghubungkan kabel, jalankan JLinkExe dan lihat chip kami! Anda dapat mulai menulis firmware dan menguji blok besi yang tersisa secara terprogram.


"Sistem operasi" untuk jam tangan


Untuk pekerjaan periferal tingkat rendah, Nordic menawarkan nRF5-SDK , yang cocok untuk seri nRF51 dan nRF52.



SDK , , NFC . Makefile arm-none-eabi-gcc. , .


.hex-, nRF52-DK . nRF52-DK , Mass Storage Device (), .hex .


JLinkExe GDB- nrfjprog.


, . , , , , .


, .



, -, , .



, , - . API X-Lib . , .


:



image


, API , JavaScript (ES 5), . , .


JerryScript, , API , , . , , : Date .., JSON-, ..



JS :



API GUI, , Bluetooth, ..


( -O0):



106kB FLASH, 12.8kB RAM. 8kB RAM — (heap) JavaScript . . , FLASH nRF52832 512kB, RAM — 64kB.


FLASH (120kB) RAM BLE- SoftDevice.



— 3D- . TinkerCad 3D-. :


USB-


- 3D-, !



, . , , , . , , , .


, API- JS-, JS-, - Android. , . , , , Android- .


: https://upverter.com/EP/cdbd8b9abc72b7cd/nRF52-smart-watch/
, Github.


, , - , .


!


P.S.: .

Source: https://habr.com/ru/post/id404737/


All Articles