Addendum to Khalid's Microcontrollers and the Internet of Things (IOT) presentation (October 1, 2018).
With this blog entry, I thought I would provide some comments as an addendum to Khalid's presentation.
Please note that these comments are purposely limited in scope. Interested parties are free to contact me and, of course, consult with The Google.
I will start with memory which can be basically classified into two groups, non-volatile memory and volatile memory.
The definitions of non-volatile memory and volatile memory are as follows.
Simply put non-volatile memory retains its data when power is removed.
And volatile memory, usually called RAM, does not retain its data when power is removed.
The non-volatile memory used for program storage these days is Flash memory.
Modern microcontrollers and microprocessors typically do not use EEPROM for program storage.
Modern microcontrollers and microprocessors may or may not use EEPROM and / or EAROM for non-volatile storage of parameters and/or data.
And from the above, now we have some definitions that are needed.
Simply described, Flash, EEPROM and EAROM are different semiconductor technologies that are used to implement non-volatile memory.
I will skip their predecessors PROM and EPROM.
I will also skip the expansion of the acronyms RAM, PROM, EPROM, EEPROM and EAROM. Flash is not an acronym.
Aside: Flash memory technology is also used in USB Flash Memory sticks, hence, the name.
OK!. Now we have the terms microcontroller and microprocessor.
A Microprocessor is a complete processing device made from a small chunk of semiconductor and housed in one package, e.g. Dual In-Line Package (DIP) or Quad Flat Pack (QFP) or other.
Microcontrollers are basically microprocessors (see below) with integrated peripheral devices such as UART, ADC, DAC, SPI, I2C, PWM, etc.
I will skip the expansion of the acronyms UART, ADC, DAC, SPI, I2C, and PWM. I will also skip the explanations of the devices associated with these terms.
The first semiconductor processing device to come along, circa 1970, was the microprocessor, simply described as a small scale processing device without integrated peripherals (see above).
Systems designed around a microprocessor that required one or more peripherals typically implemented this requirement with external devices.
Pentium processors are microprocessors. As are AMD processors. As are the 8080, 8085, 8086, 8088, 80286, 80386 and 80486 predecessors.
Most of the processors used in most cell phones, tablets, notebooks, laptops, etc. are microprocessors, even if these processors may include a small degree of peripheral integration.
Variants of ARM processors may or may not be microcontrollers as the ARM architecture was designed to support a considerable amount of peripheral integration.
Variants of ARM processors may be classified as microprocessors or microcontrollers depending on the degree of peripheral integration.
Last in this blog entry I will describe the GPIO or General Purpose Input Output port.
The GPIO is typically a one bit wide port or physical pin that and be programmed as either a digital (binary) input or output.
As an input the GPIO, when read will return a 0 when the voltage on the pin is Low or near 0 Volts DC, and will return a 1 when the voltage on the pin is High or near 5 DC Volts or 3.3 Volts DC with some devices.
As an output the GPIO, when written with a 0, will output a Low or 0 Volts, and when written with a 1, will output a Low or 5 Volts DC or 3.3 Volts DC with some devices.
Note: GPIO circuitry can be damaged if the voltage applied to the pin exceeds specified limits; same for the current drawn by or sourced from the pin.
Caution: Do not let the smoke out.
There are (and have been) many microprocessors to choose from and study.
There are (and have been) many microcontrollers to choose from and study.
As always, there are exceptions. And opinions which may differ.
- 30 -