主要内容

使用意法半导体核董事会从I2C-Based传感器读取数据

这个例子展示了如何使用仿真软件®编码器™支持方案配置和读取数据从一个金宝appI2C-based传感器金宝app使用一个意法半导体®而言。

金宝app意法半导体方案仿真软件®金宝app编码器™®核板使您能够使用I2C接口与I2C通信基础设备。

在这个例子中,您将学习如何沟通TMP102 Sparkfun数字温度传感器。这个传感器与意法半导体界面的使用I2C总线板核。默认情况下,它发送一个12位温度分辨率为0.0625摄氏度。您可以配置这个传感器可扩展模式,提供了温度测量。更多的关于设备的详细信息,请参考TMP102数据表

在这个例子中,您还将学习如何沟通Sparkfun数字6自由度加速度计和陀螺测试仪传感器。这个传感器与意法半导体界面的使用I2C总线板核。它将发送X, Y, Z轴加速度计和陀螺测试仪的数据传感器在传感器。这些传感器需要单独配置,作为两种不同的I2C奴隶寄存器。更多的关于设备的详细信息,请参考ADXL345数据表itg - 3200数据表

这个例子展示了如何编写意法半导体核委员会:

  • 从TMP102读取温度传感器使用I2C总线。它也演示了如何编程意法半导体核委员会与一些高级设置初始化传感器。

  • 从ITG3200读取加速度计和陀螺测试仪数据/ ADXL345传感器使用I2C主读取块并将其显示。

可用的模型这个例子:

STM核板:stmnucleo_I2C_temp

STM核板:stmnucleo_I2C_temp_extendedMode

STM核板:stmnucleo_AccelGyro_extmode

意法半导体的模型提供预配置F401RE核。您可以配置此模型对于其他支持其核心板通过浏览金宝app配置参数>硬件实现>硬件板并选择所需的董事会。

先决条件

我们建议以下例子:

所需的硬件

要运行这个示例,您将需要以下硬件:

模型

下图显示了示例模型:

TMP102传感器连接到意法半导体核

在这个任务中,您将TMP102传感器连接到意法半导体核。意法半导体车载LED 13销核表明当TMP102阅读超过指定的温度阈值。

TMP102传感器连接到意法半导体核板使用下表:

TMP102销|意法半导体F401RE销核_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ VCC | 3.3 V接地|接地SDA | 14 sci | 15 ALT |没有连接ADD0 |接地_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

大部分的核板使用mb抽象,从而实现Arduino®Uno头这意味着相同针用于指定功能。然而F031K6核,Arduino nano头使用mb抽象。

TMP102销|意法半导体F031K6销核_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ VCC | 3.3 V接地|接地SDA | 4 sci | 5 ALT |没有连接ADD0 |接地_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

配置模型支持意法半导体核金宝app

在这个任务中,您将配置的模型支持意法半导体核金宝app

1。打开从一个基于I2C读取温度传感器使用意法半导体核模型。

2。在你的仿真软件模金宝app型,打开建模选项卡并按CTRL + E配置参数对话框打开。

3所示。选择硬件实现窗格中,选择所需的意法半导体而言的硬件实现>硬件板参数列表。不改变任何设置。

4所示。点击好吧

配置模型使用I2C读块读取温度

在这个任务中,您将配置模型读取数据从TMP102传感器使用I2C主读块。

1。打开从一个基于I2C读取温度传感器使用意法半导体核模型。

2。配置I2C读块:

  • 打开I2C阅读。请注意,奴隶设备地址块的参数被设置为“0 x48”。TMP102 ADD0销的传感器是对应于一个接地7位地址1001000 (0 x48十六进制)的根据TMP102数据表

  • TMP102传感器包含多个寄存器。开启电源从设备读取数据返回的值存储在寄存器0 -温度寄存器(只读)。离开寄存器读取I2C的奴隶参数不一样你会读到默认温度寄存器在这一步。

  • 温度寄存器的16位的大小。这12位温度的值存储在左侧调整2的补充形式。TMP102传感器使用大端字节发送数据。选择数据类型“uint16”,字节次序“Big Endian”,数据大小(N)1,样品时间到0.1。这发起一个I2C读请求每0.1秒。

3所示。在模型中注意以下几点:

  • 数据类型转换块是用来读取数据转换为int16照顾正负温度。

  • 获得是用来把int16数据块由4位(除16)到右证明上面的12位对应的温度测量。的获得也增加了12位数据块的传感器分辨率0.0625获得相应的温度在摄氏度。

  • 这两个常数块1和0的值使用开关块比较温度读数的阈值27摄氏度。这个意法半导体发光核董事会领导销13当TMP102传感器读数超过指定的温度阈值。应用传感器的温度变化来观察这种行为。

用仿真软件IO模型在正常模式下运行金宝app

在这个任务中你将模拟模型正常模式仿真软件I金宝appO验证设计之前生成代码和部署模型在其核心板上。更多信息见使用连接IO与硬件通信

模拟与仿真软件IO模型在正常模式下:金宝app

1。使模型IO中描金宝app述如何启用连接输入输出

2。单击运行模型的工具栏上的按钮来运行它在正常模式。在模拟过程中,显示阻止显示温度读数TMP102传感器在摄氏度。当温度读数超过27摄氏度的阈值,导致其核心板上开始发光。

3所示。单击停止仿真软件模型中的按钮结束正常金宝app模式执行。

监控和调优配置硬件和模型

在这个任务中,您将配置硬件和执行监视和优化操作监控温度。

1。打开建模选项卡和新闻Ctrl + E打开配置参数对话框。

2。导航到硬件实现>目标硬件资源>外部模式>串行通讯端口并输入串行接口的COM端口在Windows®。

3所示。打开硬件选项卡并单击监视和优化

4所示。请注意,显示块模型中显示了TMP102传感器在摄氏度温度读数。

5。观察意法半导体核F401RE车载LED发光时显示块模型中显示了一个温度超过27摄氏度。

6。变化的阈值根据您的环境温度并点击开关部件应用。看到车载LED发光当温度超过阈值。

7所示。单击停止按钮硬件标签结束执行监视和优化。

模型

下面的图显示了示例模型为下一个任务:

配置模型初始化温度传感器可扩展模式

这个任务显示了如何初始化TMP102传感器可扩展模式。

1。打开初始化和从I2C读取温度传感器使用意法半导体核模型。

2。注意到两个子系统模型:

One_time_initialization子系统配置TMP102传感器可扩展模式。

Execution_loop子系统可读取温度。

  • One_time_initialization子系统只执行一次的第一步的执行模型。对于其余的执行时间,Execution_loop子系统运行。这种选择性执行子系统处理使用单位延迟启用子系统在模型库。金宝app

  • 传感器在扩展模式通过设置配置新兴市场配置寄存器1根据TMP102数据表。这意味着一个值“0 x60b0”编写的配置寄存器位于地址1 TMP102传感器。

3所示。打开One_time_initialization子系统。

4所示。配置I2C大师写块写的配置寄存器TMP102传感器:

  • 打开I2C大师写块。的奴隶设备地址块的参数被设置为“0 x48”。

  • 选择使寄存器访问参数。然后奴隶寄存器地址参数出现在块中。

  • 设置I2C奴隶设备寄存器地址参数为1。配置寄存器的地址是1按TMP102数据表

  • 设置奴隶字节顺序参数大端字节的配置寄存器的大小16位,其价值需要通过I2C总线发送使用大端字节序。

5。请注意以下的One_time_initialization子系统:

  • 常数块包含一个值“0 x60b0”被写入的配置寄存器。

  • I2C主读块连接到显示块确保正确的数据写入配置寄存器。I2C读块I2C写块使用相同的设置。

  • I2C写块的优先级设置为1。I2C读块的优先级设置为任何值高于1,确保你读配置寄存器的值设置后。设置一块的优先级,右键单击>属性>一般>块优先级。了解更多关于块优先级和它们对块执行顺序的影响,参考设置块属性

6。打开Execution_loop子系统和遵守以下几点:

  • 获得8块执行一个业务部门,它对应于一个转变的3位。部门的证明可温度的值。

  • 类似于任务4,用仿真软件IO模型在正常模式下运行。金宝app

  • 5,类似于任务执行监视和优化。

ITG3200 / ADXL345传感器连接到意法半导体核

在这个任务中,您将ITG3200 / ADXL345传感器连接到意法半导体核。

1。ITG3200 / ADXL345传感器连接到意法半导体核板使用下表:

ITG3200 / ADXL345销|意法半导体F401RE销核_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ VCC | 3.3 V接地|接地SDA | 14 sci | 15 INT0 |没有连接INT1 |没有连接_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2。类似于任务2,配置模型支持意法半导体核。金宝app

模型

下面的图显示了示例模型为下一个任务:

使用I2C配置模型读取传感器数据读取块

这个任务显示了如何初始化ITG3200 / ADXL345销传感器测量模式。

1。打开读取传感器数据使用I2C掌握阅读意法半导体核块板模型。

2。注意到两个子系统模型:

Get_Accel_data子系统配置ADXL345传感器读取加速度计数据。

  • 在Get_Accel_data子系统中配置的传感器是测量模式通过设置测量POWER_CTL注册08年的ADXL345数据表。这意味着一个值的“(”写入POWER_CTL注册位于地址0 x2d ADXL345传感器。这个值是使用一个常数写块之外的子系统。

Get_Gyro_data子系统配置ITG3200传感器读取陀螺测试仪数据。

  • 在Get_Gyro_data子系统中配置的传感器锁相环与X陀螺参考通过设置第一个电源管理登记01的itg - 3200数据表。这意味着一个值“0 x01”写到电源管理寄存器位于地址0 x3e itg - 3200的传感器。这个值是使用一个常数写块之外的子系统。

3所示。打开Get_Accel_data子系统。

4所示。配置I2C大师写块写的POWER_CTL寄存器ADXL345传感器:

  • 打开I2C大师写块。的奴隶设备地址块的参数被设置为“0 x53”因为这是奴隶地址。

  • 选择使寄存器访问参数。然后奴隶寄存器地址参数出现在块中。

  • 设置I2C奴隶设备寄存器地址参数为0 x2d。POWER_CTL寄存器的地址0 x2d按ADXL345数据表

  • 设置奴隶字节顺序参数小端字节序的POWER_CTL注册有一个8位的大小,其价值需要通过I2C总线发送使用小端字节序。

5。请注意以下的Get_Accel_data子系统:

  • 提供的输入端口是一个值的“(”写入POWER_CTL登记。

  • I2C主读块连接到显示块确保正确的数据写入POWER_CTL登记。I2C读块I2C写块使用相同的设置。

6。打开Get_Gyro_data子系统。

7所示。I2C配置主写块写ITG3200传感器的电源管理登记:

  • 打开I2C大师写块。的奴隶设备地址块的参数被设置为“0 x68”因为这是奴隶地址。

  • 选择使寄存器访问参数。然后奴隶寄存器地址参数出现在块中。

  • 设置I2C奴隶设备寄存器地址参数为0 x3e。电源管理注册的地址是0 x3e按ITG3200数据表

  • 设置奴隶字节顺序参数小端字节序的电源管理注册有一个8位的大小,其价值需要通过I2C总线发送使用小端字节序。

8。请注意以下的Get_Gyro_data子系统:

  • 提供的输入端口的值“0 x01”写入电源管理登记。

  • I2C主读块连接到显示块确保正确的数据写入到电源管理登记。I2C读块I2C写块使用相同的设置。

  • 为子系统I2C写块的优先级设置为1。I2C读块的优先级设置为任何值高于1,确保你读POWER_CTL /电源管理寄存器的值设置后。设置一块的优先级,右键单击>属性>一般>块优先级。了解更多关于块优先级和它们对块执行顺序的影响,参考设置块属性

9。类似于任务4,用仿真软件IO模型在正常模式下运行。金宝app

10。5,类似于任务执行监视和优化。

注意:在监视和优化的情况下默认的串行传输(USBTX)和串行接收(USBRX)。相应的GPIO管脚分别USBTX和USBRX D1和D0。这将需要编辑其他串行传输和串行接收销的SCI模块在监视和优化运行。编辑这些设置到“模拟>模型配置参数> >硬件实现目标硬件资源> SCI”和编辑适当的针销和传输销。如果你想在硬件构建和部署代码没有运行监视和优化,保持默认设置,因为它是在模拟>模型配置参数> >目标硬件资源> SCI硬件实现。

其他的事情努力

  • 配置TMP102传感器恢复输出12位。

  • 改变传感器的ADC的转化率使用配置寄存器。指连续转化模式和配置寄存器部分TMP102数据表为更多的细节。

  • 指的是TMP102数据表并尝试配置TMP102运行关机模式和/或比较器模式。试图改变High-and-Low-Limit-Registers的值。

  • 指的是ADXL345数据表并尝试配置在不同的g ADXL345范围设置使用寄存器数据格式。

  • 按以下步骤在这个例子中其他基于I2C通信传感器。