查看: 2081|回复: 0

使用Pins / Clocks / Peripherals Config工具和lpcxpresso55s69 SDK进行I2C

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2020-8-4 13:17:06 | 显示全部楼层 |阅读模式
    MCUXpresso教程:使用Pins / Clocks / Peripherals Config工具和lpcxpresso55s69 SDK进行I2C


    翻译自:Mark Embeddedpro


    我选择了Bosch BME280环境传感器作为基于OKdo E1的气象站的心脏。它使用起来很方便,我可以使用Mikroe Weather Click板MIKROE-1978进行原型设计。但是传感器是通过I2C访问的,这是我最不喜欢的通信接口。在这个简短的教程中,我将向您展示如何使用MCUXpresso Config工具(引脚,时钟,外设)从MCUXpresso lpcxpresso55S69 SDK设置I2C驱动程序。很快,我就能与BME280传感器通信。
    1.png
    通过I2C读取BME280“ ID”寄存器
    OKdo E1板将I2C带到扩展头,在图中标为FC4_SCL和FC4_SDA。作为参考,请注意这些信号被复用到名为PIO1_20和PIO1_21的焊盘上。
    2.png
    I2C在扩展头的FlexComm4信号上可用
    我使用“新建SDK项目”向导在基于SDK lpcxpresso55s69 v2.7.0的MCUXpresso IDE v11.1.0中创建了一个新项目。无需对项目进行任何更改,我在向导中的LPC55S69_WeatherStation中进行了命名。


    时钟配置


    我们可以快速重用上周的教程来配置项目的时钟。正在运行时钟工具...:
    4.png
    打开时钟配置工具
    …允许我们切换到Clocks Diagram选项卡,然后使用Functional Groups Properties图标来编辑项目中的功能组。我添加了一个名为BOARD_BootClockPLL150M_FRO12的新功能组,并将PLL配置为从名为fro_12m的时钟中引用。请返回上周的教程以获取完整的详细信息,并且不要忘记在透视图顶部的下拉框中选择新的功能组。


    由于这是我们将用于I2C的FC模块,因此保留了所有用于启用FlexComm4时钟的功能。我将fro_12m用作I2C的时钟源。
    5.png
    使能fro_12m作为FlexComm4的时钟源


    引脚配置


    好了,这完成了时钟配置。我们可以使用Clocks Config透视图右上角的图标切换到Pins视图:
    7.png
    切换到引脚配置工具
    回想一下,I2C信号位于焊盘PIO1_20和PIO1_21上。在我的教程中,我将始终使用PAD一词来表示其中一个端口(在这种情况下,其名称为PIO1_20)。根据封装(BGA,QFN,LQFP…)的不同,该焊盘将被布线到引脚。在OKdo E1板上,封装为LQFP100,焊盘PIO1-21连接至引脚4。引脚4具有许多可能的复用功能。我们使用“引脚配置”工具选择将这些焊盘功能中的哪一个带到引脚。


    我们可以在引脚配置工具中为它们的I2C功能(分别为I2C_SCL和I2C_SDA)配置焊盘PIO1_20和PIO1_21。只需在“引脚”视图中搜索每个焊盘:
    8.png
    在引脚视图中搜索PIO1_20
    在上图中,我已经为I2C功能路由了PIO1_20(显示为绿色)。但是,您需要选中第一列中的复选框,以标记用于布线的插针。会弹出一个对话框,为您提供焊盘所有可能的引脚复用功能。向下滚动列表,然后选择FlexComm4的SCL功能:
    9.png
    为FC4_SCL功能路由PIO1_20。
    当在FC4_TXD_SCL行中打上复选标记(“勾号”)时,“引脚配置”工具会路由焊盘,并且您会在透视图底部的“路由引脚”视图中看到一个新条目(黄色):
    10.png
    引脚4,焊盘PIO1_20已路由功能FC4_SCL功能。
    按照相同的步骤为功能FC4_SDA路由PIO1_21。上面的屏幕抓取中已经完成了此操作,因此我准备移至最终的Peripherals Config工具。


    外围设备配置


    使用“外围设备”图标切换到“外围设备”透视图:
    12.png
    切换到外围设备配置工具
    外围设备配置工具表明我们已经设置好FlexComm4的焊盘/引脚以用作I2C。但是我们尚未设置I2C外设,因此该工具会报告警告(FC0上的默认控制台UART也有警告,但我们可以忽略此警告):
    13.png
    “外围FC4未初始化”警告。
    该工具提出了一个非常简单的解决方案。选择FC4警告行,然后单击鼠标右键以打开上下文菜单:
    14.png
    “外围FC4未初始化”警告和快速修复
    选择“初始化FLEXCOMM4外设”将打开一个对话框,在这里我们可以为FlexComm4选择所需的功能……在这种情况下,我们需要I2C配置。因此,我们选择I2C并单击[确定]:
    15.png
    I2C快速修复。
    外围设备配置工具显示Flexcomm接口I2C配置屏幕。这显示了I2 C模块的所有“顶级”设置。我们要做一个更改:我们将使用名为“传输”的模式。在“模式”下拉框中,选择“传输”,并注意进一步的设置已启用/显示。
    16.png
    选择FlexComm4 I2C“传输”模式
    我向你保证,这就是我们要做的。 OKdo E1板上的I2C的配置现已完成。我们可以单击屏幕顶部的“更新代码”以生成所有必需的配置代码,接受更改,然后返回到C / C ++ Develop透视图。


    软件…


    我们确实(当然)需要编写一些软件来使Bosch BME280传感器活跃起来。您可以参考本教程的YouTube视频,以查看运行中的软件,但是此处是所做更改的快速摘要,并且文件位于此处。所有编辑都在新项目向导创建的名为LPC55S69-WeatherStation.c的“ C”源模块中:
    18.png
    19.png
    20.png
    那应该全部编译并下载到开发板上。假设您将OKdo E1板连接到传感器板上,这是从半主机控制台视图中获得的输出:
    21.png
    OKdo E1板的Semihosting Console窗口输出。
    这些工具使它看起来很难,但是一旦使用它们,一切都将变得显而易见且高效。在我的在线视频教程中,我将在10分钟内完成这些步骤。

    下次,我们将通过I2C从BME280传感器中读取更多数据,并开始将一些真实的环境数据输入我的气象站。到时见,随时让我知道您的生活吧!




    PS:翻译有问题的部分还请大家

    签到签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 11:02 , Processed in 0.119759 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表