Tartalomjegyzék:
Videó: Készítsen bármilyen érzékelőt az FPGA -ból: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
A legtöbb gyártó legalább egyszer életében megpróbált hőmérőt építeni, talán az, aki otthon van, nem elég okos, vagy talán úgy gondolja, hogy megépítheti a következő FÉRFT -et. Ennek ellenére valamikor volt egy mikrokontrollerük a legmodernebb szoftverrel, amely egy hőmérséklet-érzékelőhöz volt csatlakoztatva (és talán más érzékelők: nyomás, fény). Eddig minden tökéletes, a szoftver fut és az érzékelő érzékel. Teszteljük!
Hmmmm … talán fel kellene melegítenie az érzékelőt hajszárítóval, és le kell hűteni jéggel, egy ideig működik. De nem tűnik professzionálisnak, az érzékelő túl gyorsan megváltoztatja az értékeket, ha felmelegíti, nem melegszik fel pár foknál. A projekt egy mellszobor! De az algoritmus új, sok tényezőt figyelembe vesz, milyen kár, hogy elakadt ezen az ostoba apróságon.
A megoldásom a következő: állítson be egy FPGA-t érzékelőként, amelynek értékei a számítógépről (vagy a memóriában tárolva, vagy az FPGA-n belül ad-hoc módon létrehozva) vannak. Tehát az értékes MCU számára az FPGA úgy néz ki, mint egy érzékelő, de nem bármelyik érzékelő: bármelyik érzékelő tetszik. Talán úgy dönt, hogy a vártnál nagyobb felbontásra vagy gyorsabb válaszidőre van szüksége, cserélnie kell az érzékelőt. Rendeld meg online, pár napon belül, pár hónap múlva megérkezik, ki tudja. Nyomja meg a PCB -t, vagy rendeljen egy modult az új érzékelővel. Vagy… néhány kattintás, és az FPGA vadonatúj érzékelőként van konfigurálva, és emulálni tudja a pontos belső konfigurációt.
Ennek írásakor az FPGA LM75 -ként működhet, a BRAM -ban tárolt hőmérsékleti adatokkal (az FPGA -n).
1. lépés: Az MCU
Az én választott MCU -m az LPC4337 LPCXpresso -n. A tetején van egy pajzsom (LPC General Purpose Shield) kijelzővel és egy valódi LM75 érzékelővel. Az LPC4337 egy ARM Cortex M4, amely 200 MHz -en fut, és egy kisebb Cortex M0 (itt nem használatos). Az igazi érzékelő az I2C1 perifériához van csatlakoztatva, a virtuális pedig az I2C0 -hoz. A forrás elérhető a GitHub -on.
Hogyan kell felépíteni? Töltse le az LPCXpresso IDE -t az LPCOpen könyvtárral együtt. Importálja ezt a könyvtárat az IDE -be, és nyissa meg a projektet a GitHub -ból. Mindent be kell állítani, és kattintson a "Hibakeresés" gombra a bal alsó sarokban.
Az egész projekt az NXP egyik példáján alapul (hogy megmutassa, hogy a projektem valódi érzékelőt szimulál, és nincs szüksége speciális kódra az MCU oldalon). A fő fájlban (az úgynevezett iox_sensor.cpp) ez a kód található:
#define SENSORS_ON_SHIELD
#if meghatározott (SENSORS_ON_SHIELD) #define SHIELD_I2C I2C1 #elif define (SENSORS_ON_FPGA) #define SHIELD_I2C I2C0 #endif
A SENSOR_ON_SHIELD és SENSOR_OR_FPGA beállítások megváltoztatásával a felhasználó a fordítás idején átválthat arra, hogy melyik érzékelőnek kell beszélnie, az igazihoz vagy a virtuálishoz, mivel különböző I2C érintkezőkön vannak.
2. lépés: Az FPGA
A választott FPGA kártyám a Digilent által gyártott Artix 7, Xilinx Arty 7. A PMod csatlakozók közül kettőt használnak, egyet a hibakereséshez, egyet pedig a valódi hasznos terheléshez, az MCU kártyához való csatlakozást.
Ismét az FPGA forráskódja elérhető a GitHub -on (fpgaSide mappa).
Hogyan kell felépíteni? Töltse le, vásárolja meg vagy nyissa meg a Xilinx Vivado IDE -t. Importálja a projektfájlokat a GitHub -ból. Az egyik fájl (content.coe) a nyers formátumú hőmérsékleti adatok, amelyeket a hamis érzékelőre továbbítanak. Van egy ugyanilyen nevű Excel fájl is, amely segít az ember által olvasható hőmérsékleti adatok nyers LM75 adatokká alakításában. Azt tervezem, hogy ezt egy automatizált folyamatra változtatom, Java -ban írt szoftverrel, de addig ez a megoldás működik. A szintézisnek és a megvalósításnak el kell telnie egy ideig, ezt vegye figyelembe.
3. lépés: Hogyan működik?
Mint mondtam, az MCU esetében az FPGA érzékelőnek tűnik, pontosabban I2C érzékelőnek. Az I2C periféria kimenete az FPGA bemenetéhez van csatlakoztatva. Az FPGA belsejében 3 fő összetevő található:- I2C vezérlő- I2C eszköz- adatok Az I2C vezérlő fogadja az I2C adatokat az FPGA csapjaitól, és elküldi azokat az FPGA többi részére, és ugyanezt fordított sorrendben teszi. Belső állapotgépet tart fenn az I2C protokoll számára (mellesleg itt található a dokumentáció). Mit küld ez az összetevő az I2C eszköznek? A jelenleg fogadott bájt, annak helye az aktuális kommunikációban, és hogy az MCU ír -e vagy olvas az FPGA -ból. Az I2C eszköz fogadja az elküldött bájtokat, és frissíti az érzékelő szimulált belső szerkezetét. Lehet, hogy csak frissíti a regisztermutatót, vagy új adatokat kér az adatforrástól. Az Adatösszetevő új adatpontokat továbbít. Jelenleg ez csak egy ROM memória, amelynek címe másodpercenként (körülbelül) kétszer növekszik.
Mi a végcélom? A második képen látható. Azaz: lehetővé kell tenni, hogy több I2C eszköz (érzékelő és egyéb) szimulálható legyen egyszerre az FPGA -n belül. Az érzékelő hátoldalán lévő adatokat az FPGA -ban tárolja gyorsítótárba, és USB -ről vagy Ethernetről továbbítja a számítógépről. Támogatja a fejlettebb érzékelőket és más I2C eszközöket (memória, LED -illesztőprogramok stb.).
4. lépés: Összerakni
Itt az ideje, hogy mindent összekapcsoljon. Elméletileg egyszerű: az mcu kártyán van egy PMod csatlakozó (I2C0 és SSP0 (úgy is működhet, mint az SPI)). Az Artix tábla 4 PMod csatlakozóval rendelkezik, amelyek tetszés szerint használhatók. A D csatlakozót választom az MCU -val való beszélgetéshez, és a B csatlakozót a Logic Analyzer készülékhez való csatlakozáshoz.
Figyelem
A két táblát nem lehet csak úgy összekapcsolni. Miért? A PMod -ot úgy építették fel, hogy megkönnyítse a Master/Host kártya (amely áramot ad) csatlakoztatását a Slave/Sensor kártyához (amely áramot kap). De ebben a projektben mindkét tábla áramot ad, és ha az egyik tábla 3.3V -os kimenetét a másik kártya 3.3V -os kimenetéhez csatlakoztatja, rossz dolgok történhetnek. De lehet, hogy nem, és lehet, hogy csak megváltoztatja az FPGA tápegységeinek paramétereit (nagyon gondosan vannak megtervezve). Tehát ne vállalja ezt a kockázatot, és mozgassa a csatlakozót egy tűvel balra (és fordítsa meg az FPGA kártyát is), ahogy a fenti képeken látható. Itt a PMod specifikáció, tanulmányozd át, amit tettem rövid szavakkal, hogy ne csatlakoztassam a két tábla VCC -jét.
Ajánlott:
Készítsen bármilyen fülhallgatót Bluetooth -ba - engedélyezett fülhallgató: 4 lépés
Készítsen bármilyen fülhallgatót Bluetooth -ba - engedélyezett fülhallgató: Tehát nemrég a mobilom audio csatlakozója nem működött, és ezért nem tudtam zenét hallgatni vagy youtube -ot nézni, ami elég nagy dolog egy olyan tinédzser számára, mint én. Ez a projekt szükségből született, és nem csak egy szórakoztató projekt, amin dolgozni kell. Ez nem
Készítsen Apple HomeKit hőmérséklet -érzékelőt (BME280) RaspberryPI és BME280 segítségével: 5 lépés
Készítsen Apple HomeKit hőmérséklet -érzékelőt (BME280) RaspberryPI és BME280 segítségével: Az elmúlt hónapokban az IOT eszközökkel játszottam, és körülbelül 10 különböző érzékelőt telepítettem a házam és a nyaralóm körülményeinek megfigyelésére. És eredetileg az AOSONG DHT22 mérsékelt páratartalom érzékelőt kezdtem használni
Bármilyen médiafájlt konvertálhat (csaknem) bármilyen más médiafájlba ingyen !: 4 lépés
Bármilyen médiafájlt konvertálhat (csaknem) bármilyen médiafájlba (csaknem) bármilyen más médiafájlba ingyen !: Az első tanulságos, üdv! Mindenesetre a Google -ban kerestem egy ingyenes programot, amely átalakítja a Youtube.flv fájljaimat olyan formátumba, amely univerzálisabb, mint a.wmv vagy.mov. Számtalan fórumon és weboldalon kerestem, majd találtam egy programot
Készítsen elő néhány PIR érzékelőt a robotikához: 3 lépés (képekkel)
Készítsen néhány felesleges PIR érzékelőt a robotikához: Egy csomó PIR érzékelőt találtam az eBay -en. Egy PCB -re vannak felszerelve, amelyet mobiltelefonok kihangosító készletéhez gyártottak. Szeretem itt leírni, hogyan kell felkészíteni az érzékelőt a robotikai projektekben való használatra. Ha nem tudja, mi az a PIR -érzékelő
Bármilyen 5.1 hangszórórendszert használhat bármilyen MP3 lejátszóval vagy számítógéppel, olcsón!: 4 lépés
Használjon bármilyen 5.1 -es hangszórórendszert BÁRMILYEN MP3 lejátszóval vagy számítógéppel, olcsón!: (Ez az első oktatható, és angolul nem az anyanyelvem) A napokban olcsón vettem egy Creative Inspire 5100 hangszóró készletet. Az asztali gépemmel használtam, akinek volt 5.1 -es hangkártyája (PCI). Aztán használtam a laptopommal, akinek volt egy