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

racp nrf52 external memory

Hello, I have in a multi-sensor application some actual data (including RTC) which appear continuously and which have to be saved in an external RAM connected by I²C. All these data for one time take 20 Bytes and build a data set. Up to 1024 data sets shall be saved; an external device like a Tablet or a Smartphone shall read them all or only a part of it. I saw the interesting blog devzone.nordicsemi.com/.../ but unfortunately this is for nrf51 and with encryption - in my project the encryption is planned much later. My questions are:

  • Is there any example with code, which shows how to implement this?
  • Is it possible to preview already the encryption for the future? Thanks in advance
  • So you need to store 20KB of data? Are you sure you need external memory? Isn't the internal RAM enough? Also, have you considered storing the data in flash?

    If you just want to set this proprietary data to a central device I recommend having a look at ble_app_uart example, as Hung also mentions in the question you linked to.

  • Hello Petter, the external RAM is a FRAM which keeps information even when the battery is down. The number of rewrite can easily achieve 100000 times, so the flash will not help me. I forgot to write that I want to use the RACP technology; yesterday I have tried to implement the CGM (with code from nrf51 - see the link in the first message) example in my project (nrf52); actually the error 7 appears in the function sd_ble_gap_adv_start() and I have to look why. The recommendation - first calling services_init() and then advertising_init() - is already done; even if I don't know if this is still a subject in SDK13.0. Would you recommend to change to the latest SDK? Do you have some recent code for nrf52 and RACP? Thanks in advance!

  • I see. Seems you have looked into it, so I guess you know that our FDS module implements wear leveling.

    Anyways. It is always recommended to use the latest SDK, but it of course depends on how much code you need to port. The ble_app_gls example for nRF52 is in the latest SDK (14.2.0), it uses the RACP characteristic.

    0x00000007 is NRF_ERROR_INVALID_PARAM. It is a bit difficult to know what it is without knowing more about what you are doing. What arguments you give to sd_ble_gap_adv_start() and so on.

  • Hello Petter, the call to this function is done with the pointer to the adv_params struct at address 0x2000ffac; all values in this structure are 0, only interval is =40 and timeout = 30. In the channel_mask I see ch_37_off, ch_38_off and ch_39_off but all with value 0. The second parameter in the function call is m_conn_cfg_tag with value 0. Are these information sufficient for a small analysis?

  • Should be okay. What flags have you set with sd_ble_gap_adv_data_set()? Or in advertising_init()?

Related