question

95504669 avatar image
0 Votes"
95504669 asked asergaz answered

Azure sphere External device firmware update issue

I use Avnet Starter kit Rev2 board. I followed the External firmware update code as provided in the Sample.

[1]: https://github.com/Azure/azure-sphere-samples/tree/master/Samples/ExternalMcuUpdate


I was able to send the firmware to the nrf52 device without enabling the CTS/RTS on Avnet device, but it is enabled on the nrf52 device.

Conditions are as belows:-
1) If Azure CTS/RTS is disabled and nrf CTS/RTS is enabled, and no jumper wires are connected between nrf CTS/RTS to azure RTS/CTS, firmware update won't work.
2) If Azure CTS/RTS is disabled and nrf CTS/RTS is enabled, and if a jumper wire is connected between Azure CTS to nrf52 RTS, then the firmware update will work.

How could this work. Please help me with this working logic. Thank you.

azure-sphere
· 4
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Hi @95504669 can you confirm if this is the same issue reported here? : https://github.com/Azure/azure-sphere-samples/issues/215

Thank you!

0 Votes 0 ·

Thanks for your reply @asergaz ..
This is a different issue.

1 Vote 1 ·

Thanks for confirming @95504669 ,
This is an issue related with the sample, so I advise a new issue is opened on the hosting github repo: https://github.com/Azure/azure-sphere-samples/issues

I don't have the boards to test it out. Let me know once you open the issue there and will make sure Product Team follows-up with you there.

Thanks!

0 Votes 0 ·
Show more comments

1 Answer

asergaz avatar image
0 Votes"
asergaz answered

Hello @95504669 ,

Posting here the best practice shared in the github related issue by Gianni Trevisiol: https://github.com/Azure/azure-sphere-samples/issues/222

As a best practice, it's recommended that UART flow control configurations do not differ on the two communication parties.

That said, the likely reason for which case 2) works is that when the Azure Sphere's CTS pin is connected to the NFR's RTS, its current state (undefined btw) "happens" to trigger the hardware flow control circuit between the two.
To prove this, you can use case 1), and simply try to separately pull-up(3.3V)/down(GND) the NRF's RTS only: the FW update should similarly succeed/fail respectively.

Therefore, you can either:

1) Enable flow control on Azure Sphere (on the NRF52 it's already enabled in its bootloader) and cross-connect CTS/RTS between the two (like shown in the sample).
2) Disable flow control on Azure Sphere and pull-up RTS (and CTS optionally, since already done by the bootloader) on the NRF... but accept potential communication issues.

Remember:
- Please accept an answer if correct. Original posters help the community find answers faster by identifying the correct answer. Here is how.
- Want a reminder to come back and check responses? Here is how to subscribe to a notification.

5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.