Innehållsförteckning:
- Steg 1: I2C -bussöversikt
- Steg 2: RTL -design i VHDL
- Steg 3: Simulering och testning
- Steg 4: Viktiga anmärkningar
- Steg 5: Bifogade filer
Video: Design av I2C Master i VHDL: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
I denna instruktör diskuteras att designa en enkel I2C -master i VHDL.
OBS: klicka på varje bild för att se hela bilden
Steg 1: I2C -bussöversikt
• Står för interintegrerad krets.
• Synkron, halv duplex.
• Två tråds gränssnitt - SDA och SCL.
• SDA - Seriell datalinje som styrs av Master och Slave
• SCL - Seriell klocka genererad av Master
• Multi-master, Multi-slave-protokoll.
• Två lägen - 100 kbits/sek och 400 kbits/sek: långsam och snabb.
Steg 2: RTL -design i VHDL
Designspecifikationer för vår I2C Master
- 8-bitars dataram.
- Endast SCL enkelriktad kontroll.
- 7-bitars slavadress.
- Stöder både långsamma och snabba lägen.
- Single Master, Multi-slav.
- Uppfyller de ursprungliga I2C -specifikationerna från Philips.
Ren RTL -kod används. Så IP är lätt att bära över alla FPGA: er. Kompakt FSM -baserad design med internt genererad klocka garanterar optimal yta och prestanda.
Steg 3: Simulering och testning
Testmiljö
- Funktionell simulering och testning med hjälp av tredje part I2C Slave IP.
- Syntetiserat med Xilinx Vivado verktygssats.
- Implementerad och testad på Artix-7 FPGA-kort.
- Timingverifierad design för 100 MHz.
- Testade vågformer på DSO/CRO.
- Framgångsrikt testad kommunikation med Arduino UNO som I2C Slave.
Steg 4: Viktiga anmärkningar
- När du testar Master med I2C Slave IP konfigurerar du slavkoden enligt dina krav. Du kanske vill ändra standardklockfrekvensen och slavadressen. Klockfrekvensen bör också konfigureras i masterkoden.
- Vid test ombord, glöm inte uppdragningsmotstånd eftersom SDA-ledning är vanlig utgång !!! Kontrollera google för rekommenderat uppdragningsmotstånd för olika i2c-hastigheter. Jag använde 2,2K för 100 kHz.
- Om du inte använder testbänken och simulerar Master oberoende, simulera försiktigt SDA-signalen, eftersom det är en dubbelriktad signal (in) signal. Den har två förare, mastersidan och slavsidan. Du bör veta när du ska "tvinga" och när du ska "tvinga fram".
- SCL är en enkelriktad linje. Inget behov av uppdrag.
- Gå igenom IP -dokumentationen noggrant.
Steg 5: Bifogade filer
- Alla RTL -koder för I2C Master.
- Testbänk, I2C Slavkoder också, för testning.
- IP -dokumentation.
För frågor, kontakta mig gärna:
Mitu Raj
följ mig:
För frågor, kontakta: [email protected]
Rekommenderad:
Design av en enkel fyrvägsuppsättning associerad cachekontroller i VHDL: 4 steg
Utformning av en enkel fyrvägsuppsättning associerad cachekontroller i VHDL: I min tidigare instruerbarhet såg vi hur man utformar en enkel direktkartad cachekontroller. Den här gången går vi ett steg framåt. Vi kommer att utforma en enkel fyrvägsuppsättning associerad cache-kontroller. Fördel? Mindre missfrekvens, men på bekostnad av perfo
Design av en programmerbar avbrottsstyrenhet i VHDL: 4 steg
Design av en programmerbar avbrottsstyrenhet i VHDL: Jag är överväldigad av den typ av svar jag får i den här bloggen. Tack killar för att du besökte min blogg och motiverade mig att dela min kunskap med dig. Den här gången kommer jag att presentera designen av en annan intressant modul som vi ser i alla SOC - Interrupt C
Design av en enkel cachekontroller i VHDL: 4 steg
Design av en enkel cachekontroller i VHDL: Jag skriver detta instruerbart, eftersom jag tyckte att det var lite svårt att få lite referens -VHDL -kod att lära sig och börja designa en cachekontroller. Så jag designade själv en cachekontroller från början och testade den framgångsrikt på FPGA. Jag har p
Design av en enkel VGA -kontroller i VHDL och Verilog: 5 steg
Design av en enkel VGA -styrenhet i VHDL och Verilog: I den här instruktören ska vi designa en enkel VGA -styrenhet i RTL. VGA Controller är den digitala kretsen som är utformad för att driva VGA -skärmar. Den läser från Frame Buffer (VGA Memory) som representerar ramen som ska visas, och genererar nece
Design av SPI Master i VHDL: 6 steg
Design av SPI Master i VHDL: I denna instruktiva kommer vi att designa en SPI Bus Master från grunden i VHDL