In many of my embedded projects I’m using successfully the Nordic Semiconductor nRF24L01+ (see “Tutorial: Nordic Semiconductor nRF24L01+ with the Freescale FRDM-K64F Board“) and the HC-06 Bluetooth transceivers (see “Getting Bluetooth Working with JY-MCU BT_BOARD V1.06“) for wireless communication. However, the nRF24L01+ is using a proprietary protocol, and the HC-06 does not work with Apple products (it does very well with Android devices). To close that gap I decided to add Bluetooth Low Energy (BLE, or Bluetooth 4.x). So this post is about how to add Bluetooth Low Energy (BLE) to NXP (formerly Freescale) Kinetis devices:
A lot of good things happened in the last three weeks, so here is a new updated McuOnEclipse component release, with the following main improvements:
- Updated Segger RTT component
- New Segger SystemView component
- FreeRTOS ‘tasklist’ shell command
- FreeRTOS with support for Segger SystemView
One of the most important aspects for developing complex realtime applications is get insights into what is going on the target. Segger just has released a free tool which gives an incredible useful insight view and visualization:
Time is flying fast, time for another McuOnEclipse components release on SourceForge with the following main changes and features:
- New component for Segger RTT makes adding a console communication interface super easy (and fast!)
- RTT support for the command line Shell component
- RTT component used for Percepio FreeRTOS Tracing
- Updated USB component, support for USB CDC blocking/waiting and endpoint configuration
- Updated FreeRTOS to V8.2.3, memory heap selection improved and setting for time slicing
- RingBuffer implements a Delete() method
- Extended Kinetis SDK support in components, added by default
On SourceForge I have published an update of the McuOnEclipse software components, with following major changes:
- FreeRTOS updated to version V8.2.2 which comes with TLS (Thread Local Storage) support and GDB debug helpers.
- Percepio Trace updated to V3.0.2 with the release of Segger Real Time Terminal (RTT) for continuous trace streaming.
- FSL_USB_Stack with alternate USB initialization to deal with an issue in combination with the Kinetis SDK v1.3.0
- GenericI2C and GenericSWI2C have added support for custom I2C bus handling.
FreeRTOS is probably the most popular RTOS used and I love it: it is efficient, has a lot of features, simple and easy to use. But despite its popularity, debugging it with open source tools as with Eclipse and GDB is really not that user-friendly: debugging threads/tasks is a pain compared to commercial solutions. For my university classes this semester I was looking for something easy to use by my students. Finally I managed to use a GDB helper which makes things easier now: I can switch task threads in Eclipse with GDB now 🙂
Check out the article by Wesley Hunter about how to use the FRDM-K64F as a data logger. He describes all the steps how to use the Kinetis SDK v1.2.0 with FatFS.
Happy Logging 🙂
This blog is a guide on how to setup using the FatFs library included with the Kinetis SDK 1.2.0 using mostly the Processor expert within Eclipse Luna. FatFs is a generic FAT file system module for small embedded systems written by Chan. I prefer to use Processor Expert when possible as this will often generate code that is smaller in size than using the KSDK library files direct. I experienced many gotcha’s and complication setting this up and wanted to share how I finally managed to get it to work.
- Create New Project
- Open Processor Expert
- Add SD card component
- Add Init_Port component
- Add GPIO component
- Configure the clock
- Import FatFs
- Add Card detection code
- FAT file appender function
- Disable the MPU
Before you begin please make sure your development environment is setup and you can already compile and debug code using KSDK 1.2.0 on Eclipse Luna…
View original post 2,197 more words
Key to successfully implementing embedded applications these days is to have detailed visibility into what is going on with the application on the board. For this, I’m using the FreeRTOS+Trace from Percepio to inspect the runtime behaviour. Stop-Mode debugging is very useful, but visibility into the runtime is even more important. FreeRTOS+Trace is a tool to accomplish this, but it requires to dump the data off the target to the host (see “Updated Percepio Tracealyzer and Trace Library to Version V2.7.0“). Usually, I’m using the GDB debugger for this, and that works for shorter trace sequences like a few seconds. Yes, I can combine them, but it painful to stop, dump and continue. So what if I could collect trace for several minutes or hours without the need to stop the application? Why not stream the data to the host directly?
So here is it: I’m now able to get almost unlimited trace streaming off the target, witout user intervention. I can trace my application for hours 🙂
Freescale has released the new Kinetis SDK v1.2 back in May. Because of the changes in v1.2, previous applications (or my tutorials) do not work any more :-(. So time to write a new tutorial: how I can use Processor Expert with FreeRTOS for the Kinetis SDK v1.2.
I know: A new McuOnEclipse Processor Expert components release was long overdue. But I have been extremely busy in the last months, but now the university semester is over, and I have finally some spare time to catch up on a lot of things. So here we go: there is a new component release available on SourceForge (https://sourceforge.net/projects/mcuoneclipse/files/PEx%20Components/): Components 2015-07-05.zip
It has been a while since the last version, but finally there is a new release available on SourceForge, with the following highlights:
- FreeRTOS V8.2.0 with task notification
- New VS1053 component to play MP3 and MIDI data/files
- Shell with command history support
- Percepio Trace V2.7.0 for FreeRTOS
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
Over the last weeks, several contributions, extensions and fixes have been added to the McuOnEclipse components, so a new release is available on SourceForge.
- Bug fix for RingBuffer.
- Better FreeRTOS task debugging with gdb.
- Better watchdog support with Shell component.
- Additional properties for PercepipTrace.
- New Utility function ScanDoubleQuotedString() to scan a double quoted string.
- LCDHTA with additional cursor functions.
- New devices supported in FSL_USB_Stack: K22FN1M (FRDM-K22F), KL24Z48M, USB host support for K22F120/K22FX512).
- RNet with nRF24L01+ to deal better with overflow situations.
- A new component FreeRTOS_Tasks to create FreeRTOS tasks.
I want to make some noise with this post!!! This tutorial is about adding music and sound capabilities to the Freescale Freedom board, and to have a lot of fun with it :-). I need this ability for a larger project working on for a while. But I thought I share that sub-part how to play sound files. So with this tutorial I can turn my Freescale Freedom board into a music or sound player :-). And adding sounds is a cool way for any project, and as the music is stored on an SD card it fits easily hours of music or sounds.
I have received several requests to post a quick note when there is a new release (16-Nov-2014) of the McuOnEclipse components on SourceForge (see “McuOnEclipse Releases on SourceForge“). I have published today a new release, and with following major improvements:
- USB support for Kinetis KL24Z
- FatFs now features the latest Elm-Chan v0.10c release
- Backspace support in Shell
- Configuration item in FreeRTOS for Percepio Trace Hooks
Freescale had announced at FTF back in April this year that they will use Kinetis Design Studio and the Kinetis SDK for all new Kinetis devices. The switch from CodeWarrior to Kinetis Design Studio (see “Comparing CodeWarrior with Kinetis Design Studio“) was not much of big deal for my projects (although CodeWarrior still has better features), and projects are rather easily portable. However, the move to the Kinetis SDK has been massively disruptive: Before it was easy to move projects from one device to another with Processor Expert, even from S08 to ColdFire to Kinetis. Now with the Kinetis SDK everything is very different. At least Freescale now officially supports FreeRTOS, and for myself as a big fan of that open source RTOS, that was some good news.
So in this tutorial I’m showing how FreeRTOS can be used with the Kinetis Design Studio. That makes at least using the Kinetis SDK bit more familiar to me :-).
For some time I’m using the Nordic Semiconductor nRF24L01+ transceiver successfully in many projects (see “Tutorial: Ultra Low Cost 2.4 GHz Wireless Transceiver with the FRDM Board“). Since that tutorial things evolved a lot with the introduced RNet Stack. To honor the popularity of the Nordic Semiconductor nRF24L01+, Freescale has put a socket on the FRDM-K64F board. So time to make a new step-by-step tutorial how to use the nRF24L01+ with the FRDM-K64F.