在MCX上进行I3C 温度传感器演示
- 此示例代码演示了使用 P3T1755 温度传感器和 MCX 微控制器的 MIPI I3C 总线操作。
- MIPI I3C 总线是一种串行总线,通过两线信号进行高速率数据传输。该协议与 I?C 类似,但具有一些扩展功能,例如动态地址分配 (DAA)、带内中断 (IBI) 等。
- 该代码显示了这些功能和信号特性。
- MIPI I3C 总线在 NXP 的一份文档中有介绍:系统管理 I?C、I3C 和 SPI 选择器指南。
- 作为I3C的目标设备,使用P3T1755。
- P3T1755 是一款温度数字转换器,工作温度范围为 -40 °C 至 +125 °C。它采用片上带隙温度传感器和模数转换技术,并具有过温检测功能。该器件包含多个配置和数据寄存器,用于存储器件设置(例如器件工作模式),以及一个温度寄存器 (Temp),用于存储数字温度读数,控制器可以通过双线串行 I3C(最高 12.5 MHz)和 I2C(最高 3.4 MHz)接口传输该读数。有关 P3T1755 的详细信息,请参阅其数据手册。
- 使用了一个 MCU 抽象库:
r01lib。该库通过简单的 API 演示串行总线和 GPIO 引脚的操作,方便您轻松编写演示代码。这些 API 的灵感源自 Arm Mbed SDK。此库作为示例代码的一部分分发。
主板:FRDM-MCXN947、FRDM-MCXA153
类别:传感器
外设:I3C
工具链:MCUXpresso IDE
目录
1.软件
- 以下两个中的一个取决于您的硬件
- 适用于FRDM-MCXN947的MCUXpresso SDK v2.14.0或更高版本
- 适用于FRDM-MCXA153的MCUXpresso SDK v2.14.2或更高版本
- MCUXpresso IDE 11.9.1或更高版本(使用11.9.1和11.10.0检查操作)
2.硬件
- 下面两个中的一个
- 个人电脑
- Type-C USB 线缆
- 示波器
- (选配)P3T1755DP Arduino? Shield 评估板
3. 设置
3.1 - 步骤 0:连接硬件
- 通过 USB 电缆将 FRDM-MCXN947 或 FRDM-MCXA153 板连接到 PC
- (选项)将 I3C 信号连接到示波器
- FRDM-MCXN947:SDA=J5-3,SCL=J5-4
- FRDM-MCXA153:SDA=J20, SCL=J21)
3.2 - 步骤 1:下载并安装所需软件
- 下载并安装MCUXpresso IDE 11.9.1 或更高版本
- 下载并安装以下之一
- 适用于 FRDM-MCXN947 的MCXUpresso SDK v2.14.0 或更高版本
- 适用于 FRDM-MCXA153 的MCXUpresso SDK v2.14.2 或更高版本
3.3 - 步骤 2:从 APP-CODE-HUB 下载代码并导入
?注意?:如果您使用的是 MCUXpresso SDK v2.14.x,IDE 将显示错误消息“未找到 SDK v2.16,它将使用 v2.14.x”。这是预期消息,您只需按“确定”按钮即可使用代码。每个项目都会显示此消息。每次按“确定”按钮即可。
?注意?:即使您使用 MCUXpresso SDK v2.16.0,也可能会弹出选择 SDK 的对话框。在这种情况下,用户可能无需选择 SDK 版本。点击“OK”按钮即可关闭所有项目都会显示的对话框。
3.4 - 步骤 3:构建并运行
- 在左上窗格的“项目资源管理器”面板中选择
P3T1755_FRDM_MCXN947_demo或项目P3T1755_FRDM_MCXA153_demo - 单击“快速启动面板”中的“调试”图标或图标工具栏中的“开始调试项目”图标(蓝色虫子图标)
- IDE 将找到 MCU 板并从启动的“main()”函数恢复程序
- 按“继续”按钮从那里继续
4.结果
- 温度值显示在 MCUXpresso IDE 的终端面板(中下窗格)上
- LED闪烁颜色随温度而改变
- 用手指触摸P3T1755加热或用吹风机、冷却屏观察数值变化
- 在启用 IBI 的示例中,IBI 事件将显示在终端面板中。触发 IBI 的默认设置是温度比程序启动时高 2 摄氏度(THIGH 寄存器设置为 Tprogramstart + 2 摄氏度)。当温度降至 Tstart + 1 摄氏度时,IBI 将再次触发。
- 探测 I3C 信号并确认波形。在启用 IBI 的示例中,D2 引脚在 IBI 事件发生时向示波器输出触发信号(下降沿)。
5. 项目(本仓库的内容)
此示例包含以多种方式演示 I3C 的项目。
下一个列表展示了这些项目及其功能。
| 项目名称 | 目标板 | 目的 | I3C操作 | LED 操作 | 伊比利亚 | 直接抗癌剂 |
| ------------------------------- | -------------- | ---------------------------------- | --------- | ---------- | ---------- | -------------- |
| P3T1755FRDMMCXA153演示 | FRDM-MCXA153 | 具有 LED 闪烁颜色变化的 I3C 演示 | ? | ? | ? | 来自静态地址 |
| P3T1755FRDMMCXA153演示DAA | FRDM-MCXA153 | 具有 LED 闪烁颜色变化的 I3C 演示 | ? | ? | ? | 动态的 |
| P3T1755FRDMMCXA153简单 | FRDM-MCXA153 | 展示P3T1755设备类基本操作 | ? | | | 来自静态地址 |
| P3T1755FRDMMCXA153基本操作 | FRDM-MCXA153 | 展示 I3C 类基本操作 | ? | | | 来自静态地址 |
| P3T1755FRDMMCXN947演示 | FRDM-MCXN947 | 具有 LED 闪烁颜色变化的 I3C 演示 | ? | ? | ? | 来自静态地址 |
| P3T1755FRDMMCXN947演示DAA | FRDM-MCXN947 | 具有 LED 闪烁颜色变化的 I3C 演示 | ? | ? | ? | 动态的 |
| P3T1755FRDMMCXN947简单 | FRDM-MCXN947 | 展示P3T1755设备类基本操作 | ? | | | 来自静态地址 |
| P3T1755FRDMMCXN947基本操作 | FRDM-MCXN947 | 展示 I3C 类基本操作 | ? | | | 来自静态地址 |
| r01libfrdmmcxa153 | FRDM-MCXA153 | 应用程序项目链接的库 | | | | |
| _r01libfrdm_mcxn947 | FRDM-MCXN947 | 应用程序项目链接的库 | | | | |
注意: "项目
_r01lib_*是库。这些代码不能单独执行
6. 常见问题
- 如何操作带有 FRDM-MCX N947的 P3T1755DP-ARD ?
- 对于 FRDM-MCXN947,需要通过 4 线连接 P3T1755DP-ARD。通过此连接,两个 P3T1755 温度传感器连接到 I3C 总线。Arduino 扩展板的 P3T1755 的 I?C 静态地址为
0x4C。

- 按照下一个示例修改代码,为 Arduino-shield 板上的 P3T1755 提供 I3C 动态地址。例如,在 中
P3T1755_FRDM_MCXN947_demo/source/main.cpp,可以按照下一个示例进行操作。
```c++include "r01lib.h"
include "pin_control.h"
include "temp_sensor/P3T1755.h"
include
undef P3T1755ADDRI2C // <-- ADD THIS LINE
define P3T1755ADDRI2C 0x4C // <-- ADD THIS LINE
I3C i3c( I3CSDA, I3CSCL );
P3T1755 p3t1755( i3c, P3T1755ADDRI2C );
```
- 对于 FRDM-MCXN947,需要通过 4 线连接 P3T1755DP-ARD。通过此连接,两个 P3T1755 温度传感器连接到 I3C 总线。Arduino 扩展板的 P3T1755 的 I?C 静态地址为
- 如何操作带有 FRDM-MCX A153的 P3T1755DP-ARD ?
- 对于 FRDM-MCXN153,P3T1755DP-ARD 可以直接放在 Arduino-shield 插座上。

- 修改下一个示例中的代码,重新布线 D18 和 D19 上的 I3C 线(FRDM-MCXA513 上 J2 的 18 和 20 引脚,P3T1755DP-ARD 上 J5 的 9 和 10 引脚)。在此设置下,I3C 总线通过电压电平转换器 NTS0304 进行操作。NTS0304 会加速开漏信号的上升时间,但 I3C 仍可正常工作。
c++
//I3C i3c( I3C_SDA, I3C_SCL ); // REPLACE THIS LINE TO NEXT
I3C i3c( I2C_SDA, I2C_SCL ); // USE I2C_SDA and USE I2C_SCL ("3" → "2")
- 对于 FRDM-MCXN153,P3T1755DP-ARD 可以直接放在 Arduino-shield 插座上。
- 将项目导入 Visual Studio Code (VSC)
使用 MCUXpresso for VS Code 1.10 或更高版本正确导入项目。
7. 支持
- 访问 NXP 传感器社区页面获取更多支持 - NXP 社区
- 了解有关 P3T1755 的更多信息:I3C、I2C 总线接口、0.5°C 精度、数字温度传感器,请参阅 - P3T1755 产品摘要页面
- “系统管理 I?C、I3C 和 SPI 选择器指南” 包括 I3C 总线介绍,请参阅 -传感器开发生态系统
项目元数据
有关此示例的内容/正确性的问题可以作为此 GitHub 存储库中的问题输入。
来源:恩智浦appcodehub
1200
