MyCo wrote:Your LTSpice project is this a working one, or just an idea?
Just an idea at the moment. I paid the Flowstone licence June 5th 2013 for determining if Flowstone was a better option, as graphical front-end, in such context. I had a weird idea. Say you are editing a schematic using Flowstone. Can a Ruby module within that schematic read the actual netlist, and act as rudimentary compiler for generating assembly code chunks for a Microchip PIC32 or ARM Cortex-M4? Later on, when such compiler can recognize more advanced features in the schematic, it can be encapsulated into a sophisticated DLL called by Flowstone.
MyCo wrote:My communication plan for my multi processor board is quite simple [ ...] This method is very flexible. You can configure each of the subcontroller parallel or in series to each other, or even mixed. Each of the subcontrollers can be equipped with special hardware. eg. not every subcontroller requires external RAM.
Try presenting the method on the diyAudio form, on the Open Source DSP XOs
http://www.diyaudio.com/forums/digital-line-level/195791-open-source-dsp-xos-44.html. Over there, start reading the posts from Abraxalito (Richard Dudley) and Steph_tsf. The latter is myself. I'm in correspondence with Abraxalito. The idea of Abraxalito is to embed tiny DSPs into the cinch sockets that you need to connect, for forming a digital crossover arrangement, just as illustration. Think in terms of LEGO bricks dedicated to audio. Say you have one digital source, stereo on a S/PDIF Cinch. Your Cinch will embed a tiny DSP, possibly a LPC1113FBD48 (twin SSP) or a Microchip PIC32MX1 (twin I2S) (or MX2 adding USB) conveying 16-bit audio at 44.1 kHz. You also need to output a networked SERIAL at 44.1 kbaud/s, for interchanging parameters with other AudioBRICKS. That first AudioBRICK will do the global equalization, room correction, baffle step correction, psychoacoustics, remote control receiver, etc. If you want to implement a 3-way XOVER, you purchase three more AudioBRICKS. Say between 15 eur and 25 eur for an AudioBRICK, sold through Sparkfun and Watterott. This way we start, producing two different PCBs :
- AudioBRICK Digital_In (S/PDIF_in + Toslink_in + IR RC receiver + µC + networked SERIAL + I2S_out)
- AudioBRICK Analog_Out (I2S_in + µC + networked SERIAL + stereo DAC with volume control )
Later on we may produce :
- AudioBRICK Digital_Out (I2S_in + µC + networked SERIAL + I2S_out + S/PDIF out + Toslink_out)
- AudioBRICK NOSDAC (I2S_in + µC + networked SERIAL + Non-OverSampling DAC with volume control)
- AudioBRICK Booster (I2S_in + Cortex-M4 µC at 150 MHz + networked SERIAL + I2S_out)
The AudioBRICK Booster is not a stripped-down AudioBRICK Digital_Out. It embeds a more powerful µC, for executing FIRs filters, or elaborate adaptative psychoacoustics. Or processing the audio signal in the frequency domain using a real time FFT followed by a iFFT. Or executing some elaborate upsampling or downsampling. You can use as many boosters as you need, connecting them in series (the output of one, feeding the input of the next one), or in parallel (processing a same audio stream, in different ways).
My suggestion is to never solder the Cinch and the Toslink on the PCB. This way the modules remain affordable, flat and lightweight, so they don't generate unnecessary shipping costs. We can ship them worldwide using an ordinary, padded envelope. If the customer needs a Cinch or a S/PDIF, he can order it separately from Sparkfun or Watterott.
When do we start this, actually?
I'm very excited about this, especially with Flowstone becoming the graphical programming front-end for this.
We will create the corresponding AudioBRICK Flowstone components, delivered through a library.
Using Flowstone, we drop various AudioBRICK components on the worksheet.
We connect their audio streams using Blue links.
How to represent the semantic of the networked SERIAL bus? It is a bidirectional multipoint serial bus. Green links, perhaps? This is compliant with a new message arriving (trigger). The incoming message can be considered as an Array. The Green connectors involving the SERIAL bus may thus be Arrays. Inside the Flowstone module, we find an Array parser implemented using Ruby code, reading the Array using the (@in) method, just as usual.
When a SERIAL bus message needs to be sent, a Ruby code elaborates an Array, and sends it using the (output "output_name",array_name) method, just as usual.
The infrared remote receiver is a particular Flowstone component, kind of simplified Wiimote. We can create it, showing the layout of the associated remote control. When clicking a button of the graphic representation of the remote control, this particular Flowstone component outputs an integer or an Array of integers. The AudioBRICK Digital_in has a dedicated input for that. This way we can also simulate, program and debug all remote control actions.
This is really, a little disruptive innovation.
Not sure about the name yet.
Need to find the correct resonance with Audio, Tilera, Meccano, Lego, Domino, Kewlox, Arduino, Teensy, Quickstep, Modulart, MiniDSP, Breadboard, etc.
Any idea welcome.
Steph