chen@peng 发表于 2022-6-5 18:55

瑞萨CPK-RA6M4 开发板测评----I2C

<div class='showpostmsg'><ul>
        <li>功能模块的硬件介绍--&gt;I2C&nbsp;</li>
</ul>

<p>&nbsp;&nbsp;&nbsp;&nbsp;I2C(Inter Integrated Circuit)总线是 PHILIPS 公司开发的一种半双工、双向二线制同步串行总线。I2C 总线传输数据时只需两根信号线,一根是双向数据线 SDA(serial data),另一根是双向时钟线 SCL(serial clock)。详细的总线知识可自行了解。</p>

<p>&nbsp; &nbsp;&nbsp;瑞萨CPK-RA6M4 支持两路I2C Master,本次测试业主要进行两路I2C,硬件I2C1的硬件上连接了一路ISL29035,一路光照传感器,I2C0,悬空,本次测评连接了AT24C256的eeprom。</p>

<p>&nbsp; &nbsp; 代码的开发方式是,I2C0采用硬件通讯,I2C1采用rtt的I2C驱动执行。</p>

<p>&nbsp;ISL29035的硬件地址是0x44,详细的资料参见瑞萨官网,本帖不对此传感器进行详细的功能介绍和开发。<a href="https://www2.renesas.cn/us/en/document/dst/isl29035-datasheet?language=en&amp;r=497231">ISL29035 Datasheet (renesas.cn)</a></p>

<p>AT24C256是一款很常用的eeprom,硬件地址0x50,注意,这里无论是硬件还是rtt的i2c驱动都会左移一位,再对操作位进行求或运算。</p>

<ul>
        <li>硬件I2C功能模块使用说明:</li>
</ul>

<p>&nbsp; &nbsp;1、使用RASmart进行硬件配置:添加两路stack</p>

<p>&nbsp; 2、参数配置:</p>

<p>&nbsp; 3、配置详细说明:</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; Channel&nbsp; ---&gt; 0&nbsp; :选择i2c0</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; Rate&nbsp; &nbsp; &nbsp; -----&gt; Fast-mode 400K,标准模式是100k,还有一种是1M,目前其他厂商也都支持到1M的波特率了</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; Slave Address -----&gt; 0x50&nbsp; &nbsp; &nbsp; &nbsp;</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Address Mode -----&gt; 7-bit</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 配置中断回调函数,g_i2c0_callback</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 配置Pins P401、P400</p>

<p>进行以上配置以后可进行生成代码即可。</p>

<p>&nbsp;4、测试结果:</p>

<p>&nbsp; &nbsp; 这里Writebuff的前两个字节是地址。 &nbsp;&nbsp;写与读一致。</p>

<ul>
        <li>&nbsp; &nbsp; 软件I2C配置</li>
</ul>

<p>1、使用menuconfig进行软件I2C配置</p>

<p> &nbsp; &nbsp;&nbsp;2、配置完成后进行保存,并退出,退出以后使用&nbsp;scons --target=mdk5 重新编译一次工程,然后再用MDK进行编译即可。</p>

<p>&nbsp;</p>

<p>3、ISL实际测试结果:</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;能够正常获取ID,以及获取ADC的采集值。</p>

<ul>
        <li>心得体会:</li>
</ul>

<p>1、使用rtt的I2c进行软件模拟时序,使用起来更方便,通用性也很好,需要熟悉一下这个驱动的用法即可。</p>

<p>2、fsp生成的硬件i2c,需要配置中断,并自行进行超时处理,这里是参考了瑞萨的官方demo进行修改的。隐藏了太多细节,一旦出现问题很难排查原因。</p>

<p>3、P511,P512管脚,在使用rtt进行配置时,采用0x50B,0x50C,不然端口配置错误,需要重点注意。</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</p>

<p>&nbsp;&nbsp;&nbsp;&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>

Jacktang 发表于 2022-6-6 07:13

<p>P511,P512管脚,在使用rtt进行配置时,不采用0x50B,0x50C会怎样</p>

chen@peng 发表于 2022-6-6 07:15

Jacktang 发表于 2022-6-6 07:13
P511,P512管脚,在使用rtt进行配置时,不采用0x50B,0x50C会怎样

<p>默认是0x511,0x512,RA6M4上没有对应的pin,模拟I2c不能正常使用。</p>

芯片老兵 发表于 2022-6-9 13:53

<p>专业问题,看来只有懂行的才有价值,学习了。</p>
页: [1]
查看完整版本: 瑞萨CPK-RA6M4 开发板测评----I2C