A smart move is to reorient your DSP+DAC project into a DSP + WM8580 (or WM8581) plus some salt and pepper enabling the same (credit card sized) board to sit into three different applications :I've had some time to work on my 4300 based DSP+DAC project lately, an offshoot of which is the attached spreadsheet for tracking pin assignments. NXP's cancelled packages and defined new pinouts since I started working on this but it should be correct barring typos or changes on NXP's part that I missed---it's based on the early June datasheet and manual. Anyone who happens to find errors, PM me the changes.
- general purpose stereo digital XO (with SPDIF in)
- DSS preamp (with SPDIF in)
- DSS speaker XO (mono XO - thus up to 8 channels per speaker - excellent for line arrays)
About DSS, read this : AES E-Library Philips DSS 930: A New Concept in Active Loudspeaker
With DSS, Philips used a trick to convey side-information on top of SPDIF, like the volume control info. They added a low frequency modulation on top of the SPDIF stream. We may replicate this. The scheme is documented in the Philips DSS930 and DSS940 Service Manuals. If you don't like this, you may add, as an option, a second Cinch for conveying the side info separately, kind of audiophile option.
A typical stereo DSS configuration needs one DSP in the preamp, and one DSP in each speaker. Thus, three credit card sized DSP boards in total.
Microchip PIC32MX2 28pin can deliver two I2S (bidirectional), plus one I2C. Microchip PIC32 tools are reliable, and inexpensive. This would be the inexpensive, uncomplicated starting point. WM8580 slightly underexpoited, not a big issue.
Wanting more bells and whistles like more GPIOs for driving LEDs and other peripherals? An infrared remote control? An external volume controller? Use a 44pin PIC32MX2. Consider this as the big brother of http://electrodesigns.net/blog/diyaudio-basics-digital-age/#more-1821
Infineon XMC4500 can deliver five (unidirectional I guess) I2S, plus one I2C. Slightly more expensive. More MIPS also. This time we get the WM8580 or WM8581 fully exploited.
Interoperability would exist between boards equipped with the 28pin PIC32MX2, the 44pin PIC32MX2, and the Infineon XMC4500.
After having done this, some demand will show for DSS boards only equipped with the DSP, designed for external DACs. Don't be fooled by this now. Only deal with such demand later on.
In a nutshell : keep it simple and stupid.
Manage to get your boards distributed by Sparkfun, Watterott and Elektor. With press coverage from Elektor and Hobby-Hifi.
We discussed most of that a few pages back. I guess the one remark I have is if the analog portion of the playback channel has a good gain structure there's enough utilized bit depth in the DAC sending divided down samples over SPDIF for volume control isn't a big deal. Particularly if you've a source like a Squeezebox that automatically pads 16 bit data to 24 bit.
I'll spin up a separate thread once my build's farther along. The 43x0 parts have the IOs to make a basic board that's quite extensible---without really trying I ended up with schematic that supports up to 14 I2S links and at least five clock domains. I only need four links and one clock so that's all I'll write code for. But the extra routing is so trivial it'd be rather silly not to put the hardware capacity there in case need arises to write software to do something with it.
I'll spin up a separate thread once my build's farther along. The 43x0 parts have the IOs to make a basic board that's quite extensible---without really trying I ended up with schematic that supports up to 14 I2S links and at least five clock domains. I only need four links and one clock so that's all I'll write code for. But the extra routing is so trivial it'd be rather silly not to put the hardware capacity there in case need arises to write software to do something with it.
This is exactly what we have waited for so long. Will you help us getting this running on NGX LPC4330 Xplorer? Using KEIL MDK ARM with ULINK2/ME or using LPC-Xpresso with NXP LPC-Link?
Sorry for late reply.
I am using Keil & J-link with my custom made development board based on LPC4330FBD144 chip.
Examples from NXP are available here: LPCware.com GIT server :: lpc43xx.git/tree
Now I am developing UAC2 firmware for full multichannel output testing...
Cool. I've had some time to work on my 4300 based DSP+DAC project lately, an offshoot of which is the attached spreadsheet for tracking pin assignments.
There is very helpful tool for quick pin routing:
LPC43xx Pin Mux tool | www.LPCware.com
Last edited:
Thanks for the links! I'm looking forward to going through the samples. The pin mux tool is interesting as it doesn't support all pin assignments listed in the datasheet. I'll have to compile the differences and email the author.
Hmm, is it possible to buy a ULINK-ME on its own or is it always bundled with an eval board? I checked all the US distributors and they're always bundled, though $210ish for for an eval board + ULINK-ME isn't hugely far from $170 for a Red Probe with the 10 pin Cortex debug adapter. Main difference is MDK-Lite's 32k limit and steep licensing fees versus LPCXpresso's 128k limit and considerably less agressive pricing. But I'd be surprised to hit 32k and $40ish can quickly pay itself back in hassles avoided. ($300-400 for a ULINK2 is more than I'd prefer to spend.)
For folks who've used both environments all the way though to debugging, what's your preference? (I've only toyed with LPCXpresso so far.)
For folks who've used both environments all the way though to debugging, what's your preference? (I've only toyed with LPCXpresso so far.)
Last edited:
($300-400 for a ULINK2 is more than I'd prefer to spend.)
There are more cheap variants. 🙂
For example: J-Link V8 ARM USB-JTAG Adapter Emulator - Black - Worldwide Free Shipping - DX
or Keil Ulink 2 ARM Multi-Function Emulator for SCM - White - Worldwide Free Shipping - DX
Last edited:
Nice! I would guess it's probably just a change in the silkscreen on the box to say Real View instead of Keil. The Real View Ulink 2s eBay for as little as $0.01.
Those last weeks the LPC4330 support improved thanks to:
- NGX LPC4330-Xplorer board ($56.42 - I already own two of them)
- LPCware
- lpc43xx.git (especially the lpc43xx SGPIO I2S for UDA1380)
- nxpUSBlib (grabbing audio from USB)
- LPC43xx Pin Mux Tool
Within a series of Open Source projects, let's develop a few "capes" or "shields" for the NGX LPC4330-Xplorer, and some demo softwares.
Do we get access to the two ARM cores?
- NGX LPC4330-Xplorer board ($56.42 - I already own two of them)
- LPCware
- lpc43xx.git (especially the lpc43xx SGPIO I2S for UDA1380)
- nxpUSBlib (grabbing audio from USB)
- LPC43xx Pin Mux Tool
Within a series of Open Source projects, let's develop a few "capes" or "shields" for the NGX LPC4330-Xplorer, and some demo softwares.
Do we get access to the two ARM cores?
Attachments
-
NGX LPC4330-Xplorer.jpg146.6 KB · Views: 203
-
LPC43xx Pin Mux Tool.jpg107.7 KB · Views: 82
-
lpc43xx SGPIO I2S for UDA1380.jpg162.4 KB · Views: 88
-
lpc43xx.git.jpg86.9 KB · Views: 79
-
nxpUSBlib.jpg123.8 KB · Views: 190
-
Board connections and configurations.jpg266.1 KB · Views: 186
-
LPCXpresso IDE.jpg169 KB · Views: 194
-
Keil µVision 4 IDE.jpg77.3 KB · Views: 192
-
Keil Ulink 2 ARM Multi-Function Emulator for SCM - White.jpg61.2 KB · Views: 78
-
J-Link V8 ARM USB-JTAG Adapter Emulator - Black.jpg60.2 KB · Views: 81
You can use either:
- a Red Probe+ (or original Red Probe)
- or the LPC-Link probe from an LPCXpresso board
to debug your LPC4350.
LPC_4350_Support
- a Red Probe+ (or original Red Probe)
- or the LPC-Link probe from an LPCXpresso board
to debug your LPC4350.
LPC_4350_Support
Attachments
How to a access both the M4 and the M0 on the LPC43xx.
Read this: LPC43xx DualCore Projects
Make sure you read the whole webpage. To me it looks quite complicated. I guess most developers will hate working this way. Such is the current issue with the LPC43xx.
Read this: LPC43xx DualCore Projects
Make sure you read the whole webpage. To me it looks quite complicated. I guess most developers will hate working this way. Such is the current issue with the LPC43xx.
Attachments
Last edited:
I suppose I could have been more explicit about this when I linked that page back in post 279 but, to recap, it's a moving target:
LPCXpresso 4.2.2 - no meaningful LPC185x or LPC43xx support
LPCXpresso 4.2.3 - cumbersome support as described on the wiki
LPCXpresso 4.2.4 - TBD
I would guess by 4.2.5 writing M0+M4 code could be pretty smooth. From a glance at the sample code a5856 linked Keil's been there since at least March. So I'd be cautious about inferring the state of dual core Cortex development from Code Red starting to catch up. (This is not to say all's well with Keil. I'm not hands on with MDK yet as Keil's download page thinks the email address I've been using daily since 1994 is invalid---haven't gotten a response from Keil support yet.)
It's worth pointing out NXP lists all 43xx parts as in either development or qualification---none are actually in production yet and the datasheet is still marked preliminary. I'd say things are past the alpha stage but it's probably unrealistic to expect a baked developer experience at this point; currently it's more of a beta/early adopter ecosystem it seems.
LPCXpresso 4.2.2 - no meaningful LPC185x or LPC43xx support
LPCXpresso 4.2.3 - cumbersome support as described on the wiki
LPCXpresso 4.2.4 - TBD
I would guess by 4.2.5 writing M0+M4 code could be pretty smooth. From a glance at the sample code a5856 linked Keil's been there since at least March. So I'd be cautious about inferring the state of dual core Cortex development from Code Red starting to catch up. (This is not to say all's well with Keil. I'm not hands on with MDK yet as Keil's download page thinks the email address I've been using daily since 1994 is invalid---haven't gotten a response from Keil support yet.)
It's worth pointing out NXP lists all 43xx parts as in either development or qualification---none are actually in production yet and the datasheet is still marked preliminary. I'd say things are past the alpha stage but it's probably unrealistic to expect a baked developer experience at this point; currently it's more of a beta/early adopter ecosystem it seems.
Since June 8th 2012 NGX Technologies hosts valuable info about how to program and debug the LPC4330 chip.
See NGX Technologies Online Store
User Manuals
For KEIL MDK ARM with ULINK2/ME http://shop.ngxtechnologies.com/download/user_manual/Xplorer/Keil_User_Manual_Xplorer_LPC4330.pdf
For LPC-Xpresso with NXP LPC-Link http://shop.ngxtechnologies.com/dow...er/LPCXpresso_User_Manual_Xplorer_LPC4330.pdf
Sample Code
For KEIL MDK ARM http://shop.ngxtechnologies.com/download/sample_code/LPC4330-Xplorer/Keil/lpc4330_Xplorer_Keil.zip
For LPC-Xpresso http://shop.ngxtechnologies.com/dow...rer/LPCXpresso/lpc4330_Xplorer_LPCXpresso.zip
For IAR (Use version 6.40.2 and above) http://shop.ngxtechnologies.com/download/sample_code/LPC4330-Xplorer/IAR/lpc4330_Xplorer_Iar.zip
See NGX Technologies Online Store
User Manuals
For KEIL MDK ARM with ULINK2/ME http://shop.ngxtechnologies.com/download/user_manual/Xplorer/Keil_User_Manual_Xplorer_LPC4330.pdf
For LPC-Xpresso with NXP LPC-Link http://shop.ngxtechnologies.com/dow...er/LPCXpresso_User_Manual_Xplorer_LPC4330.pdf
Sample Code
For KEIL MDK ARM http://shop.ngxtechnologies.com/download/sample_code/LPC4330-Xplorer/Keil/lpc4330_Xplorer_Keil.zip
For LPC-Xpresso http://shop.ngxtechnologies.com/dow...rer/LPCXpresso/lpc4330_Xplorer_LPCXpresso.zip
For IAR (Use version 6.40.2 and above) http://shop.ngxtechnologies.com/download/sample_code/LPC4330-Xplorer/IAR/lpc4330_Xplorer_Iar.zip
Avnet has the LPC1114 Cortex M0 in DIL28 package in stock now, so no excuses that the available packages aren't DIY-friendly enough to roll your own DSP :
NXP Semiconductors LPC1114FN28/102,12, - Avnet Express
Price even for a 1 off is an astonishingly reasonable $1.26 for a 45DMIPs chip - at less than 3cents per DMIP is this some kind of record for an SoC? 😀
<edit> Incidentally, has anyone got any info on the LPC4088 120MHz Cortex M4 other than this tantalizing Youtube vid?
http://www.youtube.com/watch?v=0fFv6SlTFk8&feature=plcp
NXP Semiconductors LPC1114FN28/102,12, - Avnet Express
Price even for a 1 off is an astonishingly reasonable $1.26 for a 45DMIPs chip - at less than 3cents per DMIP is this some kind of record for an SoC? 😀
<edit> Incidentally, has anyone got any info on the LPC4088 120MHz Cortex M4 other than this tantalizing Youtube vid?
http://www.youtube.com/watch?v=0fFv6SlTFk8&feature=plcp
Last edited:
TI has a special running (well almost - Sept 25th is start of ship date) on its latest M4 - an eval board for just $4.99 - max two per customer. Check it out here : https://estore.ti.com/Stellaris-LaunchPad.aspx
Thanks for the suggestion - I hadn't seen it before. Looks to have a proprietary bootloader and be more Arduino-focussed than I'd like. But its certainly small and fairly cheap. Interesting that the designer got all his prototypes to overclock 100% - to 96MHz.
Infineon XMC4500 is now supported by Hitex.
See it here XMC4500 HiLight Kit
The debug interface adapter ULink-ME is included in the package and can be used with Keil-MDK.
The Infineon XMC4500 looks great on paper for a DSP audio crossover, thanks to no less than six flexible serial interfaces, each supporting I2S. Does it mean we can have one I2S as stereo audio input, three I2S as stereo 3-way outputs, one I2C as WM8581 Codec control, and one SPI as general serial control (like for adding an audiophile-grade analog volume control) ?
So, here is the updated list of some inexpensive boards that could execute some simple audio-DSP before feeding two or more audio DACs :
- the Microchip DM330013-2 PIC32MX2 Starterkit (onboard debugger)
- the Embedded Artists NXP Cortex-M0 and Cortex-M3 carrierboards (onboard LPCXpresso debugger)
- the STM 32F4 Cortex-M4 Discovery Kit (onboard debugger)
- the Freescale Kinetis K20 Cortex-M4 carrierboard (aka Teesny 3.0 - bootloader)
- the T.I. LM4F Cortex-M4 Evaluation Kit (onboard Keil or IAR debugger)
- the T.I. LM4F120 LaunchPad Evaluation Board (Onboard Stellaris In-Circuit Debug Interface) (promo at $4.99)
- the Hitex Infineon XMC4500 HiLight Kit (onboard Keil debugger)
By the way, why continuing embedding a debugger chip or an external bootloader chip on such boards ? Is it so difficult producing a simple, lowcost board featuring the ARM Cortex-M4, only adding the 10-pin 0.05 inch Cortex-M debug connector on the board, for hooking some external debug probe like the keil ULink-ME ? What's the issue ? Can somebody explain ?
See it here XMC4500 HiLight Kit
The debug interface adapter ULink-ME is included in the package and can be used with Keil-MDK.
The Infineon XMC4500 looks great on paper for a DSP audio crossover, thanks to no less than six flexible serial interfaces, each supporting I2S. Does it mean we can have one I2S as stereo audio input, three I2S as stereo 3-way outputs, one I2C as WM8581 Codec control, and one SPI as general serial control (like for adding an audiophile-grade analog volume control) ?
So, here is the updated list of some inexpensive boards that could execute some simple audio-DSP before feeding two or more audio DACs :
- the Microchip DM330013-2 PIC32MX2 Starterkit (onboard debugger)
- the Embedded Artists NXP Cortex-M0 and Cortex-M3 carrierboards (onboard LPCXpresso debugger)
- the STM 32F4 Cortex-M4 Discovery Kit (onboard debugger)
- the Freescale Kinetis K20 Cortex-M4 carrierboard (aka Teesny 3.0 - bootloader)
- the T.I. LM4F Cortex-M4 Evaluation Kit (onboard Keil or IAR debugger)
- the T.I. LM4F120 LaunchPad Evaluation Board (Onboard Stellaris In-Circuit Debug Interface) (promo at $4.99)
- the Hitex Infineon XMC4500 HiLight Kit (onboard Keil debugger)
By the way, why continuing embedding a debugger chip or an external bootloader chip on such boards ? Is it so difficult producing a simple, lowcost board featuring the ARM Cortex-M4, only adding the 10-pin 0.05 inch Cortex-M debug connector on the board, for hooking some external debug probe like the keil ULink-ME ? What's the issue ? Can somebody explain ?
Last edited:
Incidentally, has anyone got any info on the LPC4088 120MHz Cortex M4 other than this tantalizing Youtube vid?
NXP has at last posted up the datasheet : http://www.nxp.com/documents/data_sheet/LPC408X_7X.pdf
- Five UARTs with fractional baud rate generation, internal FIFO, DMA support, and RS-485/EIA-485 support.NXP has at last posted up the datasheet : http://www.nxp.com/documents/data_sheet/LPC408X_7X.pdf
- Three SSP controllers with FIFO and multi-protocol capabilities. The SSP interfaces can be used with the GPDMA controller.
- I2S (Inter-IC Sound) interface for digital audio input or output. It can be used with the GPDMA.
Archaic approach regarding the serial interfaces.
Time to blast all this with flexible serial interfaces like in the Infineon XMC4500.
Time to add I2S, TDM and TDMCA as supported protocol.
Why not eight flexible serial interfaces? Is ARM unable to design this, as standard?
- Status
- Not open for further replies.
- Home
- Source & Line
- Digital Line Level
- Open Source DSP XOs