cancel
Showing results for 
Search instead for 
Did you mean: 

HOW ABOUT AN STM32F7/H7 WITH SOME DSP ACCELERATORS

Garnett.Robert
Senior III
Posted on March 14, 2017 at 02:00

Hi,

I love the STM32 series processors. I have used F4's and F7's.  The ADC's are great particularly when used in dual or tripple mode. The timers are great and the general purpose comms are great, but what would be really good would be some DSP accelerator peripherals that off load the inevitable cpu time consuming loops that DSP requires.   I recently purchased and AD Sharc Board which has all of this stuff, but using it requires a Phd in computer science to understand it and it is seems to be targeted at audio using sigma delta adc's which aren't ideal for process control applications where the bandwidth includes a constant dc component.  What would be really nice to bolt on to an F4 or F7 or the new H7 would be

- FFT Accelerator

- FIR Accelerator

- IIR Accelerator

These could be configured to use a dedicated RAM pool separate from the ARM processors ram.

I have used the F4's and F7's for FFT's, FIRs and IIR's but it is very easy to run out of memory and using external SDRAM slows everything down considerably.

In some cases you can use 16 bit integers which helps with calculation speed and memory, but fixed point is a pain to scale correctly and it does not have the dynamic range of single float.  Also often the bounds checking essential for some fixed point algorithms uses up a lot of the speed gains of fixed point anyway. I have also used the CMSIS DSP library, but found that it has size limitations and lacks the flexibility of hand coded stuff where you can fold different DSP operations into each other to save memory and time and of course CMSIS DSP  still ties up the CPU considerably.

I use uVision as my development platform and use the HAL drivers.  I sometimes struggle with these as the relationship between the terminology used in the software does not always link up well with the processor reference manual. I also use the STM32CubeMX bizzo as I find this makes grappling with the IO to peripheral mapping much less of a pain. I also use freeRTOS and LWIP together without much trouble. I reckon DSP type periperals would fit in the HAL driver system very nicely.

I'm sure the clever people at ST could come up with some nice DSP stuff. It would enhance the current ST MCU range which is already excellent, by an order of magnitude.

Regards

Old Guy From Toon

14 REPLIES 14
Posted on March 17, 2017 at 09:51

Surely.

This, in turn, attracts mostly well-heeled buyers (companies), and not amateurs or the educational sector.

And this, in turn, results in the observed chronic shortage of (good) DSP developers...

Al little more competition, like in the general-purpose MCU market (especially Cortex M), might do good. Just my 2 cents ...

Garnett.Robert
Senior III
Posted on March 18, 2017 at 08:56

Hi All,

Thanks very much for all of your contributions and the insights you have provided me.  I have enjoyed reading you replies very much.

My late  electronic lecturer, John Ochsenbeine  told me back in 1974 that one day systems on a chip would be built into everything.  I wasn't too sure what he was on about at the time, as my programming skills and computer knowledge was limited to punching IBM cards for fortran programs, waiting for the listing and then trying to work out what had gone wrong.  Needless to say, I got a D for Fortran and did not see programming real-time systems as a future hobby.  John was also part French. I didn't think that you could be part French, but I did sometimes struggle to understand him.

A system we had a school was an old General Automation SPC 16 mini computer. This machine ran multiuser basic in 32 K of memory which had to be loaded from punched tape.   The tape was so long you couldn't fit it in the reader; you had to put it on the floor and it discharged into a plastic rubbish bin.  Before you could use the hi speed paper tape reader you had to key in a bootstrap program in hex from the computer's front panel, which took about half an hour.  This allowed the teletypes to read a paper tape with the hi speed tape reader driver. You then hit the go button and hoped that the hi speed tape made it through without jamming. Any  user who crashed the system had to reboot it and buy everyone an ice cream at lunchtime.  I think it was this basic program  that got me hooked on computers in spite of it nearly sending me  broke buying ice creams.

I still can't believe how far we have come since those days.  It's as young people are always saying AWESOME!!

Regards

Rob

Posted on March 25, 2017 at 05:29

Learning Digital Signal Processing is quite a challenge for those who never did it at school.   It was never part of my education ,but I came across it using vibration spectrum analyzers in the late 70's and so I read a few books, Rabiner & Gold et al.  The maths which these books focused on was quite a challenge and tended to obscure the engineering value of this technology.   I searched a bit further over the years and read a couple of good books on radar and sonar which were initially the biggest users of DSP as a consequence of the vast sums of money the US military have at their disposal.  One book in particular:

  • Fundamentals of Radar Signal Processing, Second Edition (McGraw-Hill Professional Engineering) by Mark Richards is excellent and available on Kindle.  It's not cheap, but it is very good.  A well balanced book of maths and applications.  Other books which are very good are:

  • Digital Signal Processing - A Practical Guide for Engineers & Scientists. Steven W Smith (Kindle Edition)

  • 'MATLAB Simulations for Radar Systems Design' Elsherbeni, Atef Z.. Matlab®­­: Simulations for Radar Systems Design (Kindle Location 62). Taylor and Francis CRC ebook account. Kindle Edition.

  • Understanding Digital Signal Processing (Kindle Location 264).Lyons, Richard G.. Pearson Education. Kindle Edition.

In addition to these books I had access at work to Matlab/Simulink and the Digital Signal Processing Toolbox. I used this system along with the Matlab compiler to develop a time domain data analyzer using National Instruments DAQ boxes. We use this for Automatic Voltage Regulator and Power System Stabilizer compliance testing. I also developed a Swept Sine and FFT network analyzer for doing frequency response tests and system identification.

I also have the Matlab/Simulink embedded compiler and can produce fancy DSP algorithms tested in the Simulink environment then compiled to C code which is dead easy to bolt into an embedded IDE such as uVision.

Matlab isn't cheap but you can now buy a relatively cheap home edition of both Matlab and Simulink and if you get the DSP system toolbox as well you have access to vector scopes excellent spectrum analysers and frame based processing. You cannot build C source with the home addition, but you can use the system as a learning tool and development test bed and by using the basic DSP algorithms which are provided in CMSIS DSP library you can implement your designs on an embedded platform. There are also some good DSP C libraries at source forge and GITHub which may be used. Frame based processing of ADC/DMA buffers is handled effortlessly in the Simulink and CMSIS DSP environments. There are also some good 2D DSP libraries that can be used for embedded image processing.

The beauty of the Simulink DSP environment is that you can experiment with the various algorithms and get great insigts into what they are doing by examining graphical displays. You can introduce noise and artifacts into you system to quantify system performance in real world situations. If you can't get your system to work in Simulink it aint gonna work in your embedded system.

For those interested really interested in Radar I would recommend an addon for Matlab/Simulink that should work with the home user version of Matlab called DSP Speedster. This costs about $100 US and is packed with all sorts of examples of DSP as applied to Radar. For those just interested in DSP this package is still very useful as many of the principles used in radar are applicable to may other engineering domains. Matlab also have a Radar toolbox which I haven't used, but I expect it would be very good.

Another interesting resource covering DSP is Massachusetts Institute Of Technology, Lincon Labs Dr Gregory Charvat's Coffee Can Radar

https://ocw.mit.edu/resources/res-ll-003-build-a-small-radar-system-capable-of-sensing-range-doppler-and-synthetic-aperture-radar-imaging-january-iap-2011/

There is also a companion book.

I hope this sparks a bit more interest in DSP. It may be used to track rockets, but it isn't Rocket Science.

When I have finished the anemometer I'm building I will post the design somewhere so others may use any bits that might be handy to them.

On thing particularly impressed me about the STMF7's is their speed and efficiency. I had a granfather clock and got fed up with adjusting the pendulum so I put a small linear actuator on the prendulum to vary it's center of gravity and used a Raspberry Pi to lock the clock's pendulum to the 1 PPS from a cheap GPS module. I needed two “soft�? phase locked loops, one to generate 66 pulses per minute from the GPS 60 ppm and one to lock the pendulum against the sythesized 66 ppm reference. I only ran the thing at 2 Khz but the 900 MHz Broardcom Chip running Linux was needed about 80% utilisation. The same thing running on an F7 using FreeRTOS is lucky to use 5%.

Please don't tell me I could have used a solenoid to pulse the pendulum, I always wanted to use a phase locked loop for something and I didn't want to force the pendulum. It's was the thrill of the chase, not the outcome that interested me.♯♯♯

Regards

RJG

T J
Lead
Posted on April 16, 2017 at 05:22

here is a new processor for you Rob,

The Renesas Autonomy Platform and RH850/V1R-M RADAR MCU

Renesas is the only automotive semiconductor supplier in the industry to offer end-to-end solutions from secure cloud connectivity and sensing to autonomous control. Leveraging decades of experience and technological expertise, the new Renesas autonomy Platform is an open, innovative, and trusted platform for ADAS and automated driving, supported by Renesas’ sustainable and scalable SoC and MCU roadmaps. The RH850/V1R-M MCU was specifically designed for use in RADAR applications as part of the sustainable and scalable portfolio. The new MCU includes optimized programmable digital signal processing (DSP), a dual CPU cores each operating at 320 megahertz (MHz) with industry-leading high speed flash of 2 megabyte (MB), and 2 MB internal RAM, while meeting the industry's highest temperature requirements.

Posted on April 18, 2017 at 19:08

Excellent post OM. 

Digital Signal Processing - A Practical Guide for Engineers & Scientists. Steven W Smith (Kindle Edition)

Legitimately available online for browse/download at

http://www.dspguide.com/