nRF52810
1,
Conditions: Two dma buffers are used, SHORT = TASK_STARTRX, 1M baud rate (10us / B)
Phenomenon: At END_RX interrupt, I called GPIO0 = low. With the logic analyzer, when RXD pin receives num = MAXCOUNT, GPIO0 will be pulled low after about 15.6us
Question: I guess at the time of dma buffer switching, there should be at least one byte will be lost, because 15.6us> 10us, but the actual is not lost, all the bytes stored in the next complete dma buffer
2,
Conditions: two dma buffer, SHORT = TASK_STARTRX, 1M baud rate (10us / B), the initiative to call TASK_STOPRX
Phenomenon: At END_RX interrupt, I called GPIO0 = low. With the logic analyzer,after i call TASK_STOPRX, about 74us, GPIO0 will be pulled low
Question: I guess the two methods that generate END_RX interrupts are definitely different, and the data is lost when the latter switches the buffer, 74us> 10us, about 6 bytes lost, but why?
3,
Guess: The first case RX receiver is always open, so when switching the data will be buffered into the hardware FIFO, but will not be lost; The second case will turn off the RX receiver, leading to END_RX interrupt before the trigger , All the data will not be cached into the hardware FIFO, but directly lost,Is this so? I was rewriting the driver and I was very puzzled