ฉันกำลังเรียนรู้วิธีวิเคราะห์นาฬิกาและข้อมูลบัส SPI โดยใช้ออสซิลโลสโคปดิจิตอลระดับเริ่มต้น ฉันใช้BK Precision 2542Bเพื่อวัดเอาต์พุตของนาฬิกาและสาย MOSI จากNetduinoที่ใช้ไมโครคอนโทรลเลอร์ ARM
ในภาพนี้ฉันมีนาฬิกาที่ช่อง 1 (สีเหลือง) และ MOSI ที่ช่อง 2 (สีน้ำเงิน) ทริกเกอร์ถูกตั้งค่าให้ใช้แชนเนล 1 โดยใช้ทริกเกอร์ขอบเพิ่มขึ้นที่ 1.44V ความกว้างของคลื่นสี่เหลี่ยมของนาฬิกาเป็นประมาณ 3.3V
ตัวบ่งชี้ทริกเกอร์อยู่ที่กึ่งกลางของจอแสดงผลในแนวนอน แต่ฉันมีพัลส์ไปทางซ้าย ฉันคาดหวังว่าชีพจรแรกของนาฬิกาจะเริ่มที่ตำแหน่งทริกเกอร์ ฉันรู้ว่าออสซิลโลสโคปแบบดิจิตัลช่วยให้คุณเห็นเหตุการณ์ก่อนและหลังทริกเกอร์ แต่ฉันสับสนว่าทำไมชีพจรแรกไม่ใช่ที่ที่ฉันคิดว่ามันจะเป็น
ความเข้าใจของฉันเกี่ยวกับการเรียกที่ไม่ถูกต้องหรือฉันแค่ใช้ขอบเขตแปลก ๆ ?
แก้ไข:รถไฟพัลส์มีความกว้าง 300 μsทำซ้ำในช่วงเวลา 2ms และฉันมีทริกเกอร์ระงับมูลค่า 500 μs การปรับการระงับไม่ได้เปลี่ยนความจริงที่ว่าพัลส์หนึ่งนำหน้าทริกเกอร์
แก้ไข 2:
หลังจากวิเคราะห์สัญญาณเพิ่มขึ้นรวมถึงการใช้ analog oscilloscope ฉันคิดว่าฉันคิดว่าบางครั้งระยะเวลาการเต้นของชีพจรประมาณ350μsแทนที่จะเป็น300μs นี่อาจเป็นความผิดพลาดในการสร้างรหัสเฟรม
ฉันค้นพบว่าเวลาที่หยุดค้างไว้ที่352μsจะให้ผลลัพธ์ที่คาดหวัง แต่ทุก ๆ ครั้งจากนั้นพัลส์พิเศษนำหน้าทริกเกอร์
ฉันบันทึกเฟรมบางเฟรมเพื่อแสดงชีพจรทั้งที่ขาดและอยู่:
หากฉันตั้งค่าฐานเวลาแนวนอนนานพอที่จะดูระยะเวลาของพัลส์จะมีอย่างน้อย 1.7ms อยู่ระหว่างนั้น:
ดังนั้นในขณะที่ฉันคิดว่าชีพจรชั้นนำเป็นผลมาจาก "ความผิดพลาด" จากแหล่งที่มาฉันยังไม่แน่ใจว่าการหยุดการเหนี่ยวไก> 360μsยังคงก่อให้เกิดชีพจรชั้นนำที่ไม่คาดคิด