bitter 发表于 2023-4-12 16:39

【英飞凌PSOC 62S4 PIONEER KIT 测评】——I2C

<div class='showpostmsg'> 本帖最后由 bitter 于 2023-4-13 08:55 编辑

<p><b>【</b><b>英飞凌PSOC 62S4 PIONEER KIT</b><b>&nbsp;测评】&mdash;&mdash;I2C</b></p>

<ul>
        <li>基本介绍</li>
</ul>

<p>通过翻阅数据手册,发现PSOC 62S4 PIONEER KIT拥有六个Serial Communication Blocks (SCB),都可以配置为I2C模式,操作速率高达1Mbps。它还支持EZI2C,创建了一个邮箱地址范围,并有效地将I2C通信减少到读取和写入内存中的数组。SCB支持一个256字节的FIFO,用于接收和传输。SCB兼容I2C标准模式、快速模式和快速模式+。I2C总线I/O采用开漏模式的GPIOs实现。</p>

<p>二、主要API介绍</p>

<p>1. &nbsp;I2C初始化cyhal_i2c_init()</p>

<p align="center"> &nbsp;</p>

<p>注意:默认情况下,它被配置为Master,总线频率= CYHAL_I2C_MASTER_DEFAULT_FREQ。使用cyhal_i2c_configure()更改默认行为。</p>

<ol start="2">
        <li>I2C配置cyhal_i2c_configure()</li>
</ol>

<p align="center"> &nbsp;</p>

<p>其中,cyhal_i2c_cfg_t结构体为</p>

<p align="center"> &nbsp;</p>

<p>注意:特定于主/从的函数只有在块被配置为该模式时才有效。</p>

<ol start="3">
        <li>I2C高级配置cyhal_i2c_configure_adv()</li>
</ol>

<p align="center"> &nbsp;</p>

<p>其中,cyhal_i2c_cfg_t结构体为</p>

<p align="center"> &nbsp;</p>

<ol start="4">
        <li>I2C事件使能cyhal_i2c_enable_event()</li>
</ol>

<p align="center"> &nbsp;</p>

<p>其中,cyhal_i2c_event_t枚举为</p>

<p align="center"> &nbsp;</p>

<ol start="5">
        <li>I2C地址事件使能cyhal_i2c_enable_address_event()</li>
</ol>

<p align="center"> &nbsp;</p>

<p>其中,cyhal_i2c_addr_event_t枚举为</p>

<p> &nbsp;</p>

<p>PS:</p>

<ol>
        <li>不知道为什么使用官方提供的I2C例程编译能通过,但是I2C并没有任何数据发出,通过debug发现是在调用cyhal_i2c_master_write()发送数据错误,不清楚是什么情况。</li>
        <li>在PSOC 62S4 PIONEER KIT的KitProg3可以作为一个USB-I2C桥接器,并可以与作为I2C MASYER的Bridge Control Panel(BCP)软件进行通信。但是找了半天也没找到这个软件在哪。下图是BCP的界面和KitProg3与PSoC 62S4的连接。</li>
</ol>

<p align="center"> &nbsp;</p>

<p align="center"></p>

<p align="center">&nbsp;</p>

<p>&nbsp;</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

lugl4313820 发表于 2023-4-12 17:04

大佬帖子非常优秀呀,图文并茂,如果再来个视频讲解,那就完美了。

Jacktang 发表于 2023-4-12 19:18

<p>特定于主/从的函数只有在块被配置为该模式时才有效,这是为何</p>

bitter 发表于 2023-4-13 08:47

本帖最后由 bitter 于 2023-4-13 08:54 编辑

<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3223514&amp;ptid=1239818" target="_blank"><font color="#999999">Jacktang 发表于 2023-4-12 19:18</font></a></font> 特定于主/从的函数只有在块被配置为该模式时才有效,这是为何</blockquote>
</div>

<p>特定于MASTER的函数肯定得I2C被配置为MASTER才能使用啊,SLAVE也同理</p>

<p>应该是HAL库做了限制,防止出错</p>
页: [1]
查看完整版本: 【英飞凌PSOC 62S4 PIONEER KIT 测评】——I2C