Cuprins:

Proiectarea masterului I2C în VHDL: 5 pași
Proiectarea masterului I2C în VHDL: 5 pași

Video: Proiectarea masterului I2C în VHDL: 5 pași

Video: Proiectarea masterului I2C în VHDL: 5 pași
Video: [RO] Curs 05 Proiectarea cu Microprocesoare - I2C și USB 2024, Iulie
Anonim
Proiectarea masterului I2C în VHDL
Proiectarea masterului I2C în VHDL

În acest instructiv, se discută despre proiectarea unui master I2C simplu în VHDL.

NOTĂ: faceți clic pe fiecare imagine pentru a vedea imaginea completă

Pasul 1: Prezentare generală a autobuzului I2C

• Standuri pentru circuit integrat inter.

• Sincron, Half duplex.

• Interfață cu două fire - SDA și SCL.

• SDA - Linie de date seriale controlată de Master și Slave

• SCL - Ceas serial generat de Master

• Protocol multi-master, multi-slave.

• Două moduri - 100 kbits / sec și 400 kbits / sec: lent și rapid.

Pasul 2: Proiectare RTL în VHDL

Specificații de proiectare ale masterului nostru I2C

  • Cadru de date pe 8 biți.
  • Numai control unidirecțional SCL.
  • Adresa slave de 7 biți.
  • Suportă atât modurile lente, cât și cele rapide.
  • Single Master, Multi-slave.
  • A respectat specificațiile originale I2C de la Philips.

Se folosește codul RTL pur. Deci IP-ul este ușor portabil pe toate FPGA-urile. Designul compact bazat pe FSM utilizând ceasul generat intern asigură o suprafață și o performanță optime.

Pasul 3: Simulare și testare

Mediu de testare

  • Simulare funcțională și testare folosind terță parte I2C Slave IP.
  • Sintetizat folosind setul de instrumente Xilinx Vivado.
  • Implementat și testat pe placa FPGA Artix-7.
  • Proiectare verificată pentru 100 MHz.
  • Forme de undă testate pe DSO / CRO.
  • Comunicarea testată cu succes cu Arduino UNO ca I2C Slave.

Pasul 4: Note importante

  • În timp ce testați Master folosind I2C Slave IP, configurați codul slave conform cerințelor dvs. Poate doriți să modificați frecvența de ceas implicită și adresa slave. Frecvența ceasului trebuie configurată și în codul Master.
  • În timp ce testați la bord, nu uitați de rezistențele pull-up, deoarece linia SDA este o ieșire obișnuită de scurgere !!! Verificați google pentru rezistența de tracțiune recomandată pentru diferite viteze i2c. Am folosit 2.2K pentru 100 kHz.
  • Dacă nu utilizați bancul de testare și simulați Masterul independent, simulați cu atenție semnalul SDA, deoarece este un semnal bidirecțional (intrare). Are doi șoferi, partea master și partea slave. Ar trebui să știi când să „forțezi” și când să „forțezi”.
  • SCL este o linie unidirecțională. Nu este nevoie de pull-up.
  • Vă rugăm să accesați documentația IP cu atenție.

Pasul 5: Fișiere atașate

  • Toate codurile RTL ale I2C Master.
  • Banc de testare, coduri Slave I2C, de asemenea, pentru testare.
  • Documentație IP.

Pentru orice întrebări, nu ezitați să mă contactați:

Mitu Raj

urmează-mă:

Pentru întrebări, contactați: [email protected]

Recomandat: