Salut à tous.
Ma recommendation était juste pour ce test, et non dans une généralisation.Envoyé par f-leb
Peut-être pour vous deux, mais pas pour moi.Envoyé par f-leb
Pour des exercices comme les leds ou un servomoteurs, je veux bien.
Mais la raspberry n'est pas faite pour contrôler plusieurs périphériques.
Je découvre que je ne peux pas faire clignoter deux leds avec un paramétrage différents.
Genre l'une qui clignote à 50% toutes les 1/2 secondes et l'autre à 25% toutes les secondes.
Il y a bien deux canaux différents (PWM0 & PWM1) mais le paramétrage (pwmclock & pwmrange) est commun aux deux.
Pour ce qui est de la compréhension, oui, je suis d'accord. Encore merci pour tes analyses qui m'ont bien aidé.
Je me demande si au lieu d'utiliser le PWM de la Raspberry Pi, cela ne serait pas mieux de passer par une carte dédié à cela.
Il n'y aura pas de "jitter" (variations du signal dû au fait que la raspberry ne soit pas en temps réel) et on aura un signal propre.
Je ne serai pas limité par le nombre de sorties (pwm0 & pwm1 sur la raspberry).
J'aurai 16 sorties. Sont-elles indépendantes ?
Je ne serai pas obligé de passer par une prise spéciale pour y connecter des servomoteurs.
Autrement dit, je ne risque pas d'abîmer les GPIO de la Raspberry.
Et j'aurai surtout un datasheet complet sur ce produit :
--> https://www.adafruit.com/product/815
Je reviens sur nos quatre paramètres, à savoir :
--> la fréquence de l'horloge (je parle du 19.2MHz).
--> de l'horloge (pwmclock)
--> de la plage (pwmrange)
--> et de la consigne.
1) d'après la documentation, je lis :
La valeur nominale de l'horloge est de 100MHz. D'où vient ce 19.2MHZ ?Both modes clocked by clk_pwm which is nominally 100MHz, but can be varied by the clock manager.
2) il semble que le "pwmrange" correspond aux registres RNG1 & RNG2 (selon le canal). La taille est de 32 bits.
3) si je comprends bien le fonctionnement du PWM de la raspberry, je ne peux pas faire clignoter une led sur le premier canal à une certaine fréquence et une autre led sur le second canal à une autre fréquence.
Ca limite le choix de ce que l'on peut faire !
4) là où j'ai encore des difficultés est de comprendre comment l'analyseur interprète les résultats.
4-a) comment modifier la fréquence de 19.2MHZ ? Dans la plupart des cas, ce n'est pas nécessaire.
4-b) Le PWM modifie la fréquence en 50Hz. Voir le poste #2.
Je prends comme exemple un rapport de 50%, histoire de simplifier le raisonnement.
On peut obtenir 50Hz de plusieurs façons en faisant varier pwmclock et pwmrange.
Qu'est-ce qui est le plus optimal ? Ou si tu préfères, un paramétrage stable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 +-------+-------+ | clock | Range | +-------+-------+ | 192 | 2000 | | 384 | 1000 | | 768 | 500 | | 960 | 400 | | 1536 | 250 | | 1920 | 200 | | ... | ... | +-------+-------+
4-c) le pwmclock va de 2 jusqu'à 4095. Voir le poste #6, deuxième analyse.
4-d) le pwmrange va de 2 jusqu'à 232- 1. C'est bien plus que ton 1 milliard.
4-e) il y a le mark & space et le balanced.
4-f) je ne vois que ces quatre paramètres (la fréquence 19.2MHz, pwmclock, pwmrange, la consigne) pour agir sur le PWM.
5) il me reste à me procurer un oscilloscope pas cher.
6) et pour terminer, trouver comment gérer le PWM avec libgpio (l'autre sujet).
As-tu testé, enfin si cela t'intéresse, mon autre sujet sur les GPIO ?
Je m'arrête là, car je vais tourner en rond avec mes questions.
Merci à tous les deux pour vos explications.
@+
Partager