Files
luban-lite-t3e-pro/doc/topics/sdk/i2c/i2c_config.html
2025-01-23 16:37:00 +08:00

232 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content="I2C 包括以下配置内容: 内核配置 master 驱动使能 Device Drivers I2C support---&gt; &lt;*&gt; I2C support &lt;*&gt; I2C device interface I2C Hardware Bus support---&gt; &lt;*&gt; ArtInChip I2C support slave 驱动使能 Device Drivers I2C support---&gt; ..."/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="concept"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2024-07-08"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="i2c_configuration"/><meta name="DC.language" content="zh-CN"/><title>I2C 配置</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content=""/><meta name="wh-source-relpath" content="topics/sdk/i2c/i2c_config.dita"/><meta name="wh-out-relpath" content="topics/sdk/i2c/i2c_config.html"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
<body id="i2c_configuration" class="wh_topic_page frmBody">
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
跳转到主要内容
</a>
<header class="navbar navbar-default wh_header">
<div class="container-fluid">
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
<div class="wh_logo_and_publication_title_container">
<div class="wh_logo_and_publication_title">
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
</div>
</div>
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
</div>
</div>
</div>
</header>
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
</div>
<div class="container-fluid" id="wh_topic_container">
<div class="row">
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
<div data-tooltip-position="bottom" class=" wh_breadcrumb "></div>
<div class="wh_right_tools">
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
</div>
</nav>
</div>
<div class="wh_content_area">
<div class="row">
<div class="col-12" id="wh_topic_body">
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic concept/concept topic concept" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/i2c/i2c_config.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">I2C 配置</h1><div class="date inPage">8 Jul 2024</div><div style="color: gray;">
Read time: 2 minute(s)
</div><div class="- topic/body concept/conbody body conbody"><div class="- topic/p p" data-ofbid="d243385e22__20250121171700">I2C 包括以下配置内容:<ol class="- topic/ol ol" id="i2c_configuration__ol_q5h_rtr_21c" data-ofbid="i2c_configuration__ol_q5h_rtr_21c"><li class="- topic/li li" data-ofbid="d243385e25__20250121171700">内核配置<ol class="- topic/ol ol" type="a" id="i2c_configuration__ol_gs2_str_21c" data-ofbid="i2c_configuration__ol_gs2_str_21c"><li class="- topic/li li" data-ofbid="d243385e28__20250121171700">master 驱动使能<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="i2c_configuration__pre_hkk_ptr_21c" data-ofbid="i2c_configuration__pre_hkk_ptr_21c">Device Drivers
I2C support---&gt;
&lt;*&gt; I2C support
&lt;*&gt; I2C device interface
I2C Hardware Bus support---&gt;
&lt;*&gt; ArtInChip I2C support
</pre></li><li class="- topic/li li" data-ofbid="d243385e32__20250121171700">slave 驱动使能<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="i2c_configuration__pre_jkk_ptr_21c" data-ofbid="i2c_configuration__pre_jkk_ptr_21c">Device Drivers
I2C support---&gt;
&lt;*&gt; I2C support
&lt;*&gt; I2C device interface
I2C Hardware Bus support---&gt;
&lt;*&gt; ArtInChip I2C support
&lt;*&gt; ArtInChip I2C as slave mode
&lt;*&gt; I2C slave support
&lt;*&gt; I2C eeprom slave driver
</pre><div class="- topic/note note note note_note" id="i2c_configuration__note_umd_ttr_21c" data-ofbid="i2c_configuration__note_umd_ttr_21c"><span class="note__title">注:</span>
<p class="- topic/p p" data-ofbid="d243385e38__20250121171700">在将 I2C 作为 slave 时,需要一个 backend 程序,作为 slave 的功能逻辑实现。此处选择内核自带的
eeprom即 I2C 作为 slave 时,是当做一个 eeprom
的功能在使用。也可以根据实际情况自己实现相应的 backend 代码</p>
</div></li><li class="- topic/li li" data-ofbid="d243385e41__20250121171700">eeprom 驱动使能<p class="- topic/p p" data-ofbid="d243385e43__20250121171700">使用 I2C 接口与 eeprom 通信,是一种应用非常广泛的场景。此处介绍如何使能内核的 eeprom
驱动(需要先使能 I2C 的 master
驱动)。</p><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="i2c_configuration__pre_lkk_ptr_21c" data-ofbid="i2c_configuration__pre_lkk_ptr_21c">Device Drivers
Misc devices---&gt;
EEPROM support---&gt;
&lt;*&gt; I2C EEPROMs/RAMs/ROMs from most vendors
</pre></li></ol></li><li class="- topic/li li" data-ofbid="d243385e47__20250121171700">DTS 配置<ol class="- topic/ol ol" type="a" id="i2c_configuration__ol_p54_5tr_21c" data-ofbid="i2c_configuration__ol_p54_5tr_21c"><li class="- topic/li li" data-ofbid="d243385e50__20250121171700">I2C 公共参数配置,以 I2C0
为例<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="i2c_configuration__codeblock_dwc_vtr_21c" data-ofbid="i2c_configuration__codeblock_dwc_vtr_21c">i2c0: i2c@<span class="hl-number">19220000</span> {
compatible = <span class="hl-string">"artinchip,aic-i2c-v1.0"</span>;
reg = &lt;<span class="hl-number">0x0</span> <span class="hl-number">0x19220000</span> <span class="hl-number">0x0</span> <span class="hl-number">0x400</span>&gt;;
interrupts-extended = &lt;&amp;plic0 <span class="hl-number">84</span> IRQ_TYPE_LEVEL_HIGH&gt;;
clocks = &lt;&amp;cmu CLK_I2C0&gt;;
resets = &lt;&amp;rst RESET_I2C0&gt;;
#address-cells = &lt;<span class="hl-number">1</span>&gt;;
#size-cells = &lt;<span class="hl-number">0</span>&gt;;
};</pre></li><li class="- topic/li li" data-ofbid="d243385e54__20250121171700">I2C master 配置<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="i2c_configuration__codeblock_f32_wtr_21c" data-ofbid="i2c_configuration__codeblock_f32_wtr_21c">&amp;i2c0 {
pinctrl-names = <span class="hl-string">"default"</span>;
pinctrl-<span class="hl-number">0</span> = &lt;&amp;i2c0_pins_a&gt;;
status = <span class="hl-string">"okay"</span>;
eeprom@<span class="hl-number">50</span> {
compatible = <span class="hl-string">"atmel,24c64"</span>;
reg = &lt;<span class="hl-number">0x50</span>&gt;;
pagesize = &lt;<span class="hl-number">32</span>&gt;;
};
};</pre><div class="- topic/note note note note_note" id="i2c_configuration__note_lf4_wtr_21c" data-ofbid="i2c_configuration__note_lf4_wtr_21c"><span class="note__title">注:</span>
<p class="- topic/p p" data-ofbid="d243385e60__20250121171700">该配置是将 eeprom 挂在 I2C0 总线上的配置reg 属性表示 slave 设备的地址pagesize 表示
eeprom 一页有 32byte。若在 I2C 总线上挂其它设备,对 DTS
进行相应修改即可。</p>
</div></li><li class="- topic/li li" data-ofbid="d243385e63__20250121171700">I2C slave
配置<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="i2c_configuration__codeblock_p4h_xtr_21c" data-ofbid="i2c_configuration__codeblock_p4h_xtr_21c">&amp;i2c0 {
pinctrl-names = <span class="hl-string">"default"</span>;
pinctrl-<span class="hl-number">0</span> = &lt;&amp;i2c0_pins_a&gt;;
status = <span class="hl-string">"okay"</span>;
slave@<span class="hl-number">54</span> {
compatible = <span class="hl-string">"slave-24c02"</span>;
reg = &lt;<span class="hl-number">0x40000054</span>&gt;;
};
};</pre><p class="- topic/p p" data-ofbid="d243385e67__20250121171700">内核的 I2C 子系统框架会通过查看 reg 属性的
bit30判断 I2C 是工作在主机模式还是从机模式。若 bit30 为
1则为从机模式。上述配置表示 I2C 工作在从机模式,设备地址为
0x54。</p><div class="- topic/p p" data-ofbid="d243385e69__20250121171700">若需要设置从机为 10bit 寻址,则需要设置 reg 属性的 bit31
为 1如下图所示配置从机地址为
0x139。<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="i2c_configuration__codeblock_qrv_xtr_21c" data-ofbid="i2c_configuration__codeblock_qrv_xtr_21c">&amp;i2c0 {
pinctrl-names = <span class="hl-string">"default"</span>;
pinctrl-<span class="hl-number">0</span> = &lt;&amp;i2c0_pins_a&gt;;
status = <span class="hl-string">"okay"</span>;
slave@<span class="hl-number">139</span> {
compatible = <span class="hl-string">"slave-24c02"</span>;
reg = &lt;<span class="hl-number">0xC0000139</span>&gt;;
};
};</pre></div></li></ol></li></ol></div></div></article></main></div>
</div>
</div>
</div>
</div>
<footer class="navbar navbar-default wh_footer">
<div class=" footer-container mx-auto ">
<title>footer def</title>
<style><!--
.p1 {
font-family: FangZhengShuSong, Times, serif;
}
.p2 {
font-family: Arial, Helvetica, sans-serif;
}
.p3 {
font-family: "Lucida Console", "Courier New", monospace;
}
--></style>
<div class="webhelp.fragment.footer">
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
</div><div>
<div class="generation_time">
Update Time: 2025-01-21
</div>
</div>
</div>
</footer>
<div id="go2top" class="d-print-none">
<span class="oxy-icon oxy-icon-up"></span>
</div>
<div id="modal_img_large" class="modal">
<span class="close oxy-icon oxy-icon-remove"></span>
<div id="modal_img_container"></div>
<div id="caption"></div>
</div>
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
</body>
</html>