Cuprins:
- Pasul 1: Prezentare generală a autobuzului I2C
- Pasul 2: Proiectare RTL în VHDL
- Pasul 3: Simulare și testare
- Pasul 4: Note importante
- Pasul 5: Fișiere atașate
Video: Proiectarea masterului I2C în VHDL: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Î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:
Proiectarea unui controler asociat asociat de cache simplu în patru direcții în VHDL: 4 pași
Proiectarea unui controler de cache asociativ setat în patru direcții în VHDL: În instructajul meu anterior, am văzut cum să proiectăm un controler de cache direct mapat simplu. De data aceasta, facem un pas înainte. Vom proiecta un controler cache asociativ simplu cu patru căi. Avantaj? Mai puțină rata de rate, dar cu prețul perfo
Proiectarea unui controler de întrerupere programabil în VHDL: 4 pași
Proiectarea unui controler de întrerupere programabil în VHDL: sunt copleșit de tipul de răspunsuri pe care le primesc în acest blog. Mulțumesc băieți că mi-ați vizitat blogul și m-ați motivat să vă împărtășesc cunoștințele. De data aceasta, voi prezenta designul unui alt modul interesant pe care îl vedem în toate SOC - Interrupt C
Proiectarea unui controller de cache simplu în VHDL: 4 pași
Proiectarea unui controler de cache simplu în VHDL: scriu acest lucru instructiv, pentru că mi s-a părut puțin dificil să obțin un cod VHDL de referință pentru a învăța și a începe proiectarea unui controler de cache. Așa că am proiectat un controler cache de la zero și l-am testat cu succes pe FPGA. Am p
Proiectarea unui controler VGA simplu în VHDL și Verilog: 5 pași
Proiectarea unui controler VGA simplu în VHDL și Verilog: În acest instructable, vom proiecta un controler VGA simplu în RTL. VGA Controller este circuitul digital conceput pentru a conduce afișaje VGA. Se citește din Frame Buffer (memorie VGA) care reprezintă cadrul care trebuie afișat și generează nece
Proiectarea SPI Master în VHDL: 6 pași
Proiectarea SPI Master în VHDL: În acest instructable, vom proiecta un SPI Bus Master de la zero în VHDL