Skip to content
Snippets Groups Projects
Commit 9e4ba387 authored by Georg von Zengen's avatar Georg von Zengen
Browse files

dw1000: enter rx mode after tx ready

parent 30518228
No related branches found
No related tags found
No related merge requests found
......@@ -38,6 +38,7 @@ int dw1000_sendFrame(uint8_t *payload, uint16_t len) {
// set up a complete config for the register
// the bits are cleared automatically after the transmission and need to be set up for the next transmission again!
uint32_t sys_ctrl = 0;
dw1000Hal_readRegister(SYS_CTRL_ID, &sys_ctrl, 4);
sys_ctrl |= SYS_CTRL_TRXOFF; // Immediately cancel all RX and TX operations, bring radio to IDLE state
dw1000Hal_writeRegister(SYS_CTRL_ID, &sys_ctrl, 4);
sys_ctrl = 0;
......@@ -47,7 +48,7 @@ int dw1000_sendFrame(uint8_t *payload, uint16_t len) {
// TXDLYS not set -> no delayed transmission
// CANSFCS not set (only useful when starting transmission before uploading payload)
// TRXOFF not set (this would turn off the transmitter immediately)
sys_ctrl |= SYS_CTRL_WAIT4RESP; // turn on receiver after transmission to receive a response (ACK)
//sys_ctrl |= SYS_CTRL_WAIT4RESP; // turn on receiver after transmission to receive a response (ACK)
// RXENAB not set (this would enter receive mode)
// RXDLYE not set (used for delayed reception)
// HRBPT not set (chooses receive buffer)
......
......@@ -334,6 +334,10 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
if (event & SYS_STATUS_RXDFR){ // Frame sent
event_clear |= SYS_STATUS_RXDFR; //clear interrupt
uint32_t sys_ctrl = 0;
dw1000Hal_readRegisterFromIsr(SYS_CTRL_ID, (uint8_t*)&sys_ctrl, SYS_CTRL_LEN); // switch to rx mode
sys_ctrl |= SYS_CTRL_RXENAB;
dw1000Hal_writeRegisterFromIsr(SYS_CTRL_ID, (uint8_t*)&sys_ctrl, SYS_CTRL_LEN);
}
if (event & SYS_STATUS_CLKPLL_LL){ // Frame sent
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment