Les mecs comme moi ont trouvé le site de Mike, mais pas la page qui parle du PWM!
on trouve des tutos, même en Français !
...
Bonjour
Malheureusement , à ce jour, seul le module PWM 'LEDC' des ESP32 est accessible sous IDE Arduino
Un auter module nommé 'MCP' (Motor Pulse Control) est destiné à la production de signaux dans le genre de ceux demandés par remilefortiche, signaux multiples y compris avec programmation d'un temps mort éventuel pour éviter tout recouvrement de signaux synchrones
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/mcpwm.html
merci @J-M-L
c'est mieux que rien mais on reste sur sa faim au vu du potentiel du module en question....
oui
en faisant
#include "driver/mcpwm.h"
#include "soc/mcpwm_reg.h"
#include "soc/mcpwm_struct.h"
on importe les définitions du driver et donc on a accès à l'API... ensuite faut coder
(j'ai jamais regardé en détail)
c'est vrai, comme cela la voie est libre.... et la route est longue...
en étudiant la doc du module (complexe) et les quelques exemples fournis pour l'IDF peut être....
ça demande un gros travail perso avant de pouvoir commencer à vulgariser...
d'où l'impression que ce module MCPWM n'est pas encore accessible comme le sont de nombreux autres modules des ESP32
Ce que j'en ai compris, en faisant le rapprochement avec les présentations dans les datasheet STM32, c'est que c'est destiné à la commande des ponts en H.
Dans un pont en H il faut à tout prix éviter que les 4 transistors soient passants simultanément, ce qui est inévitable avec une commande "rudimentaire" compte tenu des temps de mise en conduction et d'arrêt de conduction qui ne sont pas nuls.
Dans ce domaine, l'avenir n'est-il pas aux circuits intégrés spécialisés comme le DRV8225 ou le A4998 qui reviennent régulièrement dans les questions ?
Le LedPwm espressif n'est-il pas ce qu'Atmel appellait la fast PWM ?
vous voulez dire LedC ?
A voir les efforts des créateurs de microcontrolleurs (Microchip, TI......) pour continuer à intégrer des modules de gestion de moteurs dans certaines de leurs puces puces on pourrait penser que le marché existe encore pour ce type d'intégration
(vu récemment : des PIC32C , qui abandonnent désormais MIPS pour ARM, fonctionnent sous 5V (alim et/ou tolérances sur GPIO) et embarquent les périphériques performants des PIC ... avec comme cible le contrôle de moteurs et autres applications industrielles)
Oui mais ce n'est pas du C c'est de la PWM.
Ca m'agasse que chaque constructeur invente des mots, ça m'agasse qu'il empêche les autres de les utiliser.
Seule la normalisation peut favoriser le développement et non pas le repli sur soi qui devient de plus en plus la nouvelle norme. On revient au temps du SECAM pour ceux qui l'ont vécu.
Le C c'est pour Control LEDC = LED Control
Non pour plusieurs raisons:
- les petits appareils pas chers dans lesquels on préfère mettre des petits étages de puissance à quelques centimes
- le pilotage des gros moteurs avec des étages de puissance pour 50 ou 100 A ou alors des courants plus faibles mais des tensions élevées pour lesquels ont est obligé d'avoir des transistors externes
- pour les modes de pilotage évolués des moteurs brushless.
Voici le lien direct.
En fait la PWM n'existe pas en tant que telle, elle est le résultat de sous fonctions des compteurs évolués, pardon des timers.
Le titre du chapitre dont je parlais est :
"Modulating a 38 kHz carrier with a 500 Hz signal"
Comme on peut le vérifier dans un tableau quelques pages écran plus loin
"Frequencies and periods for various counter values"
le 38 kHz n'est pas faisable directement avec un avr.
Sauf à mettre un signal d’horloge calibré exactement pour les besoins (effectivement à 16MHz ce n’est pas possible, ni avec des horloges habituelles)
Et là il faut obligatoirement utiliser le timer 2 (sur un 328p) qui est le seul compteur de temps à avoir une entrée d'horloge extérieure.
La fréquence de l’horloge (le 16MHz) joue sur les compteur, pas forcément besoin d’une entrée directe
Si pour faire n'importe quelle fréquence de récurrence avec une carte "normale" équipée d'un résonateur à 16 MHz ou tu ne peux avoir que les fréquences du tableau de Mike Gammon.
Si tu veux obtenir une fréquence de récurrence particulière ou un temps de comptage particulier, tu prends un module DDS genre AD9833 ou tu fais un oscillateur avec des portes logiques et un quartz, tu injectes le signal sur la bonne entrée -> elle est indiquée dans la datasheet.
Si Atmel a prévu cette possibilité je me dis qu'il y avait une demande.
oui sans doute
J'avais regardé ça quand je me suis mis aux microcontroleurs.
Ce devait être en 2012 vu que je me suis inscrit en juin 2011.
Dans mes souvenirs un seul timer peut recevoir une horloge extérieure, il me semble que c'est le T2.
En 2023 presque 2024 je ne vais pas ré-éplucher la datasheet d'un micro qui n'est plus vendu par son fabricant.
Une recherche par produit sur le site de Microchip dirige sur atmega328PB.
S'il y a du temps à passer, ce serait plutôt sur les micros modernes qui sont bien plus complexes à comprendre.