68HC08

from Wikipedia, the free encyclopedia

The 68HC08 is an 8-bit microcontroller (MCU) from Freescale Semiconductor . Freescale Semiconductor is Motorola's semiconductor division ; it was spun off in 2004. In addition to the original 68HC08 microcontroller, other variants have emerged, so that we now speak of an HC08 family.

The program code of its predecessors in the 68HC05 family is upwardly compatible with the HC08, which makes migration easier.

Evaluation board with a 68HC908JK MCU

architecture

The 68HC08 is based on the Von Neumann architecture . In the Von Neumann architecture, unlike the Harvard architecture , the memory area is not separated into program code and data. No separate buses are therefore required, but the Von Neumann architecture is slower compared to the Harvard architecture, since the program code and data cannot be accessed at the same time.

The CPU

The core of the HC08 is the 6800 microprocessor (CPU), not to be confused with the 68000 CPU, which forms the core of the 32 bit microcontroller family from Freescale.

Arithmetic instructions

  • Addition with (ADC) and without carry (ADD)
  • Subtraction with (SBC) and without carryover (SUB)
  • fast 16 × 8 unsigned division (DIV)
  • fast 8 × 8 unsigned multiplication (MUL)

BCD arithmetic

To Binary Coded Decimal- perform arithmetic applications, there is the Decimal Adjust Accumulator (DAA) and nibble swap Accumulator (NSA) command.

High level language support

The index register, the stack pointer, the 8-bit jump instructions and the associated commands enable high-level language compilers to be used. You are no longer forced to program the microcontroller using assembly language.

Low power support

The WAIT and STOP commands can be used to reduce the power consumption of the CPU. With the WAIT command the clock generator of the CPU is stopped, with the STOP command additional peripheral clock generators can be stopped.

The CPU registers

Index register

The index register is 16 bits wide and allows addressing of up to 64 Kbytes of memory, the composite register is labeled H: X, the lower byte is labeled X and the upper byte is labeled H. The H: X is only then identical to the I: X register of the M6805 family, if H = O and no commands affect the upper byte. 16 different methods can be used for addressing. The index register can also be used for a short time as a data memory.

Status register CCR

The 8 bit status register CCR. The status register contains the states of the interrupt mask and the overflow , half-carry, negative, zero and carry-borrow flags.

Other CPU registers

Operating voltages

The HC08 microcontrollers can be operated with different operating voltages, but the bus cycle also decreases with the voltage. With an operating voltage of 5 V the bus works with a clock rate of 8 MHz, with a 3 V operating voltage only with 4 MHz. The microcontrollers of the HCS08 subfamily work with an operating voltage of 1.8 V.

Variants of the 68HC08

A wide range of microcontrollers from the HC08 family are available. The choice of housings ranges from an 8-pin DIP housing to a 64-pin LQFP housing; the user can also choose between different types and numbers of analog / digital converters or different options for peripheral communication. The table below shows some properties of currently available HC08 subgroups (as of September 2010).

Subgroup Internal Flash (kB) Internal RAM (kB) Interface types A / D bit width A / D converter channels
HC08AB 32 1; 0.512 SCI, SPI 8th 8th
HC08AP 32; 16; 8th 2; 1 IRSCI, SPI, I2C 10 8th
HC08BD 48 1; 0.512 USB 1.0, I2C 8th 6th
HC08JB / JT / JW 32; 16; 12; 8th 1; 0.384; 0.256; 0.128 USB 1.0, USB 2.0, SCI, SPI, IRSCI, SCI 0 0
HC08JK / JL 16; 8th; 4; 1.5 0.512; 0.256; 0.128 SCI 0 0
HC08LD 60 2; 1 I2C, USB 1.0 8th 6th
HC08LV 8th 0.512 IRSCI, SPI, I2C 10 6th

There is also the RS08 family, which is based in principle on a slimmed-down HC08. The RS08-MCU cannot process address stacks and the status register only has carry and zero flag bits. Its memory area is limited to 16 kB. The already mentioned further development HCS08 focuses on low power consumption, so it has various modes for saving consumption.

Availability

Despite their age, many variants of the microcontrollers of the HC08 family are still available, as they can be used cost-effectively in industrial applications. However, some variants have already been discontinued by the manufacturer and it is not recommended to use these variants in large-scale production.

Hitachi HD6301

With the HD6301 and HD6303, Hitachi had microcontrollers that were based on the design of the 6800 CPU and could be used as second-source products. The instruction set of the Hitachi microcontrollers has been extended by some instructions, which increased the functionality. In the meantime, these microcontrollers are not available from Hitachi or from the semiconductor division Renesas Electronics, which has since been spun off .

successor

The successor is the compatible Freescale S08 , which has an extended set of instructions, in particular the stack pointer -relative addressing that is important for the implementation of high-level languages . There is also the greatly simplified Freescale RS08 .

Software development

In addition to the proprietary CodeWarrior IDE, the Small Device C Compiler and the SDCC-UCSIM simulator are also available for software development. In the meantime, the Helium OS is also a real-time operating system for the HCS08.

literature

  • Harald Kreidl, Gerald Kupris, Peter Dilger: Successfully using 68HC08 microcontrollers. Franzis' Verlag, Poing 2000, ISBN 3-7723-5824-1 .

Individual evidence

  1. HC08 Documentation , accessed on December 17, 2010, (English)

Web links