This is a follow-up article of my earlier project presented in “FatFS, MinIni, Shell and FreeRTOS for the NXP K22FN512“. I wanted to extend it with a USB MSD (memory stick) device: The USB storage device gets automatically mounted, and depending on a configuration (.ini) file on the memory device I can perform various actions, for example automatically copy data from the SD card to the USB device. For example the system logs data, and to get the data I insert the memory stick, it copies the data on it and automatically unmounts it, and I can remove the memory stick.
An essential tool especially developing larger applications or distributed firmware is to use logging. This article presents an open source logging framework I’m using. It is small and easy to use and can log to a console, to a file on the host or even to a file on an embedded file system as FatFS.
I’m using the NXP Kinetis K22FN512 in many projects, either with the FRDM-K22F or on the tinyK22: with 120 MHz, 512 KByte FLASH and 128 KByte it has plenty of horsepower for many projects. The other positive thing is that it is supported by the NXP MCUXpresso IDE and SDK. I have now created an example which can be used as base for your own project, featuring FreeRTOS, FatFS, MinIni and a command line shell.
You might wonder what ‘Zork‘ is? Zork is one of the first and earlist fictive computer games, written around 1977 and 1979, written in MDL on a DEC PDP-10 by members of the MIT Dynamic Modelling group (see https://en.wikipedia.org/wiki/Zork). I believe the first time I have played Zork was around 1984 on a Commodore 64.
Time for a new major update of the McuOnEclipse components, with the fillowing main features and changes:
- FatFS component updated to R0.12 with patch 3 and exFAT support
- Extended support for Cortex-M7
- Extended support for Kinetis SDK V2.0
- USB component support for Kinetis SDK V1.3
- Improved FreeRTOS for NXP FreeRTOS TAD plugin
- Added C++ wrappers to multiple components
- Many smaller fixes and improvements
Breakout boards are great: they allow me to explore functions quickly, without to build my custom board: all what I need is some wires and ideally a bread board.
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
Major changes in this new release:
- FreeRTOS V9.0.0 with static memory allocation.
- Shell with single character I/O function.
- FatFS File System with extra shell commands for memory dump and file creation.
- Segger SystemViewer library updated to V2.36a
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
There is a new release of the McuOnEclipse components available on SourceForge, with the following main changes:
- Shell: Fixed and improved history handling.
- MinIni: Option to select local/stack or global memory for buffers
- FreeRTOS: Ability to use the tick counter instead of dedicated timer for performance measurement.
- FSL_USB_Stack: Added deinitialization for USB stack.
- FatFsMemSDHC: added custom card detection and write protection pin handling.
- Multiple Bug Fixes
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
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
I admit: I’m sometimes a lazy person. In my projects, I only needed one ‘disk drive’ with the FatFS Processor Expert component: either a SD card or a USB MSD drive. But a reader of this blog wanted to use FatFS with multiple drives: using it with an SD card and a USB MSD drive. And actually FatFS does support this, I just had no need for it, thus I did not add anything special for it. But that reader let me think that I better add Multi-Drive support. Even if I do not need it now, that could be very handy in the future 🙂
The Freescale FRDM-K64F is a great board for data logger applications: it has a powerful ARM Cortex M4F with 120 MHz, 1 MB Flash and 256 KByte RAM. Best of all: it already has a micro SD card socket on the board :-).
I admit: my Ethernet Shield project got stuck because of too many urgent other priorities. I was not happy with the way the project was using configuration data from FLASH memory: I have now multiple ethernet shields in use, and configuring the IP address for each shield is a pain. I have not got DHCP working (yet), so why not using the SD card on the shield for configuration data? And right on time I received a tip from Marc about MinIni: perfect, exactly what I need!
Naturally, I have several project ideas lingering around. No time to make them all (for now). One of it is interfacing the Raspberry Pi camera with a microcontroller. To store the images, I need plenty of RAM on the device, and so far the Kinetis microcontroller did not have that. Finally, Freescale announced the K64F120 a few months back, and my ordered TWR-K64F120M board arrived on my desk, waiting to be used: Finally I get an ARM Cortex-M4F with 1 MByte of FLASH and 256 KByte of RAM :-).
This is Part 3 of an ongoing tutorial to use the Arduino Ethernet Shield R3 with a Freescale FRDM-KL25Z board (or any other board you like).
In Part 1 I worked on the SD card, in Part 2 I have added basic network connection. Now time to run a web server with my FRDM-KL25Z :-). With this, I can get access to my board through the network, and the board will host a web page where I can do pretty much everything: showing status, or adding functions to turn on things like an LED 🙂
Sometimes it takes a very long time to realize a project. Adding the Arduino Ethernet Shield R3 to one of my Freescale FRDM boards is one of it: it took me a year until I have found a few days to work on using the Ethernet Shield with my FRDM-KL25Z.
I have not everything in place yet, so I decided to publish things in parts. So this is about part one: using the Micro SD Card on the Shield.