Saya belajar bagaimana menganalisis jam bus SPI dan data menggunakan osiloskop penyimpanan digital entry-level. Saya menggunakan BK Precision 2542B untuk mengukur output jam dan garis MOSI dari Netduino yang menggunakan mikrokontroler ARM.
Dalam gambar ini, saya memiliki jam di saluran 1 (kuning), dan MOSI di saluran 2 (biru). Pemicu diatur untuk menggunakan saluran 1, menggunakan pemicu tepi naik dari 1,44V. Amplitudo gelombang clock square adalah sekitar 3.3V.
Indikator pemicu berada di tengah tampilan secara horizontal, namun saya memiliki denyut nadi di sebelah kiri. Saya mengharapkan denyut pertama dari jam untuk memulai di lokasi pemicu. Saya tahu bahwa osiloskop penyimpanan digital memungkinkan Anda melihat peristiwa sebelum dan sesudah pemicu, tetapi saya bingung mengapa denyut nadi pertama tidak sesuai dengan yang saya kira.
Apakah pemahaman saya tentang memicu salah, atau apakah saya hanya menggunakan lingkup aneh?
Sunting: Kereta pulsa lebarnya 300μs, berulang pada interval 2ms, dan saya memiliki nilai penunda 500μs. Menyesuaikan penahanan tidak mengubah fakta bahwa satu pulsa mendahului pelatuk.
Edit 2:
Setelah lebih banyak analisis sinyal, termasuk menggunakan osiloskop analog, saya pikir saya telah menentukan bahwa kadang-kadang durasi pulsa sekitar 350μs, bukan 300μs. Ini mungkin kesalahan dalam frame yang menghasilkan kode.
Saya menemukan bahwa waktu tunggu 352μs akan menghasilkan hasil yang diharapkan, tetapi setiap kali dan kemudian pulsa tambahan mendahului pemicunya.
Saya merekam beberapa frame untuk menunjukkan nadi tidak ada dan hadir:
Jika saya mengatur basis waktu horizontal cukup lama untuk melihat durasi pulsa, selalu ada setidaknya 1,7 ms di antara mereka:
Jadi sementara saya pikir pulsa utama adalah hasil dari "kesalahan" dari sumbernya, saya masih tidak yakin bagaimana pemicu penahanan> 360μs masih menghasilkan pulsa terkemuka yang tidak terduga.