mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'docs/remove_c3_not_updated_warning_v4.3' into 'release/v4.3'
docs: remove c3 not updated warning (v4.3) See merge request espressif/esp-idf!13443
This commit is contained in:
commit
798aab5097
@ -3,6 +3,12 @@ I2C Driver
|
||||
|
||||
:link_to_translation:`zh_CN:[中文]`
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
|
||||
This document is not updated for ESP32-C3 yet.
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
|
@ -1,6 +1,12 @@
|
||||
I2S
|
||||
===
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
|
||||
This document is not updated for ESP32-C3 yet.
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
|
@ -1,6 +1,12 @@
|
||||
SD Pull-up Requirements
|
||||
=======================
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
|
||||
This document is not updated for ESP32-C3 yet.
|
||||
|
||||
Espressif hardware products are designed for multiple use cases which may require different pull states on pins. For this reason, the pull state of particular pins on certain products will need to be adjusted to provide the pull-ups required in the SD bus.
|
||||
|
||||
SD pull-up requirements apply to cases where {IDF_TARGET_NAME} uses the SPI controller to communicate with SD cards. When an SD card is operating in SPI mode or 1-bit SD mode, the CMD and DATA (DAT0 - DAT3) lines of the SD bus must be pulled up by 10 kOhm resistors. Slaves should also have pull-ups on all above-mentioned lines (regardless of whether these lines are connected to the host) in order to prevent SD cards from entering a wrong state.
|
||||
|
@ -1,6 +1,12 @@
|
||||
SDIO Card Slave Driver
|
||||
======================
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
|
||||
This document is not updated for ESP32-C3 yet.
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
@ -94,7 +100,7 @@ The SDIO slave driver uses the following terms:
|
||||
- Sending: slave to host transfers.
|
||||
- Receiving: host to slave transfers.
|
||||
|
||||
.. note:: Register names in *{IDF_TARGET_NAME} Technical Reference Manual* > *SDIO Slave Controller*
|
||||
.. note:: Register names in *{IDF_TARGET_NAME} Technical Reference Manual* > *SDIO Slave Controller*
|
||||
[`PDF <{IDF_TARGET_TRM_EN_URL}#sdioslave>`__] are oriented from the point of view of the host, i.e. 'rx'
|
||||
registers refer to sending, while 'tx' registers refer to receiving. We're not using `tx` or `rx` in the driver to
|
||||
avoid ambiguities.
|
||||
|
@ -1,6 +1,12 @@
|
||||
SDMMC Host Driver
|
||||
=================
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
|
||||
This document is not updated for ESP32-C3 yet.
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
|
@ -12,12 +12,6 @@ This is the documentation for Espressif IoT Development Framework (`esp-idf <htt
|
||||
|
||||
This document describes using ESP-IDF with the {IDF_TARGET_NAME} SoC.
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
|
||||
Not all documents are updated for ESP32-C3 yet.
|
||||
|
||||
================== ================== ==================
|
||||
|Get Started|_ |API Reference|_ |H/W Reference|_
|
||||
------------------ ------------------ ------------------
|
||||
|
@ -3,6 +3,12 @@ I2C 驱动程序
|
||||
|
||||
:link_to_translation:`en:[English]`
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
|
||||
本文档尚未针对 ESP32-C3 进行更新。
|
||||
|
||||
概述
|
||||
---------
|
||||
|
||||
@ -16,7 +22,7 @@ I2C 具有简单且制造成本低廉等优点,主要用于低速外围设备
|
||||
驱动程序的功能
|
||||
---------------
|
||||
|
||||
I2C 驱动程序管理在 I2C 总线上设备的通信,该驱动程序具备以下功能:
|
||||
I2C 驱动程序管理在 I2C 总线上设备的通信,该驱动程序具备以下功能:
|
||||
|
||||
- 在主机模式下读写字节
|
||||
- 支持从机模式
|
||||
@ -32,7 +38,7 @@ I2C 驱动程序管理在 I2C 总线上设备的通信,该驱动程序具备
|
||||
2. :ref:`i2c-api-install-driver`- 激活一个 I2C 控制器的驱动,该控制器可为主机也可为从机
|
||||
3. 根据是为主机还是从机配置驱动程序,选择合适的项目
|
||||
|
||||
a) :ref:`i2c-api-master-mode` - 发起通信(主机模式)
|
||||
a) :ref:`i2c-api-master-mode` - 发起通信(主机模式)
|
||||
b) :ref:`i2c-api-slave-mode` - 响应主机消息(从机模式)
|
||||
|
||||
4. :ref:`i2c-api-interrupt-handling` - 配置和 I2C 中断服务
|
||||
@ -73,8 +79,8 @@ I2C 驱动程序管理在 I2C 总线上设备的通信,该驱动程序具备
|
||||
配置好 I2C 驱动程序后,使用以下参数调用函数 :cpp:func:`i2c_driver_install` 安装驱动程序:
|
||||
|
||||
- 端口号,从 :cpp:type:`i2c_port_t` 中二选一
|
||||
- 主机或从机模式,从 :cpp:type:`i2c_mode_t` 中选择
|
||||
- (仅限从机模式)分配用于在从机模式下发送和接收数据的缓存区大小。I2C 是一个以主机为中心的总线,数据只能根据主机的请求从从机传输到主机。因此,从机通常有一个发送缓存区,供从应用程序写入数据使用。数据保留在发送缓存区中,由主机自行读取。
|
||||
- 主机或从机模式,从 :cpp:type:`i2c_mode_t` 中选择
|
||||
- (仅限从机模式)分配用于在从机模式下发送和接收数据的缓存区大小。I2C 是一个以主机为中心的总线,数据只能根据主机的请求从从机传输到主机。因此,从机通常有一个发送缓存区,供从应用程序写入数据使用。数据保留在发送缓存区中,由主机自行读取。
|
||||
- 用于分配中断的标志(请参考 ESP_INTR_FLAG_* values in :component_file:`esp_system/include/esp_intr_alloc.h`)
|
||||
|
||||
|
||||
@ -115,7 +121,7 @@ I2C 驱动程序管理在 I2C 总线上设备的通信,该驱动程序具备
|
||||
|
||||
函数 :cpp:func:`i2c_master_write_byte` 和 :cpp:func:`i2c_master_write` 都有额外的实参,规定主机是否应确认其有无接受到 ACK 位。
|
||||
|
||||
2. 通过调用 :cpp:func:`i2c_master_cmd_begin` 来触发 I2C 控制器执行命令链接。一旦开始执行,就不能再修改命令链接。
|
||||
2. 通过调用 :cpp:func:`i2c_master_cmd_begin` 来触发 I2C 控制器执行命令链接。一旦开始执行,就不能再修改命令链接。
|
||||
3. 命令发送后,通过调用 :cpp:func:`i2c_cmd_link_delete` 释放命令链接使用的资源。
|
||||
|
||||
|
||||
@ -168,7 +174,7 @@ API 为从机提供以下功能:
|
||||
|
||||
- :cpp:func:`i2c_slave_write_buffer`
|
||||
|
||||
发送缓存区是用于存储从机要以 FIFO 顺序发送给主机的所有数据。在主机请求接收前,这些数据一直存储在发送缓存区。函数 :cpp:func:`i2c_slave_write_buffer` 有一个参数,用于指定发送缓存区已满时的块时间。这将允许从机应用程序在指定的超时设定内等待发送缓存区中足够的可用空间。
|
||||
发送缓存区是用于存储从机要以 FIFO 顺序发送给主机的所有数据。在主机请求接收前,这些数据一直存储在发送缓存区。函数 :cpp:func:`i2c_slave_write_buffer` 有一个参数,用于指定发送缓存区已满时的块时间。这将允许从机应用程序在指定的超时设定内等待发送缓存区中足够的可用空间。
|
||||
|
||||
在 :example:`peripherals/i2c` 中可找到介绍如何使用这些功能的代码示例。
|
||||
|
||||
@ -178,7 +184,7 @@ API 为从机提供以下功能:
|
||||
中断处理
|
||||
^^^^^^^^^^^
|
||||
|
||||
安装驱动程序时,默认情况下会安装中断处理程序。但是,您可以通过调用函数 :cpp:func:`i2c_isr_register` 来注册自己的而不是默认的中断处理程序。在运行自己的中断处理程序时,可以参考 `{IDF_TARGET_NAME} 的技术参考手册(PDF) <{IDF_TARGET_TRM_EN_URL}>`_,以获取有关 I2C 控制器触发的中断描述。
|
||||
安装驱动程序时,默认情况下会安装中断处理程序。但是,您可以通过调用函数 :cpp:func:`i2c_isr_register` 来注册自己的而不是默认的中断处理程序。在运行自己的中断处理程序时,可以参考 `{IDF_TARGET_NAME} 的技术参考手册(PDF) <{IDF_TARGET_TRM_EN_URL}>`_,以获取有关 I2C 控制器触发的中断描述。
|
||||
|
||||
调用函数 :cpp:func:`i2c_isr_free` 删除中断处理程序。
|
||||
|
||||
@ -211,16 +217,16 @@ API 为从机提供以下功能:
|
||||
- :cpp:func:`i2c_set_data_mode`
|
||||
|
||||
|
||||
上述每个函数都有一个 *_get_* 对应项来检查当前设置的值。例如,调用 :cpp:func:`i2c_get_timeout` 来检查 I2C 超时值。
|
||||
上述每个函数都有一个 *_get_* 对应项来检查当前设置的值。例如,调用 :cpp:func:`i2c_get_timeout` 来检查 I2C 超时值。
|
||||
|
||||
要检查在驱动程序配置过程中设置的参数默认值,请参考文件 :component_file:`driver/i2c.c` 并查找带有后缀 ``_DEFAULT`` 的定义。
|
||||
要检查在驱动程序配置过程中设置的参数默认值,请参考文件 :component_file:`driver/i2c.c` 并查找带有后缀 ``_DEFAULT`` 的定义。
|
||||
|
||||
通过函数 :cpp:func:`i2c_set_pin` 可以为 SDA 和 SCL 信号选择不同的管脚并改变上拉配置。如果要修改已经输入的值,请使用函数 :cpp:func:`i2c_param_config`。
|
||||
|
||||
|
||||
.. 注解 ::
|
||||
|
||||
{IDF_TARGET_NAME} 的内部上拉电阻范围为几万欧姆,因此在大多数情况下,它们本身不足以用作 I2C 上拉电阻。建议用户使用阻值在 `I2C 总线协议规范 <https://www.nxp.com/docs/en/user-guide/UM10204.pdf>`_ 规定范围内的上拉电阻。
|
||||
{IDF_TARGET_NAME} 的内部上拉电阻范围为几万欧姆,因此在大多数情况下,它们本身不足以用作 I2C 上拉电阻。建议用户使用阻值在 `I2C 总线协议规范 <https://www.nxp.com/docs/en/user-guide/UM10204.pdf>`_ 规定范围内的上拉电阻。
|
||||
|
||||
|
||||
.. _i2c-api-error-handling:
|
||||
@ -240,7 +246,7 @@ API 为从机提供以下功能:
|
||||
删除驱动程序
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
如果使用 :cpp:func:`i2c_driver_install` 建立 I2C 通信,一段时间后不再需要 I2C 通信,则可以通过调用 :cpp:func:`i2c_driver_delete` 来移除驱动程序以释放分配的资源。
|
||||
如果使用 :cpp:func:`i2c_driver_install` 建立 I2C 通信,一段时间后不再需要 I2C 通信,则可以通过调用 :cpp:func:`i2c_driver_delete` 来移除驱动程序以释放分配的资源。
|
||||
|
||||
|
||||
应用示例
|
||||
|
@ -3,6 +3,12 @@ SD/SDIO/MMC 驱动程序
|
||||
|
||||
:link_to_translation:`en:[English]`
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
|
||||
本文档尚未针对 ESP32-C3 进行更新。
|
||||
|
||||
概述
|
||||
--------
|
||||
|
||||
@ -35,20 +41,20 @@ ESP-IDF :example:`storage/sd_card` 目录下提供了 SDMMC 驱动与 FatFs 库
|
||||
协议层 API
|
||||
------------------
|
||||
|
||||
协议层具备 :cpp:class:`sdmmc_host_t` 结构体,此结构体描述了 SD/MMC 主机驱动,列出了其功能,并提供指向驱动程序函数的指针。协议层将卡信息储存于 :cpp:class:`sdmmc_card_t` 结构体中。向 SD/MMC 主机发送命令时,协议层调用时需要一个 :cpp:class:`sdmmc_command_t` 结构体来描述命令、参数、预期返回值和需传输的数据(如有)。
|
||||
协议层具备 :cpp:class:`sdmmc_host_t` 结构体,此结构体描述了 SD/MMC 主机驱动,列出了其功能,并提供指向驱动程序函数的指针。协议层将卡信息储存于 :cpp:class:`sdmmc_card_t` 结构体中。向 SD/MMC 主机发送命令时,协议层调用时需要一个 :cpp:class:`sdmmc_command_t` 结构体来描述命令、参数、预期返回值和需传输的数据(如有)。
|
||||
|
||||
用于 SD 存储卡的 API
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
1. 初始化主机,请调用主机驱动函数,例如 :cpp:func:`sdmmc_host_init` 和 :cpp:func:`sdmmc_host_init_slot`;
|
||||
2. 初始化卡,请调用 :cpp:func:`sdmmc_card_init`,并将参数 ``host`` (即主机驱动信息)和参数 ``card`` (指向 :cpp:class:`sdmmc_card_t` 结构体的指针)传递给此函数。函数运行结束后,将会向 :cpp:class:`sdmmc_card_t` 结构体填充该卡的信息;
|
||||
3. 读取或写入卡的扇区,请分别调用 :cpp:func:`sdmmc_read_sectors` 和 :cpp:func:`sdmmc_write_sectors`,并将参数 ``card`` (指向卡信息结构的指针)传递给函数;
|
||||
3. 读取或写入卡的扇区,请分别调用 :cpp:func:`sdmmc_read_sectors` 和 :cpp:func:`sdmmc_write_sectors`,并将参数 ``card`` (指向卡信息结构的指针)传递给函数;
|
||||
4. 如果不再使用该卡,请调用主机驱动函数,例如 :cpp:func:`sdmmc_host_deinit`,以禁用主机外设,并释放驱动程序分配的资源。
|
||||
|
||||
用于 eMMC 芯片的 API
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
从协议层的角度而言,eMMC 存储芯片与 SD 存储卡相同。尽管 eMMC 是芯片,不具备卡的外形,但由于协议相似 (`sdmmc_card_t`, `sdmmc_card_init`),用于 SD 卡的一些概念同样适用于 eMMC 芯片。注意,eMMC 芯片不可通过 SPI 使用,因此它与 SD API 主机驱动不兼容。
|
||||
从协议层的角度而言,eMMC 存储芯片与 SD 存储卡相同。尽管 eMMC 是芯片,不具备卡的外形,但由于协议相似 (`sdmmc_card_t`, `sdmmc_card_init`),用于 SD 卡的一些概念同样适用于 eMMC 芯片。注意,eMMC 芯片不可通过 SPI 使用,因此它与 SD API 主机驱动不兼容。
|
||||
|
||||
如需初始化 eMMC 内存并执行读/写操作,请参照上一章节 SD 卡操作步骤。
|
||||
|
||||
@ -68,7 +74,7 @@ SDIO 卡初始化和检测过程与 SD 存储卡相同,唯一的区别是 SDIO
|
||||
如需设置卡配置或传输数据,请根据您的具体情况选择下表中的函数:
|
||||
|
||||
========================================================================= ================================= =================================
|
||||
操作 读函数 写函数
|
||||
操作 读函数 写函数
|
||||
========================================================================= ================================= =================================
|
||||
使用 IO_RW_DIRECT (CMD52) 读写单个字节。 :cpp:func:`sdmmc_io_read_byte` :cpp:func:`sdmmc_io_write_byte`
|
||||
使用 IO_RW_EXTENDED (CMD53) 的字节模式读写多个字节。 :cpp:func:`sdmmc_io_read_bytes` :cpp:func:`sdmmc_io_write_bytes`
|
||||
@ -76,7 +82,7 @@ SDIO 卡初始化和检测过程与 SD 存储卡相同,唯一的区别是 SDIO
|
||||
========================================================================= ================================= =================================
|
||||
|
||||
使用 :cpp:func:`sdmmc_io_enable_int` 函数,应用程序可启用 SDIO 中断。
|
||||
|
||||
|
||||
在单线模式下使用 SDIO 时,还需要连接 D1 线来启用 SDIO 中断。
|
||||
|
||||
如果您需要应用程序保持等待直至发生 SDIO 中断,请使用 :cpp:func:`sdmmc_io_wait_int` 函数。
|
||||
@ -84,7 +90,7 @@ SDIO 卡初始化和检测过程与 SD 存储卡相同,唯一的区别是 SDIO
|
||||
|
||||
复合卡(存储 + SDIO)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
该驱动程序不支持 SDIO 复合卡,复合卡会被视为 SDIO 卡。
|
||||
|
||||
|
||||
|
@ -12,12 +12,6 @@ ESP-IDF 编程指南
|
||||
|
||||
本文档仅包含针对 {IDF_TARGET_NAME} 芯片的 ESP-IDF 使用。
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
|
||||
ESP32-C3 的相关文档尚未全部更新完毕。
|
||||
|
||||
================== ================== ==================
|
||||
|快速入门|_ |API 参考|_ |H/W 参考|_
|
||||
------------------ ------------------ ------------------
|
||||
|
Loading…
Reference in New Issue
Block a user