主要内容

aardvark

Total Phase Aardvark 适配器连接

自 R2023a 起

    说明

    aardvark 对象表示与 Total Phase® Aardvark I2C/SPI™ 主机适配器的连接。Aardvark™ 控制器可以连接一个或多个 I2C 外围设备。要配置 Aardvark 控制器上的外围设备并与之通信,您必须首先创建一个 aardvark 对象,然后使用 device 函数。您可以使用单个 aardvark 对象连接到多个外围设备。MATLAB® 中的 aardvark 对象始终具有 I2C 控制器角色,不能用于外设角色。

    注意

    要使用 aardvark 接口,您必须安装 Instrument Control Toolbox™ Support Package for Total Phase Aardvark I2C/SPI Interface。有关详细信息,请参阅Install Instrument Control Toolbox Support Package for Total Phase Aardvark I2C/SPI Interface

    创建对象

    描述

    controller = aardvark(serialNumber) 创建与由序列号 serialNumber 指定的 Total Phase Aardvark I2C/SPI 主机适配器的连接。您可以通过调用 aardvarklist 函数来查找您的 Aardvark 控制器的序列号。

    输入 serialNumber 设置 SerialNumber 属性。

    示例

    controller = aardvark(serialNumber,Name=Value) 创建与 Aardvark 控制器板的连接,并使用一个或多个名称-值参量设置属性,其中 Name 是属性名称,Value 是对应的值。使用名称-值参量 Name1=Value1,...,NameN=ValueN 设置 EnablePullupResistorsEnableTargetPower 属性,其中 Name 是属性名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量的顺序没有要求。

    不带参量的 controller = aardvark 尝试创建一个与最后成功连接的 Aardvark 控制器板的连接。如果您之前未连接到 Aardvark 控制器,使用此语法会创建与 aardvarklist 输出中第一个可用控制器的连接。

    示例

    属性

    全部展开

    此 属性 为只读。

    控制器板模型,指定为 Total Phase Aardvark

    示例: controller.Model 返回模型 Total Phase Aardvark

    数据类型: string

    此 属性 为只读。

    Total Phase Aardvark 控制器板的唯一数值标识符,指定为字符串标量。此属性只能在对象创建时设置。

    示例: controller.SerialNumber 返回 Aardvark 控制器的唯一标识符。

    数据类型: string

    自 R2024a 起

    用于标识连接的标签,指定为字符串。使用 Tag 将标签应用于连接,您可以稍后使用 aardvarkfind 访问该连接。当您在一个函数中打开连接并使用另一个函数对该连接执行操作时,这样做非常有用。它对于定位和访问 App 回调中的连接也很有用。

    示例: controller.Tag = "pSupply"

    数据类型: string

    此 属性 为只读。

    Aardvark 控制器上可用的数字引脚,指定为字符串数组。使用这些引脚将您的 I2C 外围设备连接到控制器。有关每个引脚的描述,请参阅 Aardvark 文档。使用 configureDigitalPinreadDigitalPinwriteDigitalPin 配置这些引脚并与之通信。

    示例: controller.AvailableDigitalPins 返回 Aardvark 控制器的数字引脚。

    数据类型: string

    此 属性 为只读。

    引脚的电压电平(以伏特为单位),指定为 3.3。这是 Aardvark 控制器上引脚唯一可能的电压电平。

    示例: controller.VoltageLevel 返回 Aardvark 引脚的电压电平。

    数据类型: double

    启用或禁用 I2C 线路内部上拉电阻的设置,指定为数值或逻辑值 1 (true) 或 0 (false)。每条 I2C 线路(SCL 和 SDA)都有一个 2.2 kΩ 电阻。启用时,它们上拉到 3.3 V,产生大约 1.5 mA 的上拉电流。

    示例: controller.EnablePullupResistors = false 禁用内部上拉电阻。

    数据类型: logical

    允许通过 Aardvark 控制器的引脚 4 和 6 向目标设备供电的设置,指定为数值或逻辑值 1 (true) 或 0 (false)。

    示例: controller.EnableTargetPower = false 禁用通过引脚 4 和 6 向目标设备供电。

    数据类型: logical

    此 属性 为只读。

    Aardvark 控制器的数字引脚模式,指定为表。该表包含列 PinModePin 列出了由 AvailableDigitalPins 指定的数字引脚,Mode 将其中每个引脚的引脚模式列为 inputoutput

    当您创建一个 aardvark 对象时,所有引脚默认均为输入。使用 configureDigitalPin 更改引脚模式。您可以使用 readDigitalPin 从输入引脚读取逻辑值,并使用 writeDigitalPin 向输出引脚发送逻辑电平值。

    示例: controller.DigitalPinModes 返回一个表,其中包含 Aardvark 控制器上数字引脚的引脚模式。

    数据类型: table

    对象函数

    configureDigitalPinSet digital pin mode on controller
    readDigitalPinRead logic level value of digital pin on controller
    writeDigitalPinWrite logic level value to digital pin on controller
    scanI2CBusScan for I2C peripheral devices connected to controller board

    示例

    全部折叠

    发现并连接到您计算机上的 Total Phase Aardvark I2C/SPI 主机适配器控制器板。

    使用 aardvarklist 列出连接到您计算机的所有可用 Total Phase Aardvark I2C/SPI 主机适配器控制器板。

    list = aardvarklist
    list = 
    
      1×2 table
    
                     Model             SerialNumber
             ______________________    ____________
    
        1    "Total Phase Aardvark"    "2239143731" 
    
    

    使用 SerialNumber 的值创建与您的 Aardvark 的连接。

    controller = aardvark(list.SerialNumber(1))
    controller = 
    
      Aardvark with properties:
    
                       Model: "Total Phase Aardvark"
                SerialNumber: "2239143731"
        AvailableDigitalPins: ["Pin1"    "Pin3"    "Pin5"    "Pin7"    "Pin8"    "Pin9"]
    
    

    您现在可以使用 device 函数连接到 Aardvark 控制器上的任何 I2C 外围设备。

    连接到 Total Phase Aardvark I2C/SPI 主机适配器并配置其上的引脚。

    使用其序列号连接到 Total Phase Aardvark。在此示例中,连接到计算机的 Aardvark 控制器板的序列号为 2239143731

    controller = aardvark("2239143731");

    使用 DigitalPinModes 属性查看控制器上可用的数字引脚及其各自的引脚模式。

    controller.DigitalPinModes
    ans =
    
      6×2 table
    
         Pin       Mode  
        ______    _______
    
        "Pin1"    "input"
        "Pin3"    "input"
        "Pin5"    "input"
        "Pin7"    "input"
        "Pin8"    "input"
        "Pin9"    "input"
    

    将引脚 5 配置为输出。

    configureDigitalPin(controller,"Pin5","output")

    由于引脚 5 是输出引脚,您现在可以使用 writeDigitalPin 向其发送逻辑高电平。

    连接到 Total Phase Aardvark I2C/SPI 主机适配器并扫描连接到它的 I2C 外围设备。

    使用其序列号连接到 Total Phase Aardvark。在此示例中,连接到计算机的 Aardvark 控制器板的序列号为 2239143731

    controller = aardvark("2239143731");

    确保您的 I2C 外围设备已物理连接到控制器。扫描已连接的 I2C 外围设备。scanI2CBus 函数返回这些外围设备的 I2C 地址列表。

    i2cAddresses = scanI2CBus(controller)
    i2cAddresses = 
    
      1×2 string array
    
        "0x38"    "0x50"

    在此示例中,连接了两个外围设备。您现在可以使用 device 函数和列出的 I2C 地址之一,创建与一个或多个外围设备的连接。请参考您的外围设备数据手册以确定其 I2C 地址。

    当您在脚本中或在 MATLAB 命令行中使用 aardvark 时,将建立与由 MATLAB 工作区中的对象表示的 Aardvark 控制器的连接。

    a1 = aardvark("2239143731")
    a1 = 
    
      Aardvark with properties:
    
                       Model: "Total Phase Aardvark"
                SerialNumber: "2239143731"
                         Tag: "" 
        AvailableDigitalPins: ["Pin1"    "Pin3"    "Pin5"    "Pin7"    "Pin8"    "Pin9"]
    

    当其他变量中不存在对同一连接的引用时,您可以通过清除工作区变量来断开与控制器的连接。

    clear(a1)

    使用 aardvarkfind 确认连接已关闭。

    aardvarkfind
    ans =
    
         []

    当您有存在于 MATLAB 工作区中或保存为类属性或 App 属性的 aardvark 连接时,该 aardvark 对象可能无法在不同函数或 App 回调中访问。在这种情况下,您可以使用 aardvarkfind 查找和删除该连接。

    A = aardvarkfind
    A = 
    
      Aardvark with properties:
    
                       Model: "Total Phase Aardvark"
                SerialNumber: "2239143731"
                         Tag: ""
        AvailableDigitalPins: ["Pin1"    "Pin3"    "Pin5"    "Pin7"    "Pin8"    "Pin9"]
    

    要关闭此连接,请删除 A

    delete(A)

    此命令删除 aardvark 对象并断开与设备的连接。如果您要重新连接到设备,您必须使用 aardvark 创建一个新连接。

    在删除后,调用 aardvarkfind 确认没有现有连接。

    aardvarkfind
    ans =
    
         []

    请注意,变量 A 仍存在于工作区中,但它现在是无效句柄。

    A
    A = 
    
      handle to deleted Aardvark

    由于 aardvark句柄对象,因此该变量在删除接口后仍存在。(有关这种类型的对象的详细信息,请参阅句柄对象行为。)您可以使用 clear 从工作区中删除无效的句柄。

    clear A

    版本历史记录

    在 R2023a 中推出

    全部展开