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 🙂
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!
Processor Expert components are making things very easy to configure: go a component, use the component inspector and change a setting. However, with the devices getting more and more complex, the list of settings or properties get longer and longer. To the point that it is hard to find a setting.
For example, where are the settings for the PLL in the CPU component?
In many of my applications I use a CRC/checksum to verify that the code/flash on the target is not modified. For this, not only the code/data in flash counts, but as well all the unused gaps in the memory map. Instead to leave it up to the flasher/debugger (which usually erases it to 0xFF), I want to fill it with my pattern. The GNU linker is using the pattern 0x00 for unused bytes inside sections. So this post is about to use the GNU linker to ‘fill’ the uninitalized FLASH memory with a pattern.
Now I have invested a lot of time into my application, ready to be flashed on the devices and shipped. But wait: I don’t want that someone can read out the code from my device and have it reverse engineered. For this, I can ‘secure’ the device.
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.
Here is another featured student project of this semester: Formula Student Electric (FSE). After the outstanding racing season with “Julier” in 2013, the students have designed and built a new and improved Formula Student Electric car “grimsel”, named after the Grimsel Mountain Pass.
This gallery contains 7 photos.
Our garden has a large area planted with lavender, and this pays off every summer: the color! the scent and flavour! And best of all: many, many bees and butterflies! Advertisements
“Note to myself: post articles about what students have done this semester…”
Students have turned in their semester project work. I have set for myself a goal to briefly describe to the ‘outside’ world what they did, as an inspirational source :-). So here is a first article about the project completed by Christoph Bühlmann who developed a shield for the FRDM-KL25Z board: a programmable ultrasonic shield:
Newer releases of Processor Expert (e.g. in Kinetis Design Studio (KDS)) come with a ‘graphical’ (or ‘tabbed’) view of the Component Inspector. The UI elements are different and ‘tabs’ are using:
I like much more the earlier ‘no-tabs’ view. Luckily, there is a setting to switch the view back.
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.
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.
Clouds are fascinating… A thunderstorm front rolled over us after a hot summer day. After that front, the sky opened up with a blue window, painting a light blue combined with red colors from the sun set. Fascinating…
This gallery contains 18 photos.
After the Swiss Mountain Three-Pass-Tour: Susten – Grimsel – Furka, this long weekend was perfect for an extended mountain pass ride: Brünig – Grimsel – Furka – Gotthard – Nufenen – Grimsel – Susten. Starting from the Lucerne side, the Grimsel was … Continue reading
So I have now a portable GPS data logger (see “Tutorial: Freedom Board with Adafruit Ultimate GPS Data Logger Shield“). What to do with it? It would be cool to see the data and tracks in Google Earth? Yes, that’s doable in a few steps…
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).