How to stop I2S transfer

Hi!

When reading the documentation of the I2S peripheral of the nRF52840, I don't see how to stop the transfer after the last data block. Figure 2 only shows how to start it. Do I have to temporarily connect EVENTS_TXPTRUPD to TASKS_STOP using PPI?

Additional question: Is RXTXD.MAXCNT also double buffered and can be written together with TXD.PTR? This would make it possible to send data blocks of varying size.

Thanks,

Jochen

Parents
  • Hi,

    Do I have to temporarily connect EVENTS_TXPTRUPD to TASKS_STOP using PPI?

    If you want the transfer to stop after the buffer has been filled then this is correct. Note, that you don't have to stop the transfer to process the data as you can just ready the next buffer . See the I2S example in the SDK.

    Additional question: Is RXTXD.MAXCNT also double buffered and can be written together with TXD.PTR? This would make it possible to send data blocks of varying size.

    No, only the TX and RX are double buffered. 

    regards

    Jared 

Reply
  • Hi,

    Do I have to temporarily connect EVENTS_TXPTRUPD to TASKS_STOP using PPI?

    If you want the transfer to stop after the buffer has been filled then this is correct. Note, that you don't have to stop the transfer to process the data as you can just ready the next buffer . See the I2S example in the SDK.

    Additional question: Is RXTXD.MAXCNT also double buffered and can be written together with TXD.PTR? This would make it possible to send data blocks of varying size.

    No, only the TX and RX are double buffered. 

    regards

    Jared 

Children
No Data
Related