How to get Data off an Embedded System: FatFS with USB MSD Host and FreeRTOS Direct Task Notification

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.

FRDM-K22F USB Host Mode with Memory Sticks

FRDM-K22F USB Host Mode with Memory Sticks

Continue reading

McuLog: Logging Framework for small Embedded Microcontroller Systems

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.

Log Output

Log Output

Continue reading

FatFS, MinIni, Shell and FreeRTOS for the NXP K22FN512

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.

FRDM-K22F with SD Card

FRDM-K22F with SD Card

Continue reading

Playing Zork with FreeRTOS on ARM in three different Ways

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.

Zork

Zork

Continue reading

McuOnEclipse Components: 25-Sept-2017 Release

I’m pleased to announce that a new release of the McuOnEclipse components is available in SourceForge. In this release more ARM Cortex devices/vendors are supported with different SDKs, plus it comes with several FreeRTOS enhancements for debugging highly optimized code.

SourceForge

SourceForge

Continue reading

McuOnEclipse Components: 31-July-2016 Release

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

    SourceForge

    SourceForge

Continue reading

FatFS with Adafruit MicroSD Breakout Board and NXP FRDM-KL25Z

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.

Adadfruit MicroSD Card Breakout Board

Adadfruit MicroSD Card Breakout 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

McuOnEclipse Components: 29-May-2016 Release

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
Segger SystemViewer V2.36a

Segger SystemViewer V2.36a

Continue reading

FRDM K64F Data Logger using FatFs with KSDK 1.2.0

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 🙂

Centaurian

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.

  1. Prerequisites
  2. Create New Project
  3. Open Processor Expert
  4. Add SD card component
  5. Add Init_Port component
  6. Add GPIO component
  7. Configure the clock
  8. Import FatFs
  9. Add Card detection code
  10. FAT file appender function
  11. Disable the MPU

Prerequisites

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

McuOnEclipse Components: 22-Mar-2015 Release

There is a new release of the McuOnEclipse components available on SourceForge, with the following main changes:

  1. Shell: Fixed and improved history handling.
  2. MinIni: Option to select local/stack or global memory for buffers
  3. FreeRTOS: Ability to use the tick counter instead of dedicated timer for performance measurement.
  4. FSL_USB_Stack: Added deinitialization for USB stack.
  5. FatFsMemSDHC: added custom card detection and write protection pin handling.
  6. Multiple Bug Fixes
SourceForge McuOnEclipse

SourceForge McuOnEclipse

Continue reading

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

Continue reading

Tutorial: Playing MP3 Files with VS1053B and FRDM Board

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.

MP3 Player with FRDM-KL25Z

MP3 Player with FRDM-KL25Z and Adafruit Music Maker MP3 Shield

Continue reading

Updated McuOnEclipse Components: USB for KL24Z, FatFs v0.10c, Shell Backspace and FreeRTOS Trace Hook Configuration

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:

  1. USB support for Kinetis KL24Z
  2. FatFs now features the latest Elm-Chan v0.10c release
  3. Backspace support in Shell
  4. Configuration item in FreeRTOS for Percepio Trace Hooks
McuOnEclipse SourceForge

McuOnEclipse SourceForge

Continue reading

Multi-Drive Support with FatFS

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 🙂

FatFS Drive System (Source http://elm-chan.org/fsw/ff/en/appnote.html)

FatFS Drive System (Source http://elm-chan.org/fsw/ff/en/appnote.html)

Continue reading

Tutorial: Data Logger with the FRDM-K64F Board

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 :-).

Data Logger with FRDM-K64F

Data Logger with FRDM-K64F

Continue reading

FRDM with Arduino Ethernet Shield R3, Part 4: MinIni

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!

Ethernet Shield with SD card

Ethernet Shield with SD card

Continue reading

First Steps with the Freescale TWR-K64F120M

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 :-).

TWR-K64F120M Box

TWR-K64F120M Box

Continue reading

FRDM with Arduino Ethernet Shield R3, Part 3: Embedded Web Server

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 🙂

Web Server with W5100 on FRDM-KL25Z

Web Server with W5100 on FRDM-KL25Z

Continue reading

FRDM with Arduino Ethernet Shield R3, Part 1: SD Card

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.

FRDM-KL25Z with Ethernet Shield

FRDM-KL25Z with Ethernet Shield

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.

Continue reading