A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program memory and any necessary support ICs. The intention is that the board is immediately useful to an application developer, without requiring them to spend time and effort to develop controller hardware. As they are usually low-cost, and have an especially low capital cost for development, single-board microcontrollers have long been popular in education. They are also a popular means for developers to gain hands-on experience with a new processor family.
Origins Single-board microcontrollers appeared in the late 1970s, when the appearance of early microprocessors, such as the 6502 and the Z80, made it practical to build an entire controller on a single board, as well as affordable to dedicate a computer to a relatively minor task. In March 1976, Intel announced a single-board computer product that integrated all of the support components required for their 8080 microprocessor, along with 1 kilobyte of RAM, 4 kilobytes of user-programmable ROM, and 48 lines of parallel digital I/O with line drivers. The board also offered expansion through a bus connector, but could be used without an expansion card cage when applications did not require additional hardware. Software development for this system was hosted on Intel's Intellec MDS microcomputer development system; this provided assembler and PL/M support, and permitted in-circuit emulation for debugging. Processors of this era required a number of support chips to be included outside of the processor. RAM and EPROM were separate, often requiring memory management or refresh circuitry for dynamic memory. I/O processing might have been carried out by a single chip such as the 8255, but frequently required several more chips. A single-board microcontroller differs from a single-board computer in that it lacks the general-purpose user interface and mass storage interfaces that a more general-purpose computer would have. Compared to a microprocessor development board, a microcontroller board would emphasize digital and analog control interconnections to some controlled system, whereas a development board might by have only a few or no discrete or analog input/output devices. The development board exists to showcase or train on some particular processor family and, therefore, internal implementation is more important than external function.
Internal bus The bus of the early single-board devices, such as the Z80 and 6502, was universally a Von Neumann architecture. Program and data memory were accessed via the same shared bus, even though they were stored in fundamentally different types of memory: ROM for programs and RAM for data. This bus architecture was needed to economise the number of pins needed from the limited 40 available for the processor's ubiquitous dual-in-line IC package. It was common to offer access to the internal bus through an expansion connector, or at least provide space for a connector to be soldered on. This was a low-cost option and offered the potential for expansion, even if it was rarely used. Typical expansions would be I/O devices or additional memory. It was unusual to add peripheral devices such as tape or disk storage, or a CRT display Later, when single-chip microcontrollers, such as the 8048, became available, the bus no longer needed to be exposed outside the package, as all necessary memory could be provided within the chip package. This generation of processors used a Harvard architecture with separate program and data buses, both internal to the chip. Many of these processors used a modified Harvard architecture, where some write access was possible to the program data space, thus permitting in-circuit programming. None of these processors required, or supported, a Harvard bus across a single-board microcontroller. When they supported a bus for expansion of peripherals, a dedicated I/O bus, such as I²C, 1-Wire or various serial buses, was used.
External bus expansion Some microcontroller boards using a general-purpose microprocessor can bring the address and data bus of the processor to an expansion connector, allowing additional memory or peripherals to be added. This provides resources not already present on the single board system. Since not every system will require expansion, the connector may be optional, with a mounting position provided for installation by the user if desired.
Input and output
… excerpt ends here. Continue reading the full article.






