İçindekiler:

VHDL'de I2C Master Tasarımı: 5 Adım
VHDL'de I2C Master Tasarımı: 5 Adım

Video: VHDL'de I2C Master Tasarımı: 5 Adım

Video: VHDL'de I2C Master Tasarımı: 5 Adım
Video: VHDL ile FPGA PROGRAMLAMA - Ders27: I2C (Inter-Integrated Circuit) Master Tasarımı ve Simülasyonu 2024, Temmuz
Anonim
VHDL'de I2C Master'ın Tasarımı
VHDL'de I2C Master'ın Tasarımı

Bu talimatta, VHDL'de basit bir I2C master tasarlama tartışılmaktadır.

NOT: Tam resmi görmek için her resmin üzerine tıklayın

1. Adım: I2C Veri Yoluna Genel Bakış

• İnter Integrated Circuit anlamına gelir.

•Senkron, Yarım dubleks.

•İki Telli Arayüz - SDA ve SCL.

•SDA – Master ve Slave tarafından kontrol edilen Seri Veri hattı

•SCL – Master tarafından oluşturulan Seri Saat

•Multi-master, Multi-slave protokolü.

•İki mod - 100 kbit/sn ve 400 kbits/sn: yavaş ve hızlı.

Adım 2: VHDL'de RTL Tasarımı

I2C Master'ımızın Tasarım Özellikleri

  • 8 bit veri çerçevesi.
  • Yalnızca SCL tek yönlü kontrol.
  • 7 bit bağımlı adres.
  • Hem yavaş hem de hızlı modları destekler.
  • Tek Efendi, Çok Köle.
  • Philips'in orijinal I2C özelliklerine uygundur.

Saf RTL kodu kullanılır. Böylece IP, tüm FPGA'lar arasında kolayca taşınabilir. Dahili olarak oluşturulan saati kullanan kompakt FSM tabanlı tasarım, optimum alan ve performans sağlar.

3. Adım: Simülasyon ve Test Etme

Test ortamı

  • Üçüncü taraf I2C Slave IP kullanarak fonksiyonel simülasyon ve test.
  • Xilinx Vivado araç seti kullanılarak sentezlendi.
  • Artix-7 FPGA kartında uygulandı ve test edildi.
  • 100 MHz için zamanlama doğrulanmış tasarım.
  • DSO/CRO'da test edilmiş dalga formları.
  • Arduino UNO ile I2C Slave olarak iletişim başarıyla test edildi.

4. Adım: Önemli Notlar

  • Master'ı I2C Slave IP kullanarak test ederken, bağımlı kodunu gereksinimlerinize göre yapılandırın. Varsayılan saat frekansını ve bağımlı adresi değiştirmek isteyebilirsiniz. Saat frekansı da Ana kodda yapılandırılmalıdır.
  • Yerleşik testler sırasında, SDA hattı ortak tahliye çıkışı olduğundan pull-up dirençlerini unutmayın !!! Farklı i2c hızları için önerilen çekme direnci için google'a bakın. 100 kHz için 2.2K kullandım.
  • Test tezgahı kullanmıyorsanız ve Master'ı bağımsız olarak simüle ediyorsanız, çift yönlü bir sinyal (giriş) sinyali olduğu için SDA sinyalini dikkatlice simüle edin. Master tarafı ve slave tarafı olmak üzere iki sürücüsü vardır. Ne zaman 'zorlama' ve ne zaman 'zorlamadan çıkarma' gerektiğini bilmelisiniz.
  • SCL tek yönlü bir çizgidir. Pull-up'a gerek yok.
  • Lütfen IP Belgelerini baştan sona gözden geçirin.

Adım 5: Eklenen Dosyalar

  • I2C Master'ın tüm RTL kodları.
  • Test tezgahı, I2C Slave kodları da test için.
  • IP Belgeleri.

Herhangi bir sorunuz için benimle iletişime geçmekten çekinmeyin:

Mitu Raj

beni takip et:

Sorularınız için iletişime geçin: [email protected]

Önerilen: