![]() |
PIDUINO
|
Ce module permet l'utilisation des bus SPI en mode maître à l'aide du driver spidev.
Dans un système multitâche, l'accès au bus SPI (et plus généralement à toutes les ressources non partageables) est géré par le système d'exploitation par le driver. C'est le driver spidev qui gère tous les signaux du bus : MOSI, MISO, SCK et CS.
La gestion du CS de l'espace utilisateur a été envisagée car on constate la présence d'un flag SPI_NO_CS dans les sources du noyau https://github.com/torvalds/linux/blob/master/drivers/spi, néanmoins, on constate que seuls des drivers spi-bcm2835.c (Raspberry Pi !), spi-davinci.c et spi-imx.c gère cette possibilité.
Le choix qui a été fait, pour l'instant dans le noyau Arduino de PiDuino (src/arduino/Core.cpp) est de laisser le driver spi gérer le signal CS sur les autres cartes que les RaspberryPi. Dans ce cas, Les appels à pinMode() et donc à digitalWrite() n'ont aucun effet lorsqu'il s'agit de la broche correspondant au CS du bus SPI utilisé. Cela permet d'assurer une compatibilité avec le code Arduino, tout en restant compatible avec toutes les cartes Pi.Néanmoins,cela n'autorise pas l'utilisation d'une autre broche GPIO que celle du CS SPI sur les autres cartes que Raspberry Pi (pour l'instant...).
Namespaces | |
namespace | Piduino |
Global namespace for Piduino. | |