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> 54 void CC1352P_2_LAUNCHXL_sendExtFlashByte(PIN_Handle pinHandle, uint8_t byte)
59 PIN_setOutputValue(pinHandle, IOID_20, 0);
61 for (i = 0; i < 8; i++) {
62 PIN_setOutputValue(pinHandle, IOID_10, 0);
65 PIN_setOutputValue(pinHandle, IOID_9, (byte >> (7 - i)) & 0x01);
66 PIN_setOutputValue(pinHandle, IOID_10, 1);
76 PIN_setOutputValue(pinHandle, IOID_10, 0);
77 PIN_setOutputValue(pinHandle, IOID_20, 1);
91 PIN_Config extFlashPinTable[] = {
93 IOID_20 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL |
94 PIN_INPUT_DIS | PIN_DRVSTR_MED,
97 PIN_State extFlashPinState;
98 PIN_Handle extFlashPinHandle = PIN_open(&extFlashPinState, extFlashPinTable);
106 PIN_setOutputValue(extFlashPinHandle, IOID_20, 0);
109 PIN_setOutputValue(extFlashPinHandle, IOID_20, 1);
113 PIN_close(extFlashPinHandle);
124 PIN_Config extFlashPinTable[] = {
126 IOID_20 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL |
127 PIN_INPUT_DIS | PIN_DRVSTR_MED,
129 IOID_10 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL |
130 PIN_INPUT_DIS | PIN_DRVSTR_MED,
132 IOID_9 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL |
133 PIN_INPUT_DIS | PIN_DRVSTR_MED,
135 IOID_8 | PIN_INPUT_EN | PIN_PULLDOWN,
138 PIN_State extFlashPinState;
139 PIN_Handle extFlashPinHandle = PIN_open(&extFlashPinState, extFlashPinTable);
141 uint8_t extFlashShutdown = 0xB9;
143 CC1352P_2_LAUNCHXL_sendExtFlashByte(extFlashPinHandle, extFlashShutdown);
145 PIN_close(extFlashPinHandle);
153 #if defined(Board_RF_SUB1GHZ) 159 #define LODIVIDER_MASK 0x7F 164 static PIN_Handle antennaPins;
165 static PIN_State antennaState;
167 void initAntennaSwitch()
169 PIN_Config antennaConfig[] = {
170 Board_RF_24GHZ | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
171 Board_RF_HIGH_PA | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
172 Board_RF_SUB1GHZ | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
175 antennaPins = PIN_open(&antennaState, antennaConfig);
190 void rfDriverCallback(RF_Handle client, RF_GlobalEvent events,
void *arg)
193 bool sub1GHz =
false;
194 uint8_t loDivider = 0;
197 PINCC26XX_setOutputValue(Board_RF_24GHZ, 0);
198 PINCC26XX_setOutputValue(Board_RF_HIGH_PA, 0);
199 PINCC26XX_setOutputValue(Board_RF_SUB1GHZ, 0);
201 if (events & RF_GlobalEventRadioSetup) {
203 RF_TxPowerTable_PAType paType = (RF_TxPowerTable_PAType)RF_getTxPower(client).paType;
206 RF_RadioSetup* setupCommand = (RF_RadioSetup*)arg;
208 switch (setupCommand->common.commandNo) {
209 case (CMD_RADIO_SETUP):
210 case (CMD_BLE5_RADIO_SETUP):
211 loDivider = LODIVIDER_MASK & setupCommand->common.loDivider;
214 if (loDivider != 0) {
218 case (CMD_PROP_RADIO_DIV_SETUP):
219 loDivider = LODIVIDER_MASK & setupCommand->prop_div.loDivider;
222 if (loDivider != 0) {
231 if (paType == RF_TxPowerTable_HighPA) {
235 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_GPIO);
238 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_RFC_GPO3);
239 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_RFC_GPO0);
242 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_GPIO);
243 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_GPIO);
244 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_GPIO);
245 PINCC26XX_setOutputValue(Board_RF_SUB1GHZ, 1);
249 if (paType == RF_TxPowerTable_HighPA)
254 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_RFC_GPO0);
257 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_RFC_GPO3);
258 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_GPIO);
261 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_GPIO);
262 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_GPIO);
263 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_GPIO);
264 PINCC26XX_setOutputValue(Board_RF_24GHZ, 1);
269 PINCC26XX_setMux(antennaPins, Board_RF_24GHZ, PINCC26XX_MUX_GPIO);
270 PINCC26XX_setMux(antennaPins, Board_RF_HIGH_PA, PINCC26XX_MUX_GPIO);
271 PINCC26XX_setMux(antennaPins, Board_RF_SUB1GHZ, PINCC26XX_MUX_GPIO);
280 void Board_initHook()
282 #if defined(Board_RF_SUB1GHZ) void CC1352P_2_LAUNCHXL_shutDownExtFlash(void)
Shut down the external flash present on the board files.
void CC1352P_2_LAUNCHXL_wakeUpExtFlash(void)
Wake up the external flash present on the board files.