Bonjour,
Je suis désolé mais je ne parviens pas à trouver de réponse dans la doc de Microchip.
J'utilise un PIC18F26K22 pour discuter avec une carte SD et d'autres périphériques en SPI.
La carte SD semble mal supporter de communiquer au-dessus de 4MHz, ce qui n'est pas le cas pour les autres.
Avec le PLL activé, le PIC tourne à 64MHz sur un quartz externe. J'ai donc écrit :
Mais il semble qu'une fois sur 2, la communication se passe mal et je n'ai pas trouvé d'information dans la doc sur le temps de passage d'une vitesse à l'autre en SPI.Code:if (OSCCON2bits.PLLRDY) SSP1CON1 = 0x21; // passage à Fosc/16 = 4MHz /* commandes vers la carte ................ ................ */ SSP1CON1 = 0x20; // retour à la vitesse normale (Fosc/4 = 16MHz avec PLL)
J'imagine que la meilleure solution serait d'utiliser les 2 ports disponibles et de leur donner 2 vitesses différentes. Mais pour comprendre ce qui est en jeu, j'aimerai bien savoir exactement pourquoi mon code ne fonctionne pas. Est-ce que c'est le temps de passage d'une vitesse à l'autre qui pose problème, le PLL qui donne une fréquence trop instable ou encore autre chose ?
Merci pour vos conseils.
-----