Mesa : II. A firmware és környéke

Ebben a cikkben áttekintjük, milyen szoftver és hardver elemekből épül fel a Mesa kártyákkal a vezérlés, elsősorban azonban a szoftveres részre koncentrálunk.

A türelmetlenek, vagy akiket nem érdekelnek a “tudományos” részletek, ugorhatnak egyből a oldal alján a HAL fájl tartalma részhez. :)

A kártyákhoz a gyártó HostMot2 nevű konfigurációs állományokat, firmware-t készített. A firmware nyílt forráskódú, hordozható és rugalmasan konfigurálható.

A HostMot2 firmware két részből tevődik össze: a hostmot2 meghajtó általános célú meghajtóból és az alacsonyszintű meghajtóból, ami PCI kártyáknál hm2_pci vagy 7i43 esetében hm2_7i43.

Firmware-be három fajta modult lehet beállítani. Általában ezt a gyártó készíti el, de van lehetőség saját modulok fordítására is:
a) PWM generátor
b) Step/Dir generátor
c) kvadratúra enkóder

A gyárilag lefordított firmware modulokat a program indításakor rendelhetjük hozzá a fizikai lábakhoz, kivezetésekhez. A fel nem használt modulok be-/kimeneti lábai felszabadulnak és általános célú I/O lesz belőlük.

Kártyák és ahozzájuk tartozó gyári firmware-k
3×20 (144 I/O): hm2_pci
24-csatornás szervo
16-csatornás szervo plus 24 Step/Dir generátor

5i22 (96 I/O): hm2_pci
16-csatornás szervo
8-csatornás szervo és 24 Step/Dir generátor

5i20, 5i23, 4i65, 4i68 (72 I/O): hm2_pci
12-csatornás szervo
8-csatornás szervo és 4 Step/Dir generátor
4-csatornás szervo és 8 Step/Dir generátor

7i43 (48 I/O): hm2_7i43
8-csatornás szervo (8 PWM generátor és 8 enkóder)
4-csatornás szervo és 4 Step/Dir generátor

Az 5i25 kártyák előre programozottan érkeznek a felhasználóhoz, így azokba firmware-t nem kell már feltölteni.

A fentiek egy kicsit bonyolultan hangozhatnak, de nézzük mindezt képekben:

7i43_architC

Vegyük sorban balról jobbra:

1) Az első a PC, rajta a Linux operációs rendszer a valós idejű rendszermaggal

2) A Linux alatt fut a LinuxCNC program

3) A hostmot2 és hm2_7i43 firmware-t betöltjük a LinuxCNC-vel. PCI kártyáknál (pl. 5i20, 3×20) a hm2_7i43 helyet a hm2_pci-t kell használni.

4) A PC párhuzamos porton kapcsolódik a 7i43 kártyához. Ez csak a 7i43 esetében van így, a többi Mesa féle FPGA kártya PCI vagy PCI Express felületen kapcsolódik, de ezen túl más architektúrális különbség nincs.

5) A Mesa 7i43 kártyába betöltjük az SVST_4 nevű BIT fájlt, ami leegyszerűsítve a PWM, Step/Dir, enkóder és általános I/O komponensek hozzárendelését végzi a fizikai lábakhoz.

6) A 7i43-hoz jelen esetben egy 7i42/TA leválasztó kártyán keresztül csatlakoznak a CNC gép vezérlési részei: kapcsolók, érzékelők, léptető motor vezérlők, stb.

A fenti rajz általánosságban igaz más Mesa konfigurációkra is. Egyszerűbb esetben és megfelelő elővigyázatosságnál kihagyható a 7i42/TA leválasztó, de a 7i43 helyére is kerülhet mondjuk az 5i20 kártya, a rendszer generális elvi felépítése ugyanaz.

Mindez egyesek számára elszomorítóan bonyolultnak hangozhat, de van egy jó hír:
A fenti architektúráról és a firmware részletekről nem feltétlenül kell tudni semmit! Ugyanis, két sort kell csak beírni a HAL fáljba, és az mindent elintéz a firmware-rel kapcsolatban. Sőt, ezt a két sort is beteszi helyettünk egy konfigurációs “varázsló” a PncConf.

A HAL file tartalma

Az általános célú modult kell először betölteni:
loadrt hostmot2

Majd következik a csatoló specifikus modul:
loadrt hm2_7i43 config=”firmware=hm2/7i43-4/SVST4_6.BIT num_encoders=1 num_pwmgens=1 num_stepgens=3″

A fenti sor azt mondja meg, hogy a 7i43-as kártya 400K kapus verzóját használjuk, a 4-szervo 6-stepper konfigurációval amiből lesz nekünk 1 enkóder, 1 PWM generátor, 3 Step/Dir modul, a többi pedig szabad felhasználású be-/kimeneti láb.

A következő cikkben már a 7i43 bekötésével, táp és vezérlő jeleivel foglalkozunk. Már ha addig nem ment el a kedve mindenkinek ettől a sok technikai részlettől 😉

This entry was posted in Cikkek and tagged , , . Bookmark the permalink.

2 Responses to Mesa : II. A firmware és környéke

  1. bokorugro_111 says:

    Sziasztok!

    A kvadratúra enkóder az mit jelent? mire használható?

    Köszi,
    CSaba

    • admin says:

      Szia Csaba!

      Az enkóder bemeneteket használhatod a kézikerék (MPG) jeleinek feldolgozására, vagy pedig a szervó motorokról bejövő enkóder jelek fogadására.

      További részleteket az enkóderekról itt találsz.

      Üdv:
      James

Minden vélemény számít!