Кусок своего кода для ыш-1000 прилагаю, но я использовал, кажется, 3-wire и NSS дергал вручную, не помню уже почему
CODE
void ForceReg ( bit rw, unsigned char addr, unsigned char dataToReg ){
// Send SPI data using double buffered write
EA = 0;
NSS1 = 0; // drive NSS low
SPIF1 = 0;
if( rw ){ // clear SPIF
SPI1DAT = (addr | 0x80 ); // write reg address
} else {
SPI1DAT = (addr ); // write reg address
}
while(!TXBMT1); // wait on TXBMT
SPI1DAT = dataToReg; // write value
while(!TXBMT1); // wait on TXBMT
while((SPI1CFG & 0x80) == 0x80); // wait on SPIBSY
curReg.dataFromReg = SPI1DAT;
SPIF1 = 0; // leave SPIF cleared
NSS1 = 1;
EA = 1; // drive NSS high
}
Кроссбар и порты получаются утилитой, целый файл наверное нет смысла класть.
Хотел сказать посмотрите осцилом что там реально получается, но тут это затруднительно