Innholdsfortegnelse:
- Trinn 1: I2C -bussoversikt
- Trinn 2: RTL -design i VHDL
- Trinn 3: Simulering og testing
- Trinn 4: Viktige merknader
- Trinn 5: Filer vedlagt
Video: Design av I2C Master i VHDL: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
I denne instruksjonsboken diskuteres det å designe en enkel I2C -master i VHDL.
MERK: Klikk på hvert bilde for å se hele bildet
Trinn 1: I2C -bussoversikt
• Står for interintegrert krets.
• Synkron, halv dupleks.
• To -tråds grensesnitt - SDA og SCL.
• SDA - Seriell datalinje kontrollert av Master og Slave
• SCL - Seriell klokke generert av Master
• Multi-master, Multi-slave-protokoll.
• To moduser - 100 kbits/sec og 400 kbits/sec: sakte og raskt.
Trinn 2: RTL -design i VHDL
Designspesifikasjoner for vår I2C Master
- 8-biters dataramme.
- Kun enveis kontroll SCL.
- 7-biters slave-adresse.
- Støtter både sakte og rask modus.
- Single Master, Multi-slave.
- I samsvar med originale I2C -spesifikasjoner fra Philips.
Ren RTL -kode brukes. Så IP er lett bærbar på tvers av alle FPGAer. Kompakt FSM -basert design ved hjelp av internt generert klokke sikrer optimalt område og ytelse.
Trinn 3: Simulering og testing
Test miljø
- Funksjonell simulering og testing ved bruk av tredjeparts I2C Slave IP.
- Syntetisert med Xilinx Vivado verktøysett.
- Implementert og testet på Artix-7 FPGA-kort.
- Timing -verifisert design for 100 MHz.
- Testede bølgeformer på DSO/CRO.
- Vellykket testet kommunikasjon med Arduino UNO som I2C Slave.
Trinn 4: Viktige merknader
- Mens du tester Master ved bruk av I2C Slave IP, konfigurerer du slavekoden i henhold til dine krav. Det kan være lurt å endre standard klokkefrekvens og slaveadresse. Klokkefrekvensen bør også konfigureres i hovedkoden.
- Mens du tester ombord, ikke glem pull-up-motstander, ettersom SDA-linjen er vanlig utløpsutgang !!! Sjekk google for anbefalt pull-up-motstand for forskjellige i2c-hastigheter. Jeg brukte 2.2K for 100 kHz.
- Hvis du ikke bruker testbenken og simulerer Master uavhengig, simuler SDA-signalet forsiktig, ettersom det er et toveis signal (inout) signal. Den har to drivere, hovedsiden og slavesiden. Du bør vite når du skal "tvinge" og når du skal "tvinge ut".
- SCL er enveis linje. Du trenger ikke trekke opp.
- Gå grundig gjennom IP -dokumentasjonen.
Trinn 5: Filer vedlagt
- Alle RTL -koder for I2C Master.
- Testbenk, I2C Slave -koder også, for testing.
- IP -dokumentasjon.
For spørsmål, kontakt meg gjerne:
Mitu Raj
følg meg:
For spørsmål, kontakt: [email protected]
Anbefalt:
Design av en enkel fire-veis sett assosiert cache-kontroller i VHDL: 4 trinn
Design av en enkel fire-veis sett assosiert cache-kontroller i VHDL: I min forrige instruktive så vi hvordan vi designer en enkel direkte kartlagt cachekontroller. Denne gangen går vi et skritt videre. Vi skal designe en enkel assosiativ cache-kontroller med fire veier. Fordel? Mindre glipprate, men på bekostning av perfo
Design av en programmerbar avbryterkontroller i VHDL: 4 trinn
Design av en programmerbar interrupt -kontroller i VHDL: Jeg er overveldet over den typen svar jeg får i denne bloggen. Takk gutter for at du besøkte bloggen min og motiverte meg til å dele min kunnskap med deg. Denne gangen skal jeg presentere designet til en annen interessant modul vi ser i alle SOC -er - Interrupt C
Design av en enkel cache -kontroller i VHDL: 4 trinn
Design av en enkel cache -kontroller i VHDL: Jeg skriver dette instruerbart, fordi jeg syntes det var litt vanskelig å få noen referanse -VHDL -koder for å lære og begynne å designe en cache -kontroller. Så jeg designet en cache -kontroller selv fra bunnen av, og testet den vellykket på FPGA. Jeg har p
Design av en enkel VGA -kontroller i VHDL og Verilog: 5 trinn
Design av en enkel VGA -kontroller i VHDL og Verilog: I denne instruksen skal vi designe en enkel VGA -kontroller i RTL. VGA -kontrolleren er den digitale kretsen designet for å drive VGA -skjermer. Den leser fra Frame Buffer (VGA Memory) som representerer rammen som skal vises, og genererer nese
Design av SPI Master i VHDL: 6 trinn
Design av SPI Master i VHDL: I denne instruksen skal vi designe en SPI Bus Master fra bunnen av i VHDL