I’ve been experimenting with the Cortex M-series of ARM Micro-controllers for many years. I the beginning, it was curiosity of the ARM architecture when compared with the (Microchip) PIC architecture that made think about my platform of choice. I started with Microchip’s PIC architecture years before, was impressed with the variety of devices in the PIC product line. Like many, I read about and tried digital signal processing on 8 and 16-bit devices with mixed results. Later with the introduction of the dsPIC, I was inspired with a (finally) low-cost entry into digital signal processing. and moving to a 24-bit word length. At the time the dsPIC was introduced, TI and Analog Devices already offered very powerful 32-bit digital signal processor architectures with great development kits, but the combination of the development kit and software (compiler) required funds that I could not afford as a hobbyist. There were was a GNU compiler for the Analog Devices 21xx family, but it was not the best choice for my situation. So, at least with the dsPIC I could advance my digital signal processing knowledge, but, for the better part, constrained to low(er)-frequency applications (motors). So, the dsPIC was interesting, and I learned quite a bit, but, meanwhile, I continued seeking out a more general purpose architecture with an open sourced, or low-cost commercial, compiler, with 32-bits I could afford.
Enter the Stellaris product line based on the ARM Cortex M3 architecture. I purchased various development kits from Stellaris and became proficient with the architecture choosing to program in mixed Assembly and the C language. The ARM Cortex M3 supported only Fixed point math, and as such, taught me quite a bit about when math meets metal.
Later, Stellaris was acquired by Texas Instruments and future of Stellaris was not clear to me. Furthermore, TI seemed to be trying to figure out what to do with the Stellaris product line and how it fit in with the MPS line of Micro-controllers. I decides to make a switch to Atmel’s SAM product line which was very well supported with development kits, a free IDE, Atmel Studio. I became acclimated with the Atmel ARM ecosystem and was about to develop an retrofit a Chinese made SMD oven with a Atmel ARM with USB support (So I could transfer solder profiles to the oven), but then the Cortex M4 was released. I got side tracked with the Atmel SAM4 series of products with the Cortex M4, FPU, and MMU options (DSP/Linux on a Microcontroller?). So, to make a long story short, I spent way too much time playing with the technology and not accomplishing anything of substance. Time, to reboot my priorities.
So, now I finally get to the present and the near term project I have decided to pursue; an audio filter for my Amateur Radio HF work. Simple enough, not rigorous digital signal process theory (as compared to SDR), but should provide me with development experience in digital signal processing and embedded/PC software I love to write. So, time to consider the goal of the project, the requirements, development platform, and the software tools to get going. I am document the progress I make on this web page.
Where the Cypress FM4-176L-S6E2CC-ETH Development Kit comes in, the subject of this blog entry, is that, while researching digital signal processing theory, I came across a site at the University of Colorado at Boulder maintained by a Professor Mark Wickert. It started with reading Dr. Wickert’s book, Signals and Systems for Dummies. While reading Dr. Wickert’s book, and visiting the link to his web site within, I discovered a series of laboratories Dr. Wickert assigned to his students in another of Dr. Wickert’s courses (Real Time Signal Processing) where the Cypress FM4-176L-S6E2CC-ETH was being used for some of the lab assignments. I started working the same, or at least the material that was posted on Dr. Wickert’s site and found the Cypress development platform well suited to what I believe is general purpose enough, to develop my project on, as well as share with the Amateur Radio community. I discuss the projects, complete with links to where I found information on the web, along with rational for my decisions here.