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
https://www.dropbox.com/s/w1m8mkso3vjxb8a/Nucleo_LAB4s4_MCP4922_Sinewave.zip?dl=0
ไม่มีความคิดเห็น:
แสดงความคิดเห็น