Mục lục:

Thiết kế I2C Master trong VHDL: 5 bước
Thiết kế I2C Master trong VHDL: 5 bước

Video: Thiết kế I2C Master trong VHDL: 5 bước

Video: Thiết kế I2C Master trong VHDL: 5 bước
Video: Thiết kế vi mạch số - #2 Process trong VHDL 2024, Tháng mười một
Anonim
Thiết kế của I2C Master trong VHDL
Thiết kế của I2C Master trong VHDL

Trong phần hướng dẫn này, sẽ thảo luận về Thiết kế một I2C master đơn giản trong VHDL.

LƯU Ý: bấm vào từng ảnh để xem toàn bộ ảnh

Bước 1: Tổng quan về I2C Bus

• Viết tắt của Inter Integrated Circuit.

• Đồng bộ, bán song công.

• Giao diện hai dây - SDA và SCL.

• SDA - Dòng dữ liệu nối tiếp được điều khiển bởi Master và Slave

• SCL - Đồng hồ nối tiếp được tạo bởi Master

• Giao thức đa chủ, đa nô lệ.

• Hai chế độ - 100 kbits / giây và 400 kbits / giây: chậm và nhanh.

Bước 2: Thiết kế RTL trong VHDL

Thông số thiết kế của I2C Master của chúng tôi

  • Khung dữ liệu 8-bit.
  • Chỉ điều khiển một chiều SCL.
  • Địa chỉ nô lệ 7-bit.
  • Hỗ trợ cả hai chế độ chậm và nhanh.
  • Một chủ, nhiều nô lệ.
  • Tuân thủ các thông số kỹ thuật I2C ban đầu của Philips.

Mã RTL thuần túy được sử dụng. Vì vậy, IP có thể dễ dàng di động trên tất cả các FPGA. Thiết kế dựa trên FSM nhỏ gọn sử dụng đồng hồ được tạo bên trong đảm bảo diện tích và hiệu suất tối ưu.

Bước 3: Mô phỏng và thử nghiệm

Môi trường thử nghiệm

  • Mô phỏng và thử nghiệm chức năng sử dụng I2C Slave IP của bên thứ ba.
  • Được tổng hợp bằng bộ công cụ Xilinx Vivado.
  • Thực hiện và thử nghiệm trên bảng FPGA Artix-7.
  • Thiết kế xác minh thời gian cho 100 MHz.
  • Các dạng sóng đã thử nghiệm trên DSO / CRO.
  • Đã thử nghiệm thành công giao tiếp với Arduino UNO dưới dạng I2C Slave.

Bước 4: Lưu ý quan trọng

  • Trong khi kiểm tra Master bằng I2C Slave IP, hãy định cấu hình mã phụ theo yêu cầu của bạn. Bạn có thể muốn thay đổi tần số đồng hồ mặc định và địa chỉ phụ. Tần số đồng hồ cũng phải được định cấu hình trong Mã chính.
  • Trong khi thử nghiệm trên bo mạch, đừng quên điện trở kéo lên vì đường SDA là đầu ra cống chung !!! Kiểm tra google để biết điện trở kéo lên được khuyến nghị cho các tốc độ i2c khác nhau. Tôi đã sử dụng 2,2K cho 100 kHz.
  • Nếu không sử dụng băng kiểm tra và mô phỏng Master một cách độc lập, hãy mô phỏng cẩn thận tín hiệu SDA, vì nó là tín hiệu tín hiệu hai hướng (inout). Nó có hai trình điều khiển, phía chủ và phía phụ. Bạn nên biết khi nào nên 'ép buộc' và khi nào nên 'không chấp nhận'.
  • SCL là dòng một chiều. Không cần kéo lên.
  • Vui lòng xem kỹ Tài liệu IP.

Bước 5: Tệp được đính kèm

  • Tất cả các mã RTL của I2C Master.
  • Băng thử nghiệm, mã I2C Slave, để thử nghiệm.
  • Tài liệu IP.

Đối với bất kỳ câu hỏi nào, vui lòng liên hệ với tôi:

Mitu Raj

theo dõi tôi:

Mọi thắc mắc, liên hệ: [email protected]

Đề xuất: