Daftar Isi:

Desain Master I2C di VHDL: 5 Langkah
Desain Master I2C di VHDL: 5 Langkah

Video: Desain Master I2C di VHDL: 5 Langkah

Video: Desain Master I2C di VHDL: 5 Langkah
Video: M12 - 6 - I2C Master Controller Design - Basic Actions 2024, Juli
Anonim
Desain Master I2C di VHDL
Desain Master I2C di VHDL

Dalam instruksi ini, Merancang master I2C sederhana dalam VHDL dibahas.

CATATAN: klik pada setiap gambar untuk melihat gambar penuh

Langkah 1: Tinjauan Bus I2C

• Singkatan dari Inter Integrated Circuit.

• Sinkron, Setengah dupleks.

• Antarmuka Dua Kawat - SDA dan SCL.

•SDA – Jalur Data Serial dikendalikan oleh Master dan Slave

•SCL – Jam Serial yang dihasilkan oleh Master

• Multi-master, Multi-slave protokol.

• Dua mode - 100 kbit/detik dan 400 kbit/detik: lambat dan cepat.

Langkah 2: Desain RTL di VHDL

Spesifikasi Desain Master I2C kami

  • bingkai data 8-bit.
  • Kontrol uni-directional SCL saja.
  • alamat budak 7-bit.
  • Mendukung mode lambat dan cepat.
  • Master Tunggal, Multi-budak.
  • Sesuai dengan spesifikasi I2C asli dari Philips.

Kode RTL murni digunakan. Jadi IP mudah dibawa-bawa di semua FPGA. Desain berbasis FSM yang ringkas menggunakan jam yang dihasilkan secara internal memastikan area dan kinerja yang optimal.

Langkah 3: Simulasi dan Pengujian

Lingkungan Uji

  • Simulasi dan pengujian fungsional menggunakan IP Slave I2C pihak ketiga.
  • Disintesis menggunakan set alat Xilinx Vivado.
  • Diimplementasikan dan diuji pada papan FPGA Artix-7.
  • Desain waktu diverifikasi untuk 100 MHz.
  • Bentuk gelombang yang diuji pada DSO/CRO.
  • Berhasil menguji komunikasi dengan Arduino UNO sebagai I2C Slave.

Langkah 4: Catatan Penting

  • Saat menguji Master menggunakan IP Slave I2C, konfigurasikan kode slave sesuai kebutuhan Anda. Anda mungkin ingin mengubah frekuensi clock default dan alamat slave. Frekuensi jam harus dikonfigurasi dalam kode Master juga.
  • Saat pengujian on-board, jangan lupa resistor pull-up karena jalur SDA adalah keluaran saluran umum !!! Periksa google untuk resistor pull-up yang direkomendasikan untuk kecepatan i2c yang berbeda. Saya menggunakan 2.2K untuk 100 kHz.
  • Jika tidak menggunakan bangku tes dan mensimulasikan Master secara independen, simulasikan sinyal SDA dengan hati-hati, karena ini adalah sinyal dua arah (masuk). Ini memiliki dua driver, sisi master dan sisi budak. Anda harus tahu kapan harus 'memaksa' dan kapan harus 'memaksa'.
  • SCL adalah garis searah. Tidak perlu pull up.
  • Silakan pergi melalui Dokumentasi IP secara menyeluruh.

Langkah 5: File Terlampir

  • Semua kode RTL dari I2C Master.
  • Bangku tes, kode Slave I2C juga, untuk pengujian.
  • Dokumentasi IP.

Untuk setiap pertanyaan, jangan ragu untuk menghubungi saya:

Mitu Raj

ikuti saya:

Untuk pertanyaan, hubungi: [email protected]

Direkomendasikan: