Motoroli S08

9S08 ( w skrócie 68HCS08 lub S08 ) to 8-bitowa rodzina mikrokontrolerów ( µC) pierwotnie wyprodukowana przez Motorolę , później przez Freescale Semiconductor , a obecnie przez NXP , wywodząca się z mikroprocesora Motorola 6800 . Jest to mikrokontroler CISC . Nieco rozszerzony wariant 68HC08 , ma wspólną kompatybilność w górę ze starzejącym się 68HC05 mikrokontrolerów i można go znaleźć w prawie każdym typie systemów wbudowanych. Więksi członkowie oferują do 128 KiB pamięci flash i 8 KiB pamięci RAM za pośrednictwem prostego MMU , który umożliwia przełączanie banków 16 KiB przestrzeni adresowej oraz parę rejestrów adres/dane, która umożliwia pobieranie danych z dowolnego adresu. Zastosowany schemat stronicowania pozwala na teoretyczne maksimum 4 MB pamięci flash.

Warianty wyposażone w MMU oferują dwie dodatkowe instrukcje procesora, CALL i RTC, które są używane zamiast odpowiednio JSR i RTS w przypadku podprogramów umieszczonych w pamięci stronicowanej, umożliwiając bezpośrednie wywołania podprogramów między stronami. W jednej atomowej operacji CALL zapisuje, a RTC przywraca nie tylko komputer, ale także jeden dodatkowy bajt adresu, bajt PPAGE (strona programu). Ze względu na ten dodatkowy bajt, a także aby zachować równowagę stosu, podprogram kończący się na RTC musi być zawsze wywoływany za pomocą CALL, nawet jeśli znajduje się na tej samej stronie pamięci.

zestaw instrukcji 9S08 jest kompatybilny w górę z 6805, z dodatkiem trybów adresowania z indeksowaniem stosu . (Instrukcje korzystające z rejestru SP mają kody operacyjne poprzedzone bajtem 0x9E). Ma pojedynczy ośmiobitowy akumulator A, jeden szesnastobitowy rejestr indeksowy HX (którego dolna połowa, X, jest używana oddzielnie przez instrukcje zgodne z 6805), rejestr kodu warunku , 16-bitowy wskaźnik stosu i licznik programów . Dla zgodności z 6805, który nie ma rejestru H, najbardziej znaczący bajt rejestru HX, H, jest czyszczony podczas resetowania, a H jest jedynym rejestrem, który nie jest automatycznie układany w stos podczas wprowadzania dowolnego ISR (Procedura Obsługi Przerwań ) . W przeciwieństwie do 6805, stos można umieścić w dowolnym miejscu w pamięci przy użyciu odpowiednich instrukcji.

Standardową metodą programowania lub debugowania rodziny 9S08 jest standardowy 6-pinowy interfejs BDM (tylko jeden pin służy do komunikacji z mikrokontrolerem).

Dostępna jest szeroka gama urządzeń peryferyjnych dla różnych członków i/lub pakietów. SCI, SPI, 8/10/12-bitowy A/D, (C)PWM, przechwytywanie wejść i porównywanie wyjść są wspólne dla większości członków, ale żadna zewnętrzna magistrala nie jest dostępna. Niektórzy członkowie mają wbudowany CAN .

Wsparcie kompilatora

S08 jest częściowo wspierany (np. brak obsługi MMU) przez darmowy kompilator C SDCC i całkowicie przez CodeWarrior .

Linki zewnętrzne