Freescale S08
   HOME

TheInfoList



OR:

The 9S08 (68HCS08 or S08 for short) is an 8-bit microcontroller (μC) family originally produced by
Motorola Motorola, Inc. () was an American multinational telecommunications company based in Schaumburg, Illinois. It was founded by brothers Paul and Joseph Galvin in 1928 and had been named Motorola since 1947. Many of Motorola's products had been ...
, later by Freescale Semiconductor, and currently by NXP, descended from the Motorola 6800 microprocessor. It is a CISC microcontroller. A slightly extended variant of the 68HC08, it shares upward compatibility with the aging 68HC05 microcontrollers, and is found in almost any type of embedded systems. The larger members offer up to 128 KiB of flash, and 8 KiB of RAM via a simple memory management unit (MMU) which allows bank-switching 16 KiB of the address space and an address/data register pair which allows data fetches from any address. The paging scheme used allows for a theoretical maximum of 4 MB of flash. MMU-equipped variants offer two extra CPU instructions, CALL and RTC, which are used instead of JSR and RTS respectively when dealing with subroutines placed in paged memory, allowing direct page-to-page subroutine calls. In a single atomic operation, CALL saves and RTC restores not only the PC but also one extra address byte, the PPAGE (program page) byte. Because of this extra byte, and to also keep the stack balanced, a subroutine ending with RTC must always be called with CALL, even if it resides in the same memory page. Internally, the 9S08
instruction set In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, s ...
is upward compatible with the 6805, with the addition of stack indexed addressing modes. (Instructions using the SP register have
opcode In computing, an opcode (abbreviated from operation code) is an enumerated value that specifies the operation to be performed. Opcodes are employed in hardware devices such as arithmetic logic units (ALUs), central processing units (CPUs), and ...
s prefixed with the byte 0x9E). It has a single eight-bit accumulator, A, one sixteen-bit
index register An index register in a computer's central processing unit, CPU is a processor register (or an assigned memory location) used for pointing to operand addresses during the run of a program. It is useful for stepping through String (computer science ...
, HX (whose lower half, X, is used in isolation by 6805-compatible instructions), a condition code register, a
16-bit 16-bit microcomputers are microcomputers that use 16-bit microprocessors. A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two ...
stack pointer, and a program counter. For compatibility with the 6805 which does not have an H register, the most significant byte of the HX register, H, is cleared during reset, and H is the only register not stacked automatically when entering any ISR ( Interrupt Service Routine). Unlike the 6805, the stack can be placed anywhere in memory using appropriate instructions. The standard method of programming or debugging the 9S08 family is via a standard six-pin BDM interface (only one pin is used for communication with the microcontroller). A wide variety of peripherals is available for different members and/or packages. SCI, SPI, 8/10/12-bit A/D, (C)PWM, Input Captures, and Output Compares are common with most members, but no external bus is available. Some members come with a built-in CAN controller.


Compiler support

The S08 is partly supported (e.g., no MMU support) by the free C compiler SDCC and fully by CodeWarrior.


References


External links


HCS08/9S08 Processor Families



Example assembly language code written for ASM8
{{Motorola microcontrollers Motorola microcontrollers Freescale Semiconductor microcontrollers NXP Semiconductors microcontrollers