Over a million developers have joined DZone.

McuOnEclipse Components: 27-Dec-2014 Release

· Java Zone

Discover how powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience, brought to you in partnership with JetBrains

This post is overdue, as it is about the McuOnEclipse components which have been released already a few days ago. The highlights are (beside smaller updates and bug fixes):

  • Nordic Semiconductor nRF24L01+ component extended for shared SPI bus usage
  • SD_Card component can use AsynchroSerial component for Kinetis
  • FatFS has added v0.10c patches
  • FSL_USB_Stack: Host support for Kinetis K20D72 and support for FRDM-K22F (K22FN512)
  • FreeRTOS has added Timer API support
    SourceForge 2014-12-27 Release

    SourceForge 2014-12-27 Release


To share different devices on the same SPI bus, it is necessary to switch between different SPI modes (speed, SPI settings). For example, in my Darth Vader Robot the SPI bus is shared between nRF24L01+, SD Card and VS1053 codec device. To support this, a new optional ‘Switch Bus’ property has been added to the component:

nRF24L01+ Switch Bus Property

nRF24L01+ Switch Bus Property

The ‘Baud Rate Mode’ is an index into the SPI (SynchroSerial) settings. If enabled, it will switch the bus and applies new settings before accessing the bus. That ‘Baud Rate Mode‘ points to the mode in the SPI ‘list of values‘ settings:

SPI Bus Mode

SPI Bus Mode

Additionally, the component features two optional user events (OnActivate() and OnDeactivate()) which are called before and after accessing the bus. They can be used e.g. to block access to the bus with a semaphore or similar:

OnActivate Events

OnActivate Events


The SD card component is going through a major refactoring. The LDD components (see “There is a Time and Date for both Worlds“) are a pain to use, so I replace them with the easier to use non-LDD components. As a further step into that direction, it is not possible to use the SynchroSerial component for Kinetis too. Previously, for Kinetis only the ‘LDD HW SPI’ setting was allowed. Now I can disable it and enable the ‘non-LDD HW SPI’ setting:

SynchroSerial SPI Setting for FatFS

SynchroSerial SPI Setting for FatFS


:idea: Future releases will depreciate the usage of the LDD components and only use the non-LDD components.


Elm Chan has published two patches for R0.10c FatFS (http://elm-chan.org/fsw/ff/patches.html) which are now incorporated into the FatFS_FileSystem component. One of it fixes a problem that released clusters (f_unlink()) were not really released. The other patch fixes a problem with the internal date/time settings.


The USB stack includes a fix to support the K20D72 in host mode:

Kinetis K20D72 USB Host Support

Kinetis K20D72 USB Host Support

Additionally, support for the FRDM-K22F (K22FN120) has been added (see “USB with the Freescale FRDM-K22F Board“).

Kinetis K22FN120 USB Support

Kinetis K22FN120 USB Support


The FreeRTOS component has been extended with the Software Timer API: instead using multiple hardware timers, the FreeRTOS software timer API provides software timers which are very useful in low power applications, as it relies on the RTOS, and not on hardware timers:

FreeRTOS with Timer API

FreeRTOS with Timer API


The new components are available for download on SourceForge: https://sourceforge.net/projects/mcuoneclipse/files/PEx%20Components/

The release notes are available on SourceForge: https://sourceforge.net/projects/mcuoneclipse/files/PEx Components/readme.txt

Sources are available on GitHub: https://github.com/ErichStyger/McuOnEclipse_PEx

Happy Upgrading :-)

Learn more about Kotlin, a new programming language designed to solve problems that software developers face every day brought to you in partnership with JetBrains.


Published at DZone with permission of Erich Styger, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}