Modérateurs: Modération Forum DIY, Modération Forum Installations, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 18 invités

STM32F4, STM32F7

Message » 20 Juin 2015 21:48

Bonjour,

depuis pas mal de temps, je lorgne sur les puces STM32F4 & bientot STM32F7
Ce ne sont pas des "DSP" purs, mais plutot des processeurs avec architecture ARM embarquant des fonctions DSP puissantes
En plus c'est pas cher et simple à programmer
pour 30$ on trouve des cartes programmables puissantes avec écrans tactile qui se branche sur PC (j'en ai une)
Il y a des ports I2S
Ca se programme en C++
Bref, pourquoi continuer avec des puces DSP purs? Ces processeurs STM32 sont ils de bonnes alternatives? Pourquoi pas plus d'engouement?
camelator
 
Messages: 38
Inscription Forum: 19 Mai 2013 18:28
  • offline

Message » 22 Juin 2015 18:22

C'est génial, mais néanmoins assez limité en terme de MACC. Difficile de comparer un DSP qui va tout traiter en flux tendu entre ses I/O et un CPU "standard" qui a quelques fonctions typés DSP pour accélérer les choses.
Les fonctions DSP des cortexM sont en virgule fixe uniquement. C'est gosso modo l'équivalent des extensions SIMD que l'on retrouve sur un peu tout les CPU, mais sur 32bits uniquement. Donc intéressant si on se limite à des "petits" signaux sur un format de traitement intermédiaire de 8 ou 16 bits.
Mais elles intègrent la gestion de l'overflow/saturation ce qui est un gros plus pour pas plomber les algos "type" DSP.
Pour exploiter au mieux la vectorisation et en avoir sous le pied pour continuer à exploiter tous les périphérique du CPU qui font sont intérêt, il faut batcher au max les traitement sur des buffers conséquents gérés par DMA. Ça impose une certaine latence de base hors traitement DSP, surtout que les CortexM sont pas des foudres de guerre pour la gestion des IRQ (tout le context switch est fait par le CPU, c'est cool et c'est ça de moins à faire, mais ça a un cout).
Par exemple ils sont à la rue pour des algo types "temps réel" comparé aux très spécialisés microcontoleurs 16bits DSPic de microchip.
Bref, quand tu sais exactement ce que tu as a faire, tu peux faire déjà des traitements carrément sympa en 1.31 et/ou en flottant tout en profitant de toute la pléthore de périphérique des STM32, de leur faible cout et mise en œuvre assez simple. On est quand même très loin d'un "vrai" DSP.
PS: le F7 commence a faire mal à la tête avec son archi mémoire ultra complexe pour gratter un peu de perf. Au moins jusqu'au F4 on n'a pas trop de questions à se poser sur ce point.
Tazz28
 
Messages: 2802
Inscription Forum: 03 Nov 2008 23:47
Localisation: Dreux
  • offline

Message » 23 Juin 2015 11:27

Hello Tazz,
enfin un premier retour sur ce sujet!
Effectivement, le cortex M4 n'est pas un DSP pur, l'architecture est différente, ce qui fait que tu ne retrouves pas forcément entièrement tes petits, par exemple le MAC ou encore d'autres sujets qui sont des solutions adaptées à l'architecture des DSP purs.

Ceci dit, Le M4 possède bien des opérations MAC ainsi qu'une FPU flottante.
Les librairies STM incluent des fonctions DSP notamment les filtrages FIR, etc... et sont optimisées pour les cortex M
Il y a pas mal de docs sur le net.

Bref en conclusion:
Je partage le point que le STM32F4 n'est pas un DSP pur.
Mais je dirais qu'une chose: et alors si il remplit les besoins que l'on a?

Bref, je crois qu'il faudrait un exemple concret pour comparer, voir un besoin réel, son implémentation avec un DSP, sa mesure,
faire la meme chose avec STM32F4 et voir si le besoin est rempli.

après que cela soit 10x plus vite ou pas. Personnellement, ca me dérange pas trop du moment que les contraintes temps réel sont respectées.
camelator
 
Messages: 38
Inscription Forum: 19 Mai 2013 18:28
  • offline

Message » 23 Juin 2015 23:24

du moment que les contraintes temps réel sont respectées

T'as tout dit. Tout dépend de ton besoin de "temps réel".
Pour tirer un max de perf du Cortex faut vectoriser a fond et traiter par lot de buffer sous DMA => gros délai incompressible et suivant la complexité des traitements, grosse limite en résolution.
En comparaison, un petit DSP type audio pourra faire plusieurs milliers d'opérations par sample sur 24 bits avec au moins 56 bits intermédiaires et en flux tendu et donc un lag de seulement quelques samples.
Maintenant je suis le premier à défendre le cortexM4 quand le traitement est adapté : Si un ampli à transconductance adéquat voir en pratique le jour sur le topic dédié le cortexM4 de ST sera ma préférence pour implémenter les quelques biquads et prétraitements nécessaire à l'asservissement complet d'un HP ou d'une deux voies: simple, versatile, efficace. La STM32F4 Discovery à 10€ est suffisante et parfaitement adaptée pour ça.
Tazz28
 
Messages: 2802
Inscription Forum: 03 Nov 2008 23:47
Localisation: Dreux
  • offline

Message » 27 Juin 2015 10:42

Bonjour,

ci-dessous un lien qui explique ce qu'il y a dans un cortex M4 et différences avec DSP yc sur le résultat

http://www.imaps.org/chapters/centralte ... 202012.pdf
camelator
 
Messages: 38
Inscription Forum: 19 Mai 2013 18:28
  • offline


Retourner vers Filtrage actif, Equalisation et Processeurs