通过I2C接口传输数据

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

Aardvark的例子

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

与EEPROM芯片通信:

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

    instrhwinfo (“i2c”
    安装适配器:{'Aardvark' 'NI845x'} JarFileVersion: 'Version 4.1'可以通过支持包访问您的硬件。万博1manbetx转到支持包安装程序了万博1manbetx解更多信息。
  2. 查看适配器属性。

    instrhwinfo (“i2c”“豚”
    ans = HardwareInfo with properties: 'C:\Program Files\MATLAB\R2019b\toolbox\instrument\instrumentadaptors\win64\mwaardvarki2c.dll' AdaptorDllVersion: 'Version 4.1' AdaptorName: 'Aardvark' boardsinuse: [1×0 double] InstalledBoardIDs: 0 DetectedBoardSerials: {'2237482577 (BoardIndex: 0)'} ObjectConstructorName:VendorDllName: 'Aardvark', BoardIndex, RemoteAddress ' VendorDllName: 'Aardvark .dll' VendorDriverDescription: 'Total Phase i2c Driver'访问硬件可能由支持包提供。万博1manbetx转到支持包安装程序了万博1manbetx解更多信息。

    确保您已经安装了Aardvark软件驱动程序,并且Aardvark .dll在您的MATLAB路径上。有关详细信息,请参见I2C接口使用要求和指南

  3. 创建调用的I2C对象eepm,使用以下属性。

    %卖主=食蚁兽% BoardIndex = 0% RemoteAddress = 50heepm = i2c (“豚”0,“50 h”
    I2C对象:I2C-0-50h Communication Settings BoardIndex 0 BoardSerial 2237482577 BitRate: 100khz RemoteAddress: 50h Vendor: aardvark Communication State状态:closed RecordStatus: off读/写状态TransferStatus:空闲

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

  4. 连接到芯片。

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

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

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

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

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

    要从第一页的第一个字节开始读取,向i2c对象。

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

    文件关闭(eepm)清晰eepm

NI usb - 845 x的例子

这个例子展示了如何与模拟设备通信®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'可以通过支持包访问您的硬件。万博1manbetx转到支持包安装程序了万博1manbetx解更多信息。
  2. 看看NI USB-845x适配器的属性。

    instrhwinfo (“i2c”“NI845x”
    ans = HardwareInfo with properties: 'C:\Program Files\MATLAB\R2019b\toolbox\instrument\instrumentadaptors\win64\mwni845xi2c.dll' AdaptorDllVersion: 'Version 4.1' AdaptorName: 'NI845x' boardsinuse: [1×0 double] installledboardids: [1×0 double] DetectedBoardSerials: {0×1 cell} ObjectConstructorName:对您的硬件的访问可能由支持包提供。万博1manbetx转到支持包安装程序了万博1manbetx解更多信息。

    请确保已安装NI USB-845x软件驱动程序。有关详细信息,请参见I2C接口使用要求和指南

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

    % Vendor = NI845x% BoardIndex = 0% RemoteAddress = 53hi2cobj = i2c (“NI845x”0,“53 h”);

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

  4. 连接到芯片。

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

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

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

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

    文件关闭(i2cobj)清晰i2cobj

另请参阅

||||

相关的话题