Sommario:

Progettazione del Master I2C in VHDL: 5 passaggi
Progettazione del Master I2C in VHDL: 5 passaggi

Video: Progettazione del Master I2C in VHDL: 5 passaggi

Video: Progettazione del Master I2C in VHDL: 5 passaggi
Video: I2C — Мастер шины — Шаг 2 2024, Luglio
Anonim
Progettazione del Master I2C in VHDL
Progettazione del Master I2C in VHDL

In questo tutorial, viene discussa la progettazione di un semplice master I2C in VHDL.

NOTA: clicca su ogni immagine per vedere l'immagine completa

Passaggio 1: Panoramica del bus I2C

•Sta per Inter Integrated Circuit.

•Sincrono, Half duplex.

•Interfaccia a due fili - SDA e SCL.

•SDA – Linea dati seriale controllata da Master e Slave

•SCL – Serial Clock generato dal Master

•Protocollo multi-master, multi-slave.

•Due modalità: 100 kbit/sec e 400 kbit/sec: lenta e veloce.

Passaggio 2: progettazione RTL in VHDL

Specifiche di progettazione del nostro Master I2C

  • frame di dati a 8 bit.
  • Solo controllo unidirezionale SCL.
  • Indirizzo slave a 7 bit.
  • Supporta entrambe le modalità lenta e veloce.
  • Master singolo, multi-slave.
  • Conforme alle specifiche I2C originali di Philips.

Viene utilizzato il codice RTL puro. Quindi l'IP è facilmente trasportabile su tutti gli FPGA. Il design compatto basato su FSM che utilizza un clock generato internamente garantisce un'area e prestazioni ottimali.

Passaggio 3: simulazione e test

Ambiente di test

  • Simulazione funzionale e test utilizzando I2C Slave IP di terze parti.
  • Sintetizzato utilizzando il set di strumenti Xilinx Vivado.
  • Implementato e testato su scheda FPGA Artix-7.
  • Temporizzazione verificata per 100 MHz.
  • Forme d'onda testate su DSO/CRO.
  • Comunicazione testata con successo con Arduino UNO come I2C Slave.

Passaggio 4: note importanti

  • Durante il test del Master utilizzando l'IP slave I2C, configurare il codice slave secondo i propri requisiti. Potrebbe essere necessario modificare la frequenza di clock e l'indirizzo slave predefiniti. Anche la frequenza di clock deve essere configurata nel codice Master.
  • Durante i test a bordo, non dimenticare i resistori di pull-up poiché la linea SDA è un'uscita di scarico comune !!! Controlla su Google la resistenza di pull-up consigliata per diverse velocità i2c. Ho usato 2.2K per 100 kHz.
  • Se non si utilizza il banco prova e si simula il Master in modo indipendente, simulare attentamente il segnale SDA, poiché è un segnale di segnale bidirezionale (inout). Ha due driver, lato master e lato slave. Dovresti sapere quando "forzare" e quando "svincolare".
  • SCL è una linea unidirezionale. Non c'è bisogno di pull-up.
  • Si prega di leggere attentamente la documentazione IP.

Passaggio 5: file allegati

  • Tutti i codici RTL di I2C Master.
  • Banco prova, anche codici I2C Slave, per test.
  • Documentazione IP.

Per qualsiasi domanda non esitare a contattarmi:

Mitu Raj

seguimi:

Per domande, contattare: [email protected]

Consigliato: