ARM Cortex Questions + Sharc DSP ? - Page 1
Forum section: electronics / general

author: JanJansen
author_rank: Frequent Contributor
timestamp: July 28, 2017, 02:57:35 pm
content: Hi, i want a better chip then my DSPIC to make a organ synthsizer,i figured out that ARM Cortex are the best chips at the moment.i was looking to this movie :They say in the text :powered by an ARM Cortex M3 and Sharc DSP processorsThose ARM Cortex are available from many brands,i can not find any DIP packages for this Cortex M3.They use Sharc DSP processors, is that good ?Anyone opened this thing to look inside ?I heard that these ARM Cortex are used in most digital synthesizers.Or what can i buy instead that has many MIPS in DIP ?I dont know what DAC they use, i need that also.All the info is a bit overwhelming, maybe you guys use these chips and can help me out a bit ?What is the difference between the brands ?, or why do they all make the same chips ?What do you suggest ?thanks in advance

author: JPortici
author_rank: Super Contributor
timestamp: July 28, 2017, 03:42:36 pm
content: i can safely bet that the M3 is handling the interface. an M3 is roughly equivalent to a dspic, but with native 32 bit arithmetic.

author: senso
author_rank: Frequent Contributor
timestamp: July 28, 2017, 05:14:20 pm
content: What kind of synth?You can make a synth with an Atmega, case in point:https://www.linusakesson.net/chipophone/index.phpThat board uses a Sharc DSP to generate all the sounds and to change them as you turn the knobs.It might have 200MIPS or migh have 400 or 800MIPS, they will be DSP, and will be very complex to program.You can get very good results out of a cortex M3 or M4, but you will need to learn how to do it.Any cheap DAC will be more than enough, for starters even the integrated DAC's will be good enough to get it making noises, and then sounds, after it works ok-ish think about the DAC part.

author: colorado.rob
author_rank: Frequent Contributor
timestamp: July 28, 2017, 05:39:28 pm
content: Sharc DSPs run at a much higher clock than most Cortex-M MCUs. You'll need to look at the Cortex-A chips to get equivalent horsepower. None are available in DIP packages that I am aware. But you could use something like aRaspberry Pi Zero.I agree with @senso -- you can do a decent job with a Cortex-M4. Take a look at the STM32L432KC Nucleo-32 board. It's a nice DIP-like package. Has a couple of DACs. Really good for this sort of thing.

author: JPortici
author_rank: Super Contributor
timestamp: July 28, 2017, 05:54:19 pm
content: he's trying to do an hammond organ, which means around 80 wavetable oscillators per manual to do things properly (plus the amp and effects section)

author: Marco
author_rank: Super Contributor
timestamp: July 28, 2017, 06:02:47 pm
content: Quote from: colorado.rob on July 28, 2017, 05:39:28 pmNot if you want latency of a couple of samples. Bela DSP is still the only platform I know of to do hard real time audio processing with Linux (in as far as Xenomai with Cobalt can be called Linux).

author: nctnico
author_rank: Super Contributor
timestamp: July 28, 2017, 06:06:31 pm
content: Quote from: Marco on July 28, 2017, 06:02:47 pmLatency isn't very important for a synthesizer. If you have 10ms (or even more) between hitting a key and producing a sound the user won't notice. I think you can even go up to 50ms before the effect becomes noticable. That is about the delay between the nerves in your fingers sensing you pressed a key and receiving that information in your brain.

author: hans
author_rank: Super Contributor
timestamp: July 28, 2017, 06:54:55 pm
content: Quote from: JanJansen on July 28, 2017, 02:57:35 pmCorrect.I think Microchip has the fastest chips with most memory in DIP, but they are not Cortex.Unfortunately for newcomers, SMD is the future tech and likely almost all manufacturers will feature their newest chips in SMD.QuoteDepends on the applicationSharc DSP are nice chips for signal processing. If you open up the Analog Devices datasheet, the first feature they mention about the processor architecture are the SIMD instructions. These are basically like vector instructions: 1 instruction executes on a fixed vector (array) of data. For example you can use 1 instruction to perform 4 times: Reg C = Reg A + Reg B. The registers may be 32-bit wide, but data is accessed in 8-bit mode such that it performs 4 separate adds.When you're looping on a sample buffer of say 1024 samples, it could mean you have to loop only 256 times instead of 1024 times. However usually you have toexplicitabout these instructions, i.e. the compiler will often not generate them for you.ARM Cortex m4 (not m3) also has some vector instructions available. However these only work for signed or unsigned 8/16 bit integers. Rading the ADSP datasheet it's obvious that these parts can also work with floating point.In addition it looks like it has someaccelerationfor FFTs, FIR, IIR, matrix etc. But it looks like this is handled by a peripheral in hardware where the data needs to be pushed to.QuoteCould be. Depends how complex the audio effects are you need to do. However if you're pushing audio at high sample rates (96kHz, 192kHz), perhaps multiple channels on high-end gear, you'll quickly find yourself processing 0.5 - 1MSPS of data through a single processor. Then it makes sense that you want to perform vector operations on that kind of data, or perhaps go even more high-end.Other solution is to stick to sample rates that apply to human earsQuoteLike I said, probably PIC32 has some offering in DIP that is reasonably high speed. But these are MIPS4k CPUs withnoDSP/vector instructions.QuoteProbably some I2S DAC?QuoteRead read read, memorize, read more.. never stop learningQuoteYou'll find many people having their own favorite brand, like people like PICs vs people liking Atmels.But that shouldn't matter what you pick. Ultimately, ARM sells many vendors their Cortex CPU cores. Manufacturers take that core (because it's popular and basically the "industry standard") and add memory, peripherals and an "eco system" (software example, CMSIS drivers, abysmal frameworks, etc.) around it. In particular the peripherals are important to see if the chip can accomplish what you want to do.If you're aiming to build some device with it, I suppose you need to answer these questions:How many UART, SPI, I2C, I2S ports do I need? Can the chip actually support all these ports at once, i.e. they are not multiplexed on the same pins?What memory size and CPU horsepower do I need?Do I need external memory interfaces?Do I need power saving features?What package can I solder? What boards can I get made? Blueskull describes a nice project for sure, but if there is any way to avoid such complexity then that path is worth following.etc.I think the most prominent ARM vendors in the hobby field are Microchip/Atmel, STM32, NXP LPC/Freescale, Texas Instruments, Cypress PSoC and perhaps SiLabs EFM32.If I were you and doing anything "media" related, I would look at a STM32F4 or STM32F7 chip. Especially if you're doing this for a hobby project, there is basically no use in dicking around with slow processors.Then again, maybe the answer is that even those chips are too slow for your processing. Then you're faced with the decision of maybe stripping down on features, or upscaling to a DSP after all, or perhaps even a Linux SBC.

author: rsjsouza
author_rank: Super Contributor
timestamp: July 28, 2017, 08:07:00 pm
content: Quote from: blueskull on July 28, 2017, 07:11:16 pmInteresting modules, blueskull, although some of their prices can rival beasts such as BeagleBoard X15 (Dual A15 + Dual C66x DSPs + other cores) or even the simpler OMAPL138 LCDK (ARM9 + C674x DSP + other cores). I guess their DIP form factor makes them more interesting to integrate into an existing project, while the others are complete dev kits.

author: JanJansen
author_rank: Frequent Contributor
timestamp: July 29, 2017, 03:44:45 pm
content: Quote from: hans on July 28, 2017, 06:54:55 pm1 UART module for the MIDI + 1 SPI for the DAC ( minimal requirements )No external memory needed for now, i dont know.Power savings ? : not more then 100 millamps per chip would be nice.Packaging : i am prepared to use a SMD to DIP converter to get the horsepowers,this is also needed for the external DAC, since there are no audio DACs in DIP at all.Quote from: Marco on July 28, 2017, 06:02:47 pmThat is important to me yes, i design all my things with minimal lateny as priority.First some lateny to get out the UART interrupt to process the notes in the main loop, these are cycles within 1 sample so it dont count.Then the DAC needs the last processed sample, so you can process a new sample.+ the SPI latency, since there is no build in DAC, i dont know how much this will be.What gives Sharc DSP more then 1 sample latency ?, for a reverb effect it wont matters, so i am still intrested.Quote from: hans on July 28, 2017, 06:54:55 pmI dont want to use ASM, i just need the horsepower, so i can copy my DSPIC code very easy.Sounds really complicated to me, maybe its very simple ?Quote from: hans on July 28, 2017, 06:54:55 pmMaybe i will first try some PIC32 chips, then i can still use my PICKIT3 also.I thought the Cortex will have many more processing power then PIC32, i also heard DSPIC and PIC24 is faster then any PIC32.What does it matter if its not Cortex, what is so special ?Quote from: senso on July 28, 2017, 05:14:20 pmi dont want to buy any test boards, i build that myself.Thanks for the reply`s all

author: Marco
author_rank: Super Contributor
timestamp: July 29, 2017, 11:10:25 pm
content: Quote from: JanJansen on July 29, 2017, 03:44:45 pmI was responding to the Pi-Zero suggestion. Linux on SBCs such as the Pi-Zero is nearly never really low latency and hard real time, but Bela DSP is (which is based on the Beaglebone Black and Xenomai).As for what might generate more than 1 sample latency on the Sharc, programming (buffering a few samples makes life easier) and ADC/DAC latency (anti-aliasing filters generally have non zero latency).

author: Marco
author_rank: Super Contributor
timestamp: July 30, 2017, 12:02:53 am
content: The main problem with rolling your own board is going to be memory.How are you going to connect fast DRAM to your DIP processor?

author: JanJansen
author_rank: Frequent Contributor
timestamp: July 30, 2017, 01:19:28 pm
content: Quote from: Marco on July 30, 2017, 12:02:53 amI dont know, you mean there are not enough pins for DRAM ?I dont need DRAM for now, it sounds intresting for delay and reverb effects.

author: JanJansen
author_rank: Frequent Contributor
timestamp: July 30, 2017, 03:39:05 pm
content: I,m going for the PIC32MX170F256B for now + some budget DAC i still have to choose, lets see how that works.