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

Is it possible to TWI TX more than 8192 Bytes?

This is my environment.

SDK: 15.2

IDE: Segger Embedded Studio

Platform: OSX

SoC: nRF52832

I am trying to transmit more than 8192 data using TWI.

But in fact, it seems that more than 18 bytes of data are not transmitted at a time.

The transfer function is 'nrf_drv_twi_tx'. (clock = 400K)

Here are some logs and codes.

<code>

nrf_drv_twi_tx(&m_twi, address, sendBuf, writeLength + 2, false); // writeLength + 2 = 8210 Bytes.



<result>
 app: writing 1 page to 0x4C, size = 8208.
 TWIM: Transfer type: XFER_TX.
 TWIM: Transfer buffers length: primary: 18, secondary: 0.
 TWIM: Primary buffer data:
 TWIM:  80 04 48 79 D0 D4 7E 25|..Hy..~%
 TWIM:  4E A1 41 E8 CC D2 6D 50|N.A...mP
 TWIM:  99 1D                  |..      
 TWIM:                         |        
 TWIM: Function: nrfx_twim_xfer, error code: NRF_SUCCESS.
 TWIM: TWIM: Event: NRF_TWIM_EVENT_STOPPED.
 TWIM: Event: EVT_DONE.


Is it related to using 'Easy DMA" and sending large amounts of data?

Is there a difference between nrfx and legacy twi drivers when transferring large amounts of data?

Thank you.

Related