mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 03:00:34 +03:00
docs: Sync CN and EN docs without translation label
This commit is contained in:
@@ -345,15 +345,9 @@ I2S 的数据传输(包括数据发送和接收)由 DMA 实现。在传输
|
||||
使用该功能的一般步骤如下:
|
||||
|
||||
1. 创建并初始化 I2S TX 通道。
|
||||
2. 调用 :cpp:func:`i2s_channel_config_tx_fifo_sync` 配置 :cpp:type:`i2s_tx_fifo_sync_config_t`。``ideal_cnt``
|
||||
为每次 ETM 同步检查时期望发送的数据个数。该步骤可在 TX 通道运行时执行,但重新配置前必须先关闭 TX FIFO 同步功能。``auto_suppl_thresh`` 为硬件自动补偿阈值,
|
||||
必须小于 ``manual_suppl_thresh``。
|
||||
``manual_suppl_thresh`` 为触发回调并交由软件手动处理的阈值。如果偏差
|
||||
超过自动补偿阈值但尚未达到手动补偿阈值,硬件会自动补充或删除相应数量的数据,
|
||||
以实现与 ``ideal_cnt`` 同步。
|
||||
2. 调用 :cpp:func:`i2s_channel_config_tx_fifo_sync` 配置 :cpp:type:`i2s_tx_fifo_sync_config_t`。``ideal_cnt`` 为每次 ETM 同步检查时期望发送的数据个数。该步骤可在 TX 通道运行时执行,但重新配置前必须先关闭 TX FIFO 同步功能。``auto_suppl_thresh`` 为硬件自动补偿阈值,必须小于 ``manual_suppl_thresh``。``manual_suppl_thresh`` 为触发回调并交由软件手动处理的阈值。如果偏差超过自动补偿阈值但尚未达到手动补偿阈值,硬件会自动补充或删除相应数量的数据,以实现与 ``ideal_cnt`` 同步。
|
||||
3. 如需处理严重不同步场景,调用 :cpp:func:`i2s_channel_register_event_callback` 注册回调。
|
||||
4. 调用 :cpp:func:`i2s_channel_enable_tx_fifo_sync` 并将 ``enable`` 设为 ``true``,同时激活硬件自动补偿
|
||||
和手动补偿中断。该调用会重置 TX FIFO/BCLK 同步计数器,因此第一次 ETM 同步检查会使用新的计数窗口。
|
||||
4. 调用 :cpp:func:`i2s_channel_enable_tx_fifo_sync` 并将 ``enable`` 设为 ``true``,同时激活硬件自动补偿和手动补偿中断。该调用会重置 TX FIFO/BCLK 同步计数器,因此第一次 ETM 同步检查会使用新的计数窗口。
|
||||
5. 调用 :cpp:func:`i2s_new_etm_task` 创建 ``I2S_ETM_TASK_SYNC_FIFO`` 任务,并将外部 ETM 事件连接到该任务。
|
||||
6. 使能 ETM 通道和 I2S TX 通道,由 ETM 事件周期性触发同步检查。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user