สารบัญ:

การออกแบบ I2C Master ใน VHDL: 5 ขั้นตอน
การออกแบบ I2C Master ใน VHDL: 5 ขั้นตอน

วีดีโอ: การออกแบบ I2C Master ใน VHDL: 5 ขั้นตอน

วีดีโอ: การออกแบบ I2C Master ใน VHDL: 5 ขั้นตอน
วีดีโอ: I2C - Bus Master - Step 2 2024, กรกฎาคม
Anonim
การออกแบบ I2C Master ใน VHDL
การออกแบบ I2C Master ใน VHDL

ในคำแนะนำนี้จะกล่าวถึงการออกแบบต้นแบบ I2C อย่างง่ายใน VHDL

หมายเหตุ: คลิกที่แต่ละภาพเพื่อดูภาพเต็ม

ขั้นตอนที่ 1: ภาพรวมบัส I2C

•ย่อมาจากอินเตอร์อินทิเกรตเซอร์กิต

•ซิงโครนัส ฮาล์ฟดูเพล็กซ์

• อินเทอร์เฟซสองสาย - SDA และ SCL

•SDA – สายข้อมูลอนุกรมควบคุมโดย Master และ Slave

•SCL – นาฬิกาอนุกรมที่สร้างโดย Master

•Multi-master, โปรโตคอล Multi-slave

• สองโหมด - 100 kbits/วินาที และ 400 kbits/วินาที: ช้าและเร็ว

ขั้นตอนที่ 2: การออกแบบ RTL ใน VHDL

ข้อมูลจำเพาะการออกแบบของ I2C Master. ของเรา

  • กรอบข้อมูล 8 บิต
  • ระบบควบคุมทิศทางเดียว SCL เท่านั้น
  • ที่อยู่ทาส 7 บิต
  • รองรับทั้งโหมดช้าและเร็ว
  • มาสเตอร์คนเดียว หลายทาส
  • สอดคล้องกับข้อกำหนด I2C ดั้งเดิมโดยฟิลิปส์

ใช้รหัส RTL บริสุทธิ์ ดังนั้น IP จึงสามารถพกพาได้ง่ายใน FPGA ทั้งหมด การออกแบบตาม FSM ที่กะทัดรัดโดยใช้นาฬิกาที่สร้างขึ้นภายในช่วยให้มั่นใจถึงพื้นที่และประสิทธิภาพที่เหมาะสมที่สุด

ขั้นตอนที่ 3: การจำลองและการทดสอบ

สภาพแวดล้อมการทดสอบ

  • การจำลองการทำงานและการทดสอบโดยใช้ I2C Slave IP ของบริษัทอื่น
  • สังเคราะห์โดยใช้ชุดเครื่องมือ Xilinx Vivado
  • ดำเนินการและทดสอบบนบอร์ด Artix-7 FPGA
  • การออกแบบที่ตรวจสอบเวลาสำหรับ 100 MHz
  • ทดสอบรูปคลื่นบน DSO/CRO
  • ทดสอบการสื่อสารกับ Arduino UNO เป็น I2C Slave ได้สำเร็จ

ขั้นตอนที่ 4: หมายเหตุสำคัญ

  • ขณะทดสอบ Master โดยใช้ I2C Slave IP ให้กำหนดค่ารหัสสเลฟตามความต้องการของคุณ คุณอาจต้องการเปลี่ยนความถี่สัญญาณนาฬิกาเริ่มต้นและที่อยู่รอง ควรกำหนดค่าความถี่สัญญาณนาฬิกาในรหัสมาสเตอร์ด้วย
  • ขณะทดสอบออนบอร์ด อย่าลืมตัวต้านทานแบบดึงขึ้นเนื่องจากสาย SDA เป็นเอาต์พุตแบบเดรนทั่วไป !!! ตรวจสอบ google สำหรับตัวต้านทานแบบดึงขึ้นที่แนะนำสำหรับความเร็ว i2c ที่แตกต่างกัน ฉันใช้ 2.2K สำหรับ 100 kHz
  • หากไม่ได้ใช้ม้านั่งทดสอบและจำลองต้นแบบอย่างอิสระ ให้จำลองสัญญาณ SDA อย่างระมัดระวัง เนื่องจากเป็นสัญญาณสองทิศทาง (เข้า) มีคนขับ 2 ฝั่ง ฝั่งมาสเตอร์และฝั่งสเลฟ คุณควรรู้ว่าเมื่อใดควร 'บังคับ' และ เมื่อใดควร 'บังคับ'
  • SCL เป็นเส้นเดียว ไม่จำเป็นต้องดึงขึ้น
  • โปรดผ่านเอกสาร IP อย่างละเอียด

ขั้นตอนที่ 5: ไฟล์ที่แนบมา

  • รหัส RTL ทั้งหมดของ I2C Master
  • ม้านั่งทดสอบ รหัส I2C Slave เช่นกัน สำหรับการทดสอบ
  • เอกสาร IP

สำหรับข้อสงสัยใด ๆ โปรดติดต่อฉัน:

มิตู ราจ

ติดตามฉัน:

ติดต่อสอบถามได้ที่ [email protected]

แนะนำ: