Alat terbaik untuk men-debug sirkuit digital sederhana?

10

Saya adalah seorang pengembang perangkat lunak profesional yang terbiasa dengan kemewahan dari para debugger terintegrasi. Untuk sementara sekarang, saya telah bereksperimen dengan platform Arduino. Namun, saya menemukan bahwa mencoba untuk berinteraksi dengan komponen seperti sensor suhu digital Dallas DS1820 seperti meraba-raba dalam kegelapan.

Dengan asumsi anggaran yang longgar sebesar $ 200 atau lebih, alat macam apa yang ada untuk membantu saya memvisualisasikan apa yang terjadi? Saya telah melihat Link Instruments MSO-19, tapi sejujurnya saya tidak tahu banyak tentang perbedaan antara osiloskop dan penganalisa logika.

Bagaimana saya tahu bahwa perangkat yang saya beli akan dapat mengukur tipe komponen (sederhana) yang saya gunakan?

Owen Thomas
sumber

Jawaban:

9

pada dasarnya, sebuah osiloskop memberi Anda pembacaan bertingkat dari tegangan pada saluran sementara penganalisa logika hanya akan memberi tahu Anda apakah itu 0 atau "tinggi" (nilai "tinggi" berpotensi menjadi 5V, 3,3V atau 1,8V tergantung pada sirkuit Anda). Anda akan sering melihat bahwa penganalisis logika memiliki lebih banyak saluran (garis yang dapat dibaca secara bersamaan) daripada osiloskop karena resolusi yang lebih rendah diperlukan.

Sedangkan untuk perangkat tertentu, saya telah mendengar hal-hal besar tentang Logika Saleae . Ini sampel pada 24MHz; ini berarti memeriksa apakah tegangan pada probe tertentu tinggi atau rendah 24 juta kali per detik. Perangkat lunak ini juga tampaknya memiliki pengetahuan tentang protokol tertanam yang umum untuk membantu debugging. Saya akan membayangkan bahwa 24MHz akan cukup untuk arduino bekerja karena kecepatan clock maksimum Atmegaxx8 adalah 20MHz.

Jeremy
sumber
Setelah setengah hari penelitian lebih lanjut, saya dapat mengatakan bahwa Saleae Logic harus membantu saya dengan 90% dari ide yang saya miliki, untuk saat ini. Perangkat lunak ini terlihat dipoles dan intuitif untuk "orang luar" perangkat keras seperti saya. Saya dapat melihat bagaimana osiloskop akan sangat membantu, tetapi untuk jenis proyek sederhana, penganalisa logika USB sepertinya merupakan tradeoff yang bagus.
Owen Thomas
Dalam The soul of a new machineTracy Kidder mengatakan (parafrase) bahwa manusia gua menggunakan osiloskop untuk melihat mengapa api tidak menyala. :-)
stevenvh
9

ini hanyalah tambahan untuk jawaban penjuin karena tidak sesuai dengan komentar dan jawabannya umumnya benar. Hanya ingin mengklarifikasi implikasi dalam jawabannya.

Berhati-hatilah memilih perangkat pengukuran berdasarkan bandwidth / laju samplingnya. Perangkat dengan laju pengambilan sampel 25mhz tidak dapat secara akurat mengambil sampel sinyal digital 25mhz, bahkan tidak bisa ditutup.

Jika Anda mengambil sinyal jam digital pada 25mhz dan memasukkannya ke dalam o-scope dengan bandwidth 25mhz Anda akan melihat sesuatu yang dekat dengan gelombang sinus. Ruang lingkup dengan tingkat pengambilan sampel 25mhz mungkin akan menunjukkan tingkat DC sejak per Nyquist, sinyal frekuensi tertinggi ruang lingkup sampel bisa menjadi 12,5mhz.

Gelombang persegi berisi frekuensi dasar yang merupakan clock rate-nya, untuk contoh ini 25mhz. Ini juga berisi harmonisa aneh besar yang memberikan bentuk kuadratnya, untuk melihat sinyal jam digital 25mhz dengan akurasi Anda tidak hanya perlu melihat 25mhz tetapi 75, 125, 175, 225, dll. Seberapa jauh Anda perlu naik untuk keakuratan yang Anda inginkan atau hingga laju perubahan transceiver.

Meskipun ini sedikit kurang penting untuk penganalisa logika masih sangat penting. Penganalisa logika sedang mencari 'tinggi' dan 'rendah' ​​di atas atau di bawah ambang batas. Jika apa yang dilihat adalah gelombang sinus, Anda akan melihat artifisial pendek tinggi dan rendah dan ruang artifisial panjang antara bit. Ini bisa agak tergantung pada arsitektur penganalisa.

Ini dapat membuat masalah diagnosis yang terkait dengan berbagai mode pengiriman menjadi tidak mungkin. Misalnya SPI memiliki 4 mode berbeda berdasarkan data yang valid pada naik atau turunnya clock edge dan juga pada polaritas data (tinggi 1 atau 0?). Protokol transmisi lain juga memiliki masalah ini (I2S dan format audio terkait misalnya). Jika Anda tidak dapat mengidentifikasi secara akurat kapan transisi tepi terjadi, hampir tidak mungkin untuk menentukan apakah bus tersebut sesuai dengan spesifikasi.

Secara umum Anda membutuhkan bandwidth / kecepatan pengambilan sampel yang jauh lebih tinggi daripada kecepatan data target yang Anda inginkan. Jika Anda ingin sampel bus I2C 40khz, penganalisis logika dengan laju sampling 100mhz lebih dari cukup. Jika Anda perlu mengambil sampel bus SPI 25mhz, Anda harus memiliki ruang lingkup / penganalisa dengan bandwidth yang jauh lebih tinggi, sesuatu yang mendekati 500mhz jika Anda membutuhkan akurasi nyata, serta laju sampling yang memungkinkan pengukuran dalam rentang frekuensi tersebut.

Jadi perangkat penjuin yang direkomendasikan dengan laju sampling 24mhz kemungkinan hanya dapat memberikan pengukuran akurat sinyal digital yang kurang dari ~ 2mhz dengan laju perubahan tegangan yang cukup tinggi untuk laju data tersebut.

Menandai
sumber
3
kamu benar sekali, ini benar-benar menyelinap di pikiranku. Untuk membantu menggambarkan efek ini lebih jauh, saya memasukkan gelombang persegi 1khz ke dalam osiloskop saya dan mengambil dump layar dari hasil transformasi Fourier (pada dasarnya x adalah frekuensi): i.imgur.com/lJvtD.png . Harmoni adalah puncak yang berulang.
jeremy
1
@penjuin ilustrasi sempurna. Hanya untuk memperjelas jawaban saya untuk burung hantu, penjuin perangkat yang direkomendasikan kemungkinan besar sangat mampu menangani ardunio, karena Anda mungkin tidak akan pernah perlu berurusan dengan antarmuka yang berjalan di> 2mhz dengan kelas perangkat tersebut. Saya hanya ingin memastikan dia tidak menganggapnya sebagai aturan praktis dan akhirnya menggigitnya jika dia pindah ke perangkat / antarmuka berkecepatan lebih tinggi di kemudian hari.
Markus
1
Penganalisis logika dengan ambang batas variabel yang dikonfigurasikan dengan benar biasanya memberikan resolusi yang cukup untuk menganalisis logika hanya pada beberapa faktor yang lebih tinggi daripada frekuensi sinyal. Masalahnya ada pada pengontrol yang menerima sinyal akan beralih ke logika nol untuk apa pun di bawah 1.2V (misalnya) dan logika 1 untuk apa pun di atas 2.2V (misalnya) sementara penganalisa logika mungkin beralih di 1.7V membuat waktu kurang tepat. Dalam banyak kasus, laju sampel sekitar 2-3 kali lebih cepat dalam sirkuit digital sudah cukup untuk memahami apa yang sedang terjadi.
Wouter Simons
@wouter simons berhati-hati untuk tidak membingungkan bandwidth dan laju sampling (saya benar-benar membersihkan penggunaan kata saya dalam jawabannya juga). Tingkat pengambilan sampel 2x frekuensi sinyal Anda adalah minimum untuk mendeteksi sinyal itu. Dalam praktiknya, ruang lingkup dan terutama penganalisa biasanya terlalu banyak. Sebagai contoh ruang lingkup tek saya memiliki bandwidth 100mhz tetapi sampel pada 2,5ghz.
Tandai
Jawaban yang bagus Saya mengikuti posting Anda dengan baik dan mungkin masih bisa mengukur apa yang saya inginkan dengan salah satu perangkat yang lebih murah di luar sana. Saya akan mengawasi keterbatasan ketika saya mengeksplorasi komponen yang lebih rumit.
Owen Thomas
8

Jika Anda berencana untuk bekerja terutama di sirkuit digital, penganalisis logika adalah apa yang Anda inginkan. Osiloskop unggul dalam menunjukkan sinyal analog yang relatif sedikit (misalnya, 2-4) dalam detail halus, sedangkan penganalisa logika, karena mereka terutama berkaitan dengan tinggi-vs-rendah biasanya memiliki input lebih banyak.

Anda tentu saja dapat menggunakan O-scope sebagai penganalisis logika, tetapi keuntungan dengan O-scope adalah lebih mudah untuk mendapatkan 'gambaran besar' dengan bisa menonton lusinan sinyal secara bersamaan.

JustJeff
sumber
2

Sejauh analisis logika, saya menulis perbandingan dasar yang (relatif) murah:

Perbandingan analisis logika berbasis PC

Satu hal yang perlu diperhatikan tentang kecepatan pengambilan sampel, aturan praktisnya adalah Anda umumnya membutuhkan setidaknya 4x data rate Anda untuk mendapatkan pembacaan yang akurat, dan hingga 10x lebih baik. Jadi jika Anda ingin memantau sinyal 8MHz (yang Anda dapat dengan mudah menghasilkan dari AVR murah di SPI misalnya), Anda ingin penganalisis laju pengambilan sampel 32-80MHz. Ini hanya berlaku ketika menangkap dalam mode 'async'. Jika Anda menangkap dalam mode 'sinkron' (mis. Dengan sinyal clock), maka laju sampling Anda hanya perlu mencocokkan dengan laju sinyal clock. Jadi misalnya dalam kasus itu, sampling sinkron 8MHz akan cukup untuk menangkap sinyal SPI 8MHz (karena memiliki sinyal clock khusus).

davr
sumber
1

Saya memiliki MSO-19 dan sangat menyukainya. Saya berharap memiliki lebih dari satu saluran analog, tetapi berfungsi sebagai osiloskop dan penganalisis logika. Untuk harga, saya pikir ini adalah peralatan yang bagus (dan berjalan dengan baik di VMWare pada OS X). O'scope membantu saya melihat apa yang sebenarnya terjadi di bagian sirkuit, dan tidak menunjukkan kepada Anda keadaan tinggi / rendah dari garis digital, seperti yang dilakukan oleh penganalisa logika. Ini volt meter yang jauh lebih akurat (dan lebih cepat merespons) daripada multimeter standar Anda. Akan sangat bagus jika bisa memecahkan kode data serial, bukan hanya I2C dan SPI ...

blalor
sumber
1

Jawaban ini mungkin tidak banyak digunakan untuk Anda menggunakan ardunio tetapi merupakan jawaban untuk pertanyaan umum.

Saya menggunakan fungsi penganalisa logika pickit2 saya banyak. Jelas itu dimaksudkan untuk pemrograman PIC tetapi juga memiliki mode penganalisa logika 3 channel yang saya gunakan sepanjang waktu untuk melihat sinyal digital. Saya masih menggunakannya untuk itu meskipun saya menggunakan Cortex-M3 untuk proyek saya saat ini. Jelas itu alat yang sangat primitif dengan standar gigi yang tepat tetapi meskipun begitu saya merasa sangat berguna

Saya telah menggunakannya untuk men-debug sirkuit I2C dan sinyal output TV juga misalnya lihat posting saya di sini

John Burton
sumber
1

Ini sangat keren, dan benar-benar murah: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

Ini memiliki tingkat pengambilan sampel yang layak, dan Anda dapat mendukung proyek HW terbuka yang keren. Sepertinya masih dalam tahap beta, jadi mungkin bukan yang terbaik jika Anda hanya ingin memasukkan sesuatu dan membuatnya berfungsi.

AdamShiemke
sumber
Saya baru saja membeli ini sebulan yang lalu, karena saya bekerja dengan netbook terutama, saya memiliki masalah dengan ukuran layar komputer saya untuk dapat mengklik tombol "tangkap", tetapi jika Anda memiliki laptop ukuran normal atau komputer desktop Anda akan baik-baik saja. Saya belum menggunakannya secara luas, tapi saya sedikit yang saya suka, dan harganya juga bagus!
onaclov2000
Saya menggunakan LA ini sedikit, dan karena ini adalah LA pertama saya, saya mungkin menggunakan kurang dari 50% daya / fungsionalitas yang disediakannya. Membandingkan berbagai LA biaya rendah lainnya, saya menemukan itu menjadi salah satu nilai terbaik untuk uang LA. Perangkat lunaknya tidak buruk. Sebenarnya saya menemukan itu cukup baik untuk tujuan saya. Jika Anda ingin melihat bagaimana saya menggunakannya, cukup klik pada profil saya dan lihat pertanyaan yang saya tanyakan.
icarus74