Indholdsfortegnelse:

Design af I2C Master i VHDL: 5 trin
Design af I2C Master i VHDL: 5 trin

Video: Design af I2C Master i VHDL: 5 trin

Video: Design af I2C Master i VHDL: 5 trin
Video: Stopwatch in VHDL and FPGA DE1-soc #fpga #vhdl #de1-soc #stopwatch #diy 2024, Juli
Anonim
Design af I2C Master i VHDL
Design af I2C Master i VHDL

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: