Isi kandungan:

Termometer Dalaman / Luaran USB (atau, 'Peranti USB Pertama Saya'): 4 Langkah (dengan Gambar)
Termometer Dalaman / Luaran USB (atau, 'Peranti USB Pertama Saya'): 4 Langkah (dengan Gambar)

Video: Termometer Dalaman / Luaran USB (atau, 'Peranti USB Pertama Saya'): 4 Langkah (dengan Gambar)

Video: Termometer Dalaman / Luaran USB (atau, 'Peranti USB Pertama Saya'): 4 Langkah (dengan Gambar)
Video: BELUM BANYAK YANG TAU||CHARGER GK BISA NGISI PENUH DIY 2024, November
Anonim
Termometer Dalaman / Luaran USB (atau, 'Peranti USB Pertama Saya')
Termometer Dalaman / Luaran USB (atau, 'Peranti USB Pertama Saya')

Ini adalah reka bentuk ringkas yang menunjukkan periferal USB pada PIC 18Fs. Terdapat banyak contoh untuk cip 18F4550 40 pin dalam talian, reka bentuk ini menunjukkan versi pin 18F2550 28 yang lebih kecil. PCB menggunakan bahagian pelekap permukaan, tetapi semua komponen boleh didapati melalui versi lubang. Saya menggunakan bahagian pelekap permukaan kerana lebih cepat membuat papan tanpa lubang penggerudian. Hasil akhirnya adalah periferal USB kecil yang mengukur suhu dalaman / luaran. Data tersedia untuk PC melalui port bersiri maya. Sensor suhu digunakan dalam contoh, tetapi sensor analog lain boleh ditambah. PSLihat grafik langsung data dari logger saya di sini: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = graf

Langkah 1: Gambaran Keseluruhan Reka Bentuk

Tinjauan Reka Bentuk
Tinjauan Reka Bentuk
Tinjauan Reka Bentuk
Tinjauan Reka Bentuk
Tinjauan Reka Bentuk
Tinjauan Reka Bentuk

Komponen PIC yang diperlukan

Periferal USB ini berdasarkan PIC 18F2550 28 pin. Cip ini mempunyai semua yang diperlukan untuk antara muka USB berkelajuan penuh. Kapasitor 0.1uf antara kuasa dan tanah memutuskan PIC dari bekalan kuasa. Kristal 20MHz (digunakan untuk menghasilkan jam dalaman 48MHz) dan dua kapasitor 27pf. Perintang 10K dari kuasa ke pin MCLR. Saya menambahkan diod setara 1n4148 antara perintang dan kuasa supaya voltan 13 + yang diletakkan pada MCLR semasa pengaturcaraan tidak merosakkan komponen lain pada papan litar. Header ICSP (5 pin) digunakan untuk memprogram dan menyahpepijat peranti. Barang USB yang diperlukan A soket gaya ‘B’ wanita USB. Kapasiti 220nf-440nf diperlukan untuk pengatur voltan USB dalaman. Saya menggunakan dua kapasitor 0.1uf (sama seperti yang digunakan untuk mencabut) tanpa masalah. LED dengan had perintang 330ohm digunakan untuk memaparkan status sambungan USB. Perkara sensor yang diperlukan Saya menggunakan sensor suhu TC1047A microchip sebagai sensor suhu dalaman. Secara fizikalnya disolder ke papan - ini menyebabkan suhu lebih panas beberapa darjah daripada suhu bilik. Header digunakan untuk menyambungkan probe suhu luar (TOC-92 versi TC1047a). Kapasitor 0.1uf tambahan membantu mencabut wayar panjang dari papan yang lain. Tahap voltan USB tidak cukup konsisten untuk mengukur dan mengira suhu dengan tepat dari sensor analog. Rujukan voltan luaran (MCP1525, 2.5volt) digunakan. Rujukan voltan memerlukan kapasitor pada output 1uf hingga 10uf. Tanpa kapasitor ini, rujukan voltan tidak akan berfungsi.

Langkah 2: Perisian firmware

Firmware menggunakan kelas USB CDC untuk meniru port bersiri. Peranti akan muncul sebagai port com maya pada PC. Firmware dibahagikan kepada tiga bahagian: 1. Pemacu USB menjaga penghitungan peranti pada PC dan meniru port COM. 2. Rutin perkhidmatan secara bergantian membaca nilai suhu dan menukarnya menjadi format yang boleh dibaca. Melakukan kedua-dua operasi ini sekaligus menyebabkan peranti USB kehilangan sambungan PC (time hogging). Menukarkan nilai titik terapung ke rentetan dalam kitaran perkhidmatan setelah penukaran mengatasi masalah penyambungan. * 3. Akhirnya, rutin utama menerima bait yang dihantar dari PC dan mengembalikan ukuran yang diminta. Pelbagai ukuran dipisahkan dengan koma, garis ditamatkan dengan watak nol (hex 0x00) Firmware demonstrasi menerima perintah berikut: Nilai hex Kembali 0x00 Suhu dalam ruangan (sensor on-board) 0x01 Suhu luar (header luaran) 0x02 Kedua-dua suhu (koma dipisahkan) Suhu dikira berdasarkan rujukan 2.5 volt dan offset dan cerun Microchip TC1047A. Sensor suhu lain mungkin mempunyai ciri yang berbeza. Lembar data TC1047A boleh didapati di sini: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdfFirmware ditulis dalam MPLAB dengan penyusun demonstrasi PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Firmware USB sebenar disediakan oleh Microchip. Persekitaran asal boleh didapati di sini: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631Untuk mengedit firmware: ekstrak keseluruhan struktur direktori sumber ke direktori root anda (c: / MCHPFSUSB). Anda kemudian boleh memuatkan fail ruang kerja di MPLAB. * Float to string rutin adalah babi sumber. Untuk mengatasi masalah sambungan, rutin perkhidmatan USB dipanggil pada pelbagai titik dalam rutin float2string. Ini sebaiknya diperbaiki dengan melakukan servis periferal USB secara interupsi. Saya menggunakan peretasan sehingga firmware tetap sedekat mungkin dengan versi rujukan.

Langkah 3: Menguji Peranti

Menguji Peranti
Menguji Peranti
Menguji Peranti
Menguji Peranti
Menguji Peranti
Menguji Peranti

Arahan adalah untuk tingkap, tetapi peranti boleh disambungkan ke apa sahaja yang mempunyai pemacu emulasi port bersiri CDC.

Programkan peranti dengan firmware. Semua bit konfigurasi harus ditetapkan dengan betul dalam firmware. Pasangkan peranti ke port USB. Windows akan mengesannya dan meminta anda memilih pemacu. PASTIKAN KLIK ‘BROWSE UNTUK PEMANDU KASTAM’. Navigasi ke lokasi fail.inf yang disertakan dengan arkib projek (driver-win2k_winxp). Windows akan menggunakan fail ini untuk memasang peranti. * Catatan pada pemacu CDC - pemacu emulasi port bersiri CDC disertakan dengan Windows. Fail.inf (disediakan oleh Microchip) hanya memberitahu Windows untuk menyambungkan pemacu ini ke peranti. Untuk mengetahui port COM apa yang ditugaskan peranti lakukan berikut: Pergi ke panel kawalan (mula-> tetapan-> panel kawalan) Klik dua kali 'sistem' Klik tab 'perkakasan'. Klik ‘pengurus peranti’ Klik ‘+’ di sebelah portSenarai port COM pada sistem ditunjukkan. Saya telah melihat peranti ini muncul sebagai COM 3 dan 4, tetapi ia akan berbeza mengikut sistem. Sekiranya port yang baru tidak jelas, cubalah ini: Cabut palam peranti dari port USB. Salah satu port akan hilang. Ini adalah port COM peranti #. Pasang semula peranti, port akan muncul semula. Aplikasi VB kecil (termasuk sumber) dapat digunakan untuk menguji peranti. Masukkan arahan untuk dihantar, klik 'Mula'. Jawapan akan ditunjukkan di tetingkap.

Langkah 4: Apa Yang Boleh Dilakukannya?

Apa Yang Boleh Dilakukannya?
Apa Yang Boleh Dilakukannya?

Papan demonstrasi ini adalah titik permulaan yang baik untuk stesen cuaca rumah kecil: Tambahkan sensor kelembapan HIH3160, atau gantikan sensor suhu analog dengan sensor suhu dan kelembapan bersiri tinggi Sensiron HT74. Tambahkan sensor tekanan Freescale MPX (a) 4115 ke ukur tekanan barometrik. Ingin melakukan sindiket data ini ke web? Sertakan di laman web anda sendiri, lihat di google earth, atau dapatkan kemas kini di buluh RSS anda? Lihat petunjuk ini untuk mengintegrasikan peranti ini dengan backend web syndicIT.com:

Disyorkan: