Enter Your Electronics & Design Project for Your Chance to Win a Grand Prize for the craziest project or a $100 Shopping Cart! | Project14 Home | |
Monthly Themes | ||
Monthly Theme Poll |
The Craziest Project that uses of two or more MCUs Wins a Grand Prize Package + a $100 Shopping Cart!
3 First Place Winners Win a $100 Shopping Cart to an element14 Store!
Buy NowBuy Now | Buy NowBuy Now | Buy NowBuy Now |
MKR Giveways and Upcoming Livestream Series on MKR with Massimo Banzi Cofounder of Arduino!
In the comments below: Tell us your crazy ideas on combining two or more MCUs in your Project!
Here's to the crazy ones: The theme this month is Clustered MCUs and it comes from 14rhb. You can do any project that involves two or more MCUs. To make things interesting we are offering a Grand Prize Package of an Arduino MKR IoT Bundle (includes the MKR1000 Dev Board), an MKR1000 & Uno Shield Interface Adapter Board, an Arduino Uno, and some swag for the craziest project that uses two or more microcontrollers!
You can use any two microcontrollers or combinations of microcontrollers from any manufacturer. It doesn't matter what board its on. Arduino is a popular choice for many of you on the community and it would be great to see some more Arduino Projects . The MKR1000 kit and MKR1000 & Shield Interface were originally ordered in advance of the Open Arduino competition. This was held to celebrate the birthday of Project14 by celebrating the birthday of Arduino . They were also included in the kit used for the Design for a Cause - Design Challenge .
When we had the Project14 | The Birthday Special: Open Arduino: The Winners Announcement! , the grand prize was still waiting on the MKR1000 Kit and shield interface. jomoenginer was the grand prize for his Imperial Mouse Droid project. It used both an Arduino Uno and an Arduino Yun:
- Arduino Powered MSE-6 (Mouse Droid) – Arduino Code
- Arduino Powered MSE-6 (Mouse Droid) - Arduino Yun UI
- Arduino Powered MSE-6 (Mouse Droid) - Arduino Uno and FreeRTOS
- Arduino Powered MSE-6 (Mouse Droid) - Droid in Action
- Arduino Powered MSE-6 (Mouse Droid)
Because the kit and adapter were so popular, they were backordered. Unfortunately, they were not in as soon as expected so there was a bit of delay in shipping it out to jomoenginer , who was more than understanding. Luckily, Arduino who was sponsoring the Design for a Cause - Design Challenge stepped up to send over an MKR1000 Kit and MKR1000 & Shield interface. Now jomoenginer had everything he needed to go along with the rest of his Grand Prize winnings:
Birth of the Microcontroller
What is a microcontroller and where does it come from? The dawn of the microcontroller was in the early 70s. In 1971, around the same time that Intel invented the world's first microprocessor, Gary Boone and Michael Cochran invented the world's first microcontroller for Texas Instruments. Before passing at the age of 68 in 2013, Gary Boone conducted an oral history with the Institute of Electrical & Electronics Engineers which you can view here. According to him:
- A microprocessor is "a processor on a single chip. A processor has an instruction set and it operates on data, according to a program. The data, the program, and the input and output are arranged externally to that single chip."
- A microcontroller "attempts to provide a self-contained system on a single chip. In addition to a processor, it also includes memory for data, memory for program, an ability to deal with inputs like keyboard inputs, and an ability to provide outputs like numeric or alpha-numeric display outputs."
The tradeoff of having a microcontroller contain all those things is that the amount of processing power would be typically less than a microprocessor of equal price. A microprocessor, unlike a microcontroller, is not a self-contained computer on a chip. It cannot operate without the help of other ICs like RAMs, ROMs, and I/O chips to interact with other components.
The first microcontroller, the TMS 1000, did not go to general market immediately but was introduced in a TI calculator in 1972. It was made available to the general market in 1974. The TMS 1000, was cheap enough to be used in everything from Texas Instrument's own calculators, microwave ovens, washers, jukeboxes, video games, toys, and many other consumer electronics.
Texas Instruments now has a wide variety of microcontrollers available, some with specific hardware on board to specialize them for more specific tasks. Often a user must set data registers manually, which can involve reading 600+ page data sheets to find the proper line of code or variable. While these board may offer more than Arduino, they often require more time and recourse.
Here are some common terms may come across when evaluating microcontrollers for your Clustered MCUs project:
- MCU - microcontroller
- MIPs - million instructions per second: a measure of the speed and power of the processor
- CPU - basic instruction processing unit in the microcontroller
- DSP - digital signaling processor: chip designed for data intensive mathematical calculations
- RISC - reduced instruction set computing
- CISC - complex instruction set computing
- SOC - system on a chip
- ADC - analog-to-digital converter
- DAC - digital-to-analog converter
- RAM - random access memory
- FRAM - ferroelectric RAM
- UART - universal asynchronous receiver transmitter: translates between parallel and serial data
- SPI - serial peripheral interface: a synchronous serial data bus
- PWM - pulse width modulation: modulation technique used mostly for controlling motors
The low-cost of the microcontroller and all-in-one approach made it economical to make what is now known as embedded computer application. One of the first applications of the microcontroller were in gas pumps where it was used for metering and starting of the pump. Also, it was used in microwave ovens where it was used to monitor the keypad, clock, and oven settings. Now, microcontrollers are the top selling chip of any kind. They are all around you. They can be found in tools, toys, toothbrushes, and much more.
Memory Architectures: Harvard vs Von Neumann
In the early days of computing, around the time of the World War II, the US government asked Harvard and Princeton Universities to design computer architecture for computation of naval artillery shell distances for varying elevations and environmental conditions.
The ENIAC (Electronic Numerical Integrator and Computer) was among the earliest electronic general-purpose computers made. It uses the same memory and data paths for programs and data storage. Among the first programs included the feasibility of the thermonuclear weapon:
Harvard's answer was the Mark 1 which read instructions from a 24-channel punched paper tape. It executed instruction and then read in the next one. A separate tape contained numbers for input but the tape formats were not interchangeable. Instructions could not be executed from the storage registers. The separation of data and instructions is known as the Harvard Architecture.
The Von Neumann (Princeton) Architecture, was better suited for the time because using one memory was preferable because of the unreliability of electronics at the time, before the widespread use of transistors. That's because with a single memory interface, fewer things could go wrong.
The Harvard Architecture was largely ignored until the late 1970s when microcontroller manufacturers realized the advantages for devices they designed.
Von Neumann (Princeton) Architecture | Harvard Architecture |
---|---|
The Harvard Architecture was largely ignored until the late 1970s when microcontroller manufacturers realized the advantages for devices they designed.
The Von Neumann Architecture's biggest advantage is that it simplifies microcontroller design because only one memory is accessed. Meanwhile, the Harvard Architecture executes instructions in fewer instruction cycles than the Von Neumann architecture. Each architecture has its advantage. The Harvard model has the edge on performance while the the Von Neumann is more flexible.
The Connection Machine
When we talk about a Grand Prize for the Craziest Clustered MCUs project we have something like The Connection Machine in mind. Just joking. Although, wouldn't that be cool?
In the early 80s, Danny Hillis assembled a team that would develop what would become known as the CM-1 Connection Machine, a massively parallel hypercube-based arrangement of 65,536 microprocessors. The microprocessors were relatively puny but they worked together to follow the structure of the brain. In fact, the CM-1 Connection Machine, was an idea that was hatched from doctoral research on alternatives to the the then commonplace von Neumann architecture. The machine would become the first commercial supercomputer designed AI, notably modeling its structure on the brain. Rather than relying on a single powerful processor to perform calculations simultaneously, it distributed data over tens of thousands simple 1-bit processors. It is amazing what you can accomplish simply and when working as a team! Each processor performed calculations simultaneously, an architecture known as Single Instruction Multiple Data (SIMD).
When it came time to pick a name for the startup, they chose the name Thinking Machines Corporation. Nobel Prize Physicist Feyman was a member of the team. He suggested the internal network, a 12-dimensional boolean n-cube structure, enabling the processors to communicate faster than any previous SIMD design. While the processors themselves were simple, the router that allowed the processors to communicate was complicated in comparison. Because many processors needed to communicate simultaneously , many messages would need to contend for the same wires.
The Connection Machine was an inspiration to no other than Steve Jobs himself. He was at NeXT at the time with Joanna Hoffman, who had followed Jobs from Apple to Next Computers. She was also served as a marketing manager for him during the launch of the first Macintosh and she had this to say on the influence of The Connection Machine on Jobs:
Sergey Brinn, cofounder of Google, helped turn Google into the world's most powerful search engine. He was influenced heavily from parallel programming techniques he learned on a Connection Machine. Danny's subsequent company, Metaweb, was acquired by Google. The CTO of Metaweb, John Giannandrea, is now the head of Google's AI. According to Danny Willis, who co-founded both the Thinking Man's Corporation and Metaweb:
The AVR Microcontroller
In the early 90s, the AVR line of microcontrollers was born from a student project at the Norwegian Institute of Technology. Alf-Egil Bogen and Vegard Wollan devised an 8-bit device with a RISC-type internal architecture. They would continue working and refining the design once the AVR design was sold to Atmel. The AVR is a modified Harvard Architecture RISC microcontroller. They are highly configureable and versatile. It has several features that set it apart from 8 bit microcontrollers of the time such as the 8051 by Intel and the 68HC05 by Motorola.
The AVR line was of devices was one of the first to incorporate on-board flash memory for program storage, as opposed to relying on one-time programmable ROM (read-only memory), EPROM (erasable programmable read-only memory), or EEPROM (electrically erasable programmable read-only memory) as was used with other microcontrollers of the time. This made reprogramming the AVR microcontroller a simple matter of loading program code into the devices internal flash memory.
Most AVR parts use a small amount of EEPROM for storing things like operating parameters that must persist between changes in the flash memory.
Although Atmel says that AVR does not stand for anything and its not an acronym, it's generally accepted that AVR stands for Alf and Vegard's RISC processor. AVR is a modified Harvard Architecture whereby program and data are stored in separate physical memory systems that appear in different address spaces but have the ability to read data items from program memory using instructions.
There are three categories of AVR microcontrollers:
- ATtiny (Tiny AVR) - 6-32 pins, .5-8 KB of Flash Memory, small in size, ideal for simpler applications
- ATmega (Mega AVR) - 6-32 pins, 4- 256 KB of memory, more inbuilt peripherals, ideal for modest to difficult applications
- ATXmega (Xmega AVR) - 44-100 pins, 16-384 KB, used commercially for applications requiring large program memory and high speed; DMA, Event System Included
RISC Architecture
- 131 instructions
- 32 8-bit general purpose registers
- Up to 20 Mhz clock rate (20 MIPS operation)
CPU
Based on the Harvard Architecture, every IC (integrated circuit) has two buses, an instruction bus and a data bus. The CPU core consists of the ALU, General Purpose Registers, Program Counter, Instruction Register, Status Register, and Stack Pointer. The 8-bit CPU controls peripheral functions via an internal high-speed data bus.
Internal Memory
AVR devices contain three types of memory:
- Flash - used to store programs and initialize any data. You can execute program code from flash but can not modify data in the Flash Memory from your executing code. To modify data, it needs to be copied into SRAM (up to 256 K)
- SRAM (static random-access memory) - (upused to hold transient data such as the program variables and the stack (up to 32K)
- EEPROM - holds data that needs to persist between software changes and power cycles. (up to 4K)
Flash and EEPROM can be loaded externally and will retain its content when the AVR is powered off. The SRAM is voltatile and its contents will be lost when the AVR loses power.
Your Monthly Theme
The Monthly Theme You Voted For: Clustered MCUs | |
---|---|
Arduino Powered MSE-6 (Mouse Droid) - Droid in Action | Fingerprint Skeleton Key - RFID Module - Design for a Cause Challenge - Blog Post #3 |
Your Chance to Win
Be Original | Stick to the Theme |
---|---|
|
|
List the Steps | Submit Video Proof |
|
|
The Grand Prize
- One Grand Prize Winner Wins an Arduino MKR IoT Bundle, MKR1000 & Uno Shield Interface Adapter Board, an Arduino Uno + a $100 Shopping Cart
Arduino MKR IoT Bundle | MKR1000 & Uno Shield Interface Adapter Board | Arduino Uno |
---|---|---|
Buy NowBuy Now | Buy NowBuy Now | Buy NowBuy Now |
First Place Winners
- 3 First Place Winners Win a $100 Shopping Cart:
Your Project, Your Ideas!
About Project14 | Directions |
---|---|
Every month you'll have a new poll where you'll get to decide an upcoming project competition, based on your interests, that will take place a couple of months in advance. Themes are broad in scope so that everyone can participate regardless of skill set.
What are Monthly Themes?
What are Monthly Theme Polls?
| Step 1: Log in or register on element14, it's easy and free. Step 2: Post in the comments section below to begin a discussion on your idea. Videos, pictures and text are all welcomed forms of submission. Step 3: Submit a blog post of your progress on your project by the end of the month. You are free to submit as many blog entries as you like until the beginning of the next theme.
Be sure to include video proof of your project!
Visit:
You have until October 15th End of Day to submit your completed project!
A jury consisting of your peers will judge project submissions! |
In the Comments Below:
Let us know what you plan on doing with two or more MCUs in your Project!
Top Comments