A PIC32 interrupt driven SPI communication method using a FIFO buffer