Turinys:
- 1 žingsnis: I2C magistralės apžvalga
- 2 žingsnis: RTL dizainas VHDL
- 3 žingsnis: modeliavimas ir testavimas
- 4 žingsnis: svarbios pastabos
- 5 veiksmas: pridedami failai
Video: „I2C Master“dizainas VHDL: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Šioje instrukcijoje aptariamas paprasto I2C meistro kūrimas VHDL.
PASTABA: Norėdami pamatyti visą vaizdą, spustelėkite kiekvieną vaizdą
1 žingsnis: I2C magistralės apžvalga
• Integracinės grandinės stovai.
• Sinchroninis, pusiau dvipusis.
• Dviejų laidų sąsaja - SDA ir SCL.
• SDA - serijinių duomenų linija, valdoma „Master“ir „Slave“
• SCL - serijos laikrodis, sukurtas meistro
• Multi-master, Multi-slave protokolas.
• Du režimai - 100 kbits/sec ir 400 kbits/sec: lėtas ir greitas.
2 žingsnis: RTL dizainas VHDL
Mūsų „I2C Master“dizaino specifikacijos
- 8 bitų duomenų rėmas.
- Tik vienpusis SCL valdymas.
- 7 bitų vergo adresas.
- Palaiko lėtus ir greitus režimus.
- Vienas meistras, kelių vergų.
- Atitinka originalias „Philips“„I2C“specifikacijas.
Naudojamas grynas RTL kodas. Taigi IP yra lengvai nešiojamas visuose FPGA. Kompaktiškas FSM pagrįstas dizainas, naudojant vidinį laikrodį, užtikrina optimalų plotą ir našumą.
3 žingsnis: modeliavimas ir testavimas
Bandymo aplinka
- Funkcinis modeliavimas ir testavimas naudojant trečiosios šalies „I2C Slave IP“.
- Sintezuojamas naudojant „Xilinx Vivado“įrankių rinkinį.
- Įdiegta ir išbandyta „Artix-7 FPGA“plokštėje.
- Laiko patikrintas dizainas 100 MHz.
- Išbandytos bangos formos DSO/CRO.
- Sėkmingai išbandytas ryšys su „Arduino UNO“kaip „I2C Slave“.
4 žingsnis: svarbios pastabos
- Bandydami „Master“naudodami „I2C Slave IP“, sukonfigūruokite vergo kodą pagal savo reikalavimus. Galbūt norėsite pakeisti numatytąjį laikrodžio dažnį ir vergo adresą. Laikrodžio dažnis taip pat turėtų būti sukonfigūruotas pagrindiniame kode.
- Atliekant bandymus laive, nepamirškite traukiamųjų rezistorių, nes SDA linija yra įprasta išleidimo anga !!! Patikrinkite „Google“, ar nėra rekomenduojamo pritraukimo rezistoriaus, skirto skirtingiems „i2c“greičiams. 100 kHz naudojau 2,2K.
- Jei nenaudojate bandymo stendo ir savarankiškai imituojate pagrindinį, atsargiai imituokite SDA signalą, nes tai yra dvikryptis (įvesties) signalas. Jame yra dvi tvarkyklės - pagrindinė ir verginė. Turėtumėte žinoti, kada „priversti“ir kada „nepriversti“.
- SCL yra vienkryptė linija. Nereikia prisitraukti.
- Atidžiai perskaitykite IP dokumentus.
5 veiksmas: pridedami failai
- Visi „I2C Master“RTL kodai.
- Bandymo stendas, I2C slave kodai taip pat, bandymui.
- IP dokumentacija.
Jei turite klausimų, nedvejodami susisiekite su manimi:
Mitu Raj
sekite mane:
Jei turite klausimų, susisiekite: [email protected]
Rekomenduojamas:
Paprasto keturių krypčių asociatyvaus talpyklos valdiklio VHDL dizainas: 4 žingsniai
Paprasto keturių krypčių rinkinio asociatyvaus talpyklos valdiklio dizainas VHDL: Ankstesniame nurodyme pamatėme, kaip sukurti paprastą tiesioginį žemėlapio talpyklos valdiklį. Šį kartą žengiame žingsnį į priekį. Mes sukursime paprastą keturių krypčių asociatyvaus talpyklos valdiklį. Privalumas? Mažesnis praleidimo procentas, bet už perfo kainą
VHDL programuojamo pertraukimo valdiklio dizainas: 4 žingsniai
VHDL programuojamo pertraukimo valdiklio dizainas: esu priblokštas tokio pobūdžio atsakymų, kuriuos gaunu šiame tinklaraštyje. Ačiū vaikinai, kad lankotės mano tinklaraštyje ir paskatinote mane pasidalinti su jumis savo žiniomis. Šį kartą pristatysiu dar vieno įdomaus modulio, kurį matome visuose SOC, dizainą - „Interrupt C
Paprasto talpyklos valdiklio VHDL dizainas: 4 žingsniai
Paprasto talpyklos valdiklio VHDL dizainas: Rašau šį nurodymą, nes man buvo šiek tiek sunku gauti tam tikrą nuorodinį VHDL kodą, kad išmokčiau ir pradėčiau kurti talpyklos valdiklį. Taigi aš pats nuo pat pradžių sukūriau talpyklos valdiklį ir sėkmingai išbandžiau jį FPGA. Turiu p
Paprasto VGA valdiklio dizainas VHDL ir „Verilog“: 5 žingsniai
Paprasto VGA valdiklio dizainas VHDL ir „Verilog“: Šioje instrukcijoje mes suprojektuosime paprastą VGA valdiklį RTL. VGA valdiklis yra skaitmeninė grandinė, skirta VGA ekranams valdyti. Jis nuskaitomas iš kadrų buferio (VGA atmintis), rodančio rodomą kadrą, ir sukuria reikiamą
„SPI Master“dizainas VHDL: 6 žingsniai
„SPI Master“dizainas VHDL: Šioje instrukcijoje mes suprojektuosime „SPI Bus Master“nuo pat pradžių VHDL