Kolmannen vuoden ajan, kun Hackaday isännöi seuraavaa konferenssia, se noudattaa hyvää perinnettä: se jakaa osallistujille merkit, jotka ovat samalla aika tehokkaita laskentajärjestelmiä. Laitteet sisältyvät lipun hintaan. Niitä valmistetaan pienissä teollisuussarjoissa, mutta ne ovat avoimia laitteita, mikä tarkoittaa, että jokainen, joka ei pääse konferenssiin, voi, jos heillä on halu ja kyky tehdä itsellesi sama merkki kuin kotitekoinen tee se itse. Tällä kertaa kehitysryhmä on melko suuri: nämä ovat kirjailijoita lempinimillä Lutetium, Aleksandar Bradic, Mike Szczys, Sophi Kravitz, Mike Walters, Sprite_tm, Elliot Williams, de∫hipu, Kumar Abhishek, Piotr Esden-Tempski, Voja Antonic, Zapp, Roger, Hyr0n, Sylvain Munaut ja Sean Cross. Ja kyllä, Voya Antonich on jälleen sama, nykyaikaisen ja kerran uuden Galaksija-kotitietokoneen kehittäjä.
Jos aikaisemmin tunnus tehtiin Cybikon tai QWERTY-näppäimistöpuhelimen kaltaisessa muodossa, kuten Nokia Asha 200, ja se pystyi ajamaan Z80-emulaattoria, CP / M-käyttöjärjestelmää ja Basic-kielitulkkia, nyt se näyttää enemmän taskutasolta. pelikonsolin, kuten Game Boy. Ja mahdollistaa jopa 40-nastaisten kasettien kytkemisen. Ja tällä kertaa se tehtiin FPGA Lattice LFE5U-45F -laitteella.
Laitteen toistamisen tulisi alkaa laitteistolta. Ensimmäinen asia on ladata kaikki tiedostot täältä ja asenna ensiksi tarvittava ohjelmisto - KiCad. Avaa siinä oleva kaavio (hadbadge2019.sch-tiedosto) ja osta kaikki siihen sisältyvät komponentit tarkistettuasi muistiinpanot (hadbadge2019-bom-notes.txt-tiedosto). Avaa piirilevyn muotoilu (tiedosto hadbadge2019.kicad_pcb) ja vie Gerber-muotoon. Tilaa levyn valmistus sopivan profiilin yrityksessä. Vaikka olet sujuvasti LUT: ssa, tässä tapauksessa se ei auta. Älypuhelimien korjauspajassa tilaa BGA-tapauksissa kiinnitys komponenttilevylle. Juotat kaikki muut komponentit helposti itse keskittymällä alla olevaan valoon ja muistat, että jotkut komponentit, esimerkiksi LEDit, ovat napaisia.
FPGA-ohjelmassa sinun on täytettävä käynnistyslataus ohjelmoijalla lataamalla kaikki siihen tarvittavat tiedostot täältä. Tämän jälkeen kaikki tietokoneesi jatkuva vuorovaikutus kortin kanssa tapahtuu USB: n kautta. FPGA: n "elvyttämiseksi" kokonaan sinun on ladattava työkalupakki täältä, ja koodi RISC-V-prosessorin toteuttamiseksi FPGA: ssa ja vuorovaikutuksessa oheislaitteiden kanssa on täältä. Käännä ja täytä koodi.
Sen jälkeen kortti määritetään tavanomaiseksi flash-asemaksi, ja siihen on mahdollista laittaa tiedostoja sille tarkoitettujen ohjelmien kanssa. Muistiin tallennetut ohjelmakortit voidaan valita painikkeilla näyttövalikon kautta.
Patruuna on valinnainen. Tämä on hyvin yksinkertainen lauta, jonka LUT voi tehdä tai jopa ovilevylle. Alla on kaavio patruunasta ja kuva sen taulusta:
Voit asentaa flash-muistisirun kasettiin, ja kun se on asennettu, lataus siitä alkaa automaattisesti, kun se kytketään päälle. Patruunalevyllä on myös alustoja erilaisten oheislaitteiden kytkemiseksi. Kasetin toistamiseen tarvittavat tiedostot ovat täälläja KiCad, jos toistit tunnuksen itse, sinulla on jo se.
Jos et ole ohjelmoija, niin olet valmis. Voit ottaa esimerkkejä täällä ja täällä ja kokeilla. Jos päätät kirjoittaa tunnusohjelmiston itse, kehittäjät esittelevät kaikkia menetelmiä, joilla he voivat ottaa yhteyttä käyttäjän ohjelmiin reuna-alueelle.
Painikkeiden nimet koostuvat sanasta PAINIKE, alaviivalla ja yhdestä seuraavista sanoista: YLÖS, ALAS, VASEMMALLE, OIKEALLE, A, B, VALITSE, KÄYNNISTYS.
Esimerkki painikkeen kyselystä:
if ((MISC_REG (MISC_BTN_REG) & BUTTON_RIGHT)) {
// Tee jotain, kun oikeaa painiketta painetaan.
}
Esimerkki koodi ajastimen lukemiseen taajuudella 60 Hz:
uint32_t counter60Hz (tyhjä) {
paluu GFX_REG (GFX_VBLCTR_REG);
}
Esimerkki koodi numeron lukemiseen laitteiston satunnaislukugeneraattorilta:
MISC_REG (MISC_RNG_REG)
Esimerkki LED-ohjauksen koodista:
MISC_REG (MISC_LED_REG) = 0xF;
Annetaan kaikkein täydellisimmät tiedot laitteen grafiikkamoottorista tässä tiedostossa. Grafiikka - laatta ja sprite (kuten NES). Näytön kuva koostuu neljästä kerroksesta (listattuna ylhäältä alas): sprite-kerros, kerros B, kerros A ja taustakerros. Laattasarjat, joiden kaikkien erottelutarkkuus on 256x512 pikseliä, koostuvat neliömäisistä laattoista, joiden sivu on 16 pikseliä. Paletti on 16-bittinen.
Kerroksessa on 64x64 laattoja, mutta 30x20 laattojen ikkuna on näkyvissä näytöllä. Kun kerros on valittu, kaikki muutokset siinä näkyvät heti. Ikkunaa voidaan liikuttaa sujuvasti kerrokseen nähden.
Laatoitettuja kerroksia voidaan skaalata ja vääristää, nykyiset esimerkit on annettu main.c-tiedostossa. Työtä sprite-kerroksen kanssa ei ole vielä toteutettu, se tehdään lähemmäksi konferenssia. Sitten esimerkit sijoitetaan samaan tiedostoon.
Tässä on kehittäjätiimi, joka sai mielenkiintoisen suunnittelun. Joku sanoo, että aikaisemmin QWERTY-näppäimistöllä ja BASIC: lla se oli mielenkiintoisempaa, mutta retrotietokoneet muistavat molemmat maailmat - ja koti tietokoneet ja konsolit. Ja luultavasti se on totta.