McuOnEclipse Components: 27-Dec-2014 Release

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

đź’ˇ 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 ( 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:

The release notes are available on SourceForge: Components/readme.txt

Sources are available on GitHub:

Happy Upgrading 🙂

13 thoughts on “McuOnEclipse Components: 27-Dec-2014 Release

  1. Hi Eric,

    I am having a problem with a SD card communication when upgrading components from the 7 Dec 2014 release to 27 Dec2014 release. The SD card works correctly with the 7 Dec 2014 release. The SD card uses a SD component plus the SPIMaster_LDD component. The drive will not mount on the later release (enabled the SPI enable/disable method on the upgrade). I have tried the non-LDD HW SPI with the same result. The project compiles error free . The processor is a MKL16Z256VLH4 using CodeWarrior10.6. Any pointers on where to look would be appreciated.



What do you think?

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.