UART interrupt in ble_app_peripheral

Learn MoreFAQsTutorials

4 posts / 0 new
Last post
julienr
Offline
Last seen:21 hours 13 min ago
加入:2020-10-09 12:32
UART interrupt in ble_app_peripheral

Hi,

I am trying to implement communication via UART and a characteristics with read/write/notify properties (no DSPS or Codeless)

I tested the uart example from sdk without problem

I am now trying to add uart to the ble_peripheral example :

- I can write bytes to the characteristics wich are transmitted to UART without problem

- Now I have a problem with UART receive interrupt which is never triggered when I send bytes, but using blocking mode works without problem

I used the same settings as the uart example, should I do anything else to import a non-ble example to the ble_app_peripheral project ?

I am working with Keil in debug mode

PM_Dialog
Online
Last seen:3 min 54 sec ago
Staff
加入:2018-02-08 11:03
Hi julienr,

Hi julienr,

Thanks for your question online and for your interest in our TINY module solution. You mentioned that you are working on the ble_app_peripheral example of the SDK. Can I ask if you are using any of the available sleep modes?

If yes, when the device is in sleep mode, all the peripheral domains (including UART) are powered down, So this meant that is not possible to have any UART transaction when the ship is sleeping.

For example, when app_default_sleep_mode is set to ARCH_EXT_SLEEP_ON in user_config.h, the default sleep mode is the extended sleep. The chip will start adverting but it will go to extended sleep mode between adverting or connection intervals. Between the connection intervals, it’s not possible to have any UART activity.

If you are using any of the sleep modes, you could try to :

  • Define your own function in .app_on_system_powered in user_callback_config.h and place the UART code.
  • Disable the sleep mode ( but the power consumption will be higher)
  • Use the arch_console.h library. Please see the below docs:

http://lpccs-docs.dialog-semiconductor.com/Tutorial_SDK6/serial_port.html

http://lpccs-docs.dialog-semiconductor.com/DA14531_FAQs/Software.html#how-to-enable-the-debug-uart-mechanism-and-how-to-test-it-in-da145xx-pro-development-kit

Thanks, PM_Dialog

julienr
Offline
Last seen:21 hours 13 min ago
加入:2020-10-09 12:32
Hi,

Hi,

Thanks for the feedback

- I defined my own function in .app_on_system_powered with UART code

- disabled sleep mode with app_default_sleep_mode = ARCH_SLEEP_OFF

- I didn't use arch_console.h library as described in the doc, I changed "#undef CFG_UART1_SDK" to "#define CFG_UART1_SDK" in da1458x_config_basic.h

Now the UART1 receive interrupt is triggered

Thanks

PM_Dialog
Online
Last seen:3 min 54 sec ago
Staff
加入:2018-02-08 11:03
Hi julienr,

Hi julienr,

Glad that you are able to configure the UART1 and receive an interrupt.

Thanks, PM_Dialog