สารบัญ:
- ขั้นตอนที่ 1: ภาพรวมบัส I2C
- ขั้นตอนที่ 2: การออกแบบ RTL ใน VHDL
- ขั้นตอนที่ 3: การจำลองและการทดสอบ
- ขั้นตอนที่ 4: หมายเหตุสำคัญ
- ขั้นตอนที่ 5: ไฟล์ที่แนบมา
วีดีโอ: การออกแบบ I2C Master ใน VHDL: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ในคำแนะนำนี้จะกล่าวถึงการออกแบบต้นแบบ 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]
แนะนำ:
ระบบตรวจสอบด้วยภาพที่ใช้ LoRa เพื่อการเกษตร Iot - การออกแบบ Fronted Application โดยใช้ Firebase & Angular: 10 ขั้นตอน
ระบบตรวจสอบด้วยภาพที่ใช้ LoRa เพื่อการเกษตร Iot | การออกแบบ Fronted Application โดยใช้ Firebase & Angular: ในบทที่แล้ว เราพูดถึงวิธีที่เซ็นเซอร์ทำงานกับโมดูล loRa เพื่อเติมฐานข้อมูล firebase Realtime และเราเห็นไดอะแกรมระดับสูงมากว่าโปรเจ็กต์ทั้งหมดทำงานอย่างไร ในบทนี้เราจะพูดถึงวิธีที่เราสามารถ
การออกแบบ Mail Bot UX: 6 ขั้นตอน
การออกแบบ Mail Bot UX: นี่คือหุ่นยนต์ที่กรีดร้องเมื่อคุณมีจดหมาย คุณต้องใช้กาวและเทป
การออกแบบ Interrupt Controller ที่ตั้งโปรแกรมได้ใน VHDL: 4 ขั้นตอน
การออกแบบ Programmable Interrupt Controller ใน VHDL: ฉันรู้สึกท่วมท้นกับคำตอบที่ได้รับในบล็อกนี้ ขอบคุณสำหรับการเยี่ยมชมบล็อกของฉันและกระตุ้นให้ฉันแบ่งปันความรู้ของฉันกับคุณ ครั้งนี้ ฉันจะนำเสนอการออกแบบโมดูลที่น่าสนใจอื่นที่เราเห็นใน SOC ทั้งหมด -- Interrupt C
การออกแบบ SPI Master ใน VHDL: 6 ขั้นตอน
การออกแบบ SPI Master ใน VHDL: ในคำแนะนำนี้ เราจะออกแบบ SPI Bus Master ตั้งแต่เริ่มต้นใน VHDL
การออกแบบ UART ใน VHDL: 5 ขั้นตอน
การออกแบบ UART ใน VHDL: UART ย่อมาจาก Universal Asynchronous Receiver Transmitter เป็นโปรโตคอลการสื่อสารแบบอนุกรมที่ได้รับความนิยมและง่ายที่สุด ในคำแนะนำนี้ คุณจะได้เรียนรู้วิธีออกแบบโมดูล UART ใน VHDL