RMT settings clarification
Posted: Mon Dec 11, 2017 3:20 pm
What is the diference between RMT_REG_TX_CONTI_MODE and RMT_MEM_TX_WRAP_EN mode?
Should I activate both for continuous mode? Because enabling only RMT_REG_TX_CONTI_MODE in channel config, does not activate continuous sending, while RMT_MEM_TX_WRAP_EN does.
As per my understanding, RMT_CHn_TX_THR_EVENT_INT_ENA activates RMT_CHn_TX_THR_EVENT_INT when RMT_TX_LIM_CHn entries being sent by RMT, but why RMT_MEM_TX_WRAP_EN is enabled in "rmt_set_tx_thr_intr_en" too?
I realize that activating TX_THR_EVENT_INT without wraparound mode does not make sense, but please confirm.
Also a question about RMT_TX_LIM_CHn being configured for the half of RMT channel memory.
I saw that TX_THR_EVENT_INT is triggered twice, when first half of the items were sent and again after second half. So we can say that it is triggered every RMT_TX_LIM_CHn items? Is this a normal behavior?
And according to my observations, there is only one option to stop continuous transmission: disable wraparound mode and wait for transmission end. Or disable wraparound and set zero delay after the last meaningful item. Because rmt_tx_stop function does not really stop the transmission.
Should I activate both for continuous mode? Because enabling only RMT_REG_TX_CONTI_MODE in channel config, does not activate continuous sending, while RMT_MEM_TX_WRAP_EN does.
As per my understanding, RMT_CHn_TX_THR_EVENT_INT_ENA activates RMT_CHn_TX_THR_EVENT_INT when RMT_TX_LIM_CHn entries being sent by RMT, but why RMT_MEM_TX_WRAP_EN is enabled in "rmt_set_tx_thr_intr_en" too?
I realize that activating TX_THR_EVENT_INT without wraparound mode does not make sense, but please confirm.
Also a question about RMT_TX_LIM_CHn being configured for the half of RMT channel memory.
I saw that TX_THR_EVENT_INT is triggered twice, when first half of the items were sent and again after second half. So we can say that it is triggered every RMT_TX_LIM_CHn items? Is this a normal behavior?
And according to my observations, there is only one option to stop continuous transmission: disable wraparound mode and wait for transmission end. Or disable wraparound and set zero delay after the last meaningful item. Because rmt_tx_stop function does not really stop the transmission.