Indholdsfortegnelse:
- Trin 1: Oversigt over I2C -bus
- Trin 2: RTL Design i VHDL
- Trin 3: Simulering og test
- Trin 4: Vigtige bemærkninger
- Trin 5: Vedhæftede filer
Video: Design af I2C Master i VHDL: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I denne instruktive diskuteres Design af en simpel I2C -master i VHDL.
BEMÆRK: klik på hvert billede for at se det fulde billede
Trin 1: Oversigt over I2C -bus
• Står til Inter Integrated Circuit.
• Synkron, halv dupleks.
• To -tråds interface - SDA og SCL.
• SDA - Seriel datalinje styret af Master og Slave
• SCL - Serielt ur genereret af Master
• Multi-master, Multi-slave protokol.
• To tilstande - 100 kbits/sek og 400 kbits/sek: langsom og hurtig.
Trin 2: RTL Design i VHDL
Designspecifikationer for vores I2C Master
- 8-bit dataramme.
- Kun SCL-envejsstyring.
- 7-bit slave-adresse.
- Understøtter både langsomme og hurtige tilstande.
- Single Master, Multi-slave.
- Overholder originale I2C -specifikationer fra Philips.
Ren RTL -kode bruges. Så IP'en er let bærbar på tværs af alle FPGA'er. Kompakt FSM -baseret design ved hjælp af internt genereret ur sikrer optimalt område og ydeevne.
Trin 3: Simulering og test
Testmiljø
- Funktionel simulering og test ved hjælp af tredjeparts I2C Slave IP.
- Syntetiseret ved hjælp af Xilinx Vivado værktøjssæt.
- Implementeret og testet på Artix-7 FPGA board.
- Timing verificeret design til 100 MHz.
- Testede bølgeformer på DSO/CRO.
- Med succes testet kommunikation med Arduino UNO som I2C Slave.
Trin 4: Vigtige bemærkninger
- Mens du tester Master ved hjælp af I2C Slave IP, skal du konfigurere slavekoden i henhold til dine krav. Du vil måske ændre standardurfrekvensen og slaveadressen. Urfrekvensen bør også konfigureres i masterkoden.
- Mens du tester ombord, skal du ikke glemme pull-up-modstande, da SDA-ledning er almindelig drænoutput !!! Tjek google for anbefalet pull-up-modstand til forskellige i2c-hastigheder. Jeg brugte 2,2K til 100 kHz.
- Hvis du ikke bruger testbænk og simulerer Master uafhængigt, skal du omhyggeligt simulere SDA-signal, da det er et tovejs signal (inout) signal. Den har to chauffører, master side og slave side. Du bør vide, hvornår du skal 'tvinge' og hvornår du skal 'tvinge'.
- SCL er en ensrettet linje. Intet behov for pull-up.
- Gå grundigt igennem IP -dokumentationen.
Trin 5: Vedhæftede filer
- Alle RTL -koder for I2C Master.
- Testbænk, I2C Slave -koder også til test.
- IP -dokumentation.
Hvis du har spørgsmål, er du velkommen til at kontakte mig:
Mitu Raj
følg mig:
For spørgsmål, kontakt: [email protected]
Anbefalede:
Design af en simpel 4-vejs sæt associeret cache-controller i VHDL: 4 trin
Design af en simpel firevejssæt associeret cachecontroller i VHDL: I min tidligere instruerbare så vi, hvordan vi designede en simpel direkte kortlagt cachecontroller. Denne gang går vi et skridt foran. Vi designer en simpel associeret cache-controller med fire veje. Fordel? Mindre miss -rate, men på bekostning af perfo
Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin
Design af en programmerbar afbrydelsescontroller i VHDL: Jeg er overvældet over den slags svar, jeg får i denne blog. Tak fyre for at besøge min blog og motivere mig til at dele min viden med jer. Denne gang vil jeg præsentere designet af et andet interessant modul, vi ser i alle SOC'er - Interrupt C
Design af en simpel cache -controller i VHDL: 4 trin
Design af en simpel cache -controller i VHDL: Jeg skriver dette instruerbart, fordi jeg fandt det lidt svært at få en reference -VHDL -kode til at lære og begynde at designe en cache -controller. Så jeg designede selv en cache -controller fra bunden og testede den med succes på FPGA. Jeg har p
Design af en simpel VGA -controller i VHDL og Verilog: 5 trin
Design af en simpel VGA -controller i VHDL og Verilog: I denne instruktive skal vi designe en simpel VGA -controller i RTL. VGA Controller er det digitale kredsløb designet til at drive VGA -skærme. Den læser fra Frame Buffer (VGA Memory), der repræsenterer rammen, der skal vises, og genererer nece
Design af SPI Master i VHDL: 6 trin
Design af SPI Master i VHDL: I denne instruktive skal vi designe en SPI Bus Master fra bunden i VHDL