Freescale 68HC08

A Freescale 68HC08 egy 8 bites mikrokontroller, amelyet a Freescale (korábban Motorola ) gyártott a Motorola 6800 CPU- ból származó CPU08 mag alapján .

Úgy tervezték, hogy a 6805 és 68HC05 mikrovezérlők továbbfejlesztett utódjai lettek, míg a 68HC12-ek a 68HC11-ek utódjai .

68HC05-höz képest

A 68HC05 mikrovezérlőkkel kapcsolatos fejlesztésekként megemlíthetjük:

C nyelvű programozásra vannak optimalizálva .

Nevek és családok

Amikor a 90-es évek végén megjelentek, a CPU08 alapú mikrovezérlőket a következőképpen azonosították (példa):

MC68HC908GP32CP , amely a következőkre bontható:

A következő betűk jelzik a doboz típusát ( CP = DIL) és az üzemi hőmérséklet-tartományt.

A nevek megváltoztak, amikor ezek az alkatrészek 2006- ban RoHS -sé váltak : Az "MC68HC908" helyett az "MC908" lépett. Így a MC68HC908GP32 vált MC908GP32 . Egy család kivételével (AP, az MC908-asokat 0,5 mikronos HC MOS eljárással gyártják.

2004-ben megjelent a 68HC08 új generációja: az MC9S08 . Ezeket a 0,25 mikronos HC MOS eljárással gyártják, továbbfejlesztett perifériákkal rendelkeznek, további címzési módokkal és utasításokkal rendelkeznek, és (háromszor) gyorsabbak, mint az MC908-asok. Egy aktuális 68HC08 mikrovezérlőt hívunk például MC9S08QG8CPE-nek . Ezenkívül teljesítményoptimalizáltak, és különböző kikapcsolási módokkal rendelkeznek, amelyek a vezérlőt különböző, rendkívül alacsony fogyasztású állapotokba helyezik. Valamennyi MC9S08 rendelkezik belső precíziós oszcillátorral is, amely az esetek döntő többségében kiküszöböli a külső kristály szükségességét.

Sok család létezik, amelyek különböznek az eszközök számában és jellegében. Általánosságban :

Építészet és jellemzők

Címzési utasítások és módok

A CPU08 utasítások 1, 2 vagy 3 bájtra vannak kódolva, a címzési módtól függően . 1-11 órás ciklusban futnak, átlagosan 3-4-ig. Ezek a CISC utasítások , amelyek valójában több RISC utasítással egyenértékűek . Például egyetlen CBEQ X +, LOOP utasítás:

A CPU08 munkagépek több különböző alapvető címzési mód :

eredendő (vagy implicit vagy abszolút): Az operandus implicit, például: CLRA (Clear A), MUL (Multiply). Ezeket az utasításokat általában egyetlen bájton kódolják.

azonnali  : Az operandus értékét az utasítás tartalmazza. Például: LDA # 10 (A töltés vagy LoaD A) 10 értékkel.

közvetlen  : Ez a címzési mód a memória első 256 bájtjának címzésére szolgál (0x00-tól 0xFF-ig, a területet "nulla oldalnak" is nevezik). Optimalizálja az utasításokat, mivel ennek a területnek a címét egyetlen bájt képviseli, ami csökkenti az utasítás méretét és a végrehajtás sebességét. Vegye figyelembe, hogy az I / O portok ezen a területen vannak feltérképezve. Például: LDA $ 00 (A betöltése a $ 00 cím tartalmával (általában A port)).

kiterjesztett  : Ez az üzemmód a teljes memória 16 bites címmel történő címzésére szolgál.

relatív  : Ez a címzési mód egy aláírt 8 bites operandust (+127-től - 127-ig) ad hozzá a sorszámlálóhoz (PC). Ezt a címzési módot főleg elágazási utasításokhoz, és különösen hurkokhoz használják. Például: DBNZA LOOP (Csökkentés és elágazás, ha nem nulla, vagy csökken az A felhalmozó, és elágazás a LOOP címkézésére, ha A nem 0 ).

indexelt elmozdulás nélkül, 8 bites elmozdulással, 16 bites elmozdulással, utólagos növekedéssel, utólagos növekedéssel és elmozdulással 8 biten. A címet az indexregiszter tartalmazza (H: X). 8 vagy 16 bites elmozdulás hozzáadható, és a művelet után növelhető. Az utólag növelt címzési módokat csak a DBNZ (Csökkentés és elágazás, ha nem nulla) és a CBEQ (Összehasonlítás és elágazás az EQualban) utasításokkal együtt alkalmazzuk. Különösen hatékony hurokellenőrzéseket tesznek lehetővé.

indexelve a veremmutatóhoz , 8 bites és 16 bites elmozdítással. A veremmutatón történő relatív címzés különösen hasznos a C-be írt kódoknál: A helyi változókat és a függvényparamétereket a veremmutatóhoz viszonyítva címezzük meg, amely memóriaterületet szabadít fel, amikor a funkció kilép.

memóriától memóriáig . Egyes műveletek nem igénylik az akkumulátoron keresztüli továbbítást. Például: MOV # $ 55, $ 00 (az 55 értéket a 00 memóriacímre helyezi (A PORT)).

Fejlesztőkörnyezet

A Freescale által kínált fejlesztői környezet neve CodeWarrior, jelenleg az Eclipse IDE-n alapul . Megérti :

A CodeWarriorban található UNIS "Processor Expert" modul grafikusan konfigurálja az eszközöket, és létrehozza a megfelelő C kódot. A CodeWarrior a "Special Edition" -ben kínált verziójában ingyenes, legfeljebb 64 KB objektumkódig C-ben. Az assembler korlátlan.

Programozás és hibakeresés

Az MC68HC908 programozása / hibakeresése soros kapcsolaton keresztül történt, amely a vezérlő 3-4 lábát mozgósította. A ROM-ba integrált program (úgynevezett "monitor") lehetővé tette a kommunikációt. A "MON08" nevű PC - cél interfész általában a soros porton alapult. A "monitor" módba való belépést nagy feszültség (7,5–9 V) alkalmazása indította el a külső megszakító fülön a bekapcsoláskor.

Az MC9S08 örökölte a 68H12 és a ColdFire beépített hibakeresési modulját , a BDM-et (Background Debug Module). A programozás / hibakeresés a vezérlő egyetlen fülén és a számítógép oldalán található USB-n keresztül történik. A cél interfész - a PC-t vagy a szondát "BDM pod" -nak hívják

Az MC9S08 vezérlőkbe integrált BDM modul lehetővé teszi a nem tolakodó valós idejű „In Circuit” hibakeresést, nem mozgósítva a CPU erőforrásait feltételes töréspontokkal, valamint busz nyomkövetési lehetőségekkel. Bizonyos mértékben elkerüli az emulátor használatát. A BDM szonda automatikusan alkalmazkodik a cél feszültségéhez és frekvenciájához.

A Freescale támogatja az "Open Source" BDM szondák megvalósítását GPL licenc alatt , amelyek kódja és hardvere nyitva van.

Nyílt forráskódú és nyílt hardveres megvalósítású USBDM elérhető a SourceForge.net oldalon .

Evolúciók

Az S08 család változásokat hozott:

Vegye figyelembe azt is, hogy a Freescale 2,4 GHz-es RF chipeket állít elő ( Zigbee protokollhoz ), MC9S08 mikrovezérlőt integrálva (példa) .


Megjegyzések és hivatkozások

  1. Freescale 8 bites mikrokontrollerek
  2. CPU08 kézikönyv
  3. A HC05 - HC08 AN1218 optimalizálás alkalmazási megjegyzése
  4. MC68HC08 - HCS08 átmenet AN2717
  5. CodeWarrior mikrokontrollerekhez
  6. Processzorszakértő
  7. CodeWarrior for Microcontrollers Special Edition
  8. A nyílt forráskódú BDM projekt
  9. USBDM a sourceforge.net webhelyen
  10. Flexis mikrokontrollerek