Et cerise sur le gateau, Jean-Luc a prévu que l'horloge du MCP2515 soit alimenté par une PWM à 16Mhz générée directement pas le Pico. C'est ce que j'ai fait et cela fonctionne !
J'ai piqué le code à Pierre Molinaro
La programmation de la PWM sur le Pïco est très différente de ce que l'on utilise sur un Arduino, et je craignais d'avoir là aussi à passer beaucoup de temps.
En fait côté Arduino, elle n'est pas différente. On a analogWrite comme d'habitude. C'est juste qu'ils y a quelques limitations par choix de conception. Le logiciel Arduino-Pico repose sur le SDK de Raspberry Pi mais comme il est plus simple, il est aussi moins riche que le SDK .
Côté Arduino, la fréquence est réglable via analogWriteFreq mais la fréquence est limitée à 1MHz maximum (bizarrement j'ai regardé le code et c'est 10MHz, je vais signaler la divergence). En effet, plus on monte en fréquence et plus la résolution de la PWM diminue. À 1MHz on a 64 pas d'après la doc et je suppose que Earle a préférer garder un nombre de pas suffisant pour la majorité des applications.
De ce que je comprends dans le code, analogWriteFreq sert à régler la fréquence mais seulement pour les analogWrite futurs. Les PWM déjà actives ne sont pas touchées. Autrement dit, la fréquence demandée est juste stockée dans une variable. C'est analogWrite qui programme la fréquence demandée en même temps qu'il règle le rapport cyclique. On peut donc avoir des PWM à des fréquences différents à conditions qu'elles soient sur des lices différentes.
Le Pico a 8 slices avec 1 compteur 16 bits et 2 PWM par slice. Le GPIO 22 est sur le slice 3A. Sur le slice 3B on a le GPIO 23. Donc sur le GPIO 23 on a potentiellement aussi une PWM à 16 MHz (si on le programme comme étant une PWM). Sur le Pico, le GPIO23 n'est pas exposé et sert à choisir le mode de fonctionnement de l'alimentation. Il n'y a donc pas lieu de mettre une PWM dessus.
Autrement dit, si on ne touche pas au GPIO22 et au 23, on peut faire ce que l'on veut avec les autres PWM sans affecter la fréquence du MCP2515 mais ça reste à vérifier.
Merci, merci encore !
C'est avec plaisir !