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

DFU Bootloader and uart communication

Hi all,

I would like to know if it is possible to use the uart before the actual bootloader runs... I need to communicate with the master uploading the firmware before the actual transfer of the firmware.

The thing is that I am able to communicate and use the dfu separately, but once I try to do one after the other (even after app_uart_close), there is no acknowledgment from the nrf.

Currently running SDK8 and SD110v8.1.0, on a REV2 chip. In the product compatibility matrix there is no info about the actual compatibility of SDK8 with REV2, but since the SD8 is listed as compatible I assume that the SDK is also compatible, could this be my problem?

Thanks, Diogo

Parents
  • @Diogo: The SDK v8.0 was not made for and not tested on Rev2 chip.

    What you need to do is to follow and implement the PANs' workaround for rev 2 chip. You should be fine. Also please make sure you follows the instruction in the release note for S110 v8.0 when working on Rev 2 chip.

    Regarding your issue, I guess you may want debug a little bit deeper, to see what would be wrong. I think it could be something with the setup of the app uart, did you call app_uart_init twice ?

  • So the first time that app_uart_init is called, it only sends one byte. If I put the code in a while(1) cycle it sends the data. If I put a while(1) after the first app_uart_init only one byte is sent. The second time the app_uart_init is called (by nordic's dfu example) it actually works. I also tried to use app_uart_close before the second init and the same thing happens.

    I found that after the first byte is sent (app_uart_put), I get a APP_UART_TX_EMPTY, but it won't work after that.

Reply
  • So the first time that app_uart_init is called, it only sends one byte. If I put the code in a while(1) cycle it sends the data. If I put a while(1) after the first app_uart_init only one byte is sent. The second time the app_uart_init is called (by nordic's dfu example) it actually works. I also tried to use app_uart_close before the second init and the same thing happens.

    I found that after the first byte is sent (app_uart_put), I get a APP_UART_TX_EMPTY, but it won't work after that.

Children
No Data
Related