43#include <ti/devices/DeviceFamily.h>
44#include DeviceFamily_constructPath(driverlib/ioc.h)
45#include DeviceFamily_constructPath(driverlib/cpu.h)
46#include <ti/drivers/rf/RF.h>
47#include <ti/drivers/pin/PINCC26XX.h>
49#include <ti/drivers/Board.h>
57void CC1352P_2_LAUNCHXL_sendExtFlashByte(PIN_Handle pinHandle, uint8_t
byte)
62 PIN_setOutputValue(pinHandle, IOID_20, 0);
64 for (i = 0; i < 8; i++) {
65 PIN_setOutputValue(pinHandle, IOID_10, 0);
68 PIN_setOutputValue(pinHandle, IOID_9, (
byte >> (7 - i)) & 0x01);
69 PIN_setOutputValue(pinHandle, IOID_10, 1);
79 PIN_setOutputValue(pinHandle, IOID_10, 0);
80 PIN_setOutputValue(pinHandle, IOID_20, 1);
94 PIN_Config extFlashPinTable[] = {
96 IOID_20 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL |
97 PIN_INPUT_DIS | PIN_DRVSTR_MED,
100 PIN_State extFlashPinState;
101 PIN_Handle extFlashPinHandle = PIN_open(&extFlashPinState, extFlashPinTable);
109 PIN_setOutputValue(extFlashPinHandle, IOID_20, 0);
112 PIN_setOutputValue(extFlashPinHandle, IOID_20, 1);
116 PIN_close(extFlashPinHandle);
127 PIN_Config extFlashPinTable[] = {
129 IOID_20 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL |
130 PIN_INPUT_DIS | PIN_DRVSTR_MED,
132 IOID_10 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL |
133 PIN_INPUT_DIS | PIN_DRVSTR_MED,
135 IOID_9 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL |
136 PIN_INPUT_DIS | PIN_DRVSTR_MED,
138 IOID_8 | PIN_INPUT_EN | PIN_PULLDOWN,
141 PIN_State extFlashPinState;
142 PIN_Handle extFlashPinHandle = PIN_open(&extFlashPinState, extFlashPinTable);
144 uint8_t extFlashShutdown = 0xB9;
146 CC1352P_2_LAUNCHXL_sendExtFlashByte(extFlashPinHandle, extFlashShutdown);
148 PIN_close(extFlashPinHandle);
156#if defined(Board_RF_SUB1GHZ)
161static PIN_Handle antennaPins;
162static PIN_State antennaState;
164void initAntennaSwitch()
166 PIN_Config antennaConfig[] = {
167 Board_RF_24GHZ | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
168 Board_RF_HIGH_PA | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
169 Board_RF_SUB1GHZ | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
172 antennaPins = PIN_open(&antennaState, antennaConfig);
187void rfDriverCallback(RF_Handle client, RF_GlobalEvent events,
void *arg)
190 bool sub1GHz =
false;
191 uint8_t loDivider = 0;
194 PINCC26XX_setOutputValue(Board_RF_24GHZ, 0);
195 PINCC26XX_setOutputValue(Board_RF_HIGH_PA, 0);
196 PINCC26XX_setOutputValue(Board_RF_SUB1GHZ, 0);
198 if (events & RF_GlobalEventRadioSetup) {
200 RF_TxPowerTable_PAType paType = (RF_TxPowerTable_PAType)RF_getTxPower(client).paType;
203 RF_RadioSetup* setupCommand = (RF_RadioSetup*)arg;
205 switch (setupCommand->common.commandNo) {
206 case (CMD_RADIO_SETUP):
207 case (CMD_BLE5_RADIO_SETUP):
208 loDivider = RF_LODIVIDER_MASK & setupCommand->common.loDivider;
211 if (loDivider != 0) {
215 case (CMD_PROP_RADIO_DIV_SETUP):
216 loDivider = RF_LODIVIDER_MASK & setupCommand->prop_div.loDivider;
219 if (loDivider != 0) {
228 if (paType == RF_TxPowerTable_HighPA) {
232 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_GPIO);
235 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_RFC_GPO3);
236 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_RFC_GPO0);
239 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_GPIO);
240 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_GPIO);
241 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_GPIO);
242 PINCC26XX_setOutputValue(Board_RF_SUB1GHZ, 1);
246 if (paType == RF_TxPowerTable_HighPA)
251 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_RFC_GPO0);
254 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_RFC_GPO3);
255 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_GPIO);
258 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_GPIO);
259 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_GPIO);
260 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_GPIO);
261 PINCC26XX_setOutputValue(Board_RF_24GHZ, 1);
266 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_GPIO);
267 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_GPIO);
268 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_GPIO);
279#if defined(Board_RF_SUB1GHZ)
void CC1352P_2_LAUNCHXL_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC1352P_2_LAUNCHXL_shutDownExtFlash(void)
Shut down the external flash present on the board files.