Taula de continguts:
- Pas 1: Visió general del bus I2C
- Pas 2: disseny RTL en VHDL
- Pas 3: simulació i proves
- Pas 4: Notes importants
- Pas 5: fitxers adjunts
Vídeo: Disseny del màster I2C en VHDL: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
En aquest instructiu, es parla del disseny d’un mestre I2C senzill en VHDL.
NOTA: feu clic a cada imatge per veure la imatge completa
Pas 1: Visió general del bus I2C
• Suports per a circuit integrat inter.
• Síncron, mig dúplex.
• Interfície de dos cables: SDA i SCL.
• SDA: línia de dades de sèrie controlada per Master i Slave
• SCL: rellotge de sèrie generat per Master
• Protocol multi-master, multi-slave.
• Dos modes: 100 kbits / s i 400 kbits / s: lent i ràpid.
Pas 2: disseny RTL en VHDL
Especificacions de disseny del nostre mestre I2C
- Marc de dades de 8 bits.
- Només control unidireccional SCL.
- Adreça esclava de 7 bits.
- Admet modes lents i ràpids.
- Single Master, Multi-esclau.
- Compleix les especificacions originals d'I2C de Philips.
S'utilitza codi pur RTL. Així, la IP és fàcilment portàtil a tots els FPGA. El disseny compacte basat en FSM mitjançant rellotge generat intern garanteix una àrea i un rendiment òptims.
Pas 3: simulació i proves
Entorn de prova
- Simulació i proves funcionals mitjançant IP esclau I2C de tercers.
- Sintetitzat mitjançant el conjunt d'eines Xilinx Vivado.
- Implementat i provat a la placa FPGA Artix-7.
- Disseny verificat de temps per a 100 MHz.
- Formes d'ona provades a DSO / CRO.
- S'ha provat amb èxit la comunicació amb Arduino UNO com a esclau I2C.
Pas 4: Notes importants
- Mentre proveu el mestre amb l’IP esclau I2C, configureu el codi esclau segons els vostres requisits. És possible que vulgueu canviar la freqüència de rellotge i l'adreça esclava per defecte. La freqüència de rellotge també s’ha de configurar al codi mestre.
- Mentre feu proves a bord, no us oblideu de les resistències pull-up, ja que la línia SDA és una sortida de drenatge habitual. Consulteu a Google si hi ha resistències extretes recomanades per a diferents velocitats i2c. He utilitzat 2,2K per a 100 kHz.
- Si no utilitzeu un banc de proves i simuleu el Màster de forma independent, simuleu acuradament el senyal SDA, ja que és un senyal bidireccional (entrada). Té dos conductors, el costat mestre i el costat esclau. Hauríeu de saber quan "forçar" i quan "forçar".
- SCL és una línia unidireccional. No cal tirar cap amunt.
- Aneu a través de la documentació IP a fons.
Pas 5: fitxers adjunts
- Tots els codis RTL d'I2C Master.
- Banc de proves, codis esclaus I2C també, per provar.
- Documentació IP.
Per a qualsevol consulta, no dubteu a posar-vos en contacte amb mi:
Mitu Raj
segueix-me:
Per a qualsevol consulta, poseu-vos en contacte amb: [email protected]
Recomanat:
Disseny d'un controlador de memòria cau associatiu conjunt de quatre vies en VHDL: 4 passos
Disseny d'un controlador de memòria cau associatiu de configuració simple de quatre direccions en VHDL: en el meu instructable anterior, vam veure com dissenyar un controlador de memòria cau mapat directe. Aquesta vegada, fem un pas endavant. Dissenyarem un senzill controlador de memòria cau associativa de quatre vies. Avantatge ? Menys percentatge de missatges, però a costa de perfos
Disseny d'un controlador d'interrupció programable en VHDL: 4 passos
Disseny d'un controlador d'interrupció programable en VHDL: estic aclaparat pel tipus de respostes que rebo en aquest bloc. Gràcies nois per visitar el meu bloc i motivar-me a compartir el meu coneixement amb vosaltres. Aquesta vegada, presentaré el disseny d’un altre mòdul interessant que veiem a tots els SOCs: Interrupt C
Disseny d'un controlador de memòria cau simple en VHDL: 4 passos
Disseny d'un controlador de memòria cau simple a VHDL: escric això instructiu, perquè em va semblar una mica difícil obtenir algun codi VHDL de referència per aprendre i començar a dissenyar un controlador de memòria cau. Així que vaig dissenyar un controlador de memòria cau des de zero i el vaig provar amb èxit a FPGA. Tinc p
Disseny d'un controlador VGA simple en VHDL i Verilog: 5 passos
Disseny d'un controlador VGA senzill en VHDL i Verilog: en aquesta instrucció, dissenyarem un controlador VGA simple en RTL. El controlador VGA és el circuit digital dissenyat per conduir pantalles VGA. Es llegeix des de Frame Buffer (memòria VGA) que representa el marc que es mostrarà i genera nece
Disseny de SPI Master en VHDL: 6 passos
Disseny de SPI Master en VHDL: en aquesta instrucció, dissenyarem un SPI Bus Master des de zero en VHDL