Tag Archives: MCUs

Rewind: 50 boards you’ll want to know about from 2015


Here’s a look at a bunch of boards that caught our attention over the last 12 months. Feel free to share your favorites below! 


“Hardware becomes a piece of culture that anyone can build upon, like a poem or a song.” – Massimo Banzi

Arduino Zero

ZERO_front_1024x1024

A 32-bit Arduino powered by the Atmel | SMART SAM D21.

Arduino Wi-Fi Shield 101

ASX00001_featured_1024x1024

An IoT shield with CryptoAuthentication that enables you to wirelessly connect your Arduino or Genuino with ease.

Arduino MKR1000

Chip

A powerful board that combines the functionality of the Zero and the connectivity of the Wi-Fi Shield.

Atmel | SMART SAM L21

SAM_L21_XPRO_Angle2-1

A game-changing family of Cortex-M0+ MCUs that deliver power consumption down to 35 µA/MHz in active mode and 200nA in sleep mode.

BTLC1000

BTL

An ultra-low power Bluetooth Smart SoC with an integrated ARM Cortex-M0 MCU and transceiver.

Atmel | SMART SAMA5D2

ult

An ARM Cortex-A5-based MPU that offers great features integrated into lower pin count packages, making it ideal for applications where security, power consumption and space constraints are key considerations.

Atmel | SMART SAM S70/E70

SAM

An ARM Cortex-M7-based MCU with a floating point unit (FPU) that’s ideal for connectivity and general purpose industrial applications.

ATmegaS128

ATme

A space-ready version of the popular ATmega128.

Adafruit Feather

NewImage376.png

A new line of development boards that, like it’s namesake, are thin, light and let your ideas fly. Expect Feather to become a new standard for portable MCU cores.

Adafruit METRO 328

2466-04

An ATmega328-driven processor packed with plenty of GPIO, analog inputs, UART, SPI and I2C, timers, and PWM galore – just enough for most simple projects.

Arduino GEMMA

abx00001_featured_1024x1024

A miniature wearable board based on the ATtiny85.

Adafruit Bluefruit LE Micro

2661-00

A board that rolls the versatility of the ATmega32U4 and the wireless connectivity of the SPI Bluefruit LE Friend all into one.

SparkFun Stepoko

Stepoko_Tutorial-21_red

An Arduino-compatible, 3-axis control solution that runs grbl software.

SparkFun SAM D21 Breakout

SAM

An Arduino-sized breakout for the ATSAMD21G18.

Bosch Sensortec BMF055

bmf055_440

A compact 9-axis motion sensor, which incorporates an accelerometer, a gyroscope and a magnetometer along with an Atmel | SMART SAM D20 ARM Cortex M0+ core.

BNO055 Xplained Pro

NO

A new extension board, which features a BNO055 intelligent 9-axis absolute orientation sensor, that connects directly to Atmel’s Xplained board making it ideal for prototyping projects for IoT apps.

SmartEverything

Board_SM_586_grayok

A prototyping platform that combines SIGFOX, BLE, NFC, GPS and a suite of sensors. Essentially, it’s the Swiss Army knife for the IoT.

Qduino Mini

MCU

A tiny, Arduino-compatible board with a built-in battery connector and charger built-in, as well as a fuel gauge.

Tessel 2

tessel2-800x600

A dev board with a SAM D21 coprocessor, reliable Wi-Fi, an Ethernet jack, two USB ports and a system that runs real Node.js/io.js.

LattePanda

LattePanda

A Windows 10 single-board computer equipped with an Intel Atom x5-Z8300 Cherry Trail processor, 2GB of RAM, 32GB of storage and an ATmega32U4 coprocessor.

LightBlue Bean+

cortado-quarter-1280x960_1024x1024

An Arduino-compatible board that is programmed wirelessly using Bluetooth Low Energy.

Makey Makey GO

photo-original

A thumbdrive-shaped device that can transform ordinary objects into touch pads.

Hak8or

DSC_9624_S

An uber mini, DIY board based on an Atmel | SMART AT91SAM9N12 that runs Linux via a USB drive.

Modulo

spark-modulo

A set of tiny modular circuit boards that takes the hassle out of building electronics.

Microduino mCookie

promo-shot-mcookie

A collection of small, magnetically stackable modules that can bring your LEGO projects to life.

The AirBoard

airboard

A compact, open source, wireless and power efficient dev board designed to learn, sketch and deploy prototypes out in the field.

Autonomo

sodaq

A matchbox-sized, Arduino-compatible MCU powered by a small solar panel.

Helium

sensor_with_hand-1940x1455

An integrated platform that brings the power of the cloud to the edge of the network, enabling you to observe, learn and capture actionable insights from existing physical ‘things’ in your environment.

Sense HAT

astropi-Pi

An add-on for the Raspberry Pi equipped with a gyroscope, an accelerometer, a magnetometer, a temperature sensor, a barometric pressure sensor and a humidity sensor, as well as a five-button joystick and an 8×8 RGB LED matrix — all powered by an LED driver chip and an ATtiny88 running custom firmware.

Ardhat

6a406bc3c11fed4a8387966dd8473198_original

A HAT with an Arduino-compatible processor that responds quickly to real-time events, while letting the Raspberry Pi do all of the heavy lifting.

Wino

Bild

A cost-effective, Arduino-compatible board with built-in Wi-Fi.

pico-Platinchen

pico1

A little board designed for wearable devices that features a BNO055, an ATmega328P and a CR2032 coin-cell battery.

 XeThru X2M200 and X2M300

Xen.png

A pair of adaptive smart sensor modules that can monitor human presence, respiration and other vital information.

LinkIt Smart 7688 Duo

8c9810bd7307c22742a0ccdfbc908a17-image-530x397

An Arduino Yún-friendly platform powered by an ATmega32U4 and MediaTek MT7688 SoC.

Piccolino

photo-original2

A small, inexpensive controller with an embedded OLED display and Wi-Fi connectivity that you can program using existing tools like the Arduino IDE.

ZeroPi

8593e8974dbbe70ee4ee826a8ef292b4_original

A next-generation, Arduino and Raspberry Pi-compatible dev kit for robotic motion structure systems and 3D printers that boasts an Atmel | SMART SAM D21 at its core.

CryptoShield

CryptoShield_6

A dedicated security peripheral for the Arduino and was made in collaboration with SparkFun’s previous hacker-in-residence, Josh Datko. This shield adds specialized ICs that perform various cryptographic operations which will allow you to add a hardware security layer to your Arduino project.

ZYMKEY

df64307484309c0ef944b7a5512b2832_original-1

An add-on board that makes it easy to secure your Raspberry Pi and Linux applications.

Flip & Click

arduino-side-spacers

A two-sided, Arduino-like board with an AT91SAM3X8E for its heart.

ChipWhisperer-Lite

P1080764__64385.1444013016.1000.1200

An open source toolchain for embedded hardware security research including side-channel power analysis and glitching. The board uses a Spartan 6 LX9, along with a 105 MS/s ADC, low-noise amplifier, an Atmel | SMART SAM3U chip for high-speed USB communication, MOSFETs for glitch generation and an XMEGA128 as a target device.

KeyDuino

photo-original

An Arduino Leonardo-like board with built-in NFC that lets you replace your keys with any smartphone, NFC ring or proximity card.

Neutrino

2d67550a42b543732458e2bb36d2ce23_original

An inexpensive, open source and shrunken-down version of the Arduino Zero that boasts a 32-bit ATSAMD21G18 running at 48MHz and packing 32K of RAM.

WIOT

2015-03-30T02-12-57.577Z-WIOT_4.png.855x570_q85_pad_rcrop

An open source, Arduino-compatible board with an ATmega32U4, ESP8266 Wi-Fi module and lithium-ion battery support.

Obscura

photo-original-1

An ATmega32U4-powered, 8-bit synthesizer that enables you to create NES, C64 and Amiga-style chiptune music by simply connecting a MIDI device.

Zodiac FX

photo-original

An OpenFlow switch that is powerful enough to develop world-changing SDN apps yet small enough to sit on your desk. Based on an Atmel | SMART SAM4E, the unit includes four 10/100 Fast Ethernet ports with integrated magnetics and indicator LEDs along with a command line interface accessible via USB virtual serial port.

Goldilocks Analogue

photo-original-2

A board that brings sophisticated analog and audio input, output and storage capabilities to the Arduino environment.

NodeIT

ar

A super small and expandable IoT system for Makers.

Pixel

17e3121f47a1659b1ece2240bcd6916d_original

A smart display that features an Atmel | SMART SAM D21 MCU operating at 48MHz and packing 32K of RAM, along with a 1.5” 128×128 pixel OLED screen and a microSD slot.

SDuino

9864981437569005598

An Arduino crammed inside an SD card.

… and how could we not mention this?

The WTFDuino!

wtfduino_banana_arduino_by_calum_knott_1-620x465

Do you feel like today’s MCUs are too simple and sensible? Well, one Maker decided to take a different approach by “undesigning” the Arduino into a banana-shaped processor whose form factor is impossible to breadboard and whose pins are incorrectly labelled.

 

Atmel’s second 2015 FAE training comes to an end


Taking a look back at the final FAE training of the year… 


We couldn’t have found a more appropriate, well-suited place to host our final internal three-day technical training of 2015 than Shenzhen, China. The city is constantly innovating, with IoT startups popping up on seemingly each street corner, throughout every tech shop, factory and Makerspace. This is a good context to present product updates, show off design tricks and run workshops from early morning to late night. We also network with old friends and make new ones, which further strengthens the teamwork, extends our knowledge base and builds confidence to help our customers bring their ideas to life.

H2-2016-FAE-Training

The buzz of the week was the highly-anticipated, full-day workshop on our uber mini Bluetooth Low Energy chipset (the BTLC1000) with overviews of the supported protocol stacks, silicon and software architecture, introduction from product marketing, as well as a hands-on session using Atmel’s standard Xplained development boards, the recently-launched Atmel Studio 7 and Atmel START.

At Atmel, we spread our love equally between wireless and low power. The world’s lowest power 32-bit MCU, the SAM L21, even saw the birth of a new sibling: the SAM L22. This particular board is feature-compatible with the SAM L21, but comes with an LCD controller and some nifty power-save features.

When it comes to IoT applications, performance plays an integral role so we spent time on the new low-power modes and security capabilities of the SAMA5D2. FAEs in a hurry could also complete the entire workshop and connect the SAMA5D2 to a cloud with the WILC1000 Wi-Fi module.

IMG_0847

To top off the event, we saw the debut of more wireless technologies with a complete 6LoWPAN stack emphasising security and authentication with Atmel’s wide range of CryptoAuthentication engines.

Still wondering if IoT is a big thing at Atmel? Well, duh! Between low-power MCUs, all major wireless connectivity protocols, security layers and a cloud ecosystem in place, we’ve got each of the necessary pillars covered.

Big thanks to Atmel’s training team, distributors, and of course, FAEs for making this event such a great success! Until next time!

SOMNIUM’s DRT software tools now available in Atmel Studio 7


Build smaller, faster, cheaper and more energy efficient software for Atmel | SMART devices with the SOMNIUM DRT Atmel Studio Extension.


As the desire for the world to become more connected increases by the day, we see more and more devices connecting to each other and sensors being built into everything around us. The advent of the Internet of Things means that MCUs need to be smaller and more energy efficient than ever before, but at the same time these processors need to be smarter and cheaper, and from a developers perspective, need to be easy to program as well.

studio7__google_1160x805

Fortunately, the Atmel | SMART ARM-based family has been optimized for cost and power sensitive use cases, targeting applications such as the IoT, smart metering, industrial controls and domestic appliances, to name just a few. Moreover, the recently launched Atmel Studio 7 has introduced a new capability to measure energy consumption during development — a clear indication of the growing significance of this factor to developers in their embedded designs.

Easily measuring energy consumption during development is clearly important, but once you know your consumption what steps can you take if you need to reduce usage in your design? The MCU itself certainly contributes, and typically a smaller device will need lower power. As a result, many designers’ first strategy is keep the energy consumption low in their design is to reduce code size, thus allowing them to devise on a smaller MCU. This often requires a fair amount of manual code optimization, a time consuming and costly task.

What if there was a way for you to not only take advantage of the innovative Atmel | SMART MCU lineup and the added features of Atmel Studio 7, but also take your embedded software designs to the next level, further reducing your energy consumption, shrinking your code size without manual intervention and at the same time improving performance? Now there is, thanks to the SOMNIUM DRT Atmel Studio Extension.

DRT%20ATMEL%20Black%20Small

DRT supports all Atmel | SMART ARM Cortex-M based MCUs, and is the only product that offers improved code generation while maintaining full compatibility with industry-standard GNU tools. What’s more, the extension enhances Atmel Studio 7 by enabling superior quality C and C++ code generation, resulting in reduced flash requirement for applications, faster code execution and reduced power consumption. DRT installs as an alternate toolchain, seamlessly replacing the Atmel GNU tools, making SOMNIUM’s patented-resequencing optimizations available to Atmel Studio users without complex software rewriting and staff retraining.

Unlike traditional tools which only consider the ARM Cortex processor, DRT is aware of the coupling of the processor and its memory system, automatically applying a new series of device-specific optimizations. DRT analyzes the whole program, identifying all instruction and data sequences and the interactions between them. Knowledge of the Atmel SMART MCU’s memory system and ARM Cortex pipeline are used to intelligently resequence your program.

Soo

“By adding the SOMNIUM DRT to Atmel’s software and tools ecosystem, our developers can take their projects to market with improved code generation,” explained Henrik Flodell, Atmel Senior Product Marketing Manager, Development Tools. “With access to high-quality tools, developers can optimize memory-constrained systems for performance along with power efficiency. SOMNIUM’s advanced technology brings additional value to our customers in these areas.”

Interested? A 21-day trial of the SOMNIUM DRT Atmel Studio Extension can be be downloaded free of charge from the Atmel Gallery. An annual license with full commercial support is also available from SOMNIUM for $750.

SAM L family now the world’s lowest power ARM Cortex-M based solution


Consuming one-third the power of existing solutions, Atmel | SMART SAM L achieves 185 EEMBC ULPBench score.


System design used to be an exercise in optimizing speed. That has since changed. Nowadays, embedded systems pack plenty of performance to handle a number of task, leading the challenge for designers to shift to completing those tasks using as little energy as possible — but not necessarily making it as fast as possible. As you can imagine, this has created quite the competitive environment on the processor battlefield amongst vendors, each seeking to attain the lowest power solution on the market.

lowpower_Banner_980x352_v3

“The surge in popularity of battery-powered electronics has made battery life a primary system-design consideration. In extreme cases, the desire is not to run off of a battery at all, but to harvest energy from local sources to run a system — which requires the utmost power frugality,” writes Andreas Eieland, Atmel Director of Product Marketing. “In addition, there’s a growing family of devices like smoke detectors, door locks, and industrial sensors (4-20 mA and 10-50 mA) that can draw power through their inputs, and that power is limited.”

These sort of trends point to the significance of reducing the power requirements of electronic systems. However, the varying technologies that provide the necessary performance make power reduction harder. Fortunately, Atmel has been focusing on low power consumption for more than 10 years across its portfolio of AVR and Atmel ǀ SMART ARM-based processors. Many integrated peripherals and design techniques are used to minimize power consumption in real-world applications, such as integrated hardware DMA and event system to offload the CPU in active and standby modes, switching off or reducing clock or supply on device portions not in use, intelligent SleepWalking peripherals enabling CPU to remain in deep sleep longer, fast wake-up from low power modes, low voltage operation with full functionality, as well as careful balancing of high performance and low leakage transistors in the MCU design.

picoPower_chip

With picoPower technology found in AVR and Atmel ǀ SMART MCUs, Atmel has taken it a step further. Indeed, all picoPower devices are designed from the ground up for lowest possible power consumption from transistor design and process geometry, sleep modes, flexible clocking options, to intelligent peripherals. Atmel picoPower devices can operate down to 1.62V while still maintaining all functionality, including analog functions. They have short wake-up times, with multiple wake-up sources from even the deepest sleep modes. Some elements of picoPower technology cannot be directly manipulated by the user, but they form a solid base that enables ultra-low power application development without compromising functionality. Meanwhile, flexible and powerful features and peripherals lets users apply an assortment of techniques to reduce a system’s total power consumption even further.

Then, there’s the Atmel | SMART SAM L21 microcontroller, which has broken all ultra-low power performance barriers to date. These Cortex-M0+-based MCUs can maintain system functionality, all while consuming just one-third the power of comparable products on the market today. This device delivers ultra-low power running down to 35µA/MHz in active mode, consuming less than 900nA with full 32kB RAM retention. With rapid wake-up times, Event System, Sleepwalking and the innovative picoPower peripherals, the SAM L21 is ideal for handheld and battery-operated devices for a variety of Internet of Things (IoT) applications.

The ultra-low power SAM L family not only broadens the Atmel | SMART portfolio, but extends battery life from years to decades, reducing the number of times batteries need to be changed in devices such as fire alarms, healthcare, medical, wearable, and equipment placed in rural, agriculture, offshore and other remote areas. The SAM L21 combines ultra-low power with Flash and SRAM that are large enough to run both the application and wireless stacks — three features that are cornerstones of most IoT applications. Sampling now, the SAM L21 comes complete with a development platform including an Xplained Pro kit, code libraries and Atmel Studio support.

So how does the SAM L21 stack up against the others? Ahead of the pack, of course! As an alternative to so-called “bench marketing” of low power products, nearly ever large semiconductor company — and several smaller ones that focus on low power — have collaborated in a working group formed by the Embedded Microprocessor Benchmark Consortium (EEMBC). The EEMBC ULPBench uses standardized test measurement hardware to strictly define a benchmark code for use by vendors, considering energy efficiency and running on 8-, 16- and 32-bit architectures. At the moment, the Atmel | SMART SAM L21 product boasts the highest ULPBench score of any microcontroller, regardless of CPU.

“In Atmel’s announcement last year for the company’s SAM L21 family, I had pointed out the amazingly low current consumption ratings for both the active and sleep mode operation of this product family – now I can confirm this opinion with concrete data derived from the EEMBC ULPBench,” explained Markus Levy, EEMBC President and Founder. “Atmel achieved the lowest power of any Cortex-M based processor and MCU in the world because of its patented ultra-low power picoPower technology. These ULPBench results are remarkable, demonstrating the company’s low-power expertise utilizing DC-DC conversion for voltage monitoring, as well as other innovative techniques.”

While running the EEMBC ULPBench, the SAM L21 achieves a staggering score of 185, the highest publicly-recorded score for any Cortex-M based processor or MCU in the world — and significantly higher than the 167 and 123 scores announced by other vendors. The SAM L21 family consumes less than 940nA with full 40kB SRAM retention, real-time clock and calendar and 200nA in the deepest sleep mode.

lower

In fact, a recent EE Times writeup delving deeper into competition even revealed, “TI surpassed its own earlier result by announcing the MSP-432 family based on the Cortex M4F. It achieved a ULPBench score of 167.4. While TI was briefing the media on this product, however, Atmel quietly published a ULPBench score of 185.8 for its SAM L21 MCU based on the Cortex M0+.”

Beyond the recently-unveiled ARM-based chip, it’s also important to note the 0.7V tinyAVR. A typical microcontroller requires at least 1.8V to operate, while the voltage of a single battery-cell typically ranges from 1.2V to 1.5V when fully charged, and then drops gradually below 1V during use, still holding a reasonable amount of charge. This means a regular MCU needs at least two battery cells. Whereas, Atmel has solved this problem by integrating a boost converter inside the ATtiny43U, converting a DC voltage to a higher level, and bridging the gap between minimum supply voltage of the MCU and the typical output voltages of a standard single cell battery. The boost converter provides the chip with a fixed supply voltage of 3.0V from a single battery cell even when the battery voltage drops down to 0.7V. This allows non-rechargeable batteries to be drained to the minimum, thereby extending the battery life. Programmable shut-off levels above the critical minimum voltage level avoid damaging the battery cell of rechargeable batteries.

battery_600x300 (1)

Interested in learning more? You can explore Atmel’s low power technology here, as well as download the new white paper entitled “Turn Power-Reducing Features into Low-Power Systems” here.

8- or 32-bit, that is the question…

Writing for Electronic DesignAtmel’s Ingar Fredriksen and Paal Kastnes recently explored the latest market trends for both 8- and 32-bit microcontrollers (MCUs). While the 32-bit MCU devices continue to rise in popularity throughout the embedded community, 8-bit MCUs are still experiencing a CAGR close to that of their bigger cousins.

These 32-bit, function-rich devices suit an array of different applications, which explains why many embedded developers select them for their next designs. Designers recognize that such complex devices offer everything they need in terms of raw compute power, a rich peripheral set, and easy access to a wide range of development tools and libraries.

Many of these 32-bit devices — which are members of the Atmel | SMART family — are based on the highly-successful ARM cores. Thus, developers feel confident in having access to second source devices and a comprehensive set of development, test and validation tools being available in the market.

However, taking a closer look at recent MCU market trends has revealed that 32-bit devices aren’t the only ones experiencing strong growth. The surging 8-bit MCU market boasts a CAGR (6.4%) close to that of 32-bit (6.9%). Meanwhile, a number of other industry analysts forecast identical growth rates for 8- and 32-bit microcontrollers.

The upswing in 8-bit devices, like the incredibly popular Atmel AVR lineup, clearly highlights that there must be some compelling reasons to use an 8-bit device in place of a 32-bit MCU. The recently-published Electronic Design article looks to shed some insight as to why 8-bit devices are retaining market share.

Essential Differences

The principle differences between 8- and 32-bit MCUs are cost and price structure, CPU performance, ease of use, efficiency in hardware near functions, and static power consumption. When embarking on a new design, developers need to carefully scope out the requirements for an MCU based on the amount of processing capability required, the degree of interfacing needed, and, for battery-powered designs, the all-important power consumption profiles. There’s no doubt that a 32-bit MCU delivers higher performance than an 8-bit device, but the engineer faces the traditional decision of choosing between the best available device in the market versus an application’s actual needs.

Table-1-big

Of course, these decisions will greatly influence the likely bill of materials (BOM) cost. With a lower gate count, a less complex 8-bit device will certainly be cheaper than a 32-bit device. When comparing 8- and 32-bit MCUs from leading vendors, each with a similar amount of flash memory, pin-out etc., 8-bit devices typically cost about 20% less. But this is only the first of many considerations. Another aspect relates to the ease in setting up for a new development.

Ease of Development

MCU suppliers tend to add more features and functionality to their 32-bit devices as opposed to 8-bit products. Consequently, far more setup considerations emerge with a more complex device. While some 32-bit MCUs can run with a limited setup similar to that of an 8-bit device, you’re unable to take advantage of the more powerful device’s additional features.

For example, a typical 32-bit ARM device will have independent clock settings for the core itself, the AHB bus, the APBA bus, and the APBB bus. They all can be set to different frequencies. Typically, you will also have to switch to the clock you want to use because it’s set in software, not in hardware like most 8-bit parts. Furthermore, changing the clock means you must set up the wait states for flash, possibly predicated on measured VCCvoltage.

Such a setup can be much simpler with an 8-bit MCU, though. For example, Atmel’stinyAVR and megaAVR products only require initialization of the stack pointer, which typically takes four lines of code, prior to coding the application. The choice of clock, brownout detector, reset pin function, etc., is all pre-programmed into the device.

The architecture is also much more straightforward than a 32-bit device with internal registers, peripherals, and SRAM all mapped on the same data bus. The peripherals and CPU would normally run at the same frequency, so no peripheral bus configuration is necessary. Moreover, designers can avoid being concerned about latency in synchronizing between different clock domains.

Performance

When it comes to desired CPU performance, the engineer should consider all use cases. The reality is that many embedded designs don’t have high compute requirements. Often, very little manipulation of data is required, so balancing those needs against power-consumption and peripheral-interfacing requirements becomes crucial.

For instance, a simple thermostat application will spend most of its life in a sleep mode. Every so often, it will wake up and measure the temperature and then make a decision to turn a relay on/off or send an instruction to a host controller. Then it will resume sleep. The compute and interface requirements of this application are small, but many other applications such as fire detectors, power tools, flow meters, and appliance controls have a similar use profile, too.

Efficiency of Hardware Near Functions

Many modern microcontrollers incorporate some hardware functions that serve to help the CPU operate as efficiently as possible. In Atmel’s case, both the 8-bit AVR and 32-bit ARM-based MCU families feature the Peripheral Event System. An event system is a set of hardware-based features that allows peripherals to interact without intervention from the CPU. It allows peripherals to send signals directly to other peripherals, ensuring a short and 100% predictable response time.

When fully using the capabilities of the event system, the chip can be configured to do complex operations with very little intervention from the CPU, saving both valuable program memory and execution time. In the case of detecting a hardware event, it’s important to first detect the event and then switch control to the desired interrupt service routine (ISR).

In these situations, CPU speed isn’t the single determining factor. It’s a question of how long, in terms of cycles, does it take to respond to the interrupt, run the ISR, and return. As the following example will show, 8-bit devices can be more efficient in handling hardware near actions.

Table-2-big

Consider receiving one byte on the SPI, using an interrupt to detect it, and then running a simple ISR routine to read the byte from the SPI peripheral and store it in SRAM. Using this scenario, table above draws comparisons between an Atmel 8-bit AVR device and an Atmel ARM Cortex M0+based 32-bit MCU. Calculated with information available, the results are based on minimum implementations. However, engineers should check with their own applications since the interrupt detection and return from interrupt could take more cycles than shown in the table. Requiring 12 cycles versus 33 cycles equates to having a theoretical maximum SPI bandwidth of 1.67 MB/s for the 8-bit CPU and a 606 kB/s bandwidth for a 32-bit CPU when running at 20 MHz.

The degree of numeric processing can also have an impact on the stack and required memory. Applying the Fibonacci algorithm is one particularly good method for testing memory requirements. Since it only uses a local variable, everything needs to be pushed to the stack.

When making a comparison between an 8-bit AVR and an ARM 32-bit CM0+-based device, and using a recursive 15-stage Fibonacci algorithm, the AVR uses a total of 70 bytes of stack, including 30 for return stack (15 calls deep). The ARM-based device uses 192 bytes (60 should be return stack). This means the CSTACK is more than three times the size of the 8-bit solution. In typical C code, more of the variables on the stack often come in a packed format, so this is an extreme corner. However, saying 1.5 to 3 times more SRAM is needed for the same 8-bit-centric application on a 32-bit (versus a native 8-bit) device is a fair estimation.

Power Consumption

No MCU article would be complete without investigating static power consumption. This alone may be a key factor in choosing between an 8- or 32-bit device, especially for battery-powered applications. The table below illustrates power-consumption differences between 8- and 32-bit devices in both active and static modes.

Table-3-big

Aggressive manufacturing technologies increase transistor leakage current, which roughly doubles with each process generation, and is proportional to the number of gates. Leakage current increases exponentially at higher temperatures, which can be easily overlooked when designing a consumer design. Mobile phones and personal media players are transported everywhere, and as we have all found out, temperatures experienced during the summer inside a car can easily climb above 40°C.

The amount of time the microcontroller will spend in active mode versus static mode contributes significantly to the overall application power budget.

Naturally, the ratio between active and static modes will vary depending on the application requirements. Taking the previous SPI interrupt example (second table from above) and assuming a SPI data bandwidth of 80 kb/s, the 8-bit CPU will spend 1.2% of its time in active mode compared to that of the 32-bit, which will spend 3.3% in active mode (table below).

Table-4

Conclusion

Contemplating whether to use an 8- or 32-bit microcontroller for a future design may involve an Internet of things (IoT) application. How IoT actually takes shape provokes lots of debate, but it will certainly challenge engineers to make a detailed appraisal of the MCU requirement. Wireless connectivity, especially ZigBee, will also be an essential component, but that doesn’t automatically mean that it will need a higher power device.

A number of available 8-bit microcontroller products satisfy the need for low levels of processing and wireless connectivity. One such example is the Atmel ATmegaRFR2 series, which provides an IEEE 802.15.4-compliant, single-chip, 2.4-GHz wireless microcontroller solution that suits battery-powered, low-cost IoT designs.

Interested in reading more? Be sure to check out the original article from Electronic Design here.

Tutorial: Building cool projects with MCUs (Part 1)

I don’t remember exactly when I learned programming, but I played around with computers from an early age. I remember that it was such an amazing thing to be able to make my own programs. I made games and I made websites. And, it was so fun. When I was around 14 years old, I also started playing with electronic circuits. I made simple circuits of blinking lights and such. Also, a lot of fun.

Then at one point, I discovered microcontrollers. Oh, my God. I realized that by using microcontrollers I could combine programming and electronics to build robots, music players and what-not. It was a shockingly cool discovery. Wow!

electronics-project-with-dev-board-and-7-segment-1024x682

But understanding how to use a microcontroller wasn’t straightforward. There were programmers, EEPROM’s, debuggers, integrated development environments and a lot of different types of microcontrollers. It took me a few years before I started building projects using microcontrollers. Not because it took that long to learn it – but because the whole thing felt so overwhelming. And, I didn’t know where to start. But once I committed to just figure it out, it was actually quite fast to get up and running.

In this five-part microcontroller tutorial series, I will take you from knowing nothing – to being able to build and program a microcontroller circuit from home. To make sure we have everybody on board – let’s start from scratch by taking a look at what a microcontroller is.

Like a Tiny Computer

A microcontroller is somewhat like a tiny little computer. And, simiar to a computer, you can hook up things like a display, a motor, buttons and much more to it. Then, you put programs onto it and run them to make it do something.

OLYMPUS DIGITAL CAMERA

The things you can use a microcontroller for are endless! Among the countless possibilities include building robots, flying quadcopters, music players, or even smartphones.

Learning how to use microcontrollers opens so many opportunities for building new cool projects. Throughout this microcontroller tutorial, you will learn all you need to know, step-by-step, in order to get started with MCUs.

Getting Started With Microcontrollers

Let’s start by taking a closer look at the microcontroller chip. The chip has several pins, most of them input and output pins. The microcontroller uses these pins to interact with the outside world.

Atmel-microcontroller-pinout

However, a microcontroller doesn’t really do anything without getting any instructions. So to make it do something, you need to write a program and load the program onto the chip. This process is often called programming the microcontroller.

In the program, you use code to read from input pins, and to control output pins. By connecting something, such as a light-emitting diode (LED) to an output pin, you will be able to switch the light on and off from your program. If you connect a push-button to an input pin, you can use code to read the pin and see if the button is pushed or not.

Then, you can create code that turns the light on when the button is pushed, and turns the light off when it is not pushed. Not a very exciting example, I agree, but a very good place to get started. Think of it as the “Hello World” of microcontrollers.

We could easily turn this into a much more interesting application.

Connect a temperature sensor to an input pin instead of the button. And keep the LED on the output. Create a program that reads the temperature and if the temperature is above a certain level, start blinking the light.

Now, attach this to your beer, and a light will start flashing to warn you that your beer is getting warm. Now that’s useful!

Programming a Microcontroller

Okay, so how do we get from having this idea of what to make, into actually creating it? First of all, we have to create a circuit, then we need to program the microcontroller.

Creating the circuit is a matter of creating a schematic with the components we need, then turning this into a circuit board. I’ll show you how to do this later in this tutorial.

When you have your circuit ready, you need to program your microcontroller. I found this a bit confusing in the beginning. There are many ways of doing this, and not all methods work on all microcontrollers.

The steps you need to go through in order to get your program onto the microcontroller can be divided into the following:

1. Create program code
2. Compile the code into machine code
3. Upload the machine code onto your microcontroller

These steps will be different for different types of microcontrollers. When we get to the programming part of this tutorial, I will show you exactly how to do it for the microcontroller we choose.

But choosing a microcontroller can be a very overwhelming task, especially if you are just starting out. In the next part, I’ll show you what is going through my head when I choose a microcontroller – so that you’ll know how to choose one for your next project.

Stay tuned for Parts 2-5 in the coming days…

This smart shaker helps you mix the perfect cocktail

Not equipped to be a bartender? Luckily, this new gizmo is.

photo-main

Designed by the Magnified Self crew, B4RM4N is a smart cocktail shaker powered by an Atmel microcontroller (MCU) and connected to your smartphone via Bluetooth, allowing you to mix and pour the perfect drink every time.

505ee6a5caffb0ab2274f088633b81c1_h264_high

To start, a user connects B4RM4N to their mobile device by placing the shaker onto a nearby table or bar, immediately launching the accompanying mobile app (available on both iOS and Android). Then, simply select a recipe from the vast library loaded onto the app, as well as the desired number of drinks (up to three glasses at a time for any given recipe).

Once a recipe is chosen, a user will be instructed by the app to go ahead and round up each of the necessary ingredients, and start adding. Accompanied by instant sound feedback, the LEDs located along the side of the shaker will indicate when to stop. When completed with one ingredient, B4RM4N shows you what to do next, which can also be monitored on the smartphone’s screen. Easy peasy lemon squeezy!

61bab8123f758811c8ac6078025ccbc1_large

Who knew the shaking process could be made smarter? B4RM4N can simplify the process even more by telling an aspiring drink-maker when to stop thanks to its embedded accelerometer.

0d55670ffae18bbfc82c4a5722bdbcb0_large

Throwing a last-minute shindig? With its real-time capabilities, the connected cocktail shaker can suggest what drinks you can make based on the ingredients on-hand or in the fridge. Think you’ve made quite the decadent drink and want the world to know? B4RM4N also enables you to share the creation across Facebook, Twitter and other social communities.

bda36859ab13c0d47bff3f49dd8933b1_large

Recently launched on Kickstarter, its team is seeking $100,000 to assist in production. Can you see yourself using this smart contraption at your next party? Magnified Self hopes to have its first batch of shipments ready for next summer… just in time for that 4th of July extravaganza!

Check your crypto chip with a Saleae logic analyzer

I have already noted the tiny full-function logic analyzer from Saleae. You can imagine my delight when I found this app note written by our security chip group on how to use the Saleae logic analyzer to debug the serial interface with one of our CryptoAuthentication chips, the ATSHA204.

The ATSHA204A includes a 4.5Kb EEPROM divided into 16 slots. This array can be used for storage of keys, miscellaneous read/write, read-only, password or secret data, and consumption tracking. Access to the various sections of memory can be restricted in a variety of ways and then the configuration locked to prevent changes. Access to the chip is through a standard I²C interface at speeds up to 1Mb/sec.

The Saleae logic analyzer has no problem keeping up with these fast speeds. ATSHA204 device supports either a single-wire interface (SWI) or two-wire interface (TWI) depending on the part number.

Saleae-logic-for-ATSHA204

When you drop the right dll into the Saleae program directory, you will get a menu callout for the Atmel SWI (single-wire-interface).

You use a dll to add the single-wire debug analysis to the Saleae, while the two-wire interface debugging can be handled by the I²C menu pick. So check out the Saleae logic analyser. My buddies tell me it is worth every penny compared to the cheapo stuff on Seeed Studio since the mechanical engineering is so much better on the Saleae, and the quality of the test leads and the capability of the software, which is a huge part of what a logic analyzer does for you these days. It’s one thing to see highs and lows on the screen, but it’s really nice when the logic analyzer tells you what characters are being sent on the wire or wires.

Saleae-logic-analyzer

The Saleae logic analyzer comes with high-quality cables and clips.

So check out the Saleae logic analyzers and be sure to secure your systems with a hardware-based security chip. When it comes to securing our intelligent, connected world, there’s no need to fear… Atmel CryptoAuthentication devices are here!

All tiny AVR parts in a spreadsheet

I just made a spreadsheet of all the tinyAVR parts. All my pals love the MCU selector guide, but I have a lot of analog dinosaur buddies that prefer a spreadsheet to a web-based interface. You can sort the data and this spreadsheet has the filter box on the columns, so you can sort out things you care about and exclude the things you don’t. The spreadsheet fits on a 24-inch display, and you can print it out on a single B-sized sheet and use it as an infographic.

ATtinyAVR-product-line_2014-08-20

This screenshot shows how all the tinyAVR parts will fit on one 11×17 ledger-sized or B-sized sheet of paper.

I started with an Excel dump of the selector guide after adding every single parameter to the search. I then took all the tinyAVR parts, and rearranged the columns, throwing out the irrelevant ones. I also combined the automotive parts with the basic parts. That added two columns for automotive temp and automotive Vcc range. Adding 2 columns to remove 13 rows seemed like a good deal. The part name links to the product page on our website.

I made a column for each package. That took a long time. Semiconductor companies think of a part as the silicon die, with the package being almost irrelevant. We systems folk know the package might be the most important thing. I tried to put the smaller packages on the left, with those big ol’ DIP (dual-inline plastic) parts on the right side. There is a second sheet in the spreadsheet that shows all the parts by number and there I put the package size, in mm. In both sheets, the package name links to the definition page on our website.

ATtinyAVR-product-line_2014-08-20_sheet-2

The second sheet of the spreadsheet shows all the tinyAVR parts by number. I put the exact package size on this page.

Besides the packages and package size, I also spent a long time getting pricing. My buddy Wayne Yamaguchi requested this, and he is absolutely right, price is the most important spec of any part, and I hate when it takes 5 clicks to find it. These prices are a bit sketchy. All I did was click on the “Buy” link and select a handful of parts from each family, and then looked at the Digi-Key price, in 1000s. I put in the highest and lowest of the few I selected, but this is by no means scientific or dispositive, as the lawyers would say. What I should do is put the price in the “Package” column, so you know what the package is and what price we charge, but many parts are in the same package but have two Vcc ranges, so there is no unique way to encode this and keep the spreadsheet on one printable page. Maybe I can blow out the second page to show every orderable part number and its price and specs. Always time to do it over, never time to do it right.

The major thing I want to add is the OrCAD 9.2 footprint name for the packages. I am afraid to do this now, since we have all been burned by narrow-DIP/wide-DIP and narrow -SOIC/wide-SOIC and what pin numbering to use on SOT parts, so that will have to wait for next time. If anyone has a proven definitive list of the OrCAD footprints, please let me know. paul.rako[yeah, the at sign]atmel.com

You can highlight all the parts and use the “Data>Sort” function to order them any way you want. I did it by Flash memory size and part name. You can also use the little filter boxes on each column to include or exclude, or even put in a logical range with equal or less than or all the other things. Its not exactly grep or regular expressions, but it can get the job done helping you to find the right part.

Spreadsheet-filter-function

Excel filter boxes let you select just the parameters you care about.

I am told this spreadsheet works OK in Open Office/Libre. My pal Dave asked that any columns that are filtered be lit up red, but that takes a macro, and the VB macro may not work in Open Office, we are checking for that. Meanwhile, check there are 36 part families or that the little filter box does not have 3 pixels different to show the filter is on.

Microscopically-differerent-filter-icon

When you have filtered a column, it is almost impossible to tell, since the only indication is the icon makes this 3-pixel change.

Weasel weasel, CYA CYA, legal boilerplate—this is a hobby job, not an official Atmel document. If the selector guide had it wrong, it is wrong here too. I made my own mistakes too. And I already told you the pricing and the tiny1634 stuff was dicey. What I am hoping is that I can get some community support where you point out the errors, and tell me what to add. paul.rako[yeah, the at sign]atmel.com I also ask that you send this URL link to your pals, instead of just emailing the spreadsheet. That way the bosses will see you like this, and I can have the time to keep working on it.

Hans-Camenzind_tinyAVR-spreadsheet

If Hans Camenzind, the inventor of the 555 timer chip was still alive, he might have a copy of the tinyAVR spreadsheet up on his office wall. I miss Hans, at least he came to my Analog Aficionados party one year, before we lost him to the Grim Reaper.

 

Baskin-Robbins only has 31 flavors, Atmel has 505

Actually these days even Baskin-Robbins has more, but not 505 like Atmel. That’s a lot. While some are AVR, both 8-bit and 32-bit, others are various flavors of ARM (all 32-bit) ranging from older parts like the ARM9 to various flavors of Cortex ranging from the M0 (tiny microcontroller with no pipeline or cache) up to A5. Of course, the ARM product line goes all the way up to 64-bit Cortex-A57 and so on — but they are not in any sense of the word microcontrollers and are really only used in SoCs and not standalone products.

But with 505 choices, how do you pick one? Fortunately, Atmel has made it easy for you to navigate the various flavors. With the help of the company’s MCU product finder, you now have the ability to input your hard constraints, while the tool will narrow down the choices. For example, if you want your microcontroller to have at least 64 Kbytes of flash, then there are only 257 out of the 505 that will suit your needs. For each parameter, users can set minimums and maximums — except for the yes/no choices.

When it comes to the selection process, there are several things that you can constrain:

  • Flash memory (0 to 2Mbytes)
  • Pin count (6 to 324)
  • Operating frequency (1 to 536MHz)
  • CPU architecture (pick from 8-bit AVR, 32-bit AVR, ARM 926 and 920, ARM Cortex M0, M3, M4, A5)
  • SRAM (30 bytes to 256 Kbytes)
  • EEPROM (none to 8 Kbytes)
  • Max I/O pins (4 to 160)
  • picoPower (yes or no)
  • Operating voltage (various ranges from 0.7V to 6V)
  • Operating temperature (various from -20oC to 150oC)
  • Number of touch channels (none to 256)
  • Number of timers (1 to 10)
  • Watchdog (yes or no)
  • 32KHz real time clock (yes or no)
  • Analog comparators (0 to 8)
  • Temperature sensor (yes or no)
  • ADC resolution (8 to 16 bits)
  • ADC channels (2 to 28)
  • DAC channels (0 to 4)
  • UARTs (0 to 8)
  • SPI (1 to 12)
  • TWI (aka I2C) interface (none to 6)
  • USB interface (none, device only, host+OTG, host and device)
  • PWM channels (0 to 36)
  • Ethernet interfaces (none to 2)
  • CAN interfaces (none to 2)

Wow, that’s a lot of options! But after a couple of dozen selections, you can narrow down your choice to something manageable. Here’s how the interface will appear:

Say for instance, I wanted to pick a microcontroller, an ARM Cortex of some flavor. Already choices are down to 189. I want 32K to 128K of flash (now down to 73 choices). I want it to run at an operating frequency of at least 64 MHz (now down to 10). I want 4K of SRAM (turns out all 10 choices already have that much). I need 4 timers. I am now down to 2 choices:

These two choices are the ATSAM3S1C and the ATSAM3S2C — both ARM Cortex-M3s. The first has 64K of flash and the second 128K. I can click on the little PDF icon and access a full datasheet for these microprocessors. If I don’t like the choices and I have some flexibility on specs, then obviously I can go back and play with the parameters to get some new options.

I can click on the “S” to order samples. However, in order to do this, you must already have an Atmel account. Or, with just another click on the shopping cart icon, I can obtain a list of distributors throughout various geographic regions, where I can actually place an order. It even tells me how many each of them have in stock!

For those of you ready to start searching, you can find the Atmel Microcontrollers Selector here.

This post has been republished with permission from SemiWiki.com, where Paul McLellan is a featured blogger. It first appeared there on March 2, 2014.