static uint16_t spiTransfer(uint8_t cmd) { uint8_t data[3]; uint8_t sdata[3]; //SSP_DATA_SETUP_Type sspCfg; sdata[0] = cmd; sdata[1] = 0xff; sdata[2] = 0xff; //sspCfg.tx_data = sdata; //sspCfg.rx_data = NULL; //sspCfg.length = 1; CS_ON; //SSP_ReadWrite (SSP_PORT, &sspCfg, SSP_TRANSFER_POLLING); Chip_SSP_WriteFrames_Blocking(SSP_ID, sdata, 1); //sspCfg.tx_data = NULL; //sspCfg.rx_data = data; //sspCfg.length = 2; Chip_SSP_ReadFrames_Blocking(SSP_ID, data, 2); //SSP_ReadWrite (SSP_PORT, &sspCfg, SSP_TRANSFER_POLLING); CS_OFF; return ((data[0] << 8) | data[1]); }
int32_t cmd_get_dimension( LPC_SSP_T *spi, struct ack_dimension *dimension ) { uint8_t cmd = CANVAS_CMD_GETDIMENSION; uint8_t ack; /* disable sending DUMMY pattern to FIFO */ Chip_SSP_Int_Disable(spi); /* send command */ Chip_SSP_WriteFrames_Blocking(spi, &cmd, sizeof(cmd)); /* wait for acknowledge */ do { Chip_SSP_ReadFrames_Blocking(spi, (uint8_t*)&ack, sizeof(ack)); } while (ack != CANVAS_ACK_DIMENSION); /* now we can read data */ Chip_SSP_ReadFrames_Blocking(spi, (uint8_t*)dimension, sizeof(*dimension)); /* enable sending DUMMY pattern to FIFO */ Chip_SSP_Int_Enable(spi); return 0; }
uint32_t Board_SSP_readBuffer(uint8_t *buffer, uint32_t bufferLen) { return Chip_SSP_ReadFrames_Blocking(LPC_SSP1,buffer, bufferLen); }
void wizchip_readburst(uint8_t* pBuf, uint16_t len) { Chip_SSP_ReadFrames_Blocking(LPC_SSP0, pBuf, len); }
static uint8_t wizchip_read() { uint8_t rb; Chip_SSP_ReadFrames_Blocking(LPC_SSP0, &rb, 1); return rb; }