Bonjour,
Après bien des visites de forums et autres sites plus ou moins exotiques, je n'ai toujours pas bien compris le fonctionnement du contrôle de flux d'un UART.
Dans mon cas, je dois faire communiquer un PIC24FJ avec un RN4678 (module bluetooth Microchip). Il semblerait que côté PIC on soit vite débordé, donc je souhaite mettre en place le contrôle de flux.
Initialement, la vitesse était réglée sur celle par défaut du RN4678 = 115200 bauds. Il y avait un shunt entre RTS et CTS du RN4678 qui, par défaut aussi, a le contrôle de flux matériel actif.
Ça communiquait, mais au bout de 6 octets ça me mettait n'importe quoi bien que le nombre d'octets fut cohérent.
J'ai passé le RN4678 à 9600 et là c'est beaucoup mieux. Sauf que c'est la préhistoire : beaucoup trop lent. Un contrôle de flux devrait, si j'ai bien compris, me permettre de temporiser le RN4678 afin de garder un débit digne de l'an 2000.
1ère étape : j'ai fait sauter le shunt entre RTS et CTS et je l'ai remplacé par un shunt "logiciel" en recopiant RTS du RN4678 sur son CTS le plus souvent possible.
Ça fonctionne.
2ème étape, je veux mettre en place un contrôle de flux, mais CTS du RN4678 n'est pas branché sur une patte offrant la fonctionnalité native RTS de l'UART du PIC. Elle est gérée comme un port standard (en sortie). Ce cas est d'ailleurs prévu dans les registres de paramétrage de l'UART.
1ère question : est-il possible de gérer logiciellement ce contrôle de flux avec CTS et RTS du RN4678 branchés sur des ports standards du PIC ?
2ème question : ne serait-il pas beaucoup plus pratique de tirer profit de la vraie patte RTS de l'UART du PIC pour qu'il gère lui-même la chose comme un grand ?
Merci d'avance
-----