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> 57 void CC1352P1_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 CC1352P1_LAUNCHXL_sendExtFlashByte(extFlashPinHandle, extFlashShutdown);
148 PIN_close(extFlashPinHandle);
156 #if defined(Board_RF_SUB1GHZ) 161 static PIN_Handle antennaPins;
162 static PIN_State antennaState;
164 void 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);
187 void 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);
277 void Board_initHook()
279 #if defined(Board_RF_SUB1GHZ) void CC1352P1_LAUNCHXL_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC1352P1_LAUNCHXL_shutDownExtFlash(void)
Shut down the external flash present on the board files.