The Cortex M4 and the Cypress FM4-176L-S6E2CC-ETH Development Kit

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.

73, NM5DC


I’m going to start a new blog category called “SPICE”, and sub-category called “LTSPICE” to share some of my experiences with the computer program, SPICE, which is an acronym for Simulation Program with Integrated Circuit Emphasis. I use SPICE periodically as my tool of choice to model, simulate, and validation of circuits I am learning about, or designing. Circuits such as passive RLC filters, active filters using operational amplifiers, and filters using commercial off the shelf integrated circuits. There are plenty of sites with examples of using SPICE to simulate circuits. So, why am spending time on the subject? I feel that an Amateur Radio Operator that wants to learn more of the theory of analog circuitry should know how to use SPICE to learn and experiment with circuits. The “Hands on Radio” series in the ARRL publication QST that Ward Silver writes is an example of experimenting with circuits, and with some self-motivated learning, would be more useful with  SPICE.  Inc short, “Hands on Radio” is an excellent series and using SPICE with the series can be used to further one’s knowledge of practical with theoretical. In short, modeling a circuit to understand how the circuit functions in a virtual environment where you can vary all circuit parameters from the baseline design. Using SPICE to  insert standard components in a theoretical design that has non-standard components and see how the circuit responds to the new values; learn about how the circuit functions over frequency, temperature, voltage, etc. before you physically assemble the circuit. In short, the process of designing, modeling, simulating, and validating a design using SPICE will be the emphasis of this category. I plan to used the free program LTSPICE provided by Linear Technology (now Analog Devices) to demonstrate the techniques I will blog about. I will tell you how to obtain LTSPICE and show you how to design circuits from theory to implementation. This effort is not to copy or re-write “Hands On Circuits”. In fact, I don’t plan to repeat the find work Ward had done. I want to share my experiences with SPICE to those Amateur Radio Operations that are interested in this topic. I hope you will enjoy. My next entry will be a short history of SPICE.

73, NM5DC

The Xilinx Zynq Processor – A New Toy

One of my previous positions (Signetics/Philips Semiconductors) was as a Design Engineer working on a family of 8051 micro-controllers derivative. The 8051 architecture, originally conceived and developed by Intel Corporation back in the 1970/1980’s was licensed to Signetics/Philips. As part of my work on the 8051 family (ROM, EPROM,  and FLASH) derivatives, I was involved in understanding the PLA (Programmable Logic Array, or, hard-wired firmware of the 8051. At that time, HDL, VHDL, Verilog, and FPGAs did not exist.  As an aside, Signetics was also developing a family of programmable logic known as  PLDs (Programmable Logic Devices) co-developed in Silicon Valley and Orem, Utah.  It was the PLD family that was the precursor to the Philips “Cool Runner” devices, later sold to Xilinx.

OK, so back to FPGA’s and the Zynq. I’ve started experimenting with the Xilinx  Arm 9. I’m not sure I can afford a license to use the Xilinx’s Vivado software design tool suite with the DSP engine, and, if not, I may re-focus my amateur radio efforts on a non-FPGA micro-controller  such as the ARM CORTEX M4 due to it’s built in floating point processor. So, in the end the Zynq may end up being an education for later projects.  My next post on the Zynq will focus on the low-cost development boards design by Avnet found at Specifically, the MicroZed and the MiniZed. The MicroZed comes in single or dual A9 processor core with the Xilinx programmable logic “fabric”.


The Journey Begins

I’m an Electrical Engineer, and, a Software Engineer. Let me explain what I mean. In the beginning, I received my BSEE from New Mexico State University, began my professional career as an Electrical Engineer designing integrated circuits for Texas Instruments (remember the 74HCxx family?), and 35 years later, by way of a resume of positions, here I am . As you probably know, most Electrical Engineers “think” they can program. I’d venture to guess that if you graduated from any accredited University in the past 45 years with an Engineering degree (say,  since the mid-70’s; remember the 20th century?),  you probably learn to program in  assembly, FORTRAN, Pascal, C, C++, or Python, other computer language, right?  Hence, “Most” EE’s think they are Electrical and Software Engineers. I found out later in my career that, although I had learned many programming languages, you really aren’t a Software Engineer until you master the skills used in the field of Software Engineering and not simply how to program many programming languages regardless of how well you program. The skills of software modeling, configuration management,  software testing, are but a few of these skills. So, many EE’s graduated as skilled programmers (coders?) and later, become Software Engineers due to interest, a change in career, necessity or other reasons. That is my opinion base on my experience starting with my first position after graduation from NMSU.

Somewhere in the early 1980’s, as I recall, when I was attending NMSU, the field of Electrical Engineering morphed into Electrical and Computer Science Engineering (the name of the program at other institutions vary, but the idea is the same). With the introduction and advancement of the integrated circuit, and Digital Signal Processing, the two Electrical Engineering fields I was involved in at NMSU, analog and digital electronics,  started to morph together. I recall one of my favorite professors Ray J. Black (He was not a PhD and I am not being disrespectful for not using the suffix for Dr.), exclaimed that ‘these digital guys think that the analog electronics is becoming less important’. That’s a paraphrase, not a direct quote as that was 30-something years ago.  Professor Black was one of those individuals at NMSU that I remember fondly and credit for my understanding of analog circuits, especially communications. But, I digress….

Those of us that graduated in the 1980’s experienced the transition from Electrical Engineering to Electrical and Computer Engineering and either took courses or used a combination of self-training and on-the-job training to become proficient on both fields (Electrical Engineering and Software Engineering) with the advent of the integrated circuit, micro-processor, micro-computer, mainframe computer; computers in general. The world of engineering changed immensely. The days of the IBM punch card, the DECwriter terminal, VT100, whatever, became the personal computer with software programs that changed the way one theorized, designed, developed, tests, and produced the systems for the future. Today, the paradigm is shifting with tablets, and the Internet. The Internet introduced Web-based tools, enhanced information sharing, communications, and added social networking. This is a huge change of paradigm compared to what I started out with at NMSU. I am continually striving to keep up with the pace. So, to make a long story shorter, this is all to say, as I often tell others ,”My left-half brain is Electronics and my right-half brain is Software”.  This website/blog site is an example of my right-half brain venturing into the land of on-line publishing. I hope to publish experiments and observations I personally am involved in  that are specific to Amateur Radio. Hence, the journey begins.