exponenta event banner

Устранение неполадок интерфейса I2C

I2C, или Inter-Integrated Circuit, - интерфейс «микросхема-микросхема», поддерживающий двухпроводную связь. Поддержка Instrument Control Toolbox™ I2C позволяет открывать соединения с отдельными микросхемами и считывать и записывать соединения с отдельными микросхемами.

Интерфейс I2C Instrument Control Toolbox позволяет осуществлять межчиповое взаимодействие с помощью адаптера Aardvark или NI-845x хоста. Некоторые приложения этого интерфейса включают связь с SPD EEPROM и чипами NVRAM, связь с устройствами SMBus, управление акселерометрами, доступ к низкоскоростным ЦАП и АЦП, изменение настроек на цветных мониторах с использованием канала отображения данных, изменение громкости звука в интеллектуальных динамиках, считывание аппаратных мониторов и диагностических датчиков, визуализация данных, передаваемых от датчика I2C, и включение или выключение питания компонентов системы.

Поддерживаемые платформы

Для использования интерфейса NI-845x необходимо установить либо хост-адаптер Total Phase Aardvark, либо плату адаптера I2C.

Интерфейс I2C поддерживается на следующих платформах при использовании с адаптером хоста Aardvark:

  • Linux ® - программное обеспечение работает с Red Hat Enterprise Linux 4 и 5 с ядром 2.6. Это также может быть успешным с дистрибутивами SuSE и Ubuntu.

  • 64-разрядная версия Microsoft ® Windows ®

Примечание

Для R2018b и R2018a нельзя использовать адаптер Aardvark для интерфейсов I2C или SPI на платформе macOS. Вы по-прежнему можете использовать его в Windows и Linux. Для выпусков до R2018a можно использовать его на всех трёх платформах, включая Mac.

Интерфейс I2C поддерживается на следующих платформах при использовании с адаптером хоста NI-845x:

  • 64-разрядная версия Microsoft Windows

Обновления списка поддерживаемых в настоящее время платформ для MATLAB ® см. в разделе https://www.mathworks.com/support/sysreq/current_release/.

Требования к адаптеру

Для использования интерфейса NI-845x необходимо установить либо хост-адаптер Total Phase Aardvark, либо плату адаптера I2C. В следующих разделах описываются требования к каждому варианту.

Специальные требования к Aardvark

Чтобы использовать интерфейс I2C с адаптером Aardvark, загрузите пакет поддержки оборудования, чтобы получить последнюю версию драйвера, если драйвер еще не установлен. Если у вас уже установлен последний драйвер, вам не нужно загружать этот пакет поддержки.

Если драйвер Aardvark не установлен, см. раздел Установка всего пакета поддержки интерфейса Aardvark I2C/SPI.

Установите API-интерфейс программного обеспечения Aardvark и общую библиотеку, соответствующие вашей операционной системе.

aardvark.dll файл, поставляемый с платой адаптеров Total Phase Aardvark, должен быть доступен в одном из следующих мест для использования на платформах Windows:

  • Местоположение, из которого был запущен MATLAB (папка bin)

  • Текущая папка MATLAB (PWD)

  • Папка Windows C:\winnt или C:\windows

  • Папки, перечисленные в переменной среды пути

Для использования на платформах Linux, aardvark.so файл, поставляемый с платой адаптеров Total Phase Aardvark, должен находиться в пути MATLAB.

NI-845x-specific Требования

Чтобы использовать интерфейс I2C с адаптером NI-845x, загрузите пакет поддержки оборудования для получения последнего драйвера, если драйвер еще не установлен. Если у вас уже установлен последний драйвер, вам не нужно загружать этот пакет поддержки.

Если Вам не установили водителя NI-845x, посмотрите, Устанавливают Пакет Поддержки Интерфейса NI-845x I2C/SPI, чтобы установить его.

Конфигурация и подключение

  1. Убедитесь, что для устройства установлен правильный драйвер прибора. Обратитесь к документации устройства и веб-сайту поставщика.

  2. Убедитесь, что устройство поддерживается в инструменте управления приборами. См. раздел Поддерживается ли мое оборудование?.

  3. Для использования шлюза необходимо установить хост-адаптер общей фазы Aardvark или плату адаптера NI-845x. i2c интерфейс. Установите соответствующий пакет поддержки, если он еще не установлен. См. раздел Требования к адаптеру.

    Убедитесь, что плата адаптера I2C подключена к компьютеру под управлением MATLAB. Вы можете убедиться, что установлен один из адаптеров, используя instrhwinfo функции с помощью i2c имя интерфейса.

    Если вы не видите aardvark или ni845x необходимо установить один из пакетов поддержки или установить драйвер непосредственно у поставщика.

  4. Убедитесь, что Instrument Control Toolbox распознает ваше устройство, используя instrhwinfo функции с помощью i2c имя интерфейса и имя адаптера, либо aardvark или ni845x. Например:

    instrhwinfo('i2c', 'Aardvark')
    ans = 
    
              AdaptorDllName: [1x127 char]
           AdaptorDllVersion: 'Version 3.0.0'
                 AdaptorName: 'aardvark'
           InstalledBoardIds: 0
       ObjectConstructorName: 'i2c('aardvark', BoardIndex, RemoteAddress);'
               VendorDllName: 'aardvark.dll'
     VendorDriverDescription: 'Total Phase I2C Driver'
    

    Вам потребуется информация, отображаемая для создания i2c объект. Если устройство не отображается, проверьте предыдущие шаги.

  5. Убедитесь, что вы можете создать i2c объект. Для создания объекта необходимо указать три аргумента. BoardIndex обычно является 0, и Vendor является либо aardvark или ni845x. RemoteAddress зависит от устройства. Ознакомьтесь с документацией микросхемы, чтобы узнать, каков удаленный адрес. Например, в этом случае мы создаем объект для связи с чипом eeprom по удаленному адресу 50h:

    % Vendor = aardvark
    % BoardIndex = 0
    % RemoteAddress = 50
    
    eeprom = i2c('aardvark', 0, '50h');

    Совет

    Вы также можете узнать, каков удаленный адрес микросхемы, просканировав приборы в программе Test & Measurement Tool. В инструменте щелкните правой кнопкой мыши узел I2C и выберите Сканировать адаптеры I2C. Все чипы, обнаруженные при сканировании, перечислены в дереве оборудования. Список включает удаленный адрес микросхемы.

  6. Если ошибка не получена, объект был создан успешно. Для проверки можно просмотреть свойства объекта, используя имя, назначенное объекту. eeprom в данном случае.

  7. Убедитесь, что вы можете подключиться к устройству, используя fopen с именем объекта.

    fopen(eeprom);

    Если ошибка не будет получена, подключение будет выполнено успешно. При обнаружении ошибки выполните действия, описанные в сообщении об ошибке, и/или проверьте предыдущие шаги, перечисленные здесь.

  8. После подключения можно установить связь с устройством. Пример чтения и записи в микросхему см. в разделе Передача данных через интерфейс I2C.