Meta

musings of a twenty-first century stoic

Simplified architecture

Now that we have found a way to get plenty of I/Os out of our Zynq MPSoC, we can simplify our architecture quite a bit. First and foremost, we will get rid of all the microcontrollers used to drive our controls and indicators. Instead, we will drive everything from the PS side of the Zynq, initially with one of the two A9 cores, then with one of the two real-time R5 cores.

To do so, we will drive every single switch with the ADP5589 keypad decoder, and all our LEDs through multiple sets of TLC5954 LED drivers. To make this possible, we will use custom connectors between our backplane and the 9 bargraph boards, instead of USB connectors. This change is motivated by the fact that we need 10V to drive the DC motors of our motorized faders, and USB is only 5V.

While we could have combined all the bargraphs on a single PCB, the risk of having a few defective LEDs on some of them is too high. Also, we will want to make sure that a bargraph board could be easily replaced in case some of its LEDs break or fail. And now that our knobs are surrounded by LED rings, we will want to adopt the same strategy for them as well.

In order to reduce the number of cables connected to the backplane, we will mount the LED rings of every column of three knobs on its adjacent bargraph board. As a result, at the exception of the master bargraph board, each board will drive a stereo bargraph, three illuminated switches, and three knob illumination rings. The master bargraph board will be a simplified version of the regular board, from which the LED rings have been removed.

This simplification will bring many benefits: first, it will reduce the cost of our bill of materials; second, it will reduce the latency of capturing control states and refreshing indicator statuses; third, it will reduce the number of components which firmware needs to be upgraded; fourth, it will simplify UI programming.

As a result, the entire system will be driven by the Zynq MPSoC coupled with a single XMOS multicore microcontroller, which will be used as primary digital audio interface, providing support for protocols like USB Audio 2.0, ADAT, and S/PDIF. Of course, all this could be done by the Zynq directly, but the XMOS provides most of this functionality out of the box.