Bonjour,
J'envisage d'utiliser un FT232R pour, entre autres, interfacer des composants en SPI. Je sais que ce n'est pas une bonne idée (le FT2232R est plus indiqué pour cela d'après le constructeur), mais je m'entête.
Evidemment, il y a la solution bète et méchante : le mode CBus BitBang ...
Mais ça suppose qu'on envoie un seul bit pour deux appels à la DLL FTDI (puisqu'il faut simuler SDI, CLK "à la main" et aussi CS) . C'est trop lent.
L'autre solution consiste à utiliser le mode BitBang synchrone (D0 à D7), et, pour simuler CLK du SPI, à configurer une des lignes CBusX (0 à 4) pour qu'elle véhicule en sortie les strobes de lecture (BitBangRDn). Dans ce cas, il reste le problème épineux du signal /CS qui doit passer en niveau haut sur une horloge à son niveau bas.
On peut essayer de simuler CS avec une ligne Dx (D0 à D7). Mais ça ne fonctionne pas : en mode synchrone, le signal BitBangRD# passe toujours en niveau haut immédiatement avant l'émission de la nouvelle configuration des lignes. Or, la spécification SPI impose une CLK à son niveau bas quand CS remonte.
On peut se dire qu'il n'y a qu'à utiliser les strobes BitBangWR# à la place. Mais là aussi, on a un problème : BitBangWR# n'est presque jamais au niveau bas ... et il n'est en aucun cas à son niveau bas au moment ou une nouvelle donnée vient configurer le bus D.
Donc, on élimine l'option "CS simulé sur une ligne du bus D".
On peut essayer de simuler CS avec une ligne du CBus. Dans ce cas, on se propose de passer en mode CBus BitBang pour abaisser la ligne CBUSx qui sert de CS, puis on repasse en mode BitBang synchrone et on transmet une suite de bit sur la ligne de bus D qui nous sert de sortie SDI et enfin, on revient en mode CBus BitBang pour remonter notre ligne CS.
Mais là il y a une inconnue qui se profile ... et c'est l'objet de ce post dans le forum : qu'advient-il des lignes du Bus D quand on active le mode CBus BitBang ? (est-ce que les lignes restent configurées comme précédemment ? ou y a-t-il une sorte de remise en mode tristate qui est fait ?)
Deuxième question : qu'advient-il des lignes du bus C quand on active le mode "synchronous Bit Bang" ?
Si les lignes restent inchangées, je pense qu'on peut faire de la communication SPI efficace avec un FT232R. Sinon, je pense que je m'orienterai (à regrets) vers une autre solution.
-----