Archive

Posts Tagged ‘mcu’

NXP i.MX RT Series Crossover Embedded Processor is Based on an ARM Cortex-M7 Core @ 600 MHz

August 17th, 2017 2 comments

Microcontrollers (MCUs) provide real-time processing, low power, low cost, and plenty of I/Os, but with security and user interface requirements of recent embedded devices, the processing power may be a limitation, and embedded systems designers may have to use an application processor instead gaining performance, but losing some of the benefits of MCUs. The bridge the gap between performance and usability, NXP has launched i.MX RT series of Crossover Embedded Processor which uses the powerful ARM Cortex-M7 MCU core clocked at up to 600 MHz, a frequency partially made possible by eliminating on-chip flash memory.

Block Diagram

The first member of the family is NXP i.MX RT1050 with the following key features and specifications:

  • MCU Core – ARM Cortex-M7 @ up to 600 MHz; 3015 CoreMark / 1284 DMIPS
  • Memory – Up to 512KB SRAM/TCM (Tighly Coupled Memory) with response time as low as 20 ns
  • Storage – 96KB RAM; interfaces: NAND, eMMC, QuadSPI NOR flash, Parallel NOR flash
  • GPU – 2D graphics acceleration engine with resize, SCS, overlay, rotation functions
  • Display I/F – 24-bit LCD display controller supporting up to 800×480 resolution
  • Camera I/F – 8-/16-bit parallel camera sensor interface
  • Audio I/F – 3x I2S, S/PDIF Tx/Rx
  • Connectivity – 10/100M Ethernet with IEEE 1588 support, interfaces for WiFi, Bluetooth, Zigbee and Thread
  • Other Peripherals
    • 2x USB 2.0 OTG with PHY
    • 8x UART, 4x I2C, 4x SPI
    • GPIOs
    • 2x CAN bus
    • 8×8 keypad
    • Dual 20-ch ADC, 4x ACMP
  • System Control – eDMA, 4x Watchdog timers, 6x GP timers, 4x Quadrature ENC, 4x QuadTimer, 4x FlexPWM, IOMUX
  • Security – Cipher & RNG, secure RTC, eFuse, HAB
  • Power
    • Integrated DC-DC converter
    • Low power mode at 24 MHz
  • Package – 10×10 BGA package with 0.65mm pitch

The company claims i.MX RT processor provide twice the performance &  power efficiency, half the cost, and allows for faster development time. NXP also explains the BoM cost is reduced due to the high integration of the solution, and the embedded processor can be used in 4-layer PCB designs.

Click to Enlarge

Software development for the i.MX RT crossover processor can be done with MCU tools like MCUXpression, IAR and Keil, and it also supports FreeRTOS, and ARM mbed.  There’s an evaluation kit, but no details were provided.

Target applications include audio Subsystem such as professional microphones & guitar pedals, consumer products like smart appliances, cameras, LCDs, home and building automation,  IoT gateways, industrial computing designs such as PLCs, factory automation, test and measurement, HMI control, and motor control and power conversion, for example for 3D printers, thermal printers, UAV, robotic vacuum cleaners, etc…

NXP i.MX RT1050 processor is sampling now, with broad availability expected for October 2017, and pricing starting at less than $3.00 per unit for 10k orders. More information can be found on the product page.

Thanks to Lucas for the tip.

Categories: FreeRTOS, Hardware, NXP i.MX Tags: cortex-m7, mbed, mcu, nxp

Microchip SAM D5x and SAM E5x ARM Cortex-M4 Micro-Controllers Launched with Optional Ethernet and CAN Bus

August 2nd, 2017 No comments

Microchip has just introduced two new families of micro-controllers based on ARM Cortex-M4F with SAM D5x and SAM E5x series sporting up to 1 MB of dual-panel flash and 256 KB of SRAM both with ECC support. Both families also support QSPI flash with XIP (eXecute In Place) support, features an SD card controller and a capacitive touch controller, with SAM E5x family also adding support for two CAN-FD ports and Ethernet.

Microchip SAM A5x/E5x key features and specifications:

  • MCU Core – ARM Cortex-M4F core running at 120 MHz with single precision Floating Point Unit (FPU)
  • Memory – Internal memory architecture with user configurable Tightly Coupled Memory, System memory, Memory Protection Unit and 4KB Combined I-cache and D-cache; up to 256KB ECC SRAM, up to 1MB ECC flash
  • Storage I/F – Quad Serial Peripheral Interface(QSPI) with Execute in Place (XIP) Support
  • Peripherals
    • Up to 2x Secure Digital Host Controller (SDHC)
    • Peripheral Touch Controller (PTC) supporting up to 256 channels of capacitive touch
    • Full speed USB with embedded Host/device
    • Dual 1Msps 12-bit ADCs up to 32 channels with offset  and gain error compensation.
    • Dual 1Msps, 12-bit DAC and analog comparator
    • Up to 8x Serial communication (SERCOM) ports configurable as UART/USART, ISO 7816, SPI or I2C
    • SAM E5x series only:
      • 10/100M Ethernet MAC with IEEE1588 (E53/E54)
      • Dual Bosch CAN-FD 1.0 Controller (E51/E54)
  • Security – Symmetric (AES) and Asymmetric(ECC) Encryption, Public Key Exchange Support (PUKCC), TRNG and SHA- based memory integrity checker
  • Power Modes – Supports 5 Low power modes with 65µA/MHz Active Power Performance
  • Packages – 48 to 128-pin package options
  • Temperature Range – -40°C to 85°C

Some SAMD5x SKUs are pin-to-pin compatible ARM Cortex M0+ based SAMD2X MCU, so you can easily upgrade existing design with a more powerful MCU core. There only one main “sub-family” with SAMD5x: SAMD51, but SAME5x has three sub-families depending on Ethernet and CAN options:

  • SAME51 – 2x CAN-FD
  • SAME53 – Ethernet MAC
  • SAME54 – 2x CAN-FD and Ethernet MAC

Click to Enlarge

Microchip has used the higher end version of SAME54 processor in SAM E54 Xplained Pro Evaluation Kit in order to help customer kick-start development as soon as possible. Key features for ATSAME54-XPRO board:

  • MCU – Microchip ATSAME54P20A microcontroller
  • Storage – 256 Mbit QSPI Flash, SD/SDIO card connector, AT24MAC402 serial EEPROM with EUI-48 MAC address
  • Connectivity – 10/100M Ethernet (RJ45) via KSZ8091RNA PHY
  • USB – micro USB interface, host, and device
  • Expansion
    • Parallel Capture Controller header (ArduCAM compatible)
    • CAN connector
    • Three Xplained Pro extension headers
  • Debugging
    • 10-pin Cortex Debug Connector with SWD
    • 20-pin Cortex Debug + ETM Connector with SWD and four bit trace
    • Embedded Debugger
    • Embedded current measurement circuitry (XAM)
  • Security – Microchip ATECC508 CryptoAuthentication device
  • Misc – 1x reset button, 1x programmable button, 1x QTouch PTC button, 1x yellow user LED, backup super capacitor, 32.768 kHz & 12 MHz crystals
  • Power Supply – 5V via micro USB port

The board and all Atmel SAMD5x / E5x processor are supported by Atmel Studio 7 IDE, and Atmel START online tool to configure peripherals and software.

Microchip SAM D5x and SAM E5x are in available in volume production, with pricing starting at $2.43 for 10K orders. SAM E54 Xplained Pro Evaluation Kit is available for $84.99. Adafruit is also working on – likely cheaper –  SAMD51 based Feather M4 and Metro M4 boards that will support Arduino (See github for current code).

More details can be found on SAM D and SAM E MCU product pages.

STMicro Introduces 20 Cents STM8S001J3 8-Bit MCU in 8-Pin Package

August 1st, 2017 4 comments

STMicro has launched a new 8-bit micro-controller that sells for $0.20 per unit in 10k quantities, a price not too far from the one of cheapest MCU, especially considering it comes with flash. STM8S001J3 is also the first STM8 MCU offered in 8-pin package (SO8N), and should compete with some of the Microchip Attiny or PIC12F series micro-controllers.

STM8S001J3 specifications:

  • Core – 16 MHz advanced STM8 core with Harvard architecture and 3-stage pipeline,extended instruction set
  • System Memory – 1 Kbyte RAM
  • Storage
    • 8 Kbytes Flash memory; data retention 20 years at 55 °C after 100 cycles
    • 128-byte true data EEPROM; endurance up to 100 k write/erase cycles
  • Clock, reset and supply management
    • 2.95 V to 5.5 V operating voltage
    • Flexible clock control, 3 master clock sources: external clock input; internal, user-trimmable 16 MHz RC; internal low-power 128 kHz RC
    • Clock security system with clock monitor
    • Power management – Low-power modes (wait, active-halt, halt); switch-off peripheral clocks individually; permanently active, low-consumption power-on and power-down reset
  • Interrupt management – Nested interrupt controller with 32 interrupts; up to 5 external interrupts
  • Timers
    • Advanced control timer: 16-bit, 2 CAPCOM channels, 2 outputs, dead-time insertion and flexible synchronization
    • 16-bit general purpose timer, with 3 CAPCOM channels (IC, OC or PWM)
    • 8-bit basic timer with 8-bit prescaler
    • Auto wakeup timer
    • Window and independent watchdog timers
  • Communications interfaces
    • UART, SmartCard, IrDA, LIN master mode
    • SPI unidirectional interface up to 8 Mbit/s (master simplex mode, slave receiver only)
    • I2C interface up to 400 Kbit/s
  • Analog to digital converter (ADC) – 10-bit ADC, ± 1 LSB ADC with up to 3 multiplexed channels, scan mode and analog watchdog
  • I/Os – Up to 5 I/Os including 4 high-sink outputs
  • Debugging / Programming – Embedded single-wire interface module (SWIM) for fast on-chip programming and non-intrusive debugging

STMicro STM8S Family

STM8S001J3 can be programmed with free (of charge) development tools such as Cosmic compiler, STM8CubeMX, Standard Peripheral Library and STVD IDE. You’ll find those tools, hardware and software documentation and way to purchase samples in the product page.

Thanks to Miklos for the tip

Categories: Hardware, STMICRO STM8 Tags: mcu, stmicro

EtaCore ARM Cortex M3 Core Operates at Low Voltage (0.25V and up) for Higher Power Efficiency

July 14th, 2017 1 comment

We’ve previously seen Ambiq Micro offering Apollo ARM Cortex M4F MCU with Cortex M0+ energy efficiency, and later the upgraded Apollo 2 MCU with even lower power consumption and better performance. The company can achieve such efficiency thanks to low sub-thresold operating voltage in the 0 to 0.5V range. Another startup – Eta Compute – is now offering another low voltage solution with their EtaCore ARM Cortex M3 IP, and other IP blocks operating at low voltage (0.25 to 1.2V).

Eta Compute claims a “10x improvement in power efficiency over any alternative”, and battery life of over 10 years on a CR2032 coin cell. Their website does not provide that many details about the core and development tools, but still mentions the following:

  • The only commercially available self-timed technology supporting dynamic voltage scaling (DVS) that is insensitive to process variations, inaccurate device models, and path delay variations
  • Includes M0+ and M3 ARM cores scaling 0.3 to 1.2 volt operation with additional low voltage logic support functions such as RTC, AES, and DSP
  • Analog to Digital Converter (ADC) sensor interface consuming less than 5uW for the most power constrained applications
  • Efficient power management device that supports dynamic voltage scaling down to 0.25V with greater than 80% efficiency
  • Encryption and Decryption, signal processing, and real time clocks are other examples of Eta Compute IP supported by DVS, Eta Compute’s technology can be implemented in any standard foundry process with no modifications to the process. This allows ease of adoption of any IP and delivers robust, process and delay insensitive operation. The company’s IP is portable to technology nodes at any foundry simplifying the manufacturing process.

Eta Compute further explains that they developed delay insensitive asynchronous logic (DIAL) design IP for maximum power efficiency allowing small batteries and energy harvesting – such as solar, thermal, vibration, or RF energy harvesting- to power the design.

The company does not appear to make MCU themselves, but they provide EtaCore IP for other companies to design and manufacture MCU based on their solutions. To allow for an evaluation of their solutions, they designed EtaCore ARM Cortex M3 reference design which includes sensors for ambient light, temperature, humidity and pressure, is powered by a half-inch square solar cell, and optionally support LoRaWAN components. The reference design measures 8.9 x 3.8 cm, and can be programmed with Eclipse, Keil and Linux debug and development environments.

NXP Unveils LPC84x ARM Cortex M0+ MCU Family, and LPCXpresso845-MAX Evaluation Board

June 23rd, 2017 No comments

NXP Semiconductors has expanded LPC800 series MCUs with the new LPC84x family of 32-bit ARM Cortex-M0+ microcontroller said to offer 10 times the performance, three times more power saving savings, and 50 percent smaller code-size than 8- or 16-bit microcontrollers.

Click to Enlarge

Key features of LPC84x MCU family (LPC844 / LPC845):

  • MCU Core – ARM Cortex-M0+ core @ 30 MHz with advanced power optimization
  • RAM – 16 kB RAM (Logic for Bit banding across all of SRAM)
  • Storage – 64 kB Flash, small 64-byte page size suitable for EEPROM emulation
  • Peripherals
    • Timers – 32-bit CTimer, WWDT, 4-channel multi-rate, SCTimer/PWM
    • Serial Interfaces – Up to 4x I2C, 2x SPI, up to 5x UART
    • Analog Interfaces – 12 ch, 12-bit ADC up to 1.2 Msps; 2x 10-bit DAC; comparator with external Vreg; 9-channel capacitive touch interface working in sleep and deep sleep modes
    • Up to 54 GPIOs
    • 25-ch DMA offloads core
  • Power Control
    • Five power modes
    • Power profile APIs for simple runtime power optimization
    • Fast Access Initialization Memory (FAIM) for low power boot @ 1.5 MHz
  • Clock Generation Unit with Free Running Oscillator
  • Packages – LQFP64, LQFP48, HVQFN48 and HVQFN33

The LPC84x MCUs target applications typically making use of 8- or 16-bit MCUs such as sensor gateways, gaming controllers, motor control, fire & security, climate control, lighting, etc.. The company has already provided code samples that can be used in MCUXpresso, Keil, and IAR IDEs, as well as a datasheet, and a user guide for the microcontrollers on the product page.

Click to Enlarge

NXP also unveiled LPCXPresso845-MAX development board (OM13097) to help quickly evaluating the new MCUs. The board comes with the following key features:

  • LPC845 MCU
  • On-board CMSIS-DAP (debug probe) with VCOM port, based on LPC11U35 MCU
  • Debug connector to allow debug of target MCU using an external probe
  • Red, green and blue user LEDs;  Target ISP and user/wake buttons; Target reset button
  • LPCXpresso expansion connector
  • DAC output via speaker driver and speaker
  • Arduino connectors compatible with the “Arduino UNO” platform
  • Pmod compatible expansion header
  • Prototyping area

NXP did not disclose pricing for LPC84x MCUs, but it should be priced competitively against 8-bit micro-controllers. LPCXpresso845-MAX development board (OM13097) can be purchased for $19 directly on NXP website.

Mini Review of Nextion Enhanced NX8048K070 7″ Display with Enclosure for HMI Applications

June 21st, 2017 3 comments

I reviewed some Nextion touchscreen a while ago. Those were 2.4″ and 5″ serial TFT displays with optional resistive touch support that could be used in standalone mode, or connected to an MCU board over UART to control external hardware. The user interface could be designed and emulated in Windows based Nextion Editor program before uploading it to the display via UART or micro SD card. ITEAD Studio has recently launched Nextion Enhanced NX8048K070 family of 7″ displays with resistive or capacitive touch panels, and support for GPIOs. The company sent me the capacitive model with enclosure for evaluation, so I’ll have a quick look at the hardware and Nextion Editor in this mini review.

Nextion Enhanced NX8048K070_011C Unboxing

I received it in a package from “ITEAD intelligent solutions” with basic description with

  • Model: NX8048L070_011C with enclosure
  • Outside dimensions : 275 x 170 x 50 mm (That’s the package dimensions)
  • Product size: 218 x 150 x 22.5 mm
  • Gross weight: 0.598kg

Click to Enlarge

The display comes with a UART cable, or small micro USB power board, and a wall mounting kit.

Click to Enlarge

If we check the other side of the display, we’ll find the UART connector on the left, a micro USB slot on the bottom right, and the GPIO connector that inconveniently requires a flat cable, so you’d have to make your own board to connect external hardware, or purchase the company’s $5 expansion board, which is not included in the kit by default. There’s also the almost-compulsory typo found on many devices made in China: “Human Mechine Interface”.

Click to Enlarge

The thickness is indeed 22 mm, but if you fully embed the display into a wall, the visible thickness will be 6 mm.

You may have to open the bottom cover, as you’ll need to add a battery in case you want to use the RTC function.

Click to Enlarge

Let’s have a look an the main IC while we have the case open:

I close the case back, and power the display via the micro USB power supply board, and a USB power adapter.

Click to Enlarge

It’s a simple demo with a background image, some text, a slider, and 4 different pages, which I’ll demonstrate below after doing some simple modifications.

Nextion Editor and NX8048K070 Demo Sample

Nextion Editor is a Windows program, but a while ago, I was told it also worked with Wine in Ubuntu. So I downloaded the latest version (v0.47), and while the installation started, it eventually failed in Ubuntu 16.04. So I reverted to using Windows 7 in VirtualBox. I also downloaded and extracted Enhanced_Nextion_5.0-7.0_Demo.zip found at the bottom of Wiki page, which I then opened from Nextion Editor.

Click to Enlarge

The user interface will allow you to add various items from the Toolbox including text, scrolling text, numbers, buttons, pictures, progress bars, gauges, check boxes, and so on. As with the previous version, you’ll also need to import and convert font with a fixed size. The demo already has four of those defined. You can also add and link several pages with 4 pages used in the demo, and the Attributes section is used to defined parameters for the selected item

Click to Enlarge

I just added text. It should have been easy, but I was very confused at the beginning, since nothing would show up when I clicked on “Text” in toolbox. I could change the attributes, but the text would not be displayed. I went back to check the old review, and I used “Add Component” menu in Nextion v0.30 at the time, but that menu does not exist anymore. Finally, I noticed the 800×480 display was not shown completely, on the text was located on the top left of the UI. I delete the dozen text items I had created, and added “CNXSoft was here!” at the end of the list. The user interface is not really intuitive, so I’d still recommend to read the user guide, even some of the parts are outdated, as it should help getting started, and they have examples with Arduino. To control GPIOs on the display, you’d need to use cfgpio code.  In case, you run into troubles because the documentation is not quite as good as expected, you can always try your luck in the forums.

You can click on Compile to check for errors in your user interface, and then Debug to launch the simulator.

This will allow you to test the UI as if it was running in the display itself. You can even send keyboard or MCU commands. Once you are happy with the results, click on Operation->Upload to Nextion to upload the UI to the display. I had some troubles getting the display work when I connected it through my serial debug board via USB hub (the display would blink), but the problem was solved by connecting it directly to the USB power from my computer. The upload still failed as the demo is configured for the 5.0″ board, and it correctly detected a 7.0″ board. The fix was easy, as I just had to select Device ID, and change NX8048K050_011 to NX8048K070_011.

Click to Enlarge

After that the upload could start with the Nextion display properly detected.

It took 6 minutes and 35 seconds to upload the ~4MB user interface to the display, so it’s not really fast. That mean if you have  ~32MB UI, it would take close to 50 minutes. In that case, it would be much faster load the UI from the micro SD card. In that case, you need to copy the .tft file found via Nextion->File->Open build folder.

Here’s a quick overview and demo.

Nextion Enhanced 7″ display can be purchased for $88 with resistive touch and $108 with capacitive touch.

Nextion Enhanced NX8048K070 is a 7″ Resistive or Capacitive Programmable Touch Display with an Optional Enclosure

May 15th, 2017 No comments

Nextion displays are designed to be controlled by MCU boards with the user interface designed in Nextion Editor drag-and-drop tool. ITEAD Studio launched them in 2015, and I played with Nextion 2.4″ and 5.0″ models, but at the time, I found the Windows only Nextion Editor program not to be that user-friendly and inconvenient to use, as for example, UI designs do not automatically scale across all display sizes. The company is now back with a 7″ model, available with resistive or capacitive touch panel, and featuring an ARM7 processor exposing 8 GPIOs.

Nextion Enhanced NX8048K070 (_011) specifications:

  • CPU – ARM7 processor @ 108 MHz with 8K RAM, 1024 EEPROM, 1024 bytes instruction buffer
  • Storage – 32MB flash memory, micro SD card slot
  • Display – 7″ TFT display with resistive or capacitive panel; resolution: 800×480; 65K colors; adjustable brightness: 0 to 230 nit
  • Expansion – 8x GPIOs including 4x PWM, 4-pin serial interface to MCU board
  • Misc – Built-in RTC + battery slot
  • Power Supply – 5V/2A through micro USB to 2-pin power board
  • Dimensions – Display + board only: 181 x 108 mm; enclosure: 218 x 150 x 22.50 mm
  • Weight – Display + board only: 268 g; with enclosure: 598 grams

The display can work in standalone mode controlling external hardware through the 8 GPIOs, or connected to an MCU board over serial. You’ll find a few more technical details in the Wiki. The UI designed in Nextion Editor is stored in the flash memory or micro SD card, and the MCU board can receive / send commands to get user input/update the display. Nextion Editor is still a Windows only program, but if my memory serves me well, it can also work with Linux through Wine using a /dev/ttyUSB0 to COM1 redirect.

There are four models: NX8048K070_011N without touch support (no sold for now), NX8048K070 with resistive touch sold for $81.90, as well as NX8048K070_011C and NX8048K070_011R both sold with enclosure, and either resistive or capacitive touch respectively for $88.00 and $108.00. It appears the model without enclosure has been selling for a few months already, and the models with enclosure are new.

Categories: Hardware Tags: display, itead studio, mcu, nextion

MCUBoot is an Open Source Secure Bootloader for IoT / MCUs

May 15th, 2017 5 comments

Bootloaders takes care of the initial boot sequence on the hardware before the operating system takes over. For example, U-boot is often used in embedded systems as the bootloader before starting the main operating systems such as Linux or FreeBSD. MCUBoot is also a bootloader, but it targets the IoT, here referring to MCU based systems with limited memory and storage capacity, and is born out of work on Apache Mynewt OS, when developers decided to develop the bootloader separately from the operating system.

MCUBoot is designed to run on small & low cost systems running on MCU with ~512 KB flash, ~256 KB RAM, and currently supports Zephyr OS and Mynewt, with support for other RTOS also considered. Due to constraint the bootloader uses minimal features with a flash driver, a single thread, and crypto services. The project also aims at solving security and field firmware updates. To address the latter, the flash is partitioned in four sections, one for the bootloader, one “slot” with the primary image, a second slot for the firmware upgrade, and a Scratch partition to swap slots when an upgrade is needed. An image trailer at the end of each slot indicates the state of the slot.

You’ll find the source code in MCUBoot repository in Github, and you may want to watch the presentation at Linaro Connect Budapest 2017 for more details.