// Set up the SPI for the MicroSD card void sdSetup(void) { // Configure Port Direction TRISDbits.TRISD5 = 0; // Turn RD5 into output for SCLK TRISDbits.TRISD4 = 1; // Turn RD4 into input for MISO TRISDbits.TRISD3 = 0; // Turn RD3 into output for MOSI TRISDbits.TRISD2 = 0; // Turn RD2 into output for SS TRISDbits.TRISD1 = 1; // Turn RD1 into input for CD (card detect) // Configure PPS pins for MicroSD iPPSInput(IN_FN_PPS_SDI1,IN_PIN_PPS_RP25); // Assign SDI1 to pin RP25 iPPSOutput(OUT_PIN_PPS_RP20,OUT_FN_PPS_SCK1OUT); // Assign SCK1OUT to pin RP20 iPPSOutput(OUT_PIN_PPS_RP22,OUT_FN_PPS_SDO1); // Assign SDO1 to pin RP22 iPPSOutput(OUT_PIN_PPS_RP23,OUT_FN_PPS_SS1OUT); // Assign SS1OUT to pin RP23 // Close SPI in case it's already open CloseSPI1(); // Enable SPI interface // Clear and disable SPI interupts for now SPI1_Clear_Intr_Status_Bit; DisableIntSPI1; ConfigIntSPI1(SPI_INT_DIS); // Interrupts disabled OpenSPI1(0x0000, MASTER_ENABLE_ON, SPI_ENABLE); // Master Mode // SPI enabled }
//<editor-fold defaultstate="collapsed" desc="SPI Setup"> void Setup_SPI1() { OpenSPI1( ( ENABLE_SCK_PIN &// // FIFO_BUFFER_DISABLE & ENABLE_SDO_PIN &// SPI_MODE16_OFF &// SPI_SMP_ON &// SPI_CKE_ON &// SLAVE_ENABLE_OFF &// CLK_POL_ACTIVE_HIGH &// MASTER_ENABLE_ON &// SEC_PRESCAL_4_1 &// PRI_PRESCAL_4_1// ) , ( FRAME_ENABLE_OFF & //NOT USED FRAME_SYNC_OUTPUT & //NOT USED FRAME_POL_ACTIVE_HIGH & //NOT USED FRAME_SYNC_EDGE_PRECEDE //NOT USED ) , ( SPI_ENABLE &// SPI_IDLE_CON &// SPI_RX_OVFLOW_CLR // ) ); ConfigIntSPI1(SPI_INT_EN & SPI_INT_PRI_5); TRIS_SCLK; TRIS_MOSI; TRIS_MISO; MAP_SCLK; MAP_MOSI; MAP_MISO; printf("SPI1 Setup\r\n"); return; }
void Setup_SPI1() { OpenSPI1( ( ENABLE_SCK_PIN &// // FIFO_BUFFER_DISABLE & ENABLE_SDO_PIN &// SPI_MODE16_OFF &// SPI_SMP_ON &// SPI_CKE_ON &// SLAVE_ENABLE_OFF &// CLK_POL_ACTIVE_HIGH &// MASTER_ENABLE_ON &// SEC_PRESCAL_4_1 &// PRI_PRESCAL_4_1// ) , ( FRAME_ENABLE_OFF & //NOT USED FRAME_SYNC_OUTPUT & //NOT USED FRAME_POL_ACTIVE_HIGH & //NOT USED FRAME_SYNC_EDGE_PRECEDE //NOT USED ) , ( SPI_ENABLE &// SPI_IDLE_CON &// SPI_RX_OVFLOW_CLR // ) ); ConfigIntSPI1(SPI_INT_EN & SPI_INT_PRI_5); PPSOutput(OUT_FN_PPS_SCK1, OUT_PIN_PPS_RP8);//CLK PPSOutput(OUT_FN_PPS_SDO1, OUT_PIN_PPS_RP7);//MOSI PPSInput(IN_FN_PPS_SDI1, IN_PIN_PPS_RP6); //MISO TRISBbits.TRISB8 = 0;//Clk TRISBbits.TRISB7 = 0;//MOSI TRISBbits.TRISB6 = 1;//MISO printf("SPI1 Setup\r\n"); return; }