Daftar Isi:

Buka matamu! Penganalisis Logika: 21 Langkah
Buka matamu! Penganalisis Logika: 21 Langkah

Video: Buka matamu! Penganalisis Logika: 21 Langkah

Video: Buka matamu! Penganalisis Logika: 21 Langkah
Video: 4 MENIT, 3 CARA, 1 KEPUTUSAN UNTUK MENGUBAH MASA DEPAN | Motivasi Merry | Merry Riana 2024, Juli
Anonim
Image
Image
perakitan
perakitan

Penganalisis logika memfasilitasi visualisasi rangkaian pulsa Anda, yang merupakan bit yang berjalan dalam jalur komunikasi. Dengan demikian, ini membuka mata Anda untuk mengidentifikasi kemungkinan masalah. Mengapa ini penting? Ini adalah alat pengembangan dan deteksi kesalahan yang sangat efisien yang dapat menghemat waktu Anda. Dalam video hari ini, kita akan mengevaluasi pentingnya penganalisis logis, mengamati beberapa protokol praktik umum saat menggunakan perangkat ini, dan mencontohkan kegagalan deteksi tanpa bantuan penganalisis logika.

Dalam video ini, saya menggunakan model yang relatif murah (sekitar $35) dan efisien, dengan antarmuka grafis dan perangkat lunak gratis.

Langkah 1: Perakitan

Langkah 2: Fitur yang Digunakan - Server

Fitur yang Digunakan - Server
Fitur yang Digunakan - Server

• Jumper untuk koneksi

• 2 Arduino (kami menggunakan 2 Mega Arduino 2560)

• Logical Analyzer (kami menggunakan Saleae)

• Kabel koneksi USB untuk Arduino dan penganalisis.

• Osiloskop (opsional)

• Protoboard

Langkah 3: Sirkuit Digunakan

Sirkuit Digunakan
Sirkuit Digunakan

Di sini kita memiliki skema, yang menunjukkan pemantauan tiga pin: TX0, SDA, dan SCL. Kami memiliki dua Arduino: master dan slave.

Langkah 4: Kode Sumber: Master

Dalam Setup, kami akan menyertakan perpustakaan untuk komunikasi i2c. Kami memasuki jaringan sebagai Master dan menginisialisasi serial 0. Dalam Loop, kami meminta byte data budak untuk komunikasi dengan Arduino nomor 8 kami, seperti yang kami definisikan dalam contoh. Kami mencetak dalam serial, yang akan dievaluasi dengan penganalisis logika, byte yang diterima.

#include //sertakan biblioteca untuk komunikasi I2C void setup() { Wire.begin(); // Entra na rede como Mestre (endereço é opcional para o mestre) Serial.begin(115200); // inicia a serial 0 } void loop() { Wire.requestFrom(8, 6);// membutuhkan 6 byte untuk menyimpan 8 while (Wire.available()) { // enquanto houver byte para receber… char c = Kawat.baca(); // recebe cada byte dan armazena como caracter Serial.print(c); // serial envia o caracter pela (na verdade vai para o buffer) } delay(500); //aguarda meio segundo }

Langkah 5: Kode Sumber: Budak

Dalam kode budak ini, saya kembali menyertakan perpustakaan untuk komunikasi i2c. Saya memasuki jaringan sebagai budak dengan alamat 8. Kami mendaftarkan acara permintaan dan mengaitkannya dengan fungsi "permintaan". Anda tidak perlu melakukan apa pun di loop, cukup beri penundaan 0,1 detik.

Terakhir, kita memiliki fungsi request yang akan dijalankan ketika event request oleh Master terjadi, yang telah didaftarkan di Setup. Kami membalas, akhirnya, dengan pesan 6 byte.

#sertakan //sertakan biblioteca untuk komunikasi I2C void setup() { Wire.begin(8); // masuk dan ulangi como escravo com endereço 8 Wire.onRequest(requestEvent); // daftarkan acara yang diminta // hubungan yang menyenangkançã acara permintaan } void loop() { delay(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 "); // responde com uma mensagem de 6 byte }

Langkah 6: Penganalisis: Perangkat Keras

Penganalisis: Perangkat Keras
Penganalisis: Perangkat Keras

Tingkat sampel hingga: 24 MHz

Logika: 5 V hingga 5,25 V

Ambang tingkat rendah 0,8 V

Ambang tingkat tinggi 2.0 V

Impedansi masukan sekitar 1 Mohm atau lebih

Langkah 7: Instalasi Perangkat Lunak Saleae

Instalasi Perangkat Lunak Saleae
Instalasi Perangkat Lunak Saleae

Program yang menerima data yang ditangkap oleh penganalisis logika dan menerjemahkan bit dapat diunduh di tautan berikut:

Langkah 8: Mengonfigurasi Lingkungan untuk Pengujian Kami

Mengonfigurasi Lingkungan untuk Pengujian Kami
Mengonfigurasi Lingkungan untuk Pengujian Kami

Saya menunjukkan antarmuka di sini, yang sangat saya sukai karena bersih.

Langkah 9: Mengonfigurasi Lingkungan untuk Pengujian Kami

Mengonfigurasi Lingkungan untuk Pengujian Kami
Mengonfigurasi Lingkungan untuk Pengujian Kami

Berikut adalah beberapa opsi konfigurasi:

• Dengan mengklik nama saluran, kita dapat mengubahnya.

• Kita dapat menentukan apakah salah satu saluran akan berfungsi sebagai pemicu untuk menangkap dan bentuk deteksi.

• Dengan mengklik dan menahan nomor saluran, Anda dapat mengubah posisi Anda dalam daftar.

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

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

Langkah 10: Mengonfigurasi Lingkungan untuk Pengujian Kami

Mengonfigurasi Lingkungan untuk Pengujian Kami
Mengonfigurasi Lingkungan untuk Pengujian Kami

Mengklik panah tombol "Start", ada opsi Sampling Rate dan durasi perekaman.

Untuk beberapa alasan, jika perangkat lunak mendeteksi bahwa laju tidak dapat dipertahankan, sebuah pesan akan ditampilkan dan secara otomatis tarif akan dikurangi hingga nilai fungsional tercapai.

Langkah 11: Mengonfigurasi Lingkungan untuk Pengujian Kami

Mengonfigurasi Lingkungan untuk Pengujian Kami
Mengonfigurasi Lingkungan untuk Pengujian Kami

Kami juga akan menyertakan penganalisis protokol. Pertama adalah I2C, mengikuti definisi pustaka WIRE, dan mengaitkan saluran dengan benar. Terakhir, kami akan memperkenalkan penganalisis ke serial asinkron. Kita harus berhati-hati untuk mengonfigurasi parameter dengan benar sesuai dengan perakitan.

Langkah 12: Mengonfigurasi Lingkungan untuk Pengujian Kami

Mengonfigurasi Lingkungan untuk Pengujian Kami
Mengonfigurasi Lingkungan untuk Pengujian Kami

Di tab "Protokol yang Didekode", 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 ikon "tambahkan pengukuran".

Langkah 13: Tangkap: Ikhtisar

Tangkap: Ikhtisar
Tangkap: Ikhtisar

Di layar pengambilan, program menampilkan rangkaian pulsa data SDA, SCL, dan TX0.

Langkah 14: Tangkap: Hasil Analisis Protokol

Tangkap: Hasil Analisis Protokol
Tangkap: Hasil Analisis Protokol

Di sini, kita melihat hasil tangkapannya. Di tab "Protokol yang Didekode", kami memiliki:

• Permintaan server untuk budak dengan id 8.

• Respon budak, enam karakter: "t", "e", "s", "t", "e" dan spasi.

• Masing-masing diikuti oleh bit ACK (Acknowledge) yang menunjukkan penerimaan byte yang benar, kecuali untuk karakter spasi NACK (Not Acknowledge).

• Selanjutnya, kita melihat hasil decoding dari serial TX0, yang menunjukkan karakter yang diterima dan dikirim ke terminal serial 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, kami memiliki rangkaian pulsa dari jalur SDA. Perhatikan bahwa setiap byte yang ditransmisikan dapat dilihat.

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

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

Sekarang, kita memiliki rangkaian pulsa jalur SCL. Anda dapat memeriksa lebih detail hanya dengan menempatkan mouse di atas sinyal, seperti yang Anda lihat pada gambar. Kita dapat melihat bahwa frekuensi clock berada pada 100 kHz.

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

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

Adapun rangkaian pulsa dari garis TX0, kita dapat melihat bit Start dan titik framing dari setiap bit. Kami memiliki byte yang mewakili karakter "e."

Langkah 18: Mengonfigurasi Lingkungan untuk Pengujian Kami

Mengonfigurasi Lingkungan untuk Pengujian Kami
Mengonfigurasi Lingkungan untuk Pengujian Kami

Di sini kami memiliki beberapa opsi untuk membaca data.

Langkah 19: Tangkap: Osiloskop dan Analyzer

Tangkap: Osiloskop dan Analyzer
Tangkap: Osiloskop dan Analyzer

Lihat di sini di layar yang saya tangkap dari osiloskop saya. Sinyal penganalisis logika hanya mewakili deteksi tinggi dan rendah, tetapi tidak mewakili kualitas sinyal. Hal ini paling baik dapat diamati pada osiloskop.

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

Tangkap: Mengamati Kegagalan (contoh Kegagalan Serial)
Tangkap: Mengamati Kegagalan (contoh Kegagalan Serial)

Sekarang, saya akan menunjukkan contoh kegagalan serial, yang sebenarnya terjadi pada saya. Saya menggunakan modem GPRS, jenis yang digunakan pada ponsel, kartu SIM, mencoba terhubung ke ESP32. Tapi itu tidak terhubung. Saya kemudian memeriksa catu daya, kabel, dan mengganti papan. Saya melakukan segalanya, tetapi tidak ada yang memperbaikinya. Saya memutuskan untuk melakukan analisis logis: Saya menemukan bahwa sinyal ESP pada UART 115200 mulai tidak cocok. Artinya, ESP32 memainkan apa yang seharusnya 115.200 pada kecepatan yang berbeda dari ini.

Kesalahan ini, yang diidentifikasi oleh pengurai, ditampilkan dengan tanda X berwarna merah. Dalam pemahaman saya, program mengatakan bahwa titik yang memiliki sedikit seperti itu setengah tergeser dalam waktu. Ketika pergeseran ini meningkat, mungkin ada saatnya ketika semuanya tidak cocok, sehingga informasi tidak mencapai sisi lain. Biasanya datang, tetapi SIM800 sensitif dan jika tidak tepat, informasinya tidak sampai ke ujung yang lain.

Saya tidak tahu apakah ini sesuatu yang sering terjadi atau tidak, tetapi itu terjadi pada saya, jadi saya memutuskan untuk membahas masalah ini di sini. Jadi apa yang saya lakukan? Aku melambat. Jika Anda menempatkan 9, 600, 19, 200, hingga 38, 400, itu berhasil, yang tidak terjadi dengan 115, 200.

Langkah 21: Unduh File

PDF

SAYA TIDAK

Direkomendasikan: