McuOnEclipse Components: 06-May-2017 Release

I’m pleased to announce that a new release of the McuOnEclipse components is available in SourceForge, with the following changes and updates:

  • SEGGER SystemView updated to V2.42
  • More components to work with MCUXpresso SDK: GenericSWSPI, FXO8500 and SimpleEvents
  • SSD1351 display driver supports 128×128 pixel resolution and Adafruit 1.5″ breakout module
  • Extended FreeRTOS debug helper settings
  • GenericI2C: added ReadWordAddress8() and ReadWordAddress8() functions
  • RingBuffer with new Getn() and Update() functions
  • Utility with map(), constrain(), random() and randomSetSeed()
  • XFormat: new xsnprintf(), contributed by Engin Lee
  • OneWire protocol component with Maxim DS18B20 temperature sensor
  • Many smaller bug fixes and enhancements
SourceForge

SourceForge

Continue reading

Advertisements

Tutorial: Secure TLS Communication with MQTT using mbedTLS on top of lwip

One of the most important aspects of the ‘IoT’ world is having a secure communication. Running MQTT on lwip (see “MQTT with lwip and NXP FRDM-K64F Board“) is no exception. Despite of the popularity of MQTT and lwip, I have not been able to find an example using a secure TLS connection over raw/native lwip TCP :-(. Could it be that such an example exists, and I have not found it? Or that someone implemented it, but has not published it? Only what I have found on the internet are many others asking for the same kind of thing “running MQTT on lwip with TLS”, but there was no answer? So I have to answer my question, which seems to be a good thing anyway: I can learn new things the hard way :-).

Blockdiagram MQTT Application with TLS using lwip

Block diagram MQTT Application with TLS using lwip

Continue reading

MCUXpresso IDE: Unified Eclipse IDE for NXPs ARM Cortex-M Microcontrollers

There are many mergers going on in the industry, and one of the largest one was in 2016 the integration of Freescale Semiconductor with NXP Semiconductors, with both providing Eclipse based IDE’s to their customer base. Consequently, the company merger triggered a merger of the IDE’s, and last week NXP has released the result: the MCUXpresso IDE.

MCUXpresso IDE

MCUXpresso IDE

Continue reading

Embedded World Nürnberg 2017 Impressions: MCUXpresso, Hexiwear, NTAG, LPC800-DIP and Alan Hawse

This year I managed to attend the Embedded World in Nürnberg/Germany after missing the 2016 show. And 2017 has been a blast! With more than 1000 exhibitors and >30’000 visitors it was huge! There were too many exciting things, so I just pick a few: NXP demonstrated the new MCUXpresso Software and Tools with a new Eclipse Neon based IDE, lots of IoT and Hexiwear, the tiny LPC800-DIP board, and I have met Alan Hawse in person!

Impresson from the Show (embeddedworld 2017)

Continue reading

McuOnEclipse Components: 12-Mar-2017 Release

I’m pleased to announce that a new release of the McuOnEclipse components is available in SourceForge, with the following main features and changes:

  • Wait: Busy-Waiting using ARM DWT cycle counter
  • Percepio FreeRTOS+Trace: Updated to version 3.1.1, simplified usage of streaming and snapshot mode
  • GenericSWI2C: MCUXpresso SDK can be used with the bit-banging I2C driver support
  • FreeRTOS: includes updates of the 9.0.1 release, ‘optimized task selection, enabled MPU support (experimental)
  • Graphical GUI drivers for screens, windows, icons, headers, text widgets and more
  • SSD1351: display driver for Solomon Systech SSD1351 display
  • More components are now supported by the McuLibConfig settings
  • Many other smaller bug fixes and enhancements

Continue reading

McuOnEclipse Components: 28-Jan-2017 Release

I’m pleased to announce that a new release of the McuOnEclipse components is available in SourceForge, with the following main features and changes:

  • New Sharp Memory Display Driver supporting 96×96 and 128×128 pixel ultra low power display
  • PID_Int can be used without hardware
  • GenericTimeData has added functions to convert date/time into strings
  • HardFault can now disable write buffers on ARM Cortex to simplify debugging faults
  • Folder support for SEGGER SystemView and Percepio FreeRTOS+Trace
  • Component usage without Processor Expert
  • NXP MCUXpresso SDK support for FreeRTOS using tickless idle mode and low power timer
  • Many other smaller bug fixes and enhancements
SourceForge

SourceForge

Continue reading

Building the NXP BLE Stack with Open Source GNU and Eclipse Tools

One of the biggest road blocks (beside of closed source) using the BLE (Bluetooth Low Energy) stack from NXP is that it requires expensive tools to compile and build the stack. The good news is that I have now the NXP BLE stack for the Mikroelektronika Hexiwear ported to Eclipse and GNU gcc build tools for ARM 🙂

NXP BLE Stack in Eclipse

NXP BLE Stack in Eclipse

Continue reading

Disabling EzPort on NXP Kinetis to Solve Power-On Issues

I’m using the NXP FRDM-K64F board in several projects: it is reasonably prices, has USB, Ethernet, micro SD card socket and connectors for Bluetooth classic and Nordic Semiconductor nRF24L01+ 2.4 GHz transceiver:

NXP FRDM-K64F Board

NXP FRDM-K64F Board

But one issue I have faced several times is that the board works fine while debugging and connected and powered by a host machine, but does not startup sometimes if powered by a battery or started without a debugger attached. I have found that the EzPort on the microcontroller is causing startup issues.

Continue reading

McuOnEclipse Components: 30-Oct-2016 Release

A new McuOnEclipse components release was long overdue, so I’m pleased to announce that a new drop is available with the following major changes:

  • Segger SystemView library with kernel time reporting
  • GenericTimeDate supports different hardware RTC devices
  • Utility with little endian packet handling functions
  • Shell Standard I/O handlers for USB CDC, Segger RTT and Bluetooth
  • FreeRTOS and stack size reporting
  • printf() support in Shell component
  • Various small bug fixes and improvements
SourceForge

SourceForge

Continue reading

Tutorial: RFID Tags with the NXP NFC Controller PN7120 and Eclipse

Playing with RFID and NFC is definitely fun :-), and they are everywhere! For a research project I’m exploring different RFID tags and solutions. I several types around for a long time, but never found the time to actually work on it, so last nightI thought I give it a try, and I have it working with GNU ARM and Eclipse, powered by the NXP FRDM-K64F board 🙂

NXP NFC PN7120S

NXP NFC PN7120S with a FRDM-K64F Board

Continue reading

Tutorial: Blinky with Kinetis SDK V1.3 and Processor Expert

This tutorial goes through the steps how to create a blinking LED application, using Kinetis SDK and Processor Expert, using the TWR-KL43Z48M board from Freescale (now NXP):

twr-kl43z48m

twr-kl43z48m

Continue reading

Semihosting (again!) with NXP Kinetis SDK V2.0

I kind of hoped that after “Why I don’t like printf()” and all my other articles about printf and semihosting, that topic would be 200% handled and I won’t have to deal with any more. Well, I was wrong and underestimated how the Kinetis SDK is interfering with semihosting. And I underestimated how many of my readers are still using semihosting (even as there are other and better alternatives), so I keep getting questions and requests for help. That’s ok, and I hope I can help :-).

So here is yet again another post about how to turn on semihosting with Eclipse, GNU ARM Embedded and the Kinetis SDK v2.0. This time with the FRDM-K64F board:

FRDM-K64F Board with lwIP running

FRDM-K64F Board

Continue reading

McuOnEclipse Components: 25-June-2016 Release

SourceForge

SourceForge

A new release is available on SourceForge, with the following main changes:

  • Support for FreeRTOS and Cortex-M7
  • Segger SystemView updated to V2.38
  • Components for NXP Kinetis SDK V1.3
  • Fixed bug in Wait component (register handling for GCC and ARM)
  • FatFS supports FreeRTOS V9.0.0 with static memory allocation
  • FreeRTOS shell and task list with static memory allocation
  • Floating point conversion routines in Utility
  • FreeRTOS component shows NVIC mask bits

Continue reading

First steps: ARM Cortex-M7 and FreeRTOS on NXP TWR-KV58F220M

For a university research project I need a fast microcontroller with lots of RAM and FLASH memory. I have ordered a TWR-KV58F220M board from NXP which arrived yesterday. The special thing is that it has on of these new ARM Cortex-M7F on it:

TWR-KV58F220M Box

TWR-KV58F220M Box

Continue reading

Combining Multiple NXP Kinetis SDKs into One

My wife tells me that I have too many boards on my desk. That is only *partially* correct: there are many, but not *too* many. But I’m working on too many tasks, but that’s a different aspect :-). I’m using more and more the Kinetis SDK V2.0, and as a result of this I have multiple SDKs installed on my machine. Because with the SDK V2.0 I get a download for each device/board installed (see “First NXP Kinetis SDK Release: SDK V2.0 with Online On-Demand Package Builder“). So my list of SDK folders is growing, as shown with the ‘New SDK 2.x’ wizard in Kinetis Design Studio:

Multiple Kinetis SDKs

Multiple Kinetis SDKs

The same time, the amount of free disk space is reducing. What if I could combine all these SDK’s?

Continue reading

Tutorial: Muxing with the New NXP Pins Tool

I don’t know if it is the same for you. But for me, configuring the pins on these new ARM microcontroller is a challenge: Most pins can do multiple functions, such as be used as I²C, UART or GPIO pins.

Configuring the pins ‘by hand’ is difficult, error-prone and usually the first thing I need to do for a new project/device. NXP developed a new tool for this task and previewed it at FTF 2016. It is available now both as web (online) and desktop (locally installed) tool. At FTF it was possible to play with an engineering release: time to get my hands on the public release :-). And as more and more student projects will start using that tool for their boards, I better have a tutorial for it :-).

Desktop Version of Pins Tool

Desktop Version of Pins Tool

Continue reading

FreeRTOS V9.0.0 with Static Memory Allocation

I’m using FreeRTOS in most of my applications. There were only a few exceptions where an RTOS has to be used in safety critical systems: there usually it is not permitted to use any dynamic memory allocation because this adds the risk that a memory allocation could fail at runtime because of memory fragmentation or memory leak. And FreeRTOS uses a dynamic memory (heap) for the task stacks and the RTOS resources including semaphore, mutex and queues.

This is now a thing of the past. This week a new FreeRTOS Version 9 was released which does not need any dynamic memory allocation anymore: it is possible now to build completely statically allocated systems with FreeRTOS :-).

Dynamic and Static Memory Allocation in FreeRTOS V9.0.0

Dynamic and Static Memory Allocation in FreeRTOS V9.0.0

Continue reading

NXP FlexIO Generator for the WS2812B LED Stripe Protocol

The challenge with the selection of a microcontroller for a project is: which one has the required number of UART, I2C, SPI? Combine this with the desired package (48pins, 64pins? LQFN?), the needed FLASH and RAM size and then even the hundreds of available microcontroller shrink to a handful only. And many times I need to make compromises: such as I need two hardware I2C, but the microcontroller matching all my other needs has only one I2C hardware. So I might end up with bit-banging the slower I2C bus. Doable, but not ideal.

What is cool that some of the newer NXP Kinetis microcontroller come with an interesting hardware: FlexIO. A peripheral hardware which allows me to implement a custom protocol, including driving WS2812B (Adafruit NeoPixel) LEDs with a FRDM-KL43Z board:

Four NeoPixels with FlexIO

Four NeoPixels with FlexIO

Continue reading

Tutorial: Blinky with NXP Kinetis SDK V2.0 and Processor Expert

In “Mother of Components: Processor Expert with NXP Kinetis SDK V2.0 Projects” I presented an approach how to use Processor Expert components with the NXP Kinetis SDK. This article is a tutorial how to create a blinking LED project with that approach, using McuOnEclipse Processor Expert components and the Kinetis SDK V2.0. As board the FRDM-K22F is used:

Blinky on a FRDM-K22F with SDK V2.0 and Processor Expert

Blinky on a FRDM-K22F with SDK V2.0 and Processor Expert

Continue reading

NXP FTF Hands-On with FreeRTOS Task Aware Debugger

I mentioned the hands-on sessions on FreeRTOS I do this week at NXP FTF Tech Forum in Austin in my previous post. What we are using in the session is an Eclipse plugin in Kinetis Design Studio showing all kinds of FreeRTOS information:

NXP FreeRTOS Plugin in Kinetis Design Studio

NXP FreeRTOS Plugin in Kinetis Design Studio

Continue reading