Bonjour
C'est la première fois que je tente de programmer une liaison SPI.
Le maître est un PIC16F1779 et les esclaves 3 CI dont un BU97550KV avec lequel je suis en train de faire des tests.
J'ai écris un premier programme que je n'ai pas encore testé et qui envoie 1 octet :
Ma question est, comment faire pour envoyer plusieurs octets de sorte à ce que le BU97550KV les reçois dans le bon ordre ?Code:SSPDATPPS = 0b00001001 ; // RB1 SSPCLKPPS = 0b00011010 ; // RD2 SSPSSPPS = 0b00011111 ; // RD7 (LCD) SSP1STATbits.SMP = 0 ; SSP1STATbits.CKE = 1 ; SSP1CON1bits.CKP = 0 ; SSP1CON1bits.SSPM = 0b0010 ; // 62500Hz // 0010 = SPI Master mode, clock = FOSC/64 ; 0001 = SPI Master mode, clock = FOSC/16 SSP1CON1bits.SSPEN = 1 ; // SPI ON SSPBUF = data ; // data=char while(!SSP1STATbits.BF) ; // Wait for Data Transmit/Receipt complete SSP1CON1bits.SSPEN = 0 ; // SPI OFF
Suffit t'il de faire :
Et comment le BU sait quel octet reçu correspond à quoi ?Code:SSPBUF = data1 ; while(!SSP1STATbits.BF) ; SSPBUF = data2 ; while(!SSP1STATbits.BF) ; SSPBUF = data3 ; while(!SSP1STATbits.BF) ; … ??
Autre question: Y a t'il des avantages de choisir un mode d'horloge plutôt qu'un autre avec SMP, CKE, CKP ? Là j'en ai choisis un qui me semblait le plus normale sans savoir si c'est mieux ou pas.
Merci
-----