Bonjour a tous,
Je développe actuellement un système ou deux microcontrôlleur communique via SPI.
J'ai donc un spi maître et un autre esclave. je n'utilise pas la SS pin.
j'utilise la DMA pour gérer le transfert de donnée.
La DMA du spi maître est configurée en mode Auto (l'horloge SPI est générée en permanence pour éviter de gérer un système de requête d'horloge si le SPI slave veut émettre spontanément).
Côté spi maitre:
-1channel DMA pour TX SPI : mode auto qui s'interrompt une fois 128octets émis (block transfert mode interrupt) :FONCTIONNE
-1channel DMA pour RX SPI: mode auto qui ne s'interrompt jamais lorsque je le paramètre pour qu'il m'interrompt une fois 128 octets lu...
Côté spi slave:
-1channel DMA pour RX : mode auto qui s'interrompt bien lorsque le spi master a émis ses 128octets. Je dois quand même réglé un problème de synchro car si je démarre le spi maître avant le spi slave, ce dernier ne rentre jamais en interruption ce qui est assez bizarre d'ailleurs...
-1channel DMA pour TX SPI: pas encore configurer car je sais pas trop comment le faire répondre car il a besoin de l'horloge du spi maître
Donc pour résumé en fait quand je démarre le spi slave avant le spi maître j'arrive bien a recevoir mes info dans un sens.
Et ce que je ne sais pas trop c'est comment répondre au spi maître et aussi comment fiabiliser la réception et la synchro car comme l'horloge tourne en permanence les données sont parfois décalée...
Autrement dit pas mal de chose sont encore a voir et c'est pour cela que j'aurais aimé savoir s'il existé un moyen connu de gérer proprement un transfert spi via la DMA.
Merci a tous !
-----