So I have a graphics driver for a Nokia display (see “Zero Cost 84×48 Graphical LCD for the Freedom Board“), I have a joystick shield (see “JoyStick Shield with the FRDM Board“) and I do have a Freescale Freedom board: why not creating a simple game for it? Snake!
Category Archives: Freescale
Tutorial: Nordic Semiconductor nRF24L01+ with the Freescale FRDM-K64F Board
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.
First New Zumo Board out of the Reflow Oven
Andreas populated the first board with SMD parts and sent it through the reflow oven. The 32 kHz quartz is missing because not all parts arrived on time. The soldering of the Freescale Kinetis K22 microcontroller is not perfect yet, so will need some tweaking and inspection under the microscope, as well some other parts. Christian will do an inspection and electrical tests, then it will be my job to get it connected to the debugger. Keep my fingers crossed to get a blinking LED 🙂
New Zumo Robot PCBs Arrived!
As you might have read it already: for the new semester we plan the next generation of Sumo Robots: still based on the Pololu Zumo Chassis, but instead using the FRDM board with the processor, we directly put a Kinetis K20 processor on the board :-).
Slow 32 kHz Oscillator Startup
In an IoT (Internet of Things, see “IoT: FreeRTOS Down to the Micro Amps“) project I’m using the Freescale KL15Z microcontroller. The nodes are moving around, and the board is using a special inductive charging ‘on the fly’ when nearby the charging station. The energy is stored in capacitors, so no batteries are needed. That worked very well, but some system failed: they need to quickly check sensor signals after power-up. Tracking down the problem, it was obvious that most of the systems failed because it took them too long to boot from the power-on reset. So I instrumented the application to toggle an LED so I can monitor what happens: It was over 400 ms after power-on! Yikes!
Tutorial: DIY Kinetis SDK Project with Eclipse – Board Configuration
In “Tutorial: DIY Kinetis SDK Project with Eclipse – Startup” I showed how to create a Kinetis SDK project from scratch. In this post it is about adding the board initialization files. With the board initialization the peripheral clocks and pin muxing is configured.
Tutorial: DIY Kinetis SDK Project with Eclipse – Startup
This is the start of a multi-post tutorial about the Freescale Kinetis SDK, released back in April as beta version. The SDK a set of peripheral drivers, and will become the standard software foundation and drivers provided by Freescale for their ARM Cortex based devices. Similar what other vendors already do. While this is a good step, it is the same time very disruptive for my university projects with new Freescale Cortex-M devices. And with everything new (and beta), it needs time to learn. So this post is about creating a Do-It-Yourself Kinetis SDK project from scratch for Eclipse. This part is about the startup code: about everything to get the application started.
FRDM-K64F at Maximum Speed of 120 MHz
The ARM Cortex-M4F on the Freescale FRDM-K64F board can run up to 120 MHz. Here is how to get it running with maximum speed:
EmbSys Registers View with CMSIS-SVD dimElementGroup
As outlined in “How to Add Register Details View in Eclipse“, I have a nice register detail level viewer for Eclipse and GDB. But one problem showed up: there were entries showing with %s:
The reason is that the parser is not handling the dimElementGroup of CMSIS-SVD.
Tutorial: PWM with DMA on ARM/Kinetis
For a project I need to change the PWM duty cycle after a PWM period is over. One way to do this is to have an interrupt at the end of the PWM period, and then set the new PWM duty (compare) register value in the interrupt. That works fine for ‘slow’ PWM frequencies, but if the PWM frequency is high, the CPU load is massively increasing. A better way is to use DMA (Direct Memory Access).









