Can we use EasyDMA module for getting sensor data from multiple TWI peripheral and storing in RAM and then for transferring processed data to BLE peripheral?

Using easyDMA how much data can be buffered in RAM before it can processed and advertised? I am using nRf52832 and my code is using 50% of RAM already. Each sensor gives 4B of data and have around 10 such sensor values and we need to store around 100 such readings before we can process it.

Parents
  • Hi,

    The MAXCNT registers for EasyDMA in TWIM on nRF52832 is 8 bit wide, which means you can transfer maximum 255 bytes per transfer. It is possible to setup multiple buffers of the same size, using the EasyDMA array list feature, but we do not have any examples showing this. This can be enabled using the Advanced usage in the TWI(M) driver, by setting the REPEATED_XFER and RX_POSTINC flags. Note that you will either have to disable the event handler completely, or somehow count the number of transfers have completed before triggering the handler, there is no way to configure the handler to only trigger after the entire array list have been filled.

    Best regards,
    Jørgen

Reply
  • Hi,

    The MAXCNT registers for EasyDMA in TWIM on nRF52832 is 8 bit wide, which means you can transfer maximum 255 bytes per transfer. It is possible to setup multiple buffers of the same size, using the EasyDMA array list feature, but we do not have any examples showing this. This can be enabled using the Advanced usage in the TWI(M) driver, by setting the REPEATED_XFER and RX_POSTINC flags. Note that you will either have to disable the event handler completely, or somehow count the number of transfers have completed before triggering the handler, there is no way to configure the handler to only trigger after the entire array list have been filled.

    Best regards,
    Jørgen

Children
Related