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
Lapozás: OK   4 / 6

A firmware működése

A 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és

A 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ás

Az EEPROM címvonalait két darab 74HC595 shift regiszter állítja elő.

A firmware minden olvasás előtt:

  1. Beállítja a kívánt címet a shift regisztereken keresztül.

  2. Engedélyezi az EEPROM kimenetét.

  3. Beolvassa a D0-D7 adatbusz állapotát.

  4. Letiltja az EEPROM kimenetét.

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és

A négyjegyű kijelző multiplex üzemmódban működik.

A firmware nagyon gyorsan végiglépked a négy digiten:

  • kikapcsol minden digitet,

  • betölti a megfelelő szegmensadatot,

  • aktiválja az adott digitet,

  • rövid ideig megjeleníti,

  • majd továbblép a következőre.

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ég

A frame-ek közötti léptetés sebessége állítható.

A felhasználó:

  • nyomógombbal,

  • vagy UART parancsokon keresztü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ész

A 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:

  • HELP

  • MEM

  • STAT

  • SPEED

  • SPD

  • PAUSE

  • RUN

  • NEXT

  • PREV

  • SEND

  • LED

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ése

A firmware a mikrokontroller belső EEPROM memóriáját is használja.

Jelenleg itt kerül tárolásra:

  • a lejátszási sebesség,

  • a ROM aktivitásjelző LED állapota.

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ése

A 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ófia

A 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ó:

  • EEPROM kezelés

  • kijelző meghajtás

  • gombkezelés

  • UART parancsfeldolgozás

  • beállításkezelés

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!
Következő: »»   4 / 6
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem