-
-
Notifications
You must be signed in to change notification settings - Fork 508
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
1,171 additions
and
1,171 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,96 +1,96 @@ | ||
/* | ||
* THE FOLLOWING FIRMWARE IS PROVIDED: (1) "AS IS" WITH NO WARRANTY; AND | ||
* (2)TO ENABLE ACCESS TO CODING INFORMATION TO GUIDE AND FACILITATE CUSTOMER. | ||
* CONSEQUENTLY, CMOSTEK SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR | ||
* CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT | ||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION | ||
* CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. | ||
* | ||
* Copyright (C) CMOSTEK SZ. | ||
*/ | ||
|
||
/*! | ||
* @file cmt2300a.h | ||
* @brief CMT2300A transceiver RF chip driver | ||
* | ||
* @version 1.3 | ||
* @date Jul 17 2017 | ||
* @author CMOSTEK R@D | ||
*/ | ||
|
||
#ifndef __CMT2300A_H | ||
#define __CMT2300A_H | ||
|
||
#include "cmt2300a_defs.h" | ||
#include "cmt2300a_hal.h" | ||
#include <stdint.h> | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
#define ENABLE_AUTO_SWITCH_CHIP_STATUS /* Enable the auto switch chip status */ | ||
|
||
/* ************************************************************************ | ||
The following are for chip status controls. | ||
* ************************************************************************ */ | ||
void CMT2300A_SoftReset(void); | ||
uint8_t CMT2300A_GetChipStatus(void); | ||
bool CMT2300A_AutoSwitchStatus(uint8_t nGoCmd); | ||
bool CMT2300A_GoSleep(void); | ||
bool CMT2300A_GoStby(void); | ||
bool CMT2300A_GoTFS(void); | ||
bool CMT2300A_GoRFS(void); | ||
bool CMT2300A_GoTx(void); | ||
bool CMT2300A_GoRx(void); | ||
|
||
/* ************************************************************************ | ||
* The following are for chip interrupts, GPIO, FIFO operations. | ||
* ************************************************************************ */ | ||
void CMT2300A_ConfigGpio(uint8_t nGpioSel); | ||
void CMT2300A_ConfigInterrupt(uint8_t nInt1Sel, uint8_t nInt2Sel); | ||
void CMT2300A_SetInterruptPolar(bool bActiveHigh); | ||
void CMT2300A_SetFifoThreshold(uint8_t nFifoThreshold); | ||
void CMT2300A_EnableAntennaSwitch(uint8_t nMode); | ||
void CMT2300A_EnableInterrupt(uint8_t nEnable); | ||
void CMT2300A_EnableRxFifoAutoClear(bool bEnable); | ||
void CMT2300A_EnableFifoMerge(bool bEnable); | ||
void CMT2300A_EnableReadFifo(void); | ||
void CMT2300A_EnableWriteFifo(void); | ||
void CMT2300A_RestoreFifo(void); | ||
uint8_t CMT2300A_ClearTxFifo(void); | ||
uint8_t CMT2300A_ClearRxFifo(void); | ||
uint8_t CMT2300A_ClearInterruptFlags(void); | ||
|
||
/* ************************************************************************ | ||
* The following are for Tx DIN operations in direct mode. | ||
* ************************************************************************ */ | ||
void CMT2300A_ConfigTxDin(uint8_t nDinSel); | ||
void CMT2300A_EnableTxDin(bool bEnable); | ||
void CMT2300A_EnableTxDinInvert(bool bEnable); | ||
|
||
/* ************************************************************************ | ||
* The following are general operations. | ||
* ************************************************************************ */ | ||
bool CMT2300A_IsExist(void); | ||
uint8_t CMT2300A_GetRssiCode(void); | ||
int CMT2300A_GetRssiDBm(void); | ||
void CMT2300A_SetFrequencyChannel(uint8_t nChann); | ||
void CMT2300A_SetFrequencyStep(uint8_t nOffset); | ||
void CMT2300A_SetPayloadLength(uint16_t nLength); | ||
void CMT2300A_EnableLfosc(bool bEnable); | ||
void CMT2300A_EnableLfoscOutput(bool bEnable); | ||
void CMT2300A_EnableAfc(bool bEnable); | ||
void CMT2300A_SetAfcOvfTh(uint8_t afcOvfTh); | ||
|
||
/* ************************************************************************ | ||
* The following are for chip initializes. | ||
* ************************************************************************ */ | ||
bool CMT2300A_Init(void); | ||
bool CMT2300A_ConfigRegBank(uint8_t base_addr, const uint8_t bank[], uint8_t len); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif | ||
/* | ||
* THE FOLLOWING FIRMWARE IS PROVIDED: (1) "AS IS" WITH NO WARRANTY; AND | ||
* (2)TO ENABLE ACCESS TO CODING INFORMATION TO GUIDE AND FACILITATE CUSTOMER. | ||
* CONSEQUENTLY, CMOSTEK SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR | ||
* CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT | ||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION | ||
* CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. | ||
* | ||
* Copyright (C) CMOSTEK SZ. | ||
*/ | ||
|
||
/*! | ||
* @file cmt2300a.h | ||
* @brief CMT2300A transceiver RF chip driver | ||
* | ||
* @version 1.3 | ||
* @date Jul 17 2017 | ||
* @author CMOSTEK R@D | ||
*/ | ||
|
||
#ifndef __CMT2300A_H | ||
#define __CMT2300A_H | ||
|
||
#include "cmt2300a_defs.h" | ||
#include "cmt2300a_hal.h" | ||
#include <stdint.h> | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
#define ENABLE_AUTO_SWITCH_CHIP_STATUS /* Enable the auto switch chip status */ | ||
|
||
/* ************************************************************************ | ||
The following are for chip status controls. | ||
* ************************************************************************ */ | ||
void CMT2300A_SoftReset(void); | ||
uint8_t CMT2300A_GetChipStatus(void); | ||
bool CMT2300A_AutoSwitchStatus(uint8_t nGoCmd); | ||
bool CMT2300A_GoSleep(void); | ||
bool CMT2300A_GoStby(void); | ||
bool CMT2300A_GoTFS(void); | ||
bool CMT2300A_GoRFS(void); | ||
bool CMT2300A_GoTx(void); | ||
bool CMT2300A_GoRx(void); | ||
|
||
/* ************************************************************************ | ||
* The following are for chip interrupts, GPIO, FIFO operations. | ||
* ************************************************************************ */ | ||
void CMT2300A_ConfigGpio(uint8_t nGpioSel); | ||
void CMT2300A_ConfigInterrupt(uint8_t nInt1Sel, uint8_t nInt2Sel); | ||
void CMT2300A_SetInterruptPolar(bool bActiveHigh); | ||
void CMT2300A_SetFifoThreshold(uint8_t nFifoThreshold); | ||
void CMT2300A_EnableAntennaSwitch(uint8_t nMode); | ||
void CMT2300A_EnableInterrupt(uint8_t nEnable); | ||
void CMT2300A_EnableRxFifoAutoClear(bool bEnable); | ||
void CMT2300A_EnableFifoMerge(bool bEnable); | ||
void CMT2300A_EnableReadFifo(void); | ||
void CMT2300A_EnableWriteFifo(void); | ||
void CMT2300A_RestoreFifo(void); | ||
uint8_t CMT2300A_ClearTxFifo(void); | ||
uint8_t CMT2300A_ClearRxFifo(void); | ||
uint8_t CMT2300A_ClearInterruptFlags(void); | ||
|
||
/* ************************************************************************ | ||
* The following are for Tx DIN operations in direct mode. | ||
* ************************************************************************ */ | ||
void CMT2300A_ConfigTxDin(uint8_t nDinSel); | ||
void CMT2300A_EnableTxDin(bool bEnable); | ||
void CMT2300A_EnableTxDinInvert(bool bEnable); | ||
|
||
/* ************************************************************************ | ||
* The following are general operations. | ||
* ************************************************************************ */ | ||
bool CMT2300A_IsExist(void); | ||
uint8_t CMT2300A_GetRssiCode(void); | ||
int CMT2300A_GetRssiDBm(void); | ||
void CMT2300A_SetFrequencyChannel(const uint8_t nChann); | ||
void CMT2300A_SetFrequencyStep(uint8_t nOffset); | ||
void CMT2300A_SetPayloadLength(uint16_t nLength); | ||
void CMT2300A_EnableLfosc(bool bEnable); | ||
void CMT2300A_EnableLfoscOutput(bool bEnable); | ||
void CMT2300A_EnableAfc(bool bEnable); | ||
void CMT2300A_SetAfcOvfTh(uint8_t afcOvfTh); | ||
|
||
/* ************************************************************************ | ||
* The following are for chip initializes. | ||
* ************************************************************************ */ | ||
bool CMT2300A_Init(void); | ||
bool CMT2300A_ConfigRegBank(uint8_t base_addr, const uint8_t bank[], uint8_t len); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,76 +1,76 @@ | ||
/* | ||
* THE FOLLOWING FIRMWARE IS PROVIDED: (1) "AS IS" WITH NO WARRANTY; AND | ||
* (2)TO ENABLE ACCESS TO CODING INFORMATION TO GUIDE AND FACILITATE CUSTOMER. | ||
* CONSEQUENTLY, CMOSTEK SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR | ||
* CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT | ||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION | ||
* CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. | ||
* | ||
* Copyright (C) CMOSTEK SZ. | ||
*/ | ||
|
||
/*! | ||
* @file cmt2300a_hal.c | ||
* @brief CMT2300A hardware abstraction layer | ||
* | ||
* @version 1.2 | ||
* @date Jul 17 2017 | ||
* @author CMOSTEK R@D | ||
*/ | ||
|
||
#include "cmt2300a_hal.h" | ||
#include "cmt_spi3.h" | ||
#include <Arduino.h> | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_InitSpi | ||
* @desc Initializes the CMT2300A SPI interface. | ||
* *********************************************************/ | ||
void CMT2300A_InitSpi(int8_t pin_sdio, int8_t pin_clk, int8_t pin_cs, int8_t pin_fcs, uint32_t spi_speed) | ||
{ | ||
cmt_spi3_init(pin_sdio, pin_clk, pin_cs, pin_fcs, spi_speed); | ||
} | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_ReadReg | ||
* @desc Read the CMT2300A register at the specified address. | ||
* @param addr: register address | ||
* @return Register value | ||
* *********************************************************/ | ||
uint8_t CMT2300A_ReadReg(uint8_t addr) | ||
{ | ||
return cmt_spi3_read(addr); | ||
} | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_WriteReg | ||
* @desc Write the CMT2300A register at the specified address. | ||
* @param addr: register address | ||
* dat: register value | ||
* *********************************************************/ | ||
void CMT2300A_WriteReg(uint8_t addr, uint8_t dat) | ||
{ | ||
cmt_spi3_write(addr, dat); | ||
} | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_ReadFifo | ||
* @desc Reads the contents of the CMT2300A FIFO. | ||
* @param buf: buffer where to copy the FIFO read data | ||
* len: number of bytes to be read from the FIFO | ||
* *********************************************************/ | ||
void CMT2300A_ReadFifo(uint8_t buf[], uint16_t len) | ||
{ | ||
cmt_spi3_read_fifo(buf, len); | ||
} | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_WriteFifo | ||
* @desc Writes the buffer contents to the CMT2300A FIFO. | ||
* @param buf: buffer containing data to be put on the FIFO | ||
* len: number of bytes to be written to the FIFO | ||
* *********************************************************/ | ||
void CMT2300A_WriteFifo(const uint8_t buf[], uint16_t len) | ||
{ | ||
cmt_spi3_write_fifo(buf, len); | ||
} | ||
/* | ||
* THE FOLLOWING FIRMWARE IS PROVIDED: (1) "AS IS" WITH NO WARRANTY; AND | ||
* (2)TO ENABLE ACCESS TO CODING INFORMATION TO GUIDE AND FACILITATE CUSTOMER. | ||
* CONSEQUENTLY, CMOSTEK SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR | ||
* CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT | ||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION | ||
* CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. | ||
* | ||
* Copyright (C) CMOSTEK SZ. | ||
*/ | ||
|
||
/*! | ||
* @file cmt2300a_hal.c | ||
* @brief CMT2300A hardware abstraction layer | ||
* | ||
* @version 1.2 | ||
* @date Jul 17 2017 | ||
* @author CMOSTEK R@D | ||
*/ | ||
|
||
#include "cmt2300a_hal.h" | ||
#include "cmt_spi3.h" | ||
#include <Arduino.h> | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_InitSpi | ||
* @desc Initializes the CMT2300A SPI interface. | ||
* *********************************************************/ | ||
void CMT2300A_InitSpi(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin_cs, const int8_t pin_fcs, const uint32_t spi_speed) | ||
{ | ||
cmt_spi3_init(pin_sdio, pin_clk, pin_cs, pin_fcs, spi_speed); | ||
} | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_ReadReg | ||
* @desc Read the CMT2300A register at the specified address. | ||
* @param addr: register address | ||
* @return Register value | ||
* *********************************************************/ | ||
uint8_t CMT2300A_ReadReg(const uint8_t addr) | ||
{ | ||
return cmt_spi3_read(addr); | ||
} | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_WriteReg | ||
* @desc Write the CMT2300A register at the specified address. | ||
* @param addr: register address | ||
* dat: register value | ||
* *********************************************************/ | ||
void CMT2300A_WriteReg(const uint8_t addr, const uint8_t dat) | ||
{ | ||
cmt_spi3_write(addr, dat); | ||
} | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_ReadFifo | ||
* @desc Reads the contents of the CMT2300A FIFO. | ||
* @param buf: buffer where to copy the FIFO read data | ||
* len: number of bytes to be read from the FIFO | ||
* *********************************************************/ | ||
void CMT2300A_ReadFifo(uint8_t buf[], const uint16_t len) | ||
{ | ||
cmt_spi3_read_fifo(buf, len); | ||
} | ||
|
||
/*! ******************************************************** | ||
* @name CMT2300A_WriteFifo | ||
* @desc Writes the buffer contents to the CMT2300A FIFO. | ||
* @param buf: buffer containing data to be put on the FIFO | ||
* len: number of bytes to be written to the FIFO | ||
* *********************************************************/ | ||
void CMT2300A_WriteFifo(const uint8_t buf[], const uint16_t len) | ||
{ | ||
cmt_spi3_write_fifo(buf, len); | ||
} |
Oops, something went wrong.