Working with I/O ports of the MC9S12C128 microcontroller

Purpose of the work: The purpose of this laboratory work is to gain practical skills in working with microcontroller input/output ports.

Required equipment:

1. APS12DT56 board

2. NI ELVIS II+ platform

3. Platform PBMCUSLK

4. Personal computer

General information about microcontrollers

Microcontroller Unit (MCU) is a microcircuit designed to control electronic devices. A typical microcontroller combines the functions of a processor and peripheral devices, contains RAM and (or) ROM. Essentially, it is a single-chip computer capable of performing simple tasks.

The use in a modern microcontroller of a sufficiently powerful computing device with wide capabilities, built on a single chip instead of a whole set, significantly reduces the size, power consumption and cost of devices built on its basis. Used in management various devices and their separate blocks:

· In computing: motherboards, controllers for hard and floppy disk drives, CD and DVD drives;

· Electronics and various devices household appliances, in which it is used electronic systems management - washing machines, microwave ovens, dishwashers, telephones and modern appliances;

In industry:

· Industrial automation devices - from programmable relays and embedded systems to PLC;

· Machine control systems;

While 8-bit processors general purpose completely replaced by more powerful models, 8-bit microcontrollers continue to be widely used. This is because there are a large number of applications in which high performance is not required, but low cost is important. At the same time, there are microcontrollers that have greater computing capabilities, such as digital signal processors.

Microcontroller MC9S12C128

In this laboratory workshop You will study in detail the single-chip 16-bit microcontroller of the HCS12 family: MC9S12C128.

Basic technical specifications this MK:

· 16-bit HCS12 processor core.

· Supply voltage 2.97..5.5 V. In the laboratory layout it is 5 V.

· Developed timing system. The microcontroller can be clocked from both external and internal sources. The laboratory bench uses an element belonging to the first type: a quartz resonator. The frequency of the clock signal it generates is 4 MHz. In this case, the frequency of the internal bus of the microcontroller BUS f is halved and equal to 2 MHz. Its maximum value for this microcontroller model is 20 MHz;

· Residential program memory (ROM). Its volume is 128K = 131072 cells (128 KB). The memory is made using flash technology with EEPROM emulation, the number of write/erase cycles is at least 100,000.

· Resident data memory (RAM). The volume is 4 KB.

· Total number microcontroller pins – 40. Housing type – QFP (Quad Flat Package).

The microcontroller chip contains the following peripheral modules:

· I/O ports. A total of 9 ports are available, their more detailed description is given in table. 2.1.;

· Timer module TIM with 16-bit time base counter and eight IC/OC/PWM channels.

· Built-in analog-to-digital converter ATD. The number of digitization channels is 8, the bit depth is 10 bits.

· Serial interfaces: synchronous SPI and asynchronous SCI, as well as a CAN module with speeds up to 1 Mbit/s.

I/O Ports

All MCUs of the HCS12 family have a certain number of data input/output lines. The lines are combined into 8-bit parallel data ports: Port A, Port B, Port E. With rare exceptions, all I/O lines are bidirectional. The transmission direction of I/O lines is configured by software by writing a control word to the transmission direction register of the corresponding port. It is possible to change the transfer direction during program execution by reprogramming these registers. The reset signal sets all bidirectional lines to input mode. It should be especially emphasized that the transmission direction of each line can be chosen arbitrarily by the designer, regardless of other lines belonging to the same I/O port. The only exceptions are unidirectional transmission lines, which are initially specialized for input or output.

Some I/O lines have a so-called alternative function, i.e. provide communication between the built-in peripheral modules of the MK and the “outside world”. Thus, the lines of the PORT AD port are used to connect the measured voltages to the built-in ADC, the lines of the PORT S port serve as inputs and outputs of serial exchange controllers. If the corresponding peripheral module of the MK is not used, then its pins can be used as regular I/O lines.

If the port lines are bidirectional, then two types of registers are provided to service such a port:

PORTx - data register of port x, where x is the name of the I/O port;

DDRx - port x transmit direction register.

For example, PORT A is served by the PORTA and DDRA registers, and PORT B ​​is served by the PORTB and DDRB registers.

If the port has circuitry with a software-connected “pull-up” resistor (R pullup), then an additional port input resistance register is provided to service such a port.

Below is a snippet of code that configures PORT B ​​for data output and then writes the number $62 to the port. In order for all lines of PORT B ​​to become output lines, it is necessary to write the code $FF to the DDRB transmit direction register.

/* MAIN PROGRAM: */

/*included files*/

#include

#include"derivative.h"

void main(void) (

unsigned char DDRB_INIT = 0xFF;

DDRB = DDRT_INIT; //set PORT B ​​to output

Microcontroller(MCU) is a microcircuit designed to control electronic devices. A typical microcontroller combines the functions of a processor and peripheral devices, and may contain RAM and ROM. Essentially, it is a single-chip computer capable of performing simple tasks. Using a single chip, instead of a whole set, as is the case with conventional processors used in personal computers, significantly reduces the size, power consumption and cost of devices built on the basis of microcontrollers.

Microcontrollers are the basis for building embedded systems; they can be found in many modern devices, such as telephones, washing machines, etc. Most of the processors produced in the world are microcontrollers.

Microcontrollers are universal devices that are almost always used not by themselves, but as part of more complex devices, including controllers. The microcontroller system bus is hidden from the user inside the chip. Connectivity external devices to the microcontroller are limited. Microcontroller devices are usually designed to solve a single task.

Microcontrollers are the simplest type of microprocessor systems, in which all or most of the system components are made in the form of a single chip.

A microprocessor system can be considered as a special case of an electronic system designed to process input signals and produce output signals (Fig. 1). Analog signals, single digital signals, digital codes, and sequences of digital codes can be used as input and output signals. Signals (or information) can be stored and accumulated inside the system, but the essence does not change. If the system is digital (and microprocessor systems are classified as digital), then the input analog signals are converted into sequences of sample codes using an ADC, and the output analog signals are generated from a sequence of sample codes using a DAC. Information is processed and stored digitally.

A characteristic feature of a traditional digital system is that the algorithms for processing and storing information in it are strictly connected with the circuitry of the system. That is, changing these algorithms is possible only by changing the structure of the system, replacing electronic components included in the system and/or connections between them. For example, if we need an additional summation operation, then we need to add an extra adder to the system structure. Or if needed additional function storing code for one clock cycle, then we must add another register to the structure. Naturally, this is almost impossible to do during operation; a new production cycle of design, manufacturing, and debugging of the entire system is required. This is why a traditional digital system is often called a “hard logic” system.

Rice. 1. Electronic system

Any “hard logic” system is necessarily a specialized system configured exclusively for one task or (less often) for several close, previously known tasks. This has its undeniable advantages.

Firstly, a specialized system (unlike a universal one) never has hardware redundancy, that is, each of its elements necessarily works at full capacity (of course, if this system is properly designed).

Secondly, it is a specialized system that can provide the highest possible performance, since the speed of execution of information processing algorithms is determined in it only by the performance of individual logical elements and the selected scheme of information flow paths. Namely, logical elements always have the maximum performance at the moment.

But at the same time, the big disadvantage of a digital system based on “hard logic” is that for each new task it must be designed and manufactured anew. This process is lengthy, expensive, and requires highly qualified performers. And if the problem being solved suddenly changes, then all the equipment must be completely replaced. In our fast-paced world, this is quite wasteful.

The way to overcome this drawback is quite obvious: it is necessary to build a system that could easily adapt to any task, change from one operating algorithm to another without changing the equipment. And then we could set this or that algorithm by entering into the system some additional control information, a system operating program. Then the system will become universal, or programmable, not rigid, but flexible. This is exactly what the microprocessor system provides.



Rice. Programmable electronic system

But any universality necessarily leads to redundancy. After all, solving the most difficult problem requires much more money than solving the most simple problem. Therefore, the complexity of a universal system should be such as to provide a solution to the most difficult problem, and when solving a simple problem, the system will not work at full capacity and will not use all its resources. And the simpler the problem being solved, the greater the redundancy, and the less justified universality becomes. Redundancy leads to an increase in the cost of the system, a decrease in its reliability, an increase in power consumption, etc.

In addition, universality, as a rule, leads to a significant decrease in performance. It is simply impossible to optimize a universal system so that each new task is solved as quickly as possible. The general rule is this: the greater the versatility and flexibility, the lower the performance. Moreover, for universal systems there are no problems (even the simplest ones) that they could solve with the highest possible speed. You have to pay for everything.

Thus, we can draw the following conclusion. Systems based on “hard logic” are good where the problem being solved does not change for a long time, where the highest speed is required, where information processing algorithms are extremely simple. And universal, programmable systems are good where the tasks being solved often change, where high performance is not too important, where information processing algorithms are complex. That is, any system is good in its place.

However, over the past decades, the performance of universal (microprocessor) systems has increased significantly (by several orders of magnitude). In addition, the large volume of production of microcircuits for these systems has led to a sharp decrease in their cost. As a result, the scope of application of “hard logic” systems has sharply narrowed. Moreover, programmable systems designed to solve one problem or several related problems are now developing at a high pace. They successfully combine both the advantages of “hard logic” systems and programmable systems, providing a combination of sufficiently high performance and the necessary flexibility. So the displacement of “hard logic” continues.

The core of any microprocessor system is a microprocessor or simply a processor (from the English processor). It is most correct to translate this word into Russian as “processor”, since it is the microprocessor that is the node, the block that performs all information processing within the microprocessor system. The remaining nodes perform only auxiliary functions: storing information (including control information, that is, programs), communication with external devices, communication with the user, etc. The processor replaces virtually all of the "hard logic" that would be needed in a traditional digital system. It performs arithmetic functions (addition, multiplication, etc.), logical functions (shift, comparison, masking codes, etc.), temporary storage of codes (in internal registers), transfer of codes between nodes of a microprocessor system, and much more. The number of such elementary operations performed by the processor can reach several hundred. The processor can be compared to the brain of the system.

But it must be taken into account that the processor performs all its operations sequentially, that is, one after another, in turn. Of course, there are processors that perform some operations in parallel, and there are also microprocessor systems in which several processors work on one task in parallel, but these are rare exceptions. On the one hand, sequential execution of operations is an undoubted advantage, since it allows you to perform any, even the most complex information processing algorithms, using just one processor. But, on the other hand, sequential execution of operations leads to the fact that the execution time of the algorithm depends on its complexity. Simple algorithms run faster than complex ones. That is, a microprocessor system is capable of doing everything, but it does not work very quickly, because all information flows have to be passed through one single node - the microprocessor. In a traditional digital system, parallel processing of all information flows can be easily organized, although at the cost of increasing the complexity of the circuit.


Rice. Information flows in a microprocessor system

So, the microprocessor is capable of performing many operations. But how does he know what operation he needs to perform at the moment? This is precisely what is determined by the control information, the program. The program is a set commands (instructions), that is, digital codes, by deciphering which the processor knows what it needs to do. A program from beginning to end is compiled by a person, a programmer, and the processor acts as an obedient executor of this program; it does not show any initiative (if, of course, it is working correctly). Therefore, comparing the processor with the brain is not very correct. He is just an executor of the algorithm that a person compiled for him in advance. Any deviation from this algorithm can only be caused by a malfunction of the processor or some other components of the microprocessor system.

All instructions executed by the processor form the processor instruction system. The structure and volume of the processor's instruction system determine its performance, flexibility, and ease of use. In total, the processor can have from several tens to several hundred instructions. The command system can be designed for a narrow range of tasks to be solved (for specialized processors) or for the widest possible range of tasks (for universal processors). Command codes can have a different number of bits (occupy from one to several bytes). Each command has its own execution time, so the execution time of the entire program depends not only on the number of commands in the program, but also on which commands are used.

To execute commands, the processor structure includes internal registers, an arithmetic-logical unit (ALU, Arithmetic Logic Unit), multiplexers, buffers, registers and other nodes. The operation of all nodes is synchronized by a common external processor clock signal. That is, the processor is a rather complex digital device.

However, for a developer of microprocessor systems, information about the intricacies of the internal structure of the processor is not very important. The designer must view the processor as a “black box” that, in response to input and control codes, performs one or another operation and produces output signals. The developer needs to know the command system, processor operating modes, as well as the rules for interaction of the processor with the outside world, or, as they are also called, information exchange protocols. You only need to know about the internal structure of the processor what is necessary to select one or another command, one or another operating mode.

Rice. 4. An example of the structure of a simple processor

To achieve maximum universality and simplify information exchange protocols in microprocessor systems, the so-called bus structure of connections between individual devices included in the system is used. The essence of the bus communication structure comes down to the following.

With the classic communication structure, all signals and codes between devices are transmitted over separate communication lines. Each device included in the system transmits its signals and codes independently of other devices. At the same time, the system produces a lot of communication lines and different information exchange protocols.

Rice. Classic link structure

With a bus communication structure (Fig. 6), all signals between devices are transmitted along the same communication lines, but at different times (this is called multiplexed transmission). Moreover, transmission over all communication lines can be carried out in both directions (so-called bidirectional transmission). As a result, the number of communication lines is significantly reduced, and exchange rules (protocols) are simplified. A group of communication lines over which signals or codes are transmitted is called a bus.

It is clear that with a bus communication structure, all information flows can be easily sent in the right direction; for example, they can be passed through one processor, which is very important for a microprocessor system. However, with a bus communication structure, all information is transmitted along communication lines sequentially in time, one at a time, which reduces the performance of the system compared to the classical communication structure.


Rice. 6. Bus connection structure

The great advantage of the bus communication structure is that all devices connected to the bus must receive and transmit information according to the same rules (bus information exchange protocols). Accordingly, all nodes responsible for communicating with the bus in these devices must be uniform and unified.

A significant disadvantage of the bus structure is due to the fact that all devices are connected to each communication line in parallel. Therefore, any malfunction of any device can disable the entire system if it damages the communication line. For the same reason, debugging a system with a bus communication structure is quite complex and usually requires special equipment.

A typical structure of a microprocessor system is shown in Fig. 7. It includes three main types of devices:

  1. CPU;
  2. memory, including random access memory (RAM, Random Access Memory) and permanent memory (ROM, Read Only Memory), which is used to store data and programs;
  3. input/output devices (I/O – Input/Output Devices), used to connect the microprocessor system with external devices, to receive (input, read, Read) input signals and issue (output, write, Write) output signals.



Rice. 7. Structure of the microprocessor system

All devices of the microprocessor system are connected by a common system bus (also called system highway or channel). The system backbone includes four main low-level buses:

1) address bus (Address Bus);

2) Data Bus;

3) control bus (Control Bus);

4) Power Bus.

The address bus is used to determine the address (number) of the device with which the processor is currently exchanging information. Each device (except the processor), each memory cell in a microprocessor system is assigned its own address. When the code of an address is set by the processor on the address bus, the device to which this address is assigned understands that it is about to exchange information. The address bus can be unidirectional or bidirectional.

The data bus is the main bus that is used to transmit information codes between all devices of the microprocessor system. Typically, information transfer involves a processor that transmits a data code to some device or memory cell or receives a data code from some device or memory cell. But it is also possible to transfer information between devices without the participation of the processor. The data bus is always bidirectional.

The control bus, unlike the address bus and data bus, consists of separate control signals. Each of these signals has its own function during information exchange. Some signals serve to strobe transmitted or received data (that is, they determine the moments in time when the information code is placed on the data bus). Other control signals can be used to confirm that data has been received, to reset all devices, to clock all devices, etc. Control bus lines can be unidirectional or bidirectional.

Finally, the power bus is not designed to send information signals, but to power the system. It consists of power lines and a common wire. A microprocessor system may have one power supply (usually +5 V) or multiple power supplies (usually another –5 V, +12 V and –12 V). Each supply voltage has its own communication line. All devices are connected to these lines in parallel.

If you need to enter an input code into a microprocessor system (or input signal), then the processor accesses the address bus to the desired device I/O and receives input information via the data bus. If it is necessary to output an output code (or output signal) from a microprocessor system, then the processor accesses the desired input/output device via the address bus and transmits output information to it via the data bus.

If information must undergo complex multi-stage processing, the processor can store intermediate results in system RAM. To access any memory cell, the processor places its address on the address bus and transmits information code to it via the data bus or receives information code from it via the data bus. The memory (RAM and ROM) also contains control codes (commands of the program executed by the processor), which the processor also reads via the data bus with addressing via the address bus. Read-only memory is used primarily to store the startup program of the microprocessor system, which is executed every time the power is turned on. The information is entered into it by the manufacturer once and for all.

Thus, in a microprocessor system, all information codes and command codes are transmitted over the buses sequentially, in turn. This determines the relatively low performance of the microprocessor system. It is usually limited not even by the speed of the processor (which is also very important) and not by the speed of exchange on the system bus (backbone), but rather by the sequential nature of information transfer along the system bus (backbone).

It is important to consider that I/O devices are most often "hard logic" devices. They may be assigned part of the functions performed by the microprocessor system. Therefore, the developer always has the opportunity to redistribute system functions between hardware and software implementations in an optimal way. The hardware implementation speeds up the execution of the function, but has insufficient flexibility. Software implementation is significantly slower, but provides high flexibility. Hardware implementation of functions increases the cost of the system and its energy consumption, but software implementation does not. Most often, a combination of hardware and software functions is used.

Sometimes I/O devices incorporate a processor, that is, they are a small specialized microprocessor system. This allows you to shift some of the software functions to I/O devices, relieving the system's central processor.

Almost any developed microprocessor system (including a computer) supports three main modes of exchange over the highway:

1) programmatic information exchange;

2) exchange using interrupts;

3) exchange using direct memory access (DMA – Direct Memory Access).

Programmatic information exchangeis fundamental in any microprocessor system. It is always provided; without it, other exchange modes are impossible. In this mode, the processor is the sole owner (or master) of the system bus. All operations (cycles) of information exchange in this case are initiated only by the processor, all of them are performed strictly in the order prescribed executable program. The processor reads (selects) instruction codes from memory and executes them by reading data from memory or from an input/output device, processing it, writing data to memory, or transferring it to an input/output device. The processor's path through the program can be linear, cyclic, or contain transitions (jumps), but it is always continuous and completely under the control of the processor. The processor does not respond to any external events not related to the program. All signals on the highway in this case are controlled by the processor. Rice. 9. Architecture with a common data and command bus

But there is also an alternative type of microprocessor system architecture - an architecture with separate data and command buses (dual bus, or Harvard, architecture). This architecture assumes that the system has separate memory for data and separate memory for instructions (Fig. 10). The processor exchanges with each of the two types of memory via its own bus.

The common bus architecture is much more common and is used, for example, in personal computers and complex microcomputers. Separate bus architecture is used mainly in single-chip microcontrollers. Let's look at some of the advantages and disadvantages of both architectural solutions.

The architecture with a common bus (Princeton, von Neumann) is simpler; it does not require the processor to simultaneously service two buses or control exchange on two buses at once. The presence of a single data and command memory allows you to flexibly distribute its volume between data and command codes. For example, in some cases a large and complex program is needed, but not too much data needs to be stored in memory. In other cases, on the contrary, the program required is simple, but large amounts of stored data are required. Memory redistribution does not cause any problems, the main thing is that the program and data fit together in the system memory. As a rule, in systems with such an architecture, the memory is quite large (up to tens and hundreds of megabytes). This allows you to solve the most complex problems.

Rice. 10. Architecture with separate data and command buses

An architecture with separate data and command buses is more complex; it forces the processor to work simultaneously with two code streams and service exchange on two buses simultaneously. The program can only be located in the instruction memory, the data can only be located in the data memory. Such a narrow specialization limits the range of tasks solved by the system, since it does not provide the possibility of flexible memory redistribution. The data memory and command memory in this case are not very large, so the use of systems with this architecture is usually limited to not very complex tasks.

The fact is that with a single command and data bus, the processor is forced to receive data (from memory or an input/output device) and transmit data (to memory or to an input/output device), and also read commands from memory. Naturally, these code transfers over the highway cannot occur simultaneously; they must be done one after another. Modern processors are able to combine the execution of commands and the execution of exchange cycles on the system bus. The use of pipeline technologies and fast cache memory allows them to speed up the process of interaction with relatively slow system memory. Promotion clock frequency and improvements in the structure of processors make it possible to reduce command execution time. But a further increase in system performance is possible only by combining data transfer and command reading, that is, by moving to a dual-bus architecture.

In the case of a dual-bus architecture, exchange on both buses can be independent and parallel in time. Accordingly, bus structures (the number of bits of the address code and data code, the order and speed of information exchange, etc.) can be selected optimally for the task that is solved by each bus. Therefore, all other things being equal, the transition to a dual-bus architecture speeds up the operation of a microprocessor system, although it requires additional hardware costs and a more complex processor structure. In this case, the data memory has its own address distribution, and the command memory has its own.

The easiest way to realize the benefits of a dual-bus architecture is within a single chip. In this case, the impact of the shortcomings of this architecture can also be significantly reduced. Therefore, its main application is in microcontrollers, which are not required to solve very complex problems, but require maximum performance at a given clock frequency.

Any task can, in principle, be performed using each of the listed types of microprocessor systems. But when choosing a type, it is necessary to avoid redundancy whenever possible and provide for the system flexibility necessary for a given task.

Currently, when developing new microprocessor systems, the most common choice is to use microcontrollers (in approximately 80% of cases). In this case, microcontrollers are used either independently, with minimal additional equipment, or as part of more complex controllers with developed input/output facilities.

Classic microprocessor systems based on processor chips and microprocessor kits are now produced quite rarely, primarily due to the complexity of the development and debugging process of these systems. This type microprocessor systems are chosen mainly when microcontrollers cannot provide the required characteristics.

Microcontroller memory organization
I/O Ports
Timers-counters
Interrupts
Analog-to-digital converter
Communication Interfaces

Video course on programming STM32 microcontrollers

Microprocessor is a software-controlled device that processes and manages digital information. The microprocessor is implemented in the form of a large-scale integrated circuit (LSI) or ultra-large-scale integrated circuit (VLSI). The microprocessor acts as a processor in digital systems for various purposes.

The main feature of the microprocessor is the ability to program the operating logic.

Microcontroller (MCU)– a microcircuit designed to control electronic devices. A typical microcontroller combines the functions of a processor and peripheral devices, and may contain RAM and ROM. Essentially, it is a single-chip computer capable of performing simple tasks. The use of a single chip, instead of a whole set, as is the case with conventional processors used in personal computers, significantly reduces the size, power consumption and cost of devices built on the basis of microcontrollers.

Microprocessor system (MPS) is a functionally complete product consisting of one or more devices, mainly microprocessor-based: a microprocessor and/or a microcontroller.

Microprocessor device (MPU) is a functionally and structurally complete product, consisting of several microcircuits, which include a microprocessor; it is designed to perform a specific set of functions: receiving, processing, transmitting, converting information and managing.

Main advantages of microprocessor systems compared to digital systems based on “hard logic”.

  • Multifunctionality: more functions can be implemented on one element base.
  • Flexibility: the ability to correct and modify the microprocessor program to implement different operating modes of the system.
  • Compactness: miniature dimensions of microcircuits and a reduction in their number compared to implementation on “hard logic” make it possible to reduce the dimensions of devices.
  • Increased noise immunity: fewer connecting wires improve device reliability.
  • Performance: the ability to use higher operating frequencies and more complex information processing algorithms.
  • Information protection: the ability to protect the microprocessor program from being read allows you to protect the copyright of developers.

Although the microprocessor is universal remedy for digital information processing, however, certain areas of application require the implementation of certain specific options for their structure and architecture. Therefore, according to their functionality, two classes are distinguished: general-purpose microprocessors and specialized microprocessors. Among specialized microprocessors, the most widely used are microcontrollers designed to perform control functions for various objects, and digital signal processors (DSP - Digital Signal Processor), which are focused on implementing procedures that provide the necessary conversion of analog signals presented in digital form.

A partial list of peripherals that may be present in microcontrollers includes:

  • various input/output interfaces such as UART, I²C, SPI, CAN, USB, ETHERNET;
  • analog-to-digital and digital-to-analog converters;
  • comparators;
  • pulse width modulators;
  • timers-counters;
  • clock generator;
  • display and keyboard controllers;
  • arrays of built-in flash memory.

The idea of ​​placing a microprocessor and peripheral devices on one chip belongs to engineers M. Cochran and G. Boone, employees of Texas Instruments. The first microcontroller was the 4-bit TMS1000 from Texas Instruments, which contained RAM (32 bytes), ROM (1 kbyte), clock, and I/O support. Released in 1972, it had a new feature at that time - adding new instructions.

In 1976 (5 years after the creation of the first microprocessor), the first microcontroller from Intel was born, named 8048. In addition central processor, the chip contained 1 kilobyte of program memory, 64 bytes of data memory, two eight-bit timers, a clock generator, and 27 lines of I/O ports. Microcontrollers of the 8048 family were used in Magnavox Odyssey game consoles, in the keyboards of the first IBM PC and in a number of other devices.

Today, among the major manufacturers of microcontrollers, Atmel, Microchip, ST Microelectronics, Texas Instruments, Freescale Semiconductor, NXP, etc. should be mentioned.

Microcontroller is a chip designed to control electronic devices. A typical microcontroller combines the functions of a processor and peripheral devices on one chip, and contains RAM and (or) ROM. Essentially, it is a single-chip computer capable of performing relatively simple tasks.

The advent of single-chip microcomputers is associated with the beginning of the era of mass application of computer automation in the field of management. Apparently, this circumstance defined the term “controller”.

Due to the decline in domestic production and the increased import of equipment, including computing equipment, the term “microcontroller” (MC) has replaced the previously used term “single-chip microcomputer” from use.

The first patent for a single-chip microcomputer was issued in 1971 to engineers M. Kochren and G. Boone, employees of the American Texas Instruments. It was they who proposed placing on one chip not only a processor, but also memory and I/O devices.

In 1976, the American Intel company produces the i8048 microcontroller. In 1978 Motorola company released its first microcontroller MC6801, compatible in its instruction set with the previously released microprocessor MC6800. 4 years later, in 1980, Intel released the following microcontroller: i8051. A successful set of peripheral devices, the ability to flexibly select external or internal program memory, and an affordable price ensured this microcontroller's success in the market. From a technology point of view, the i8051 microcontroller was a very complex product for its time - 128 thousand transistors were used in the crystal, which was 4 times the number of transistors in the 16-bit i8086 microprocessor.

Today, there are more than 200 modifications of microcontrollers compatible with the i8051, produced by two dozen companies, and a large number of microcontrollers of other types. Popular among developers are 8-bit PIC microcontrollers from Microchip Technology and AVR from Atmel, 16-bit MSP430 from TI, as well as 32-bit microcontrollers of ARM architecture, which is developed by ARM Limited and sells licenses to other companies for their production. Despite the popularity of the microcontrollers mentioned above in Russia, according to Gartner Group data from 2009, the world ranking in terms of sales volume looks different: Renesas Electronics takes first place by a wide margin, Freescale is second, and

A microprocessor system is a computing, instrumentation or control system in which the main information processing device is the microprocessor. A microprocessor system is built from a set of microprocessor large-scale integrated circuits (LSI).

Characteristic features of microprocessor information and control systems designed to automate technological processes: the presence of a limited set of clearly defined tasks, real-time operation, the presence of a developed system of external devices, high reliability requirements taking into account the long duration of continuous operation, difficult operating conditions; automatic mode operation or mode with the participation of the operator as an element of the system.

The use in a modern microcontroller of a sufficiently powerful computing device with wide capabilities, built on a single chip instead of a whole set, significantly reduces the size, power consumption and cost of devices built on its basis. Used to control various devices and their individual units:

In computing: motherboards, controllers for hard and floppy drives, CDs and DVDs;

In electronics and a variety of household appliances that use electronic control systems - washing machines, microwave ovens, dishwashers, telephones and modern appliances;

In cars: on-board computers, engine control systems, etc.;

In industry: industrial automation devices - from programmable relays and embedded systems to PLCs, machine control systems.

Currently, there is a huge range (more than 10,000) of various microcontrollers, differing in scope, parameters, and peripheral units built into the chip. More than a dozen manufacturers produce microcontrollers.


Close