主要内容

通过I2C接口传输数据

典型的工作流程包括适配器发现、连接、通信和清理。只能在适配器级别进行发现。您需要安装一个Total Phase Aardvark主机适配器或NI USB-845x适配器板才能使用i2c接口。

Aardvark的例子

这个示例展示了如何使用Aardvark适配器与电路板上的EEPROM芯片通信,该电路板的地址为50十六进制,板索引为0。

与EEPROM芯片通信:

  1. 确保已安装Aardvark适配器,以便可以使用i2c接口。

    instrhwinfo (“i2c”
    ' 'Aardvark' 'NI845x'} JarFileVersion: 'Version 4.1'访问您的硬件可能由支持包提供。金宝app转到支持包安装程序了金宝app解更多信息。
  2. 查看适配器属性。

    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接口使用要求和指引

  3. 创建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适配器.扫描发现的任何芯片都列在硬件树中。该清单包括芯片的远程地址。

  4. 连接到芯片。

    fopen (eepm)
  5. “Hello World !”到EEPROM芯片上数据在I2C中逐页写入。每页包含8个字节。需要在写入每个字节的数据之前提到页地址。

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

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

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

    写入文件(eepm [8“行!”])
  6. 从芯片中读取数据从文件中读函数。芯片返回发送给它的字符。

    要从第一页的第一个字节开始读取,将0写入i2c对象。

    写入文件(eepm, 0)
    char(从文件中读(eepm 12))”
    ans = 'Hello World!'
  7. 断开I2C设备并从工作空间清除该对象。

    文件关闭(eepm)清晰eepm

NI USB-845x示例

这个例子展示了如何与模拟设备通信®ADXL345传感器芯片在电路板上,在NI USB-845x适配器上使用53十六进制地址和0板索引。在这种情况下,NI USB-845x适配器板插入计算机(通过USB端口),包含传感器芯片的电路板通过电线连接到主机适配器板。注意,电路有外部拉拔,因为本例中使用的NI USB-8451适配器没有内部拉拔。

要与传感器芯片通信:

  1. 请确保已安装NI USB-845x适配器,以便使用i2c接口。

    instrhwinfo (“i2c”
    ' 'Aardvark' 'NI845x'} JarFileVersion: 'Version 4.1'访问您的硬件可能由支持包提供。金宝app转到支持包安装程序了金宝app解更多信息。
  2. 看看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接口使用要求和指引

  3. 创建I2C对象i2cobj,使用这些属性:

    %供应商= NI845x% BoardIndex = 0% RemoteAddress = 53hI2cobj = i2c(“NI845x”0,“53 h”);

    您必须提供这三个输入来创建对象。要识别芯片的地址,请查阅其文档或数据表。您也可以通过在测试和测量工具中扫描仪器来查找地址。在工具中,右键单击I2C节点并选择扫描I2C适配器.扫描发现的任何芯片都列在硬件树中。该清单包括芯片的远程地址。

  4. 连接到芯片。

    fopen (i2cobj)
  5. 写入传感器芯片。阅读芯片的文档或数据表,以了解远程地址是什么以及关于芯片的其他信息。通常芯片制造商提供单独的读写地址。适配器板只接受一个地址(读地址)并处理读和写地址的转换。

    在这种情况下,芯片的设备ID寄存器位于address0,所以你需要写一个0到芯片,表示你想读或写寄存器。

    写入文件(i2cobj, 0)
  6. 从芯片中读取数据从文件中读函数。通过发送一个字节,您可以读回设备ID注册表。对于该芯片,只读设备ID注册表为229。

    从文件中读(i2cobj, 1)
    Ans = 229
  7. 断开I2C设备并从工作空间清除该对象。

    文件关闭(i2cobj)清晰i2cobj

另请参阅

||||

相关的话题