Hi,
I use the secure BLE Bootloader to update the nRF52840 (with S140).
Now I want to add a UARTE to update the STM32 connected to nRF52.
Do you have a solution to do that? All my tries have not worked.
Thanks for help.
Best regards.
Hi,
I use the secure BLE Bootloader to update the nRF52840 (with S140).
Now I want to add a UARTE to update the STM32 connected to nRF52.
Do you have a solution to do that? All my tries have not worked.
Thanks for help.
Best regards.
Hi
You say that nrf_libuarte_async_init works in "the final application", what do you mean by this exactly, and what's the difference between this and when the libuarte_async_init returns the NRF_ERROR_INTERNAL? This error is pretty generic and just points to the libuarte not being initialized properly.
Best regards,
Simon
Hi
You say that nrf_libuarte_async_init works in "the final application", what do you mean by this exactly, and what's the difference between this and when the libuarte_async_init returns the NRF_ERROR_INTERNAL? This error is pretty generic and just points to the libuarte not being initialized properly.
Best regards,
Simon
I am sorry, I was not explicit enough in my problem description.
We develop a product based on nRF52840 that manages a STM32 and a USB Host microcontroller.
I used the buttonless BLE secure bootloader example to make our bootloader, the ble_app_buttonless_dfu example to make the main application.
The communication between the microcontrollers is based on the UARTE of the nrf52. I based my development on the "libuarte" example. In the main application, the initialization of the UARTE works and the communication with the microcontrollers is OK.
The DFU for the main application works and I found the post that you mentioned to update another chip with the NRF_DFU_SUPPORTS_EXTERNAL_APP keyword. So I modified the compilation of the STM32 firmware to add the DFU generation with nrf_utils tools. The transfer of this DFU package works and the bootloader accepts the package and generates the bank_code NRF_DFU_BANK_VALID_EXT_APP to call the specific function to manage the external application.
To update the STM32 we want to use the same UART to communicate with it in the main application. So to do that, I added the same library "libuarte" because that works in the main application.
But when I debug the bootloader the function "nrf_libuarte_async_init" returns the NRF_ERROR_INTERNAL error.
The configuration of UARTE is:
Tx pin: 1.10 ; Rx pin: 1.13 ; baudrate: 115200 ; no parity ; no hardware control ; timeout: 1000 ; irq prio: 6
For the UARTE, I use instance 1, and timer 2 to count Rx bytes, no RTC, and no timer for timeout.
I checked sdk_config.h file and for me it is OK but maybe I am wrong.
So as I am lost in my investigation, I need help to guide my research.