วันอังคารที่ 10 พฤศจิกายน พ.ศ. 2558

DIGITAL LAB.No 4 Serial Periphearl Interfaec

LAB 4 Serial Periphearl Interfaec (SPI)

จากโจทย์ที่ได้มอบหมาย

           จากโจทย์ให้ทำการเชื่อมต่อ Nucleo กับ IC MCP4922-E/P เพื่อกำเนิดคลื่นสัญญาณ Sinewave โดยกำหนด Amplitude และความถี่ของสัญญาณขึ้นมาเอง และใช้ Scope วัดสัญญาณ Sinewave ที่สร้าง

สิ่งที่เรียนรู้จากการทำ Lab ครั้งนี้
           จากสมการฟังก์ชัน 
           และกำหนด Amplitude = 511 และความถี่ 100MHz 
       
            หลักการในการเขียนโปรแกรม ในครั้งแรกผลการทดลองไม่เป็นเหมือนที่คาดการณ์ไว้ คือผลทีได้จากตัวโปรแกรมจะได้แค่คลื่น sine wave ที่ออกมาเพียงครึ่งเดียวของกราฟ sine wave ซึ่งเราติดกับปัญหานี้อยู่นานมาก แต่ก็ไม่มีการเปลี่ยนแปลงใดๆ จน....นึกขึ้นได้ว่า IC ที่ทางกลุ่มได้รับมา เป็น IC 12 Bits ซึ่งเมื่อเราทำการเอาค่า 12 Bits มาหาร 2 ให้เหลือ 6 Bits ก็จะสามารถสร้างกราฟ sine wave ได้

กราฟครึ่ง Sin ที่ยังมีเพียงแค่ครึ่งเดียว
กราฟ Sine ที่สมบูรณ์แบบ
             เหตุผลที่ต้องหารค่า 12 Bits ให้เหลือเป็น 6 Bits นั้น ก็เพราะว่าเราจะทำการแบ่งช่วงของแรงดันที่ใช้ ซึ่งค่า 12 ฺBits นั้นก็เปรียบเหมือนกับแรงดัน 3.3 Vol และค่า 6 Bits นั้นก็แปลงเป็นแรงดันได้ 1.65 Vol และค่า 0 Bits ก็คือค่าแรงดัน 0 Vol และตัว Nucleo เองนั้นก็จ่ายไฟลบไม่ได้ด้วย เลยจำเป็นต้องเริ่มต้นสร้าง Sinewave ที่ค่า 6 Bits แทน
Original of Sine Wave

และนี่คือวีดีโอประกอบการทดลอง Lab SPI ของกลุ่ม

 
ปล. ที่ใช้ Scope ตัวนี้ในการวัดเพราะเนื่องจากคอมที่ในการบันทึกวีดีโอนี้กากมาก ลงโปรแกรม Scope PC ไม่ได้ (เพราะติดAdmin)

ส่วนนี้เป็น Code ที่กลุ่มเราได้เขียนขึ้นมาครับ
https://www.dropbox.com/s/w1m8mkso3vjxb8a/Nucleo_LAB4s4_MCP4922_Sinewave.zip?dl=0

ไม่มีความคิดเห็น:

แสดงความคิดเห็น