匿名
未登录
登录
百问网嵌入式Linux wiki
搜索
查看“I2C internal peripheral”的源代码
来自百问网嵌入式Linux wiki
名字空间
页面
讨论
更多
更多
页面选项
Read
查看源代码
历史
←
I2C internal peripheral
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== Article purpose == The purpose of this article is to: * briefly introduce the I2C peripheral and its main features * indicate the level of security supported by this hardware block * explain how each instance can be allocated to the three runtime contexts and linked to the corresponding software components * explain, when necessary, how to configure the I2C peripheral. ==Peripheral overview== The I2C bus interface serves as an interface between the microcontroller and the serial I2C bus.<br> It provides multi-master capability, and controls all I2C bus-specific sequencing, protocol, arbitration and timing.<br> The I2C controller allows to be a slave as well if need be.<br> It is also SMBus 2.0 compatible. <br /> For more information about I2C please refer to this link: '''I2C wikipedia'''<ref name="I2C">http://en.wikipedia.org/wiki/I2C</ref> or '''i2c-bus.org'''<ref name="I2C specification">https://www.i2c-bus.org/specification/</ref><br> For more information about SMBus please refer to this link: '''SMBus wikipedia'''<ref name="Wiki SMBus">https://en.wikipedia.org/wiki/System_Management_Bus</ref> or '''i2c-bus.org'''<ref name="SMBus">https://www.i2c-bus.org/smbus/</ref> ===Features=== Here are the main features: * Multi-master * Standard (100 KHz) and fast speed modes (400 KHz and Plus 1 MHz) * I2C 10-bit address * I2C slave capabilities (programmable I2C address) * DMA capabilities * SMBus 2.0 compatible ** Standard bus protocol (quick command; byte, word, block read/write) ** Host notification ** Alert Refer to the [[STM32MP15 resources#Reference manuals|STM32MP15 reference manuals]] for the complete list of features, and to the software components, introduced below, to see which features are implemented. ===Security support=== * There are six I2C instances. <br> **I2C instances 1, 2, 3 and 5 are '''non-secure'''. **I2C instances 4 and 6 can be '''secure''' (under [[ETZPC_internal_peripheral|ETZPC]] control). ==Peripheral usage and associated software== ===Boot time=== The I2C peripheral is usually not used at boot time. But it may be used by the SSBL and/or FSBL (see [[Boot chain overview]]), for example, to configure a PMIC (see [[PMIC hardware components]]), or to access data stored in an external EEPROM. ===Runtime=== ====Overview==== I2C4&6 instances can be allocated to: * the Arm<sup>®</sup> Cortex<sup>®</sup>-A7 secure core to be controlled in OP-TEE by the [[OP-TEE_overview|OP-TEE I2C driver]] All I2C instances can be allocated to: * the Arm<sup>®</sup> Cortex<sup>®</sup>-A7 non-secure core to be controlled in U-Boot or Linux<sup>®</sup> by the [[I2C overview|I2C framework]] All but I2C4&6 instances can be allocated to: * the Arm<sup>®</sup> Cortex<sup>®</sup>-M4 to be controlled in STM32Cube MPU Package by [[STM32CubeMP1 architecture|STM32Cube I2C driver]] Chapter [[#Peripheral assignment|Peripheral assignment]] describes which peripheral instance can be assigned to which context. ====Software frameworks==== {{:Internal_peripherals_software_table_template}} | Low speed interface | [[I2C internal peripheral|I2C]] | [[OP-TEE_overview|OP-TEE I2C driver]] | [[I2C overview| I2C Engine framework]] | [[STM32CubeMP1 architecture|STM32Cube I2C driver]] | |- |} ====Peripheral configuration==== The configuration is applied by the firmware running in the context to which the peripheral is assigned. The configuration can be done alone via the [[STM32CubeMX]] tool for all internal peripherals, and then manually completed (particularly for external peripherals), according to the information given in the corresponding software framework article. For Linux<sup>®</sup> kernel configuration, please refer to [[I2C overview#Configuration|I2C configuration]]. Please refer to [[I2C device tree configuration]] for detailed information on how to configure I2C peripherals. ====Peripheral assignment==== {{:Internal_peripherals_assignment_table_template}} <onlyinclude> | rowspan="6" | Low speed interface | rowspan="6" | [[I2C internal peripheral|I2C]] | I2C1 | | <span title="assignable peripheral" style="font-size:21px">☐</span> | <span title="assignable peripheral" style="font-size:21px">☐</span> | Assignment (single choice) |- | I2C2 | | <span title="assignable peripheral" style="font-size:21px">☐</span> | <span title="assignable peripheral" style="font-size:21px">☐</span> | Assignment (single choice) |- | I2C3 | | <span title="assignable peripheral" style="font-size:21px">☐</span> | <span title="assignable peripheral" style="font-size:21px">☐</span> | Assignment (single choice) |- | I2C4 | <span title="assignable peripheral" style="font-size:21px">☐</span> | <span title="assignable peripheral" style="font-size:21px">☐</span> | | Assignment (single choice). <br />Used for PMIC control on [[:Category:Getting_started_with_STM32MP1_boards|ST boards]]. |- | I2C5 | | <span title="assignable peripheral" style="font-size:21px">☐</span> | <span title="assignable peripheral" style="font-size:21px">☐</span> | Assignment (single choice) |- | I2C6 | <span title="assignable peripheral" style="font-size:21px">☐</span> | <span title="assignable peripheral" style="font-size:21px">☐</span> | | Assignment (single choice) |- </onlyinclude> |} ==References== <references/>
该页面使用的模板:
Internal peripherals assignment table template
(
查看源代码
)
Internal peripherals software table template
(
查看源代码
)
模板:STDarkBlue
(
查看源代码
)
模板:STLightBlue
(
查看源代码
)
模板:STLightGrey
(
查看源代码
)
模板:STPink
(
查看源代码
)
返回至
I2C internal peripheral
。
导航
导航
WIKI首页
官方店铺
资料下载
交流社区
所有页面
所有产品
MPU-Linux开发板
MCU-单片机开发板
Linux开发系列视频
单片机开发系列视频
所有模块配件
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志