Isi kandungan:

Buka mata kamu! Penganalisis Logik: 21 Langkah
Buka mata kamu! Penganalisis Logik: 21 Langkah

Video: Buka mata kamu! Penganalisis Logik: 21 Langkah

Video: Buka mata kamu! Penganalisis Logik: 21 Langkah
Video: Tes Kemampuan Otak 2024, Julai
Anonim
Image
Image
perhimpunan
perhimpunan

Penganalisis logik memudahkan visualisasi kereta nadi anda, yang merupakan bit perjalanan dalam talian komunikasi. Oleh itu, ia membuka mata anda untuk mengenal pasti kemungkinan masalah. Mengapa ini penting? Ini adalah alat pengembangan dan pengesanan kesalahan yang sangat berkesan yang dapat menjimatkan masa anda. Dalam video ini hari ini, kita akan menilai kepentingan penganalisis logik, memerhatikan beberapa protokol amalan biasa semasa menggunakan peranti ini, dan menunjukkan kegagalan pengesanan tanpa bantuan penganalisis logik.

Dalam video ini, saya menggunakan model yang agak murah (sekitar $ 35) dan cekap, dengan antara muka grafik dan perisian percuma.

Langkah 1: Perhimpunan

Langkah 2: Ciri yang Digunakan - Pelayan

Ciri Yang Digunakan - Pelayan
Ciri Yang Digunakan - Pelayan

• Pelompat untuk sambungan

• 2 Arduinos (kami menggunakan 2 Mega Arduinos 2560)

• Penganalisis Logik (kami menggunakan Saleae)

• Kabel sambungan USB untuk Arduino dan penganalisis.

• Osiloskop (pilihan)

• Protoboard

Langkah 3: Litar Digunakan

Litar Yang Digunakan
Litar Yang Digunakan

Di sini kita mempunyai skema, yang menunjukkan pemantauan tiga pin: TX0, SDA, dan SCL. Kami mempunyai dua orang Arduino: seorang tuan dan hamba.

Langkah 4: Kod Sumber: Tuan

Dalam Persediaan, kami akan memasukkan perpustakaan untuk komunikasi i2c. Kami memasuki rangkaian sebagai Master dan menginisialkan siri 0. Di Loop, kami meminta hamba data byte untuk berkomunikasi dengan Arduino nombor 8 kami, seperti yang kami tetapkan dalam contoh. Kami mencetak dalam siri ini, yang akan dinilai dengan logik penganalisis, bait yang diterima.

#include // inclui a biblioteca para comunicação I2C batal setup () {Wire.begin (); // Entra na rede como Mestre (endereço é opcional para o mestre) Serial.begin (115200); // inicia serial 0} loop void () {Wire.requestFrom (8, 6); // requisita 6 bait de dados do escravo de endereço 8 sementara (Wire.available ()) {// enquanto houver bytes para penerima… char c = Wire.read (); // recebe cada byte e armazena como caracter Serial.print (c); // envia o caracter pela serial (na verdade vai para o buffer)} kelewatan (500); // aguarda meio segundo}

Langkah 5: Kod Sumber: Budak

Dalam kod hamba ini, saya sekali lagi memasukkan perpustakaan untuk komunikasi i2c. Saya memasukkan rangkaian sebagai hamba dengan alamat 8. Kami mendaftarkan acara permintaan dan mengaitkannya dengan fungsi "permintaan". Anda tidak perlu melakukan apa-apa pada gelung, hanya memberikan kelewatan 0.1 saat.

Akhirnya, kita memiliki fungsi permintaan yang akan dijalankan ketika peristiwa permintaan oleh Master terjadi, yang didaftarkan dalam Penyiapan. Kami membalas, akhirnya, dengan mesej 6 bait.

#include // inclui a biblioteca para comunicação I2C batal setup () {Wire.begin (8); // entra na rede como escravo com endereço 8 Wire.onRequest (requestEvent); // registra o evento de requisiçao // e associa à função requestEvent} gelung kosong () {kelewatan (100); // não faz nada no loop, apenas aguarda 0, 1 segundo} // função que será executada quando ocorrer o evento de requisição pelo mestre // foi registrada como evento no setup void requestEvent () {Wire.write ("teste"); // response com uma mensagem de 6 bait}

Langkah 6: Penganalisis: Perkakasan

Penganalisis: Perkakasan
Penganalisis: Perkakasan

Kadar sampel hingga: 24 MHz

Logik: 5 V hingga 5.25 V

Ambang tahap rendah 0.8 V

Ambang tahap tinggi 2.0 V

Input impedansi kira-kira 1 Mohm atau lebih

Langkah 7: Pemasangan Perisian Saleae

Pemasangan Perisian Saleae
Pemasangan Perisian Saleae

Program yang menerima data yang ditangkap oleh penganalisis logik dan menyahkod bit boleh dimuat turun di pautan berikut:

Langkah 8: Mengkonfigurasi Alam Sekitar untuk Ujian Kami

Mengkonfigurasi Persekitaran untuk Ujian Kami
Mengkonfigurasi Persekitaran untuk Ujian Kami

Saya menunjukkan antara muka di sini, yang sangat saya gemari kerana bersih.

Langkah 9: Mengkonfigurasi Alam Sekitar untuk Ujian Kami

Mengkonfigurasi Persekitaran untuk Ujian Kami
Mengkonfigurasi Persekitaran untuk Ujian Kami

Berikut adalah beberapa pilihan konfigurasi:

• Dengan mengklik nama saluran, kita dapat mengubahnya.

• Kami dapat menentukan apakah salah satu saluran akan berfungsi sebagai pemicu penangkapan dan bentuk pengesanan.

• Dengan mengklik dan menahan nombor saluran, anda boleh mengubah kedudukan anda dalam senarai.

• Dengan mengklik roda gigi, kita dapat mengkonfigurasi visualisasi saluran, memperluas…

•… atau menyembunyikan saluran. Kami akan menyembunyikan semua saluran yang tidak akan kami gunakan.

Langkah 10: Mengkonfigurasi Alam Sekitar untuk Ujian Kami

Mengkonfigurasi Persekitaran untuk Ujian Kami
Mengkonfigurasi Persekitaran untuk Ujian Kami

Mengklik pada anak panah butang "Mula", terdapat pilihan Kadar Pensampelan dan tempoh rakaman.

Untuk beberapa sebab, jika perisian mendeteksi bahwa tarif tidak dapat dipertahankan, pesan akan ditampilkan dan secara automatik laju akan berkurang hingga nilai fungsional tercapai.

Langkah 11: Mengkonfigurasi Alam Sekitar untuk Ujian Kami

Mengkonfigurasi Persekitaran untuk Ujian Kami
Mengkonfigurasi Persekitaran untuk Ujian Kami

Kami juga akan menyertakan penganalisis protokol. Pertama ialah I2C, mengikuti definisi perpustakaan WIRE, dan mengaitkan saluran dengan betul. Akhirnya, kami akan memperkenalkan penganalisis kepada siri tak segerak. Kita perlu berhati-hati untuk mengkonfigurasi parameter dengan betul mengikut pemasangan.

Langkah 12: Mengkonfigurasi Alam Sekitar untuk Ujian Kami

Mengkonfigurasi Persekitaran untuk Ujian Kami
Mengkonfigurasi Persekitaran untuk Ujian Kami

Pada tab "Protokol Decoded", kita harus memeriksa penganalisis protokol mana yang diaktifkan. Di sana, data akan muncul. Di tab "Anotasi", kita dapat menambahkan beberapa hasil untuk visualisasi yang lebih baik. Cukup klik pada ikon "tambah pengukuran".

Langkah 13: Tangkap: Gambaran keseluruhan

Tangkap: Gambaran keseluruhan
Tangkap: Gambaran keseluruhan

Di layar tangkapan, program ini memaparkan data pulsa data SDA, SCL, dan TX0.

Langkah 14: Tangkapan: Hasil Analisis Protokol

Tangkapan: Hasil Analisis Protokol
Tangkapan: Hasil Analisis Protokol

Di sini, kita melihat hasil tangkapan. Di tab "Protokol Decoded", kami mempunyai:

• Permintaan pelayan untuk hamba dengan id 8.

• Respons hamba, enam watak: "t", "e", "s", "t", "e" dan spasi.

• Masing-masing diikuti oleh bit ACK (Mengakui) yang menunjukkan penerimaan bait yang betul, kecuali untuk watak ruang NACK (Tidak Mengakui).

• Seterusnya, kita melihat hasil penyahkodan siri TX0, menunjukkan watak yang diterima dan dihantar ke terminal bersiri Arduino IDE.

Langkah 15: Tangkap: Saluran 0 dan Data (SDA)

Tangkap: Saluran 0 dan Data (SDA)
Tangkap: Saluran 0 dan Data (SDA)

Dalam gambar ini, kita mempunyai kereta nadi garis SDA. Perhatikan bahawa setiap bait yang dihantar dapat dilihat.

Langkah 16: Tangkap: Saluran 1 dan Jam (SCL)

Tangkap: Saluran 1 dan Jam (SCL)
Tangkap: Saluran 1 dan Jam (SCL)

Sekarang, kita ada di sini kereta nadi garis SCL. Anda boleh memeriksa lebih banyak perincian hanya dengan meletakkan tetikus di atas isyarat, seperti yang anda lihat dalam gambar. Kita dapat melihat bahawa frekuensi jam berada pada 100 kHz.

Langkah 17: Tangkap: Saluran 2 dan Bersiri (TX0)

Tangkap: Saluran 2 dan Bersiri (TX0)
Tangkap: Saluran 2 dan Bersiri (TX0)

Bagi tren nadi garis TX0, kita dapat melihat bit Mula dan titik pembingkaian setiap bit. Kami mempunyai bait yang mewakili watak "e."

Langkah 18: Mengkonfigurasi Alam Sekitar untuk Ujian Kami

Mengkonfigurasi Persekitaran untuk Ujian Kami
Mengkonfigurasi Persekitaran untuk Ujian Kami

Di sini kita mempunyai beberapa pilihan untuk membaca data.

Langkah 19: Tangkap: Osiloskop dan Penganalisis

Tangkap: Osiloskop dan Penganalisis
Tangkap: Osiloskop dan Penganalisis

Lihat di sini pada skrin yang saya tangkap dari osiloskop saya. Isyarat penganalisis logik hanya mewakili pengesanan tinggi dan rendah, tetapi tidak mewakili kualiti isyarat. Ini dapat dilihat dengan baik pada osiloskop.

Langkah 20: Tangkap: Memerhatikan Kegagalan (contoh Kegagalan Serial)

Tangkap: Memerhatikan Kegagalan (contoh Kegagalan Serial)
Tangkap: Memerhatikan Kegagalan (contoh Kegagalan Serial)

Sekarang, saya akan menunjukkan contoh kegagalan bersiri, yang sebenarnya berlaku kepada saya. Saya menggunakan modem GPRS, jenis yang digunakan pada telefon bimbit, kad SIM, cuba menyambung ke ESP32. Tetapi ia tidak bersambung. Saya kemudian memeriksa bekalan kuasa, pendawaian, dan menukar papan. Saya melakukan semuanya, tetapi tidak ada yang memperbaikinya. Saya memutuskan untuk membuat analisis logik: Saya mendapati bahawa isyarat ESP pada UART 115200 mula tidak sesuai. Maksudnya, ESP32 memainkan 115, 200 dengan kelajuan yang berbeza daripada ini.

Kesalahan ini, yang dikenalpasti oleh pengurai, ditunjukkan dengan X berwarna merah. Dalam pemahaman saya, program ini mengatakan bahawa titik yang mempunyai sedikit masa itu adalah separuh masa. Apabila pergeseran ini meningkat, mungkin ada saatnya semuanya tidak sesuai, sehingga maklumat tidak sampai ke seberang. Biasanya tiba, tetapi SIM800 sensitif dan jika tidak tepat, maklumat tidak sampai ke ujung yang lain.

Saya tidak tahu sama ada perkara ini sering berlaku atau tidak, tetapi ia berlaku kepada saya, dan oleh itu saya memutuskan untuk membincangkan perkara ini di sini. Jadi apa yang saya buat? Saya memperlahankan. Sekiranya anda meletakkan 9, 600, 19, 200, hingga 38, 400, ia berfungsi, yang tidak berlaku dengan angka 115, 200.

Langkah 21: Muat turun Fail

PDF

INO

Disyorkan: