I'm developing a BLE gateway with the EFR32MG chip. We have design a custom board according to the reference "BRD4168A" with the chip EFR32MG13P732F512GM48. It work well when downloaded a BLE soc demo, but can not get data from the uart when downloaded a NCP demo. How to solve this problem? Should I modify the NCP firmware and how to modify it?
Note that I use the the Linux PC as the HOST, it works pretty well when connected to the WSTK board with uart. But when connected to our custom board following the same method, the HOST can not get any data.
I see you posted the same question (with a slightly different title) yesterday in this thread. You need to have some patience, it's quite typical that all questions are not handled within first 24 hours.
Now to the real question: are you using exactly same pin mappings for the UART in your custom board?
What bootloader are you using on your custom board? If you haven't programmed a bootloader into your board that could explain why it is not responding. You should create Gecko bootloader project and select bootloader type as BGAPI UART DFU Bootloader. Let me know if you need help setting this up.
Thank you very much for your answer. I'm sorry for posting the same questions. I worry that the last question could be flooded by other questions.
Now I set the board according to your suggestion. I create a BGAPI UART DFU Bootloader , generate and build this project, download the
bootloader-uart-bgapi-combined.s37 in "GUN ARM v4.9.3 Default" folder using simplicity commander tool. But, it still doesn't work.
Does the NCP firmware need some modification?
This may be obvious, but still checking as you did not answer my question:
> are you using exactly same pin mappings for the UART in your custom board?
You have created an NCP project for the BRD4168A radio board. Are you now trying to run the same binary on your custom board, that was designed based on the BRD4168 schematics?
One thing that may need attention is the handling of external SPI flash. The BRD4168A has an external flash chip and the NCP example puts this chip into deep sleep to save power. This piece of code is found in file init_board.c, function initBoard().
// Put the SPI flash into Deep Power Down mode for those radio boards where it is available MX25_init(); MX25_DP(); // We must disable SPI communication USART_Reset(MX25_USART);
This initialization code is probably redundant in your custom PCB and it may be even causing some conflicts with the I/O pins if you have used the SPI flash pins to some other purpose.