We’ve already surpassed 50% of our campaign goal! Many thanks to everyone!
In this update, we’re going to talk about the core of uSVC. Yes, as its name suggests, the core is uChip, but, in turn, uChip is powered by Microchip’s ATSAMD21E18 ARM Cortex®-M0+ based Flash microcontroller.
This microcontroller is from the same product line used by Arduino Zero, the SAMD21. If compared to other Cortex M3-/M4-based boards, its speed might appear modest. However, its peripheral sets and implementation give it a noticeable boost in some applications, such as this one.
This Cortex M0+ implementation features a hardware multiplier, which allows it to perform 32x32 bit multiplications in a single cycle. This is extremely important since, for instance, the 256-color video mode relies heavily on this operation for VGA signal generation.
Another key advantage of the ATSAMD21 is that it implements another optional Cortex M0+ feature known as a “Single-cycle I/O port.” This means we can change the VGA color signals with a “Store” instruction that takes only one clock cycle! Such a feature is not present on Cortex M3/4 devices, which all uSVC video modes rely heavily on. Moreover, we would like to spend a word on the Event System. Together with the timers, the Event System allows precise synchronization so that each VGA line is generated at a determined time after the horizontal synchronization signal. In addition, there is no need to generate the vertical and horizontal synchronization signals with software, it’s handled automatically by the timers.
Finally, a word on the DAC, which we used for the audio signal. Yes, one could use a PWM, but, unless one uses a ludicrously high frequency, it is very difficult to achieve the same quality using only a first-order resistor-capacitor low pass filter.
All these small, but fundamental, things made uSVC possible.
Stay tuned for the next update!