Seberapa cepat saya harus mencicipi dengan penganalisa logika?

11

Jika saya memiliki sinyal digital 10 MHz, seberapa cepat saya perlu sampel dengan penganalisa logika untuk menghindari kesalahan bit? Apakah laju sampel minimum meningkat jika saya ingin melampirkan decoder protokol (misalnya SPI)?

Saya mengetahui teorema pengambilan sampel Nyquist-Shannon dan fakta bahwa gelombang persegi 10 MHz memiliki energi signifikan pada harmonik yang lebih tinggi (30 MHz, 50 MHz, dll.). Namun, penganalisa logika tidak perlu sampel sempurna atau mereproduksi gelombang persegi untuk mengetahui apakah itu logika 1 atau 0. Saya mencari apa yang secara praktis diperlukan untuk menghindari kesalahan bit atau kesalahan protokol decoding.

Saya menggunakan Saleae Logic Pro 16.

Patrick
sumber

Jawaban:

7

Paling tidak yang dapat Anda lakukan diberikan oleh teorema Shannon-Nyquist : untuk dapat membaca sinyal, Anda harus mencicipi setidaknya dua kali frekuensinya. Di sini, Anda dapat mencicipi pada 20MS / s (Sampel mega per detik). Namun demikian, 2 poin untuk satu periode sangat sedikit, dan memperkenalkan banyak jitter pada sinyal yang dibangun kembali.

Penganalisa logika Anda tidak akan membagikan jam sinyal Anda. Ini adalah kasus umum dalam transmisi, dan saya akan menyarankan Anda untuk melakukan hal yang sama seperti kebanyakan antarmuka UART / SPI / I2C / ...: ambil 3 poin per negara. Ini memungkinkan untuk memfilter kebisingan EMC menggunakan filter mayoritas, dan, ketika menganalisis, memungkinkan untuk melihat kemiringan yang signifikan antara sinyal Anda. Harap dicatat bahwa jam bus SPI 10MHz naik tinggi dan rendah setiap periode 100ns, jadi Anda perlu mengambil sampel 6 kali frekuensi SPI Anda (60MS / s).

60MS / s adalah umum untuk analisis logis, dan ini akan memungkinkan Anda untuk mendeteksi kemiringan berlebihan (antara data dan jam Anda) untuk sebagian besar protokol (termasuk SPI). Meskipun demikian, dengan jam non-simetris (dengan tHIGH! = TLOW), Anda harus mengambil sampel dengan cukup cepat untuk mengambil sampel bagian terpendek dari jam tersebut. Jika clock Anda TINGGI untuk 1μs dan RENDAH untuk 9μs, Anda mendapat sinyal 100kHz, tetapi perlu 3MS / s.

Jawaban ini hanya mempertimbangkan sinyal yang ingin Anda analisis. Untuk masalah EMC, kami biasanya menggunakan cakupan analog dengan frekuensi sampling 10 kali lebih tinggi dari frekuensi tertinggi dalam sistem, tapi agak mahal, dan di luar topik, mengingat pertanyaannya adalah untuk memecahkan kode bus SPI.

Jacen
sumber
1
Saya menggunakan 6 kali frekuensi clock sebagai frekuensi sampling. 4 kali seharusnya cukup untuk melihat kemiringan, tetapi dalam pengalaman saya, lebih sulit untuk dipahami ketika berhadapan dengan waktu naik / turun yang besar.