/***************************************************************************** * FUNCTION: Write8BitWFRegister * * RETURNS: None * * PARAMS: * regId -- ID of 8-bit register being written to * value -- value to write * * NOTES: Writes WF 8-bit register *****************************************************************************/ void Write8BitWFRegister(uint8_t regId, uint8_t value) { g_txBuf[0] = regId | WF_WRITE_REGISTER_MASK; g_txBuf[1] = value; WF_SpiEnableChipSelect(); WF_SpiTxRx(g_txBuf, 2, g_rxBuf, 1); WF_SpiDisableChipSelect(); }
/***************************************************************************** * FUNCTION: Read16BitWFRegister * * RETURNS: register value * * PARAMS: * regId -- ID of 16-bit register being read * * NOTES: Reads WF 16-bit register *****************************************************************************/ uint16_t Read16BitWFRegister(uint8_t regId) { g_txBuf[0] = regId | WF_READ_REGISTER_MASK; WF_SpiEnableChipSelect(); WF_SpiTxRx(g_txBuf, 1, g_rxBuf, 3); WF_SpiDisableChipSelect(); return (((uint16_t)g_rxBuf[1]) << 8) | ((uint16_t)(g_rxBuf[2])); }
/***************************************************************************** * FUNCTION: Read8BitWFRegister * * RETURNS: register value * * PARAMS: * regId -- ID of 8-bit register being read * * NOTES: Reads WF 8-bit register *****************************************************************************/ uint8_t Read8BitWFRegister(uint8_t regId) { g_txBuf[0] = regId | WF_READ_REGISTER_MASK; WF_SpiEnableChipSelect(); WF_SpiTxRx(g_txBuf, 1, g_rxBuf, 2); WF_SpiDisableChipSelect(); return g_rxBuf[1]; /* register value returned in the second byte clocking */ }
/***************************************************************************** * FUNCTION: Read16BitWFRegister * * RETURNS: register value * * PARAMS: * regId -- ID of 16-bit register being read * * NOTES: Reads WF 16-bit register *****************************************************************************/ UINT16 Read16BitWFRegister(UINT8 regId) { g_txBuf[0] = regId | WF_READ_REGISTER_MASK; WF_SpiEnableChipSelect(); WFSpiTxRx(g_txBuf, 1, g_rxBuf, 3); WF_SpiDisableChipSelect(); return (((UINT16)g_rxBuf[1]) << 8) | ((UINT16)(g_rxBuf[2])); }
/***************************************************************************** * FUNCTION: Write16BitWFRegister * * RETURNS: None * * PARAMS: * regId -- ID of 16-bit register being written to * value -- value to write * * NOTES: Writes WF 16-bit register *****************************************************************************/ void Write16BitWFRegister(uint8_t regId, uint16_t value) { g_txBuf[0] = regId | WF_WRITE_REGISTER_MASK; g_txBuf[1] = (uint8_t)(value >> 8); /* MS byte being written */ g_txBuf[2] = (uint8_t)(value & 0x00ff); /* LS byte being written */ WF_SpiEnableChipSelect(); WF_SpiTxRx(g_txBuf, 3, g_rxBuf, 1); WF_SpiDisableChipSelect(); }
/***************************************************************************** * FUNCTION: ReadWFArray * * RETURNS: None * * PARAMS: * regId -- Raw register being read from * pBuf -- pointer where to write out bytes * length -- number of bytes to read * * NOTES: Reads a block of data from a raw register *****************************************************************************/ void ReadWFArray(uint8_t regId, uint8_t *p_Buf, uint16_t length) { WF_SpiEnableChipSelect(); /* output command byte */ g_txBuf[0] = regId | WF_READ_REGISTER_MASK; WF_SpiTxRx(g_txBuf, 1, g_rxBuf, 1); /* read data array */ WF_SpiTxRx(g_txBuf, 1, /* garbage tx byte */ p_Buf, length); WF_SpiDisableChipSelect(); }
/***************************************************************************** * FUNCTION: WriteWFArray * * RETURNS: None * * PARAMS: * regId -- Raw register being written to * pBuf -- pointer to array of bytes being written * length -- number of bytes in pBuf * * NOTES: Writes a data block to specified raw register *****************************************************************************/ void WriteWFArray(uint8_t regId, const uint8_t *p_Buf, uint16_t length) { g_txBuf[0] = regId; WF_SpiEnableChipSelect(); /* output cmd byte */ WF_SpiTxRx(g_txBuf, 1, g_rxBuf, 1); /* output data array bytes */ WF_SpiTxRx(p_Buf, length, g_rxBuf, 1); WF_SpiDisableChipSelect(); }
/***************************************************************************** * FUNCTION: WriteWFArray * * RETURNS: None * * PARAMS: * regId -- Raw register being written to * pBuf -- pointer to array of bytes being written * length -- number of bytes in pBuf * * NOTES: Writes a data block to specified raw register *****************************************************************************/ void WriteWFArray(UINT8 regId, UINT8 *p_Buf, UINT16 length) { g_txBuf[0] = regId; WF_SpiEnableChipSelect(); /* output cmd byte */ WFSpiTxRx(g_txBuf, 1, g_rxBuf, 1); /* output data array bytes */ WFSpiTxRx(p_Buf, length, g_rxBuf, 1); WF_SpiDisableChipSelect(); }