Sommario:
- Passaggio 1: Panoramica del bus I2C
- Passaggio 2: progettazione RTL in VHDL
- Passaggio 3: simulazione e test
- Passaggio 4: note importanti
- Passaggio 5: file allegati
Video: Progettazione del Master I2C in VHDL: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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:
Progettazione di un semplice controller di cache associativa a quattro vie in VHDL: 4 passaggi
Progettazione di un semplice controller di cache associativo a quattro vie in VHDL: nel mio precedente tutorial, abbiamo visto come progettare un semplice controller di cache a mappatura diretta. Questa volta facciamo un passo avanti. Progetteremo un semplice controller di cache associativo a quattro vie. vantaggio? Meno miss rate, ma a scapito delle prestazioni
Progettazione di un controller di interrupt programmabile in VHDL: 4 passaggi
Progettazione di un controller di interrupt programmabile in VHDL: sono sopraffatto dal tipo di risposte che ricevo in questo blog. Grazie ragazzi per aver visitato il mio blog e avermi motivato a condividere le mie conoscenze con voi. Questa volta presenterò il design di un altro modulo interessante che vediamo in tutti i SOC: Interrupt C
Progettazione di un semplice controller di cache in VHDL: 4 passaggi
Progettazione di un controller di cache semplice in VHDL: Sto scrivendo questo istruibile, perché ho trovato un po' difficile ottenere del codice VHDL di riferimento per imparare e iniziare a progettare un controller di cache. Quindi ho progettato da zero un controller della cache e l'ho testato con successo su FPGA. ho p
Progettazione di un semplice controller VGA in VHDL e Verilog: 5 passaggi
Progettazione di un semplice controller VGA in VHDL e Verilog: in questo tutorial, progetteremo un semplice controller VGA in RTL. VGA Controller è il circuito digitale progettato per pilotare i display VGA. Legge dal Frame Buffer (VGA Memory) che rappresenta il frame da visualizzare e genera neces
Progettazione del Master SPI in VHDL: 6 passaggi
Progettazione di SPI Master in VHDL: in questo tutorial, progetteremo da zero un SPI Bus Master in VHDL