Harmadik éve, amikor Hackaday rendezi a következő konferenciát, egy jó hagyományt követi: kitűzőt oszt ki a résztvevők számára, amelyek ugyanakkor meglehetősen erőteljes számítási rendszerek. Az eszközöket a jegyár tartalmazza. Kis méretű ipari sorozatban készülnek, de nyitott hardver, ami azt jelenti, hogy mindenki, aki nem tud bejutni a konferenciára, ha vágya és képessége van arra, hogy ugyanolyan kitűzőt készítsen magának, mint házi csináld magad. A fejlesztői csapat ezúttal meglehetősen nagy: szerzők Lutetium, Aleksandar Bradic, Mike Szczys, Sophi Kravitz, Mike Walters, Sprite_tm, Elliot Williams, de∫hipu, Kumar Abhishek, Piotr Esden-Tempski, Voja Antonic, Zapp, Roger becenevek alatt, Hyr0n, Sylvain Munaut és Sean Cross. És igen, a Voya Antonich ismét ugyanaz, a most már szüreti és egy új Galaksija otthoni számítógép fejlesztője.
Ha a korábbi időkben a jelvényt Cybikohoz hasonló QFERTY billentyűzettel vagy a Nokia Asha 200-hoz hasonló billentyűzettel készítették, és futtathatta a Z80 emulátort, a CP / M operációs rendszert és az alapvető nyelvi tolmácsot, most már inkább zsebnek tűnik. egy játékkonzol, mint a Game Boy. És akár 40-tűs patronokat is csatlakoztathat. És ezúttal az FPGA Lattice LFE5U-45F készüléken készült.
Az eszköz ismétlését a hardverrel kell kezdeni. Az első lépés az összes fájl letöltése innen és telepítse először a szükséges szoftvert - KiCad. Nyissa meg az ábrát (a hadbadge2019.sch fájl), és a megjegyzések áttekintése után vásárolja meg az összes benne szereplő komponenst (hadbadge2019-bom-notes.txt fájl). Nyissa meg az áramköri rajzot (hadbadge2019.kicad_pcb fájl) és exportálja Gerber formátumba. Rendelje meg a deszka gyártását a megfelelő profilú cégnél. Akkor sem segít, ha folyékonyan beszél LUT-ban. Az okostelefonok javításával foglalkozó műhelyben BGA esetekben rendelje meg a szerelést az alkatrészlapra. Az összes többi komponenst önmagában könnyen megforraszthatja, az alábbi képre összpontosítva, emlékezve arra, hogy egyes alkatrészek, például a LED-ek, polárosak.
Az FPGA-ban meg kell töltenie a rendszerbetöltőt a programozóval, az összes ehhez szükséges fájl letöltésével innen. Ezt követően a számítógép és a kártya minden további interakciója USB-n keresztül történik. Az FPGA teljes „újjáélesztése” érdekében le kell töltenie az eszközkészletet innen, és a RISC-V processzor FPGA-n történő megvalósításának és a perifériákkal való interakció kódja: innen. Fordítsa le és töltse ki a kódot.
Ezután a fórumot szokásos flash meghajtóként definiálják, és rá lehet helyezni a fájlokat a hozzá tervezett programokkal. A memóriában tárolt programkártyák a képernyőn megjelenő menüben a gombok segítségével választhatók ki.
A patron opcionális. Ez egy nagyon egyszerű deszka, amelyet a LUT megtehet, vagy akár a deszkán is. Az alábbiakban egy rajz a patronról és egy kép a tábláról:
Telepíthet egy flash memória chipet a patronra, majd a telepítéskor a betöltés automatikusan megkezdődik, amikor bekapcsolja. Vannak olyan platformok is, amelyek lehetővé teszik a különféle perifériák csatlakoztatását a patronlapon. A patron megismételéséhez szükséges fájlok: ittés a KiCad, ha megismételte a kitűzőt, akkor már megvan.
Ha nem programozó, akkor minden készen áll. Vehetsz példákat itt és itt és kísérletezzen. Ha úgy dönt, hogy bármilyen jelvényszoftvert készít, akkor a fejlesztők bemutatják mindenkinek a módját, amellyel kapcsolatba lépnek felhasználói programjaikkal a perifériára.
A gombnevek a GOMB szóból, az aláhúzásból és a következő szavak egyikéből állnak: FEL, LE, LE, JOBB, A, B, VÁLASZT, KEZDÉS.
Példakód egy gomb lekérdezésére:
if ((MISC_REG (MISC_BTN_REG) és BUTTON_RIGHT)) {
// Tegyen valamit, amikor a jobb gombot megnyomja.
}
Példakód az időzítő 60 Hz frekvencián történő felolvasására:
uint32_t counter60hz (érvénytelen) {
visszatérés GFX_REG (GFX_VBLCTR_REG);
}
Példakód egy szám olvasására egy hardver véletlenszám-generátorról:
MISC_REG (MISC_RNG_REG)
Példakód a LED vezérléshez:
MISC_REG (MISC_LED_REG) = 0xF;
Az eszköz grafikus motorjáról a legteljesebb információ található ebben a fájlban. Grafika - csempe és sprite (mint a NES). A képernyőn megjelenő kép négy rétegből áll (felülről lefelé felsorolva): egy sprite rétegből, B rétegből, A rétegből és egy háttérrétegből. A lapkakészletek, amelyek teljes felbontása 256x512 pixel, négyzet alakú lapokból állnak, oldalsó 16 pixel. A paletta 16 bites.
A réteg 64x64 csempéket tartalmaz, de a képernyőn látható egy 30x20 csempékből álló ablak. Ha egy réteget kiválasztunk, akkor az összes változása azonnal láthatóvá válik. Az ablakot simán lehet mozgatni a réteghez képest.
A lapokkal ellátott rétegek méretezhetők és torzíthatók, a main.c fájlban érvényes példák találhatók. A sprite réteggel végzett munkát még nem hajtották végre, közelebb kerülnek a konferenciához. A példákat ezután ugyanabba a fájlba helyezik.
Itt egy fejlesztői csapat kapott érdekes dizájnt. Valaki azt fogja mondani, hogy a korábbi időkben a QWERTY billentyűzettel és a BASIC-nal sokkal érdekesebb volt, ám a retrokomputerek mindkét világot emlékeznek - és otthon számítógépek és konzolok. És valószínűleg így van.