通过I2C接口传输数据
典型的工作流程包括适配器发现、连接、通信和清理。只能在适配器级别进行发现。您需要安装一个Total Phase Aardvark主机适配器或NI USB-845x适配器板才能使用i2c
接口。
Aardvark的例子
这个示例展示了如何使用Aardvark适配器与电路板上的EEPROM芯片通信,该电路板的地址为50十六进制,板索引为0。
与EEPROM芯片通信:
确保已安装Aardvark适配器,以便可以使用
i2c
接口。instrhwinfo (“i2c”)
' 'Aardvark' 'NI845x'} JarFileVersion: 'Version 4.1'访问您的硬件可能由支持包提供。金宝app转到支持包安装程序了金宝app解更多信息。
查看适配器属性。
instrhwinfo (“i2c”,“豚”)
ans = HardwareInfo与属性:AdaptorDllName: 'C:\Program Files\MATLAB\R2019b\toolbox\instrument\instrumentadaptors\win64\mwaardvarki2c.dll' AdaptorDllVersion: 'Version 4.1' AdaptorName: 'Aardvark' boarardidsinuse: [1×0 double] InstalledBoardIDs: 0 DetectedBoardSerials: {'2237482577 (BoardIndex: 0)'} ObjectConstructorName: 'i2c('Aardvark', BoardIndex, RemoteAddress);' VendorDllName: 'Aardvark .dll' VendorDriverDescription: ''总阶段I2C驱动程序'可以通过支持包提供对硬件的访问。金宝app转到支持包安装程序了金宝app解更多信息。
确保您已经安装了Aardvark软件驱动程序,并且Aardvark .dll位于MATLAB路径上。详细信息请参见I2C接口使用要求和指引.
创建I2C对象
eepm
,使用以下属性。%供应商=食蚁兽% BoardIndex = 0% RemoteAddress = 50hEeprom = i2c(“豚”0,“50 h”)
I2C Object: I2C-0-50h Communication Settings BoardIndex 0 BoardSerial 2237482577 BitRate: 100khz RemoteAddress: 50h Vendor: aardvark Communication State Status: closed RecordStatus: off读写状态TransferStatus: idle
您必须提供这三个输入来创建对象。要识别芯片的地址,请查阅其文档或数据表。您也可以通过在测试和测量工具中扫描仪器来查找地址。在工具中,右键单击I2C节点并选择扫描I2C适配器.扫描发现的任何芯片都列在硬件树中。该清单包括芯片的远程地址。
连接到芯片。
fopen (eepm)
写
“Hello World !”
到EEPROM芯片上数据在I2C中逐页写入。每页包含8个字节。需要在写入每个字节的数据之前提到页地址。字符串的第一个字节
“Hello World !”
是你好,我们的
.它的页面地址是0。写入文件(eepm [0你好,我们的])
字符串的第二个字节
“Hello World !”
是“行!”
.其页面地址为8。写入文件(eepm [8“行!”])
从芯片中读取数据
从文件中读
函数。芯片返回发送给它的字符。要从第一页的第一个字节开始读取,将0写入
i2c
对象。写入文件(eepm, 0)
char(从文件中读(eepm 12))”
ans = 'Hello World!'
断开I2C设备并从工作空间清除该对象。
文件关闭(eepm)清晰eepm
NI USB-845x示例
这个例子展示了如何与模拟设备通信®ADXL345传感器芯片在电路板上,在NI USB-845x适配器上使用53十六进制地址和0板索引。在这种情况下,NI USB-845x适配器板插入计算机(通过USB端口),包含传感器芯片的电路板通过电线连接到主机适配器板。注意,电路有外部拉拔,因为本例中使用的NI USB-8451适配器没有内部拉拔。
要与传感器芯片通信:
请确保已安装NI USB-845x适配器,以便使用
i2c
接口。instrhwinfo (“i2c”)
' 'Aardvark' 'NI845x'} JarFileVersion: 'Version 4.1'访问您的硬件可能由支持包提供。金宝app转到支持包安装程序了金宝app解更多信息。
看看NI USB-845x适配器属性。
instrhwinfo (“i2c”,“NI845x”)
ans = HardwareInfo属性:AdaptorDllName: 'C:\Program Files\MATLAB\R2019b\toolbox\instrument\instrumentadaptors\win64\mwni845xi2c.dll' AdaptorDllVersion: 'Version 4.1' AdaptorName: 'NI845x' BoardIdsInUse: [1×0 double] InstalledBoardIDs: [1×0 double] DetectedBoardSerials: {0×1 cell} ObjectConstructorName: 'i2c('NI845x', BoardIndex, RemoteAddress);' VendorDllName: 'NI845x .dll' VendorDriverDescription: ''国家仪器NI USB 845x驱动程序'访问您的硬件可能由支持包提供。金宝app转到支持包安装程序了金宝app解更多信息。
请确保已安装NI USB-845x软件驱动程序。详细信息请参见I2C接口使用要求和指引.
创建I2C对象
i2cobj
,使用这些属性:%供应商= NI845x% BoardIndex = 0% RemoteAddress = 53hI2cobj = i2c(“NI845x”0,“53 h”);
您必须提供这三个输入来创建对象。要识别芯片的地址,请查阅其文档或数据表。您也可以通过在测试和测量工具中扫描仪器来查找地址。在工具中,右键单击I2C节点并选择扫描I2C适配器.扫描发现的任何芯片都列在硬件树中。该清单包括芯片的远程地址。
连接到芯片。
fopen (i2cobj)
写入传感器芯片。阅读芯片的文档或数据表,以了解远程地址是什么以及关于芯片的其他信息。通常芯片制造商提供单独的读写地址。适配器板只接受一个地址(读地址)并处理读和写地址的转换。
在这种情况下,芯片的设备ID寄存器位于address
0
,所以你需要写一个0到芯片,表示你想读或写寄存器。写入文件(i2cobj, 0)
从芯片中读取数据
从文件中读
函数。通过发送一个字节,您可以读回设备ID注册表。对于该芯片,只读设备ID注册表为229。从文件中读(i2cobj, 1)
Ans = 229
断开I2C设备并从工作空间清除该对象。
文件关闭(i2cobj)清晰i2cobj