Интерфейс I2C Поиска и устранения проблем

I2C или Межинтегральная схема, является интерфейсом от чипа к чипу поддержка двухпроводной коммуникации. Поддержка I2C Instrument Control Toolbox™ позволяет вам открыть связи с отдельными микросхемами и считать и переписать связи с отдельными микросхемами.

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

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

У вас должны быть или Общий хост-адаптер Муравьеда Фазы или плата адаптера NI-845x, установленная, чтобы использовать интерфейс I2C.

Интерфейс I2C поддерживается на этих платформах, когда используется с хост-адаптером Муравьеда:

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

  • Microsoft® Windows® 64-bit

Примечание

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

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

  • Microsoft Windows 64-bit

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

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

У вас должны быть или Общий хост-адаптер Муравьеда Фазы или плата адаптера NI-845x, установленная, чтобы использовать интерфейс I2C. Следующие разделы описывают требования для каждой опции.

Специфичные для муравьеда требования

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

Если вам не установили драйвер Муравьеда, смотрите Установку Общий Муравьед Фазы Пакет Поддержки Интерфейса I2C/SPI, чтобы установить его.

Установите API Aardvark Software и Разделяемую Библиотеку, подходящую для вашей операционной системы.

aardvark.dll файл, который идет с Общей платой адаптера Муравьеда Фазы, должен быть доступным в одном из этих местоположений для использования на платформах Windows:

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

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

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

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

Для использования на платформах Linux, aardvark.so файл, который идет с Общей платой адаптера Муравьеда Фазы, должен быть в вашем пути MATLAB.

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

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

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

Настройка и связь

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

  2. Убедитесь, что ваше устройство поддерживается в Instrument Control Toolbox. Смотрите, что Мое Оборудование Поддержано?.

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

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

    Если вы не видите ни один 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. В инструменте щелкните правой кнопкой по узлу I2C и выберите Scan for I2C adaptors. Любые микросхемы, найденные сканом, перечислены в аппаратном дереве. Листинг включает удаленный адрес чипа.

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

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

    fopen(eeprom);

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

  8. Когда вы соединились, можно связаться с устройством. Смотрите Данные о Передаче По Интерфейсу I2C для примера чтения и записи в чип.