Stories
Slash Boxes
Comments

SoylentNews is people

Log In

Log In

Create Account  |  Retrieve Password


cafebabe (894)

cafebabe
(email not shown publicly)

Journal of cafebabe (894)

The Fine Print: The following are owned by whoever posted them. We are not responsible for them in any way.
Thursday July 13, 17
05:45 AM
Hardware

(This is the 18th of many promised articles which explain an idea in isolation. It is hoped that ideas may be adapted, linked together and implemented.)

I'm hoping to create a system which can drive up to 32 speakers for US$300 and I'm enthused that competitors are charging obscene prices for similar equipment. For example:-

I've made significant advance when comparing micro-controller architectures. AVR has a distinct advantage for low-level operations given that it has 32×8 bit registers which can be paired into 16 bit registers. ARM has a distinct advantage for DSP functionality and deliberately aims to provide a single-cycle multiply (or multiply-accumulate). However, ARM provides 13 general-purpose registers and, in Thumb mode (16 bit instructions), this is restricted to 8×32 bit registers.

To implement a chunky-to-planar bit matrix transpose, the latter has a small advantage. Likewise, at any given speed, one-cycle multiply out-performs two-cycle multiply. So, ARM is the target architecture. XMos would be a great architecture but it is too niche for me.

By chance, I found that an Arduino Due meets or greatly exceeds specification in all categories with the exception that there is 96KB RAM. This is exactly the size required for triple-buffering of 4 channel, 32 bit PCM audio at 48kHz when transferred in 2048 sample blocks. It is possible to transfer audio in smaller chunks but this may incur (additional) scope for audio glitches when decoding video with a frame rate below 30Hz.

An Arduino Due has hardware SPI but it would be unable to handle 25Mb/s reliably. Or, more accurately, a suitable sub-multiple of 84MHz. So, the chunky-to-planar bit matrix transpose remains useful. However, with 54 GPIO, it may be possible to bit-bang 32 or more SPI DACs directly. One option to reduce cabling is to have four or more satellite DACs with four or more channels per satellite DAC.

Any use of Arduino incurs linking to code under multiple open source licences. This includes GPL2 and Creative Commons libraries and an LGPL boot-loader. At the very least, use of an Arduino boot-loader requires compiled code to be distributed. This applies even if a cloned Arduino uses an Arduino boot-loader. If you don't like these terms then seek alternatives.

Anyhow, hardware requirements can be arranged around a US$37.40 board if implementation is open and buffer size is amended.

Display Options Threshold/Breakthrough Reply to Article Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
  • (Score: 0) by Anonymous Coward on Thursday July 13 2017, @05:04PM

    by Anonymous Coward on Thursday July 13 2017, @05:04PM (#538763)

    You can do some serious number crunching with AltiVec. You get 32 vector registers, each capable of handling 4 floats. Denormals and NaN have limited support; you can treat them as zero or trap. There is also a proper FPU with full IEEE standard support. The FPU does single-cycle operations with a latency of 4 or 5 cycles.

  • (Score: 0) by Anonymous Coward on Friday July 14 2017, @11:05AM

    by Anonymous Coward on Friday July 14 2017, @11:05AM (#539060)

    I'm enthused that competitors are charging obscene prices for similar equipment.

    Few working engineers have any need for a 32 channel interface, they are not mass market products and you could pay much more than that for a dual channel reference converter. [vintageking.com] AFAIK Dan Lavry was the first guy to add little heaters to stabilize the crystal, it's now standard engineering practice for professional units such as the Orion32 and less costly 32 channel audio interfaces. [ferrofish.de]

    Mentioning Dan Lavry also reminded me of this fine article [lavryengineering.com] where he demolishes the arguments of a 192kHz sample rate.

(1)