68HC08
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.
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
- 8-bit accumulator A
- 16-bit command counter PC
- 16-bit stack pointer SP
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
- ↑ HC08 Documentation , accessed on December 17, 2010, (English)
Web links
- Mikrocontroller.net general information about microcontrollers
- Freescale Semiconductor
- Renesas spun off Hitachi Semiconductors
- Helium RTOS real-time operating system for HCS08
- small device c compiler