主要内容

通过I2C接口传输数据

典型的工作流程涉及适配器发现,连接,通信和清理。发现只能在适配器级别完成。您需要提供总相位AARDVark主机适配器或安装的NI USB-845x适配器板以使用I2C.界面。

AARDVark示例

此示例显示如何使用AARDVark适配器与电路板上的EEPROM芯片与EEPROM芯片进行通信,以及使用AARDVark适配器的50 Hex和0的电路板索引。

要与EEPROM芯片进行通信:

  1. 确保安装了AARDVark适配器,以便您可以使用I2C.界面。

    instrhwinfo('i2c'
    ANS =具有属性的HardwareInfo:SimberAdaptors:{AardVark''NI845x'} JarfileVersion:'4.1'对您的硬件访问可能由支持包提供。金宝app转到支持包安装程序以金宝app了解更多信息。
  2. 查看适配器属性。

    instrhwinfo('i2c''aardvark'
    ans = hosplateininfo with属性:Adapordllname:'C:\ Program Files \ Matlab \ R2019B \ Toolbox \ instrumentAdaptors \ Win64 \ MwaardVarki2c.dll'AtaborDllversion:'4.1'AdaptorName:'Aardvark'SoundIdsinuse:[1×0双]安装板:0检测板晶体:{'2237482577(BoardIndex:0)'} ObjectConstructorName:'I2C('Aardvark',BoardIndex,Remoteaddress);'Vendordllname:'aardvark.dll'VendordRiverDescription:'总阶段I2C驱动程序'对硬件的访问可能由支持包提供。金宝app转到支持包安装程序以金宝app了解更多信息。

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

  3. 创建一个名为i2c对象EEPROM.,使用以下属性。

    %vendor = aardvark%boardIndex = 0%remoteaddress = 50hEEPROM = I2C('aardvark',0,'50h'
    I2C对象:I2C-0-50H通信设置BoardIndex 0 BoardSerial 2237482577 Bitrate:100 kHz Remoteaddress:50H供应商:AARDVark通信状态状态:CLOSED RECORDSTATUS:OFF READ / WRITE状态TRANSFERSTATUS:空闲

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

  4. 连接到芯片。

    FOPEN(EEPROM)
  5. '你好,世界!'到EEPROM芯片。数据在I2C中写入逐页。每个页面包含八个字节。在写入的每个字节之前需要提及页面地址。

    字符串的第一个字节'你好,世界!''你好禾'。它的页面地址为0。

    fwrite(EEPROM,[0'你好禾'])

    字符串的第二个字节'你好,世界!''rld!'。它的页面地址是8。

    fwrite(EEPROM,[8'rld!'])
  6. 使用芯片读取数据吓唬功能。芯片返回发送给它的字符。

    要从第一页的第一个字节开始读取,请将零写入I2C.目的。

    fwrite(EEPROM,0)
    Char(欺诈(EEPROM,12))'
    ans ='你好世界!'
  7. 断开I2C设备的连接并清除工作区的对象。

    FCLOSE(EEPROM)清除EEPROM.

ni usb-845x示例

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

要与传感器芯片通信:

  1. 确保安装了NI USB-845x适配器,以便您可以使用I2C.界面。

    instrhwinfo('i2c'
    ANS =具有属性的HardwareInfo:SimberAdaptors:{AardVark''NI845x'} JarfileVersion:'4.1'对您的硬件访问可能由支持包提供。金宝app转到支持包安装程序以金宝app了解更多信息。
  2. 查看NI USB-845x适配器属性。

    instrhwinfo('i2c''ni845x'
    ans = hosplateInfo具有属性:Adaptordllname:'C:\ Program Files \ Matlab \ R2019B \ Toolbox \ instrumentAdaptors \ Win64 \ MWNI845XI2C.dll'AtabeOrdllversion:'版本4.1'AdaptorName:'Ni845x'BoardIdsinuse:[1×0双]安装板Vendordllname:'ni845x.dll'VendordriverDescription:'NITN Instruments NI USB 845x驱动程序对您的硬件的访问可能由支持包提供。金宝app转到支持包安装程序以金宝app了解更多信息。

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

  3. 创建一个名为i2c对象i2cobj.,使用这些属性:

    %vendor = ni845x%boardIndex = 0%remoteaddress = 53hi2cobj = i2c('ni845x',0,'53h');

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

  4. 连接到芯片。

    FOPEN(I2COBJ)
  5. 写入传感器芯片。读取芯片的文档或数据表,以便知道远程地址是有关芯片的其他信息。通常芯片制造商提供单独的读写地址。适配器板仅占用一个地址(读取地址)并处理读写地址的转换。

    在这种情况下,芯片的设备ID寄存器在地址处0.,因此您需要将0写入0到表示您想要读取或写入寄存器的芯片。

    fwrite(i2cobj,0)
  6. 使用芯片读取数据吓唬功能。通过发送一个字节,可以读取设备ID注册表。对于此芯片,只读设备ID注册表为229。

    欺诈(i2cobj,1)
    ans = 229.
  7. 断开I2C设备的连接并清除工作区的对象。

    fclose(i2cobj)清除i2cobj.

也可以看看

||||

相关话题