主要内容

i2c

创建I2C对象

描述

I2C、Inter-Integrated电路是一个到协议支持双线式沟通。金宝app一个i2c对象表示一个MATLAB之间的联系®和一个I2C适配器板。金宝app支持适配器总阶段Aardvark I2C / SPI主机适配器和国家仪器™usb - 845 x适配器板。适配器有一个或多个传感器芯片连接到它。MATLAB将命令发送到适配器板,这是I2C控制器装置,为了与芯片,I2C外围设备。的i2c对象在MATLAB总是I2C控制器的作用,不能用于外围的作用。使用从文件中读写入文件i2c对象与芯片进行通信。

创建

描述

例子

i2cobj = i2c (供应商,boardIndex,remoteAddress)创建一个i2c对象与供应商,boardIndex,remoteAddress

  • 供应商必须是“豚”Aardvark适配器,使用阶段,或“NI845x”,使用NI usb - 845 x适配器板。这个输入设置供应商财产。

  • boardIndex指定适配器董事会和董事会指数0如果你只有一个适配器插入到你的电脑。这个输入设置BoardIndex财产。

  • remoteAddress指定的十六进制数字地址I2C外围设备通信和在文档或芯片的数据表。这个输入设置RemoteAddress财产。

你可以与多个I2C通信周边设备在同一个适配器使用单一i2c对象。与不同的I2C外围设备通信,首先创建对象和使用打开外部文件打开一个连接到适配器。然后,改变RemoteAddress财产的地址相应的外围设备。您现在可以使用写入文件从文件中读与指定的外围设备通信。这个工作流程的一个例子,看到与多个外围设备通信适配器从NI usb - 845 x

属性

全部展开

董事会指数适配器板,指定为一个整数。如果你只有一个适配器插入到你的电脑,董事会索引号0。如果您有多个适配器插入,每个董事会分配一个不同的索引号。确定董事会索引使用instrhwinfo (“i2c”、“Aardvark”)instrhwinfo (“i2c”、“NI845x”)。这个属性可以设置只有在对象创建。

例子:i2cobj = i2c(“豚”,1,' 50 h ')连接到Aardvark适配器的索引值1。

数据类型:|int8|int16|int32|uint8|uint16|uint32

这个属性是只读的。

I2C控制器通信设备的唯一标识符,指定为一个特征向量。

例子:i2cobj.BoardSerial返回总阶段的惟一标识符Aardvark适配器或NI usb - 845 x适配器。

数据类型:字符

比特率的适配器硬件,在千赫指定为一个正整数。使用一个比特率所支持的适配器和薯片。金宝app默认值是100千赫Aardvark和usb - 845 x适配器。

例子:i2cobj。比特率= 50集50 kHz的比特率。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

I2C外围设备地址,指定为0到127之间的数字(包容),十六进制数,特征向量,或字符串标量。确定芯片的地址,请参考其文档或数据表。你还可以找到地址通过扫描仪器的测试和测量工具。的工具,右键单击I2C节点并选择扫描I2C适配器。任何芯片中列出的扫描发现硬件树。芯片的清单包括远程地址。

您必须指定这个属性在对象创建后,你可以改变它通过使用点符号对象创建。外围地址指定为十六进制值以下的方法之一。

  • 附加h十六进制的数字作为特征向量或字符串标量。

  • 使用前缀0 x初的十六进制数字。

  • 使用hex2dec十六进制数作为输入参数。

从一个与多个I2C通信周边设备i2c对象,设置RemoteAddress到适当的外围设备地址。这个工作流程的一个例子,看到与多个外围设备通信适配器从NI usb - 845 x

请注意

当阅读这个属性使用点符号,它作为一个数字返回标量表示十六进制数字。将十六进制数,使用dec2hex。例如,dec2hex (i2cObj.RemoteAddress)返回I2C外围地址的十六进制数字i2c对象i2cObj

例子:i2cobj = i2c(“豚”,0,' 50 h ')i2cobj。RemoteAddress = 50 h '指定一个地址的50个十六进制。

例子:i2cobj = i2c(“豚”,0,0×50)i2cobj。RemoteAddress = 0×50指定一个地址的50个十六进制。

例子:i2cobj = i2c(“豚”,0,hex2dec (50))i2cobj。RemoteAddress = hex2dec (50)指定一个地址的50个十六进制。

数据类型:|int8|int16|int32|uint8|uint16|uint32|字符|字符串

I2C适配器供应商,指定为“豚”“NI845x”。供应商是“豚”如果您使用的是总Aardvark适配器和阶段“NI845x”如果您正在使用NI usb - 845 x适配器。这个属性可以设置只有在对象创建。

例子:i2cobj = i2c(“豚”,0,' 50 h ')连接到一个总阶段Aardvark适配器。

例子:i2cobj = i2c (' NI845x ' 0 ' 50 h ')连接到一个NI usb - 845 x适配器。

数据类型:字符|字符串

权力Aardvark适配器,指定为“没有”“两个”。你可以设置这个属性仅供Aardvark适配器。的值“两个”意味着两行,如果支持。金宝app的值“没有”意味着权力没有行。

请注意

如果目标是在总相位控制中心系列软件,您可能会收到一个错误当你试图连接到Aardvark适配器使用打开外部文件。手动设置选项,打开软件并选择目标的力量复选框。

例子:i2cobj。TargetPower = '同时'两行Aardvark适配器提供力量。

数据类型:字符|字符串

启用引体向上电阻、指定为“两个”“没有”。的值“两个”使2 k引体向上电阻保护I2C的硬件设备,如果支持。金宝app

设备使用不同引体向上。土豚和NI usb - 8452适配器内部引体向上电阻将两VDD的公交线路,并可以以编程方式设置。NI usb - 8451适配器没有这种类型的内部引体向上电阻器和,因此,需要外部引体向上。参考设备文档,以确保您使用正确的引体向上。

例子:i2cobj。PullupResistors = '没有'禁用拔起电阻。

数据类型:字符|字符串

对象的功能

打开外部文件 接口对象连接到仪器
从文件中读 从仪器读取二进制数据
写入文件 写入二进制数据的乐器
文件关闭 断开从仪器接口对象
记录 记录文件的数据和事件信息

例子

全部折叠

与一个AT24C02 eepm电路板上芯片,以50十六进制的一个地址和一个董事会指数为0,使用Aardvark适配器。

确保Aardvark适配器安装,这样您就可以使用i2c接口,然后查看适配器属性。

instrhwinfo (“i2c”)instrhwinfo (“i2c”,“豚”)
ans = HardwareInfo属性:InstalledAdaptors: {“Aardvark”“NI845x”} JarFileVersion: 4.1版本的访问您的硬件可能提供的支持包。金宝app去学习更多的支持包安金宝app装程序。ans = HardwareInfo属性:AdaptorDllName:“C: \ Program Files \ MATLAB工具箱\ R2019b \ \ \ instrumentadaptors \ win64 \ mwaardvarki2c工具。dll的AdaptorDllVersion: 4.1版本的AdaptorName:“Aardvark的BoardIdsInUse:[1×0双]InstalledBoardIDs: 0 DetectedBoardSerials: {“2237482577 (BoardIndex: 0) '} ObjectConstructorName:“i2c(“豚”,BoardIndex RemoteAddress); VendorDllName:土豚。dll”VendorDriverDescription:“总阶段I2C司机”访问您的硬件可能提供的支持包。金宝app去学习更多的支持包安金宝app装程序。

创建一个i2c对象命名i2cobj供应商“豚”,BoardIndex0,RemoteAddress50 h

i2cobj = i2c (“豚”0,“50 h”)
I2C对象:I2C-0-50h通信设置BoardIndex BoardSerial 0比特率:100千赫RemoteAddress: 50 h供应商:aardvark通信状态状态:关闭RecordStatus:从读/写国家TransferStatus:闲置

连接到芯片。

fopen (i2cobj)

请注意

如果目标是在总相位控制中心系列软件,您可能会收到一个错误当你试图连接到Aardvark适配器使用打开外部文件。手动设置选项,打开软件并选择目标的力量复选框。

“Hello World !”eepm芯片。在I2C数据写具体。每个页面包含八个字节。前面提到的页面地址需要写每一个字节的数据。

第一个字节的字符串“Hello World !”你好,我们的。它的页面地址是0。

写入文件(i2cobj [0你好,我们的])

第二个字节的字符串“Hello World !”“行!”。它的页面地址是8。

写入文件(i2cobj [8“行!”])

从第一个字节开始阅读第一页,写一个零i2c对象。

写入文件(i2cobj, 0)

读取数据从芯片使用从文件中读函数。芯片返回字符发送给它。

char(从文件中读(i2cobj 12))”
ans =“Hello World !”

I2C断开装置。

文件关闭(i2cobj)

清晰的对象从工作区。

清晰的i2cobj

与多个I2C通信周边设备从同一NI usb - 845 x适配器。你可以阅读来自多个外围设备使用Aardvark适配器。在这个例子中,两个外围设备是两个传感器电路板上芯片,62十六进制和53个十六进制地址。董事会指数为0。NI USB - 845 x适配器板插入电脑(通过USB端口),和一个包含传感器的电路板芯片通过电线连接到主机适配器板。

确保NI usb - 845 x安装适配器,以便您可以使用i2c接口,然后查看适配器属性。

instrhwinfo (“i2c”)instrhwinfo (“i2c”,“NI845x”)
ans = HardwareInfo属性:InstalledAdaptors: {“Aardvark”“NI845x”} JarFileVersion: 4.1版本的访问您的硬件可能提供的支持包。金宝app去学习更多的支持包安金宝app装程序。ans = HardwareInfo属性:AdaptorDllName:“C: \ Program Files \ MATLAB工具箱\ R2019b \ \ \ instrumentadaptors \ win64 \ mwni845xi2c工具。dll的AdaptorDllVersion: 4.1版本的AdaptorName:“NI845x”BoardIdsInUse:[1×0双]InstalledBoardIDs:[1×0双]DetectedBoardSerials:{0×1细胞}ObjectConstructorName:“i2c (NI845x, BoardIndex RemoteAddress); NI845x VendorDllName:。dll的VendorDriverDescription:国家仪器NI USB 845 x驱动程序的访问您的硬件可能提供的支持包。金宝app去学习更多的支持包安金宝app装程序。

创建一个i2c对象命名i2cobj供应商“NI845x”,BoardIndex0,RemoteAddress62 h。这的地址是偏远地址第一I2C你连接外围设备。

i2cobj = i2c (“NI845x”0,“62小时”)
I2C对象:I2C - 0 - 62 h通信设置BoardIndex BoardSerial 0比特率:100千赫RemoteAddress: 62 h供应商:NI845x通信状态状态:关闭RecordStatus:从读/写国家TransferStatus:闲置

打开一个连接到适配器NI usb - 845 x。这个连接的传感器芯片RemoteAddress指定在创建对象。

fopen (i2cobj)

写传感器芯片。你需要阅读芯片的文档或数据表找到远程地址和其他信息的芯片。在这种情况下,打开芯片注册通过发送它0

写入文件(i2cobj, 0)

读取数据从芯片使用从文件中读函数。通过发送一个字节,你可以阅读设备ID注册表。对于这个芯片,只读设备ID注册表是229。

从文件中读(i2cobj, 1)
ans = 229

切换到第二个传感器芯片通过设置RemoteAddress53小时。这的地址是偏远地址第二I2C你连接外围设备。你不需要重新连接适配器。

i2cobj。RemoteAddress =“53 h”;

写入和读取的传感器芯片。因为这个芯片是相同的第一个芯片,其设备ID注册也是229。

写入文件(i2cobj, 0)
从文件中读(i2cobj, 1)
ans = 229

I2C断开装置。

文件关闭(i2cobj)

清晰的对象从工作区。

清晰的i2cobj

版本历史

介绍了R2012a