Inhoudsopgave:

Ontwerp van I2C Master in VHDL - Ajarnpa
Ontwerp van I2C Master in VHDL - Ajarnpa

Video: Ontwerp van I2C Master in VHDL - Ajarnpa

Video: Ontwerp van I2C Master in VHDL - Ajarnpa
Video: Pro Micro ATMEGA32U4 Arduino Pins and 5V, 3.3V Explained 2024, Juli-
Anonim
Ontwerp van I2C Master in VHDL
Ontwerp van I2C Master in VHDL

In deze instructable wordt het ontwerpen van een eenvoudige I2C-master in VHDL besproken.

OPMERKING: klik op elke afbeelding om de volledige afbeelding te zien

Stap 1: I2C-busoverzicht

•Staat voor Inter Integrated Circuit.

•Synchroon, Half duplex.

•Tweedraadsinterface - SDA en SCL.

•SDA – Seriële datalijn bestuurd door Master en Slave

•SCL – Seriële klok gegenereerd door Master

•Multi-master, Multi-slave-protocol.

•Twee modi - 100 kbits/sec en 400 kbits/sec: langzaam en snel.

Stap 2: RTL-ontwerp in VHDL

Ontwerpspecificaties van onze I2C Master

  • 8-bits dataframe.
  • Alleen SCL unidirectionele bediening.
  • 7-bits slave-adres.
  • Ondersteunt zowel langzame als snelle modi.
  • Enkele master, meerdere slaven.
  • Voldoet aan de originele I2C-specificaties van Philips.

Er wordt gebruik gemaakt van pure RTL-code. Het IP-adres is dus gemakkelijk overdraagbaar over alle FPGA's. Compact FSM-gebaseerd ontwerp met intern gegenereerde klok zorgt voor optimale oppervlakte en prestaties.

Stap 3: Simulatie en testen

Test omgeving

  • Functionele simulatie en testen met behulp van I2C Slave IP van derden.
  • Gesynthetiseerd met behulp van Xilinx Vivado gereedschapsset.
  • Geïmplementeerd en getest op Artix-7 FPGA bord.
  • Timing geverifieerd ontwerp voor 100 MHz.
  • Geteste golfvormen op DSO/CRO.
  • Succesvol geteste communicatie met Arduino UNO als I2C Slave.

Stap 4: Belangrijke opmerkingen

  • Configureer tijdens het testen van Master met I2C Slave IP de slave-code volgens uw vereisten. Misschien wilt u de standaardklokfrequentie en het slave-adres wijzigen. De klokfrequentie moet ook in de mastercode worden geconfigureerd.
  • Vergeet tijdens het testen aan boord de pull-up-weerstanden niet, aangezien de SDA-lijn een gemeenschappelijke afvoeruitgang is !!! Controleer google voor de aanbevolen pull-up-weerstand voor verschillende i2c-snelheden. Ik gebruikte 2.2K voor 100 kHz.
  • Als u geen testbank gebruikt en de Master onafhankelijk simuleert, simuleer dan zorgvuldig het SDA-signaal, aangezien het een bidirectioneel signaal (inout) signaal is. Het heeft twee drivers, masterzijde en slavezijde. U moet weten wanneer u moet 'dwingen' en wanneer u moet 'afdwingen'.
  • SCL is een unidirectionele lijn. Optrekken is niet nodig.
  • Neem de IP-documentatie grondig door.

Stap 5: Bijgevoegde bestanden

  • Alle RTL-codes van I2C Master.
  • Testbank, ook I2C Slave-codes, om te testen.
  • IP-documentatie.

Voor vragen kunt u gerust contact met mij opnemen:

Mitu Raj

volg mij:

Neem voor vragen contact op met: [email protected]

Aanbevolen: