STM32F103C8T6 - langkah pertama. Terus lakukan osiloskop
Kelanjutan artikel . Kali ini kami akan mencoba menghubungkan USB tanpa penurunan frekuensi pengukuran dan mengumpulkan bagian analog saluran tunggal.
Berkelahi dengan USB
MK kami memiliki perangkat keras USB. Saya benar-benar ingin menggunakannya. Bahkan sebelum pembelian saya inginkan. Tetapi karena kesulitan, ia ditunda "untuk nanti." Dan kesulitannya adalah:- Pengembang USB tampaknya memiliki terlalu banyak waktu dan kecerdasan. Masalahnya adalah mereka merasa bahwa semua orang seharusnya tidak kurang. Jika Anda mencoba berurusan dengan USB sesuai dengan dokumentasi, maka pelajaran ini jelas bukan untuk satu hari.
- Saat menghubungkan perpustakaan, kesulitan muncul secara konstan. Bagaimana menghubungkan mereka dalam proyek-proyek Coocox saya belum tahu.
Akibatnya, pada satu forum saya menemukan contoh dikonversi ke Coocox, yang berfungsi.Masalah dengan USB kami tidak berakhir di sana. Adaptor USB <-> USART yang terpisah memiliki keuntungan terpisah, yang artinya operasinya tidak bergantung pada MK kami, yaitu:- Frekuensi (untuk frekuensi konversi yang lebih tinggi, saya melakukan overclock MK);
- Reboot yang terjadi saat flashing.
Ketika ada adaptor, kita bisa melakukan apa saja dengan MK - adaptor akan berfungsi dalam kasus ini dan port COM dalam sistem tidak akan pergi ke mana pun.Dengan overclocking, keputusan ini dibuat: dalam keadaan normal, MK beroperasi pada frekuensi standar. Ketika kita perlu melakukan pengukuran, kita melakukan overclock terhadap MK (ya, tidak seperti AVR, dia dapat melakukan ini saat bepergian), mengumpulkan data, mengurangi frekuensi dan secara perlahan mentransfer data ke komputer.Agar tidak beralih apa pun setelah setiap reboot / flashing, kami melihat papan sirkuit:
Dengan jumper, di sini salah satu kabel ditarik hingga +3,3 V, dan komputer melihat bahwa perangkat terhubung. Telah ditemukan secara eksperimental bahwa setelah mem-flash MK, agar port COM berfungsi lagi, Anda harus menarik dan menyambungkan konektor USB lagi atau melepas dan memasang kembali jumper. Opsi kedua jauh lebih mudah untuk diotomatisasi. Pin kedua konektor jumper melalui resistor yang terhubung ke kaki MK dan setelah reboot setelah beberapa saat saya memberinya level tinggi. Akibatnya, komputer berpikir bahwa perangkat dimatikan dan dihidupkan lagi. Ada satu hal lagi: jika Anda melepas perangkat dengan port terbuka dan kemudian menyalakannya kembali, port COM akan muncul di manajer perangkat, tetapi Anda tidak akan bisa membukanya (saya menggunakan Windows 7).Sekarang tentang overclocking. Agar USB berfungsi, MK dapat beroperasi pada frekuensi semaksimal mungkin:
Dan untuk mendapatkan kecepatan ADC maksimum, saya melakukan overclock sebagai berikut:
Untuk mengubah pengganda PLL, harus dimatikan. Dan ketika setidaknya untuk sesaat PLL terputus, maka USB clocked dari itu tidak menyukainya dan aplikasi pada komputer dalam banyak kasus tergantung dengan port terbuka. Setelah googling masalah tidak berhasil, ditemukan cara untuk menggabungkan USB bawaan dan overclocking:- Aplikasi pada PC mengirimkan perintah MK untuk melakukan serangkaian transformasi dan segera menutup port;
- MK menunggu beberapa saat (sehingga aplikasi memiliki waktu untuk menutup port) dan menonaktifkan jalur USBDP hingga +3,3 V;
- MK menonaktifkan PLL, mengubah pengali dari 9 menjadi 16 dan menghidupkan kembali PLL;
- MK melakukan serangkaian transformasi mengingat hasil;
- MK mematikan PLL, mengubah faktor kembali dari 16 ke 9 dan menyalakan PLL lagi;
- MK termasuk menarik garis USBDP ke +3.3 V;
- Setelah beberapa waktu, port COM virtual muncul di PC lagi;
- Aplikasi pada PC membuka kembali port dan mengirim perintah ke MK untuk mengumpulkan hasilnya;
- MK perlahan mentransmisikan hasilnya, aplikasi membuat jadwal.
Tidak nyaman, tetapi untuk meninggalkan adaptor perangkat keras USART USB <-> dan tidak kehilangan 7/16 = 44% dari kecepatan, itu sangat berharga.Kami mengambil biaya lain
Sebelumnya saya menggunakan papan ini:
Nyaman saat ini adalah yang utama di perangkat, tetapi saya tidak ingin menghubungkannya dengan kabel ke papan tempat memotong roti. Untuk melakukan ini, papan lain sudah lama dipesan
agar Anda bisa menempel ke papan atau dengan mudah menyolder ke papan lain.Sirkuit dewan ini hampir tidak ditemukan di forum .Beberapa tayangan. Secara umum, dia senang. Di sebelah kiri adalah pin SWD, setiap kontak ditandatangani dan, jika Cina tidak menyolder konektor sudut di sana, tanda tangan bahkan akan terlihat dan lebih nyaman daripada melihat pinout JTAG pada papan sebelumnya setiap kali. Semuanya di-flash tanpa masalah, USB muncul, tetapi muncul masalah kecil: USBDP disembunyikan dengan erat hingga +3,3 V dengan sebuah resistor. Jadi USB ternyata non-disconnectable ... Saya harus membuka solder resistor ini dan menyolder garis melalui resistor ke kaki bebas MK.Bagian analog
Sebelum ini, saya hanya bekerja dengan sinyal dari kisaran 0 - 3.3V. Dan ini bukan semacam mengambang nol di sana, tetapi bumi yang datang dengan kabel USB. Tapi saya ingin osiloskop dapat melihat bentuk tegangan listrik (ratusan volt) dan EKG (fraksi millivolt).Tugasnya umumnya sederhana: ambil rentang input osiloskop dan petakan ke kisaran input ADC (0 - 3.3V). Rangkaian diciptakan seperti ini:
R1, R2, R3 - input divider. Mentransfer kaki MK ke mode input atau output, kita dapat mengubah rasio pembagian.R11, R12, R13 - resistor dari penguat non-pembalik. Keuntungan tergantung pada kondisi kaki pengontrol.Ada keraguan apakah mungkin untuk menggunakan output digital MK untuk tujuan tersebut. Pengukuran menunjukkan bahwa arus melalui terminal MK pada 3,3 mA mengarahkan output ke 80 mV, yaitu, resistansi keluaran adalah sekitar 24 Ohm. Potensi keluaran tergantung di udara pada 3-4 mV berbeda di bumi / daya. Untuk sistem yang tidak terlalu akurat, hasilnya cukup dapat diterima.Agar tidak merusak karakteristik frekuensi yang sering saya perjuangkan, operasi diperlukan tidak hanya bagaimana pun, tetapi cepat. Saya memilih AD826. Dan kemudian ada masalah. Siapa peduli, Anda bisa membaca ceritanya di sini dan di sini . Singkatnya: chip palsu dijual di Ebay.Perlindungan membutuhkan kekuatan bipolar. Untuk ini, diperlukan chip lain - LT1054. Diagram koneksi diambil dari datasheet, jadi saya tidak akan menjelaskannya secara detail.Total
Mengingat rencana dari bagian pertama artikel :- Kalahkan USB untuk meninggalkan konverter USB <-> USART;
- Selesai bagian analog sehingga rentang tegangan input tidak 0 - 3.3 V, tetapi lebih baik;
- Buat mode multi-channel;
- Terapkan kontrol dari PC;
- Buat perangkat jadi dalam kasing;
Saya mengerti bahwa saya telah menyelesaikan 1, 2 dan sebagian paragraf ke-4.Apakah alat seperti itu dibutuhkan di rumah tangga? Nah, jika Anda membandingkannya dengan analog C1-117, maka pada frekuensi C1-117 beberapa kali lebih besar. Tetapi di sini Anda dapat merekam sinyal untuk waktu yang cukup lama dan kemudian memeriksanya perlahan. Jadi, misalnya, saya melihat interupsi dipicu oleh generator saya di Arduino:
Jika dibandingkan dengan kerajinan pada AVR atau kartu suara, yang satu ini secara signifikan melebihi frekuensi konversi mereka.Pada biaya komponen ternyata:- LT1054 - $ 0,8;
- papan dengan pengontrol - $ 4;
- operasi - $ 3;
- resistor, kapasitor, dioda - tidak lebih dari $ 1.
Secara total, ternyata sekitar $ 9 + papan + kasing.Frekuensi konversi 9 MSPS memungkinkan Anda mengamati frekuensi sinyal hingga 1 MHz. Untuk $ 60 Anda dapat membeli osiloskop Berbasis PC dengan fitur terbaik, tetapi tidak ada penawaran untuk jumlah yang dihasilkan.Namun, perangkat yang paling berharga bagi saya bukanlah perangkat itu sendiri, tetapi pengalaman yang didapat sebagai hasil dari mencoba membuat sesuatu yang lebih sulit daripada berkedip dengan dioda dan mengaku bermanfaat! Saya tidak pernah terlibat dengan elektronik di tempat kerja dan, sebagai seorang amatir, saya dapat mengatakan bahwa itu tidak sulit. Lama ya. Perlu beberapa fungsi - Anda mulai melakukannya. Di jalan Anda mengumpulkan banyak garu, tetapi pada akhirnya ternyata. Dan berkali-kali. Bahkan dalam tugas yang tampaknya kecil seperti ini, sudah berkali-kali. Sebagai contoh, saya berhasil membuat nutrisi bipolar untuk op amp hanya dari upaya ketiga. Tetapi, jika ada ketekunan yang cukup dan tugas itu, pada prinsipnya, layak, maka hasilnya pasti akan menghasilkan sesuatu yang mirip dengan apa yang awalnya dipahami!Penampilan kerajinan: Lanjutan
Source: https://habr.com/ru/post/id385385/
All Articles