Tag Archives: Microcontroller

Are Today’s MCUs Overdesigned? A Research Team Has The Answer

MCUs are called microcontrollers because they embed a CPU, memory and I/O units in one package. Apparently, today’s MCUs are full of peripherals and in most cases they are not used in the application, and from an engineering point of view this is a waste of money and energy, but on the other hand, for developers and consumers it’s about programmability and flexibility.

Rakesh Kumar a University of Illinois electrical and computer engineering professor and John Sartori a University of Minnesota assistant professor tried to prove that processors are overdesigned for most applications.

Kumar and his colleagues did 15 ordinary MCU applications using openMSP430 microcontroller with bare metal and RTOS approach (both are tested in their study). Surprisingly, the results showed that all of these applications needed no more than 60 percent of the gates. Therefore, smaller MCUs can be used (cheaper and less power consuming). As stated by Sartori, “a lot of logic that can be completely eliminated, and the software still works perfectly”.

Bespoke Processor research results
Image courtesy by: University of Illinois/ACM

In the image above the analysis of unused gates for two applications: Interpolation FIR filter and Scrambled Interpolation FIR. The red dots are the used gates and gray ones are the not used ones.

The research team called the optimum MCU the “Bespoke Processor”, and described the process “like a black box. Input the app, and it outputs the processor design.” says Kumar.

Source: IEEE Spectrum

Open-V, The Open Source RISC-V 32bit Microcontroller

Open source has finally arrived to microcontrollers. Based on RISC-V instruction set, a group of doctoral students at the Universidad Industrial de Santander in Colombia have been working on an open source 32-bit chip called “Open-V“.

Onchip, the startup of the research team, is focusing on integrated systems and is aiming to build the first system-on-chip designed in Colombia. The team aims to contribute to the growth of the open source community by developing an equivalent of commercial microcontrollers implemented with an ARM M0 core.

The Open-V is a 2x2mm chip that hosts built-in peripherals which any modern microcontroller could have. Currently, it has ADC, DAC, SPI, I2C, UART, GPIO, PWM, and timer peripherals designed and tested in real silicon. Other peripherals, such as USB 2, USB3, internal NVRAM and/or EEPROM, and a convolutional neural network (CNN) are under development.

Open-V Chip Specifications

  • Package: QFN-32
  • Processor RISC-V ISA version 2.1 with 1.2 V operation
  • Memory: 8 KB SRAM
  • Clock: 32 KHz – 160 MHz, Two PLLs, user-tunable with muxers and frequency dividers
  • True Random Number Generator: 400 KiB/s
  • Analog Signals: Two 10-bit ADC channels, each running at up to 10 MS/s, and two 12-bit DAC channels
  • Timers: One general-purpose 16-bit timer, and one 16-bit watch dog timer (WDT)
  • General Purpose Input/Ouput: 16 programmable GPIO pins with two external interrupts
  • Interfaces: SDIO port (e.g., microSD), two SPI ports, I2C, UART
  • Programming and Testing
    • Built-in debug module for use with gdb and JTAG
    • Programmable PRBS-31/15/7 generator and checker for interconnect testing
    • Compatible with the Arduino IDE

RISC-V is a new open instruction set architecture (ISA) designed to support architecture research and education. RISC-V is fully available to public and has advantages such as a smaller footprint size, support for highly-parallel multi-core implementations, variable-length instructions to support an optional dense instruction, ease of implementation in hardware, and energy efficiency.

Open-V core provides compatibility with Arduino, so it is possible to benefit from its rich resources. Also when finish preparing the first patch, demos and tutorials will be released showing how Open-V can be used with the Arduino and other resources.

The Open-V microcontroller uses several portions of the Advanced Microcontroller Bus Architecture (AMBA) open standard for on-chip interconnection. This makes any Open-V functional block, such as the core or any of the peripherals, easy to incorporate into existing chip designs that also use AMBA. We hope this will motivate other silicon companies to release RISC-V-based microcontrollers using the peripherals they’ve already developed and tested with ARM-based cores.
We think buses are so important, we even wrote a paper about them for IEEE LASCAS 2016.

Open-V Development Board Specifications

Onchip team are also developing a fully assembled development board for their Open-V. It is a 55 mm x 30 mm board that features everything you need to get start developing with the Open-V microcontroller, include:

  • USB 2.0 controller
  • 1.2 V and 3.3 V voltage regulators
  • Clock reference
  • Breadboard-compatible breakout header pins
  • microSD receptacle
  • Micro USB connector (power and data)
  • JTAG connector
  • 32 KB EEPROM
  • 32-pin QFN Open-V microcontroller

Compared with ARM M0+ microcontrollers, power and area simulations show that a RISC-V architecture can provide similar performance. This table demonstrates a comparison between Open-V and some other chipsets.

OnChip Open-V microcontroller designs are fully open sourced, including the register-transfer level (RTL) files for the CPU and all peripherals and the development and testing tools they use. All resources are available at their GitHub account under the MIT license.

We think open source integrated circuit (IC) design will give the semiconductor industry the reboot it needs to get out of the deep innovation rut dug by the entrenched players. Just like open source software ushered in the last two decades of software innovation, open source silicon will unleash a flood of hardware innovation. The Open-V microcontroller is one concrete step in that direction.

A crowdfunding campaign with $400k goal has been launched to support manufacturing of Open-V. The chip is available for $49 and the development board for $99. There are also many options and offers.

A Mass Programming Bench for ATMega32u4 MCUs

“limpkin” @ limpkin.fr wanted to program some thousand of MCUs so he decided to build his own programming bench. He writes:

As you may know I started the Mooltipass offline password keeper project more than 2 years ago. Together with a team of volunteers from all over the globe I created two Mooltipass devices which were successfully crowdfunded through Indiegogo and Kickstarter, raising a total of around $290k.
Through a secure mechanism it is possible to upgrade the firmware running on the Mooltipass units. On our latest device, the Mooltipass Mini, we implemented signed firmware updates, which involved storing inside the microcontrollers’ memory some cryptographic keys.

A Mass Programming Bench for ATMega32u4 MCUs – [Link]

SMART.IO, An Affordable Remote Control for Embedded Designs

Creating a smartphone application for your embedded products may be a high-cost process that consumes time and efforts. ImageCraft, a producer of high quality low cost embedded system tools, had developed “Smatr.IO” as a very cheap alternative solution that allows you to add a friendly user interface to any embedded project.

Smart.IO is a toolkit that helps you to create a compatible application with your product without the need of any experience in wireless technology or app development. It uses BLE (Bluetooth Low Energy) and it doesn’t require an Internet connection or data plan.

Smart.IO consists of three parts:

  • A Small Chip Module compatible with any microcontroller.
  • A Software API for creating Graphical User Interface (GUI) objects.
  • A Programmable Smartphone App that requires only a Bluetooth connection to use.

There is no need to write any wireless code, or write an app. All you need is to add the Smart.IO chip to your existing microcontroller-based design, then use the API to create GUI objects in your firmware.

The Smart.IO Chip Module

The Smart.IO chip module is only 25mmx14mm. It has a 10-pin headers which are easy to solder onto your PCB, or use in a prototype system. It interfaces with your host microcontroller using SPI pins, plus extra pins for interrupts for data notification. Smart.IO draws very little power, typically about 100mA, and much less during standby mode.

If you are an Arduino user, ImageCraft will provide an Arduino-compatible shield that comes with a Smart.IO chip module, so that Arduino users can start using it immediately.

The Smart.IO API

The API functions allow you to create GUI objects and to modify their values. A simple callback mechanism notifies your firmware of input changes. The API code will run in the Smart.IO chip firmware, and the host MCU only runs the API interface layer code, so it will not use the host MCU resources.

The Programmable Smart.IO App

The GUI elements incorporate solid, current user interface principles. The UI will look and work exactly the same way across all iOS devices, from the iPhone 5 to iPhone 7+, and all iPad devices, including the iPad Pro. An Android friendly UI is planned for Spring.

There is also a customized version of the app specific to your product and branding for an inexpensive one-time licensing fee including customized app logo and name and security key to ensure your product will only work with your app.

Smart.IO Security

Secret key encryption is used to ensure secure pairing of the device and customized app. As Smart.IO does not use the Internet, there is no risk of your device being used for DDOS or other types of attacks through the use of Smart.IO.

Through the Kickstarter campaign, Smart.IO reached about $9,500 and pre-ordering is still open here. ImageCraft will start work on the Android version of the programmable app and set up a forum for Smart.IO users. A use case example of Smart.IO is available on the official page.

PIC SD CARD DATA LOGGER

Some time ago I decoded to make a simple general purpose Data Logger with the following parameters for the project.

  • it should have very simple design that should be doable by most amateurs
  • the Data Logger should write the data in a SD memory card in simple text files
  • minimum 2 ADC channels
  • simple to use and simple settings
  • energy efficient
  • low cost

PIC SD CARD DATA LOGGER – [Link]

Emulate an Apple ][ on an AVR Microcontroller

The Apple II personal computer, which stylized as Apple ][, is an 8-bit home computer and one of the first highly successful mass-produced microcomputer products. It was designed primarily by Steve Wozniak and developed with Steve Jobs. Apple ][ was introduced in 1977 at the West Coast Computer Faire by Jobs and was sold several million times till 1993.

Maximilian Strauch is a computer scientist, software developer, web designer and maker from Germany. In 2014 he wrote about implementing a software emulator for the complete Apple ][ computer system on a single Atmel AVR microcontroller unit (MCU) in his Bachelor thesis.

The microcontroller not only emulates the MOS 6502 processor, it also performs other tasks such as output display and input keyboard. A challenging task is to get the 20 MHz AVR controller run as the 1 MHz processor.

The final result of the thesis is a fully functional, battery powered and portable Apple ][ emulator.

This video shows the final prototype in action and demonstrates most of it’s features.

The layer diagram of the Apple ][ emulator consist of about 10 layers shown in the next figure.

  • Emulator Runtime Environment (ERE): Contains the source code which makes up the main (backend) GUI of the emulator in particular, the menus.
  • UI Framework / Display I/O: Some low level functions to control the LCD display (SSD 1289 controller) and functions to paint menus and backgrounds.
  • Keyboard I/O: Accepts key presses from the separate keyboard controller and provides some high-level functions to convert Apple ][ keystrokes into regular ASCII keycodes and some wait-for-keypress functions.
  • State I/O: The emulator supports saving the current state of the entire emulation including RAM and the processor registers. Therefore the execution can be saved and reloaded later to continue at the exact same execution state.
  • TWI / EEPROM: Provides physical layer support to talk to an EEPROM, e.g. two functions which utilize the AVR’s hardware support for I2C to talk to the 128KB I2C serial EEPROM from Microchip.
  • DSK I/O: Contains all high-level functions to read Apple ][ floppy disk images (5 1/2 inch floppy disks, normally 140 KB in total) and list that contained programs to load them into memory.
  • SD Library (3rd party): The emulator uses the Petit FAT File System Module by Elm Chan since it works out of the box. A further improvement could be to store states to the SD card.
  • 6502 CPU Emulation: Advanced emulation of the MOS 6502 processor without support for illegal instructions (not originally defined) and the BCD mode.
Layer diagram of the Apple ][ emulator: every horizontal connection of two boxes symbolizes a use relation.

Max has published detailed information about the thesis here. All of the project resources are available online, so you can download the full thesis, the keynote, and the schematic.

HiFive1, An Open-Source RISC-V Development Kit

By bringing the power of open-source and agile hardware design to the semiconductor industry, SiFive aims to increase the performance and efficiency of customized silicon chips with lower cost.

The Freedom E310 (FE310) is the first member of the Freedom Everywhere SoCs family, a series of customizable microcontroller SoC platforms, designed based on SiFive’s E31 CPU Coreplex CPU for microcontroller, embedded, IoT, and wearable applications. The SiFive’s E31 CPU Coreplex is a high-performance, 32-bit RV32IMAC core. Running at 320+ MHz.

FE310 Block Diagram
FE310 Block Diagram

SiFive recently announced the ‘HiFive1’, an open-source Arduino-compatible RISC-V development board that features the FE310 SoC. It is a 68 x 51 mm board consists of 19 Digital I/O pins, 9 PWM pins, and 128 Mbit Off-Chip flash memory. HiFive1 operates at 3.3V and 1.8V and is fed with 5V via USB or with 7-12V DC jack. The board can be programed using Arduino IDE or Freedom E SDK.

HiFive1’s Specifications:
  • Microcontroller: SiFive Freedom E310 (FE310)
    • CPU: SiFive E31 CPU
    • Architecture: 32-bit RV32IMAC
    • Speed: 320+ MHz
    • Performance: 1.61 DMIPs/MHz, 2.73 Coremark/MHz
    • Memory: 16 KB Instruction Cache, 16 KB Data Scratchpad
    • Other Features: Hardware Multiply/Divide, Debug Module, Flexible Clock Generation with on-chip oscillators and PLLs
  • Operating Voltage: 3.3 V and 1.8 V
  • Input Voltage: 5 V USB or 7-12 VDC Jack
  • IO Voltages: Both 3.3 V or 5 V supported
  • Digital I/O Pins: 19
  • PWM Pins: 9
  • SPI Controllers/HW CS Pins: 1/3
  • External Interrupt Pins: 19
  • External Wakeup Pins: 1
  • Flash Memory: 128 Mbit Off-Chip (ISSI SPI Flash)
  • Host Interface (microUSB): Program, Debug, and Serial Communication
  • Dimensions: 68 mm x 51 mm
  • Weight: 22 g
HiFive1 Top View
HiFive1 Top View

riscv-blog-logoRISC-V is an open source instruction set architecture (ISA) that became a standard open architecture for industry implementations under the governance of the RISC-V Foundation. The RISC-V ISA was originally designed and developed in the Computer Science Division at the University of California to support computer architecture researches and education.

In a comparison with Arduino boards, the HiFive has 10x faster CPU clock, larger Flash memory, and lower power consumption. The table below shows the difference between Arduino UNO, Arduino Zero, and Arduino 101:

Comparison

HiFive may be a helpful tool for system architects, hardware hackers and makers, to develop RISC-V applications, customize their own microcontroller, support open-source chips and open hardware. It is also good as a getting started kit to learn more about RISC-V.

You can order a HiFive board for $59 at its crowdfunding campaign, and the full documentation is available here.

MAX11311 – The Powerful Configurable Mixed Signal I/O

The MAX11311 is industry’s first configurable high-voltage mixed-signal I/O that allows user-defined ADC, DAC, or GPIO functionality.

Programming MAX11311 is very easy. A nice GUI tool helps to generate the right register values. If you want to make a universal signal processing board with a good number of I/O, it often gets very difficult to select a correct microcontroller. Finally, when you select one, it either has less I/O than you need or has fair enough number of I/O but burns your pocket. But if you know about MAX11311, then you’ve got a perfect solution.

Description:

The MAX11311 integrates a PIXI™, a 12-bit analog-to-digital converter (ADC), and a 12-bit digital-to-analog converter (DAC) in a single integrated circuit. This device offers 12 high voltage, bipolar ports. Each of the ports is configurable as an ADC analog input, a DAC analog output, a general-purpose input output (GPIO), or an analog switch terminal. One internal and two external temperature sensors track junction and environmental temperature. This feature prevents thermal runaway. Adjacent pairs of ports are configurable as a logic-level translator for open-drain devices or an analog switch.

MAX11311 MIcrocontroller Block Diagram
MAX11311 Mixed Signal I/O Block Diagram

Features:

  • Up to 12 12-Bit ADC Inputs
    • Single-Ended, Differential, or Pseudo-Differential Range Options: 0 to 2.5V, ±5V, 0 to +10V, -10V to 0V
    • Programmable sample averaging per ADC port
    • Unique voltage reference for each ADC PIXI port
  • Up to 12 12-Bit DAC Outputs
    • Range options: ±5V, 0 to +10V, -10V to 0V
    • 25mA current drive capability with over-current protection
  • Up to 12 General-Purpose Digital I/Os (GPIO)
    • 0 to +5V GPI input range
    • 0 to +2.5V GPI programmable threshold range
    • 0 to +10V GPO programmable output range
    • Logic-Level Shifting Between any two pins
  • 60Ω analog switch between adjacent PIXI Ports
  • Internal/External temperature sensors with ±1°C Accuracy

Applications:

You can use this chip as an expansion module to MCUs in various applications. Let’s see the list:

  • Base station RF power device bias controllers
  • Control for optical components
  • Industrial control and automation
  • Power supply monitoring
  • System supervision and control
  • Universal signal processing

Conclusion:

The MAX11311 adapts perfectly to specific application requirements and allows for easy reconfiguration as the system needs further change. It also reduces BOM (Bill of Materials) cost with fewer external components in a small footprint.

To know more about this awesome chip, refer to the datasheet.

8 PIN PIC Development Board – PIC12F683

8-pin-pic-development-board-c085c-500x500

8 PIN SMD PIC development board is a full-featured development board and platform for 8-bit PIC® microcontrollers. This project is a versatile development solution, featuring several options for external sensors, off-board communication and human interface. Additionally, it offers ample room for expansion, making it an excellent solution for developers and engineers looking for a PIC development board. The 8 Pin SO8-SMD PIC Development / Evaluations Board demonstrates the capabilities of Microchip’s 8-bit microcontrollers, specifically, It can be used as a standalone demonstration board with a programmed part. With this board you can develop and prototype with all Microchip’s 8 PIN PIC microcontrollers which doesn’t required crystals (External Oscillator). On board connector for ICSP allows an easy programming. The board has configurable pull ups on all pins can be soldered or abandon as per requirement, All pins has solder Jumpers for pull down.  Onboard 5V regulator, two tact switch, one output connector to interface with 12V Relay board or solid state AC or DC Relay. Board has small prototype area. We have considered PIC12F683 IC for this Board.

8 PIN PIC Development Board – PIC12F683 – [Link]

AT89SXX Development Board

at89sxx-development-board-img2

Our AT89Sxx Development Board provides a very simple and cost effective prototyping platform.  The compact design provides connection to all the pins of the microcontroller for the user.

Features

  • Prototyping solution available for 40-pin AT89xx series microcontroller from ATMEL
  • All the four ports available to the user via standard 10 pin box header with supply of 5 VDC for interfacing circuits
  • ISP (In circuit Serial Programming) connector available for chips with ISP support
  • 11.0592 MHz crystal on board
  • Pull-up resistor network for Port 0 of the microcontroller
  • UART level shifter MAX232 IC, on board for easy connection of the board to the RS232 devices
  • Jumper selectable connection available for connecting the UART level Shifter to the port pins
  • On board voltage regulator available for sourcing regulated 5V @ up to 1A voltage to the board and connecting circuit
  • Power-On LED indicator
  • AUX Power source of 5 VDC available on a PBT connector for sourcing DC supply to interfacing circuits
  • Four mounting holes of 3.2 mm each
  • PCB dimensions 74 mm x 97 mm

AT89SXX Development Board – [Link]