Fórum témák
» Több friss téma |
Cikkek » CATROM7 CATROM7
Szerző: tomcii, idő: Hé, 19:47, Olvasva: 180, Oldal olvasási idő: kb. 2 perc
A firmware működéseA CATROM7 firmware Arduino környezetben készült, ATmega328P mikrokontrollerre. A program elsődleges feladata az EEPROM tartalmának kiolvasása, a kijelző multiplex meghajtása, valamint a felhasználói és UART interfész kezelése. Frame alapú működésA teljes rendszer frame-ek köré épül. Egy frame pontosan négy byte-ból áll, amelyek közvetlenül a négy darab hétszegmenses kijelző szegmensinformációit tartalmazzák. A CAT28C16 EEPROM összesen 2048 byte kapacitású, így maximum 512 frame tárolható benne. A firmware egy frameIndex változó segítségével lépteti a megjelenített frame-eket. Minden léptetéskor négy byte kerül kiolvasásra az EEPROM-ból, majd ezek jelennek meg a kijelzőn. EEPROM olvasásAz EEPROM címvonalait két darab 74HC595 shift regiszter állítja elő. A firmware minden olvasás előtt:
Ez a módszer lehetővé teszi, hogy az ATmega328P viszonylag kevés I/O láb felhasználásával kezeljen egy teljes 2 kByte-os memóriát. Multiplex kijelzővezérlésA négyjegyű kijelző multiplex üzemmódban működik. A firmware nagyon gyorsan végiglépked a négy digiten:
Mivel ez a folyamat másodpercenként több százszor ismétlődik, a kijelző folyamatosnak látszik. A szegmensadatok továbbítása egy harmadik 74HC595 shift regiszteren keresztül történik. Lejátszási sebességA frame-ek közötti léptetés sebessége állítható. A felhasználó:
módosíthatja a lejátszási sebességet. A beállított érték az ATmega328P belső EEPROM memóriájába kerül mentésre, így a készülék kikapcsolás után is megőrzi azt. UART szerviz interfészA firmware egyik legfontosabb része a beépített szerviz terminál. A SoftwareSerial könyvtár segítségével egy külön UART interfész valósult meg, amelyhez bármilyen USB–TTL adapter vagy az uTERM-328P terminál csatlakoztatható. A támogatott parancsok többek között:
A szerviz interfész segítségével a készülék teljes működése ellenőrizhető anélkül, hogy a firmware módosítására lenne szükség. Beállítások mentéseA firmware a mikrokontroller belső EEPROM memóriáját is használja. Jelenleg itt kerül tárolásra:
A rendszer egy úgynevezett „magic value” használatával ellenőrzi, hogy található-e érvényes konfiguráció az EEPROM-ban. Ez megakadályozza, hogy első indításkor véletlenszerű adatok kerüljenek betöltésre. Üres frame-ek felismeréseA CATROM7 képes felismerni az üres memória-területeket is. Amennyiben a firmware egy olyan frame-et talál, amelynek mind a négy byte-ja 0xFF értékű, azt a ROM végét jelző markernek tekinti, és automatikusan visszaugrik az első frame-re. Ennek köszönhetően nem szükséges minden esetben teljesen kitölteni a CAT28C16 teljes memóriaterületét. Tervezési filozófiaA firmware fejlesztése során nem az volt a cél, hogy egy bonyolult vagy túloptimalizált rendszer készüljön. Sokkal fontosabb szempont volt az átláthatóság és a könnyű továbbfejleszthetőség. Ennek eredményeként a CATROM7 szoftvere jól elkülönülő modulokra bontható:
Ez a felépítés lehetővé teszi, hogy a projekt a jövőben további funkciókkal is egyszerűen bővíthető legyen. A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |


