This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

DTM Receiver test on Connectivity board, PACKET COUNT is few.

Hi,

I try receiver test on the serialization application. The interface is UART.

The operation is the following. 

1.  Application board send ble_dtm_init command.

2.  After DTM starts, DTM of nRF connect for Desktop is operated below

    Command: Test setup 0x0000)  Event: Test Status0x0000)

    Command: Receiver Test0x4064)Event: Test Status0x0000

3. DTM Transmitter Test is started on other device 

4.  DTM of nRF connect for Desktop is operated below

   Command:  Test end0xC000) Event: Packet Report0x8001

PACKET COUNT of Packet Report is 1, 2 or 3. Why? 

I confirmed related source code "dtm_uart.c".

During receiver test, PACKET COUNT can not be  increased because the following code is executed by polling.

dtm_uart.c  function: nrfx_uart_rx

        do
        {
            do
            {
                error = nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_ERROR);
                rxrdy = nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_RXDRDY);
                rxto  = nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_RXTO);
            } while ((!rxrdy) && (!rxto) && (!error));

            if (error || rxto)
            {
                break;
            }
            rx_byte(p_instance->p_reg, p_cb);
        } while (p_cb->rx_buffer_length > p_cb->rx_counter);

  • Hi,

    Can you elaborate a little around what it is you are doing? If I understand correctly you have added uart DTM to a serialized application? Notice that DTM is made as a standalone application and does not work well if there are other higher priority tasks running at the same time.

  • Hi run_or-san,

    Thank you for your reply.

    My system structure is Host MCU and nRF52832. Interface is UART.

    Normally, Host MCU controls nRF52832 for BLE communication.

    If  BLE Test Mode is started, the operation for this question will be done. 

    The DTM function for serialized application is included in nRF5 SDK sample code.

    I  uses software  "\nRF5_SDK_17.0.2_d674dde\examples\connectivity\ble_connectivity".

    For the DTM, it has not interrupt handler. it is executed in single task. 

    Did you confirm this source code? Can you execute it correctly on your board?

    Best regards,

    H.O

  • Hi,

    As far as I can see the serialization example disables the SD, then shuts down serialization before starting DTM. In dtm it looks like it should work just like standalone dtm, except it will recieve dtm commands from the application mcu. Let me see if I can recreate your issue.

Related