ฉันมีบัส SPI 2 MHz แต่สิ่งหนึ่งที่ฉันสังเกตเห็นคือสัญญาณบางอย่างของฉันมักจะ 'สั่น' ใช่ทริกเกอร์ของฉันติดตั้งอย่างถูกต้องดังนั้นฉันไม่คิดว่าปัญหาจะอยู่ที่นั่น
คุณสามารถเห็นสิ่งที่ฉันหมายถึงที่นี่: (นี่คือด้วยโหมดการติดตาอยู่บน) นี่คือนาฬิกาของบัส SPI ของฉัน
SPI ทำงานได้ดี ฉันถ่ายโอนเมกะไบต์หลายร้อยบนหลายกระดานและยังไม่พบปัญหา แต่ฉันก็ยังสนใจที่จะรู้ว่าอาจมีปัญหาอะไรที่นี่ นอกจากนี้ฉันควรจะซ่อมมันได้ไหม
การวัดถูกถ่ายที่แหล่งกำเนิดด้วยคลิปกราวด์ขนาดเล็กมาก
นี่เป็นวงจรที่เรียบง่ายของวงจรของฉัน แน่นอนว่าบอร์ดมีอุปกรณ์ SPI มากกว่านี้ แต่สำหรับวัตถุประสงค์ของคำถามนี้มีความถูกต้องเพราะบอร์ดยังไม่ได้ทำการบัดกรีใด ๆ ยกเว้น uC และการ์ด SD
Master (AVR Mega 128) กำลังทำงานอยู่มันเป็น RC oscillator ภายใน - ฉันไม่รู้ว่ามันจะเกี่ยวข้องหรือไม่ แต่เนื่องจากสัญญาณมีการเปลี่ยนแปลงในเวลาที่เป็นไปได้ที่ jitter ของ RC oscillator จะสิ้นสุดใน SPI บัสด้วย แค่คิดว่าฉันจะพูดถึงมัน มันเกิดขึ้นกับฉันด้วยว่าในระหว่างการวัดเหล่านี้ฉันวิ่งคอนโทรลเลอร์ในวงวนไม่สิ้นสุด นี่คือรหัส:
while(1)
{
setFirstBitOnDriver(driver); // this sends a 8-bit command on the SPI bus.
GLCD_SetCursorAddress(40); // Change cursor position on the display.
GLCD_WriteText("LED: ");
for(wire=0;wire<72;wire++)
{
itoa(wire+1,str,10);
GLCD_WriteText(str);
GLCD_SetCursorAddress(44);
_delay_ms(10);
shiftVectorOnDriver(driver); // another command on SPI. 8-bit wide.
}
}
ตัวสั่นสะเทือน / สั่นอาจเกิดขึ้นเมื่อการวิ่งภายใน 72 ครั้งแล้วออก เนื่องจากต้องใช้เวลาเพิ่มเติมในการดำเนินการสามบรรทัดแรกอาจเป็นไปได้ว่ารูปคลื่น 73 ทุกครั้งมาถึงในเวลาที่แตกต่างกันเล็กน้อยเนื่องจากเวลาในการประมวลผลเพิ่มเติม ถ้าฉันต้องเดิมพันฉันเดาว่านี่เป็นสาเหตุของปัญหาของฉัน (ถ้าทำได้ฉันจะยืนยันได้ทันที แต่บอร์ดของฉันที่ทำงานและสัปดาห์ถัดไปจะปิด!) แต่ฉันก็ยังชอบความคิดเห็น / คำตอบของ SE ในเรื่องนี้
แต่การพิจารณาว่ายูซีซีทำงานที่ 8 Mhz ฉันไม่กระวนกระวายใจเนื่องจากซอฟต์แวร์น่าจะเป็นเพราะในหน่วยนาโนวินาที แต่เป็นไมโครวินาที แต่ในรูปที่ 2 จะเห็นเส้นแบน สิ่งนี้จะเกิดขึ้นในชั่วครู่ที่สองซึ่งรูปคลื่นทั้งหมดเปลี่ยนไปตามกาลเวลาและมองไม่เห็นบนหน้าจอ ฉันเดาว่านี่เป็นเพราะลูปและความกระวนกระวายใจในภาพแรกนั้นเกิดจาก RC oscillator