Implementing a delay with a for-loop (and why it’s not a good idea) I thought I’d interject on a specific issue that some of our students have been encountering, and that is how to implement a delay in C or C++ on the new Arm Compiler v6. Remember that the compiler is what converts your… Continue reading for-loops and delays with the ARM C6 Compiler
Author: Nicholas Outram
Dr. Nicholas Outram is an Associate Professor in Computing and Electronics in the School of Computing and Mathematics, Plymouth University, UK. He specialises in iOS development, Biomedical Signal Processing, Embedded Software Development and VHDL. Dr. Outram has developed and heads-up an intensive fast-track iOS development course for students, academics and engineers both in Plymouth and overseas. He also develops iOS applications for research and teaching. Dr. Outram has a Ph.D. in Biomedical Signal Processing and Artificial
Intelligence and a first class honours degree in Electrical & Electronic Engineering. Before returning to academia, he worked for 5 years in industry as a DSP engineer and research engineer.
Setting up Quartus to run ModelSim
Quartus uses ModelSim (Altera Edition) to perform simulation. ModelSim is even used for Vector Waveform files. ModelSim and Quartus are two entirely separate applications that loosely communicate with each other. You typically invoke ModelSim from Quartus via the Tools -> Run Simulation Tool -> RTL Simulation menu However, if you’ve every tried to run ModelSim… Continue reading Setting up Quartus to run ModelSim
VHDL Standards
For those with access to IEEE standards (many universities do), the VHDL standards can be found using this site: https://ieeexplore.ieee.org/xpl/opacstd.jsp The VHDL standards are numbered 1076.x so narrow your search to include 1076. This will get you access to the definitive source.
Carry and Overflow are not the same thing!
I get questions about this a lot, so I thought I’d try and explain this. If we are to build an adder circuit from digital electronics, there is only one circuit which performs addition signed and unsigned adder circuits are identical The overflow and carry bits will be set or reset depending on the input… Continue reading Carry and Overflow are not the same thing!
Mbed Studio Beta is now live
For those using Mbed-os, and always wanted to work offline, this may be good news. Arm has recently released a public beta of Mbed Studio, their new IDE specifically for Mbed os. This can be downloaded and tested here – https://os.mbed.com/studio/ This includes the Arm v6 compiler and support for a wide range of boards. Mbed… Continue reading Mbed Studio Beta is now live
Simple SPI Slave Component in VHDL
I’ve been looking for a simple example of a SPI Slave component in VHDL for some time, and in the end, decided it would be more fun and educational to write my own. To keep the code as clean and simple as possible, I’ve focused entirely on Mode 0 SPI. I now use this as… Continue reading Simple SPI Slave Component in VHDL
Introductory course in embedded systems (using Mbed-os)
In time for a fresh semester starting this coming Monday, I’ve begun the process of migrating practical materials from Apple Books to WordPress. First is my introduction to Embedded Systems using Mbed-os. This course assumes no prior programming experience. The first two weeks of practical notes are already live. https://blogs.plymouth.ac.uk/embedded-systems/mbed-os-2/courses/embedded-systems-in-context-level-4/foreward/ Over the next fews… Continue reading Introductory course in embedded systems (using Mbed-os)
Welcome
This blog is intended to covered aspects of embedded systems programming using the Arm Cortex-M series of micro controllers. Over time, pages will be added covering various aspects of embedded systems and IoT development, from simple GPIO read/write to more complex topics. A key theme is the Internet of Things (IoT), which is mostly considered… Continue reading Welcome