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

a problem in "ACI_DEVICE_STANDBY"

hi. Im working with nrf8001 type c in a self-designed board and im using arduino library driver on github by nordic. my mcu is stm32 and i ported library to my mcu. when I debug my program i find that my program go to "ACI_DEVICE_STANDBY" case in aci loop and nrf respond me with "03 84 0F" . as i understand, it means that nrf will advertise in this state. but when i use a smartphone with android 4.4 and BLE enabled i cant see nrf8001 in nrf uart app that made by nordic in play store. and im using service.h in "hello world" project.(type c , internal 32768, external crystal 16 MHz). please help what problems may be exist im my project or what points I have to check again? thank you.

Parents
  • Hi. I set According the datasheet (1-16383 (0x3FFF) and 32 - 16384 (0x0020 to 0x4000)) and I use this code :

    lib_aci_connect(0/* in seconds : 0 means forever */, 0x0050 /* advertising interval 50ms*/);
    

    Although in some cases in nRFgo, I clear check box for "Maximum interval" and "minmum interval" and "supervision timeout" . and regenerate services.h, but nothing change.

    another question: in ACI Verification example code , I run code for 2 times with this differences :

    1. lib_aci_test(ACI_TEST_MODE_DTM_ACI);

    2)lib_aci_test(ACI_TEST_MODE_DTM_UART);

    and programs returns OK. but when i use "ACI_TEST_MODE_EXIT" as lib_aci_test parameter , program returns Error. note that I wrote ACI code for External Interrupt not POLLING. Is there any fault or I have to ignore this error, because I saw this comment in lib_aci_test declaration in lib_aci.h:

    /** @brief Sets the radio in test mode.
    *  @details This function sends a @c Test command to the radio. There are two
    *  Test modes available:
    *  - UART: DTM commands are received over UART.
    *  - ACI: DTM commands are received over ACI.
    *  The same command is used to exit the test mode When receiving
    *  a @c DeviceStartedEvent the radio has entered the new mode.
    *  @param enter_exit_test_mode Enter a Test mode, or exit Test mode.
    *  @return True if the transaction is successfully initiated.
    */
    bool lib_aci_test(aci_test_mode_change_t enter_exit_test_mode);
    
Reply
  • Hi. I set According the datasheet (1-16383 (0x3FFF) and 32 - 16384 (0x0020 to 0x4000)) and I use this code :

    lib_aci_connect(0/* in seconds : 0 means forever */, 0x0050 /* advertising interval 50ms*/);
    

    Although in some cases in nRFgo, I clear check box for "Maximum interval" and "minmum interval" and "supervision timeout" . and regenerate services.h, but nothing change.

    another question: in ACI Verification example code , I run code for 2 times with this differences :

    1. lib_aci_test(ACI_TEST_MODE_DTM_ACI);

    2)lib_aci_test(ACI_TEST_MODE_DTM_UART);

    and programs returns OK. but when i use "ACI_TEST_MODE_EXIT" as lib_aci_test parameter , program returns Error. note that I wrote ACI code for External Interrupt not POLLING. Is there any fault or I have to ignore this error, because I saw this comment in lib_aci_test declaration in lib_aci.h:

    /** @brief Sets the radio in test mode.
    *  @details This function sends a @c Test command to the radio. There are two
    *  Test modes available:
    *  - UART: DTM commands are received over UART.
    *  - ACI: DTM commands are received over ACI.
    *  The same command is used to exit the test mode When receiving
    *  a @c DeviceStartedEvent the radio has entered the new mode.
    *  @param enter_exit_test_mode Enter a Test mode, or exit Test mode.
    *  @return True if the transaction is successfully initiated.
    */
    bool lib_aci_test(aci_test_mode_change_t enter_exit_test_mode);
    
Children
No Data
Related