I2C Связь между регистратором данных и датчиком Sensirion SHT31x-DIS - PullRequest
0 голосов
/ 28 августа 2018

В настоящее время я пытаюсь установить связь с датчиком температуры / относительной влажности на регистраторе данных CR1000x (ведущим является регистратор данных)

В настоящее время я использую следующий код:

Public TemporaryRead as Long

BeginProg
PortPairConfig(C5,2) 'set C5 for SCL and C6 for SDA and at 3.3V'
I2COpen (C5, 500000) '500 mHZ start at port C5
I2CWrite (C5, &H44, &H2130, 3, &H2)
Scan (1, Sec, 0, 0)
   PanelTemp (PTemp, 60)
   Battery (Batt_Volt)
   I2CWrite (C5, &H44, &HE000, 2, &H2)
   I2CRead (C5, &H44, TemporaryRead, 4, &H5)
NextScan
EndProg

Однако переменная TemporaryRead выводится как значение -1.

Несколько ссылок, которые помогут вам получить эту работу

  • программа написана на CRBasic, некотором проприетарном языке / редакторе, который походит на Basic для оборудования Campbell Scientific
  • I2CWrite (BeginPort, Адрес, Источник, NumBytes, Опция)
    • Источник - инструкция по записи в I2C, в паспорте сказано, что это 16-битные команды, поэтому поверх 8-битного адреса я классифицирую NumBytes как 3 байта
    • Параметр «Перезагрузка», «Старт» и «Стоп» (111). Таким образом, старт без остановки - 010 (2)
  • I2CRead (BeginPort, адрес, пункт назначения, NumBytes, опция)

    • Место назначения - переменная для сохранения содержимого в
    • Возвращает 16-битное значение температуры и 16-битное значение влажности, поэтому я поставил 4 байта
    • Опция (остановка, запуск, перезапуск) (Перезапуск с остановкой 101 -> 5)
  • Таблица данных датчиков: https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/0_Datasheets/Humidity/Sensirion_Humidity_Sensors_SHT3x_Datasheet_digital.pdf

    • 0x2130 - периодические измерения 1 в секунду
    • 0xE000 - выборка данных
    • 0x44 - адрес датчика

На страницах 9 и 11 таблицы данных я получил команды для ввода в методы I2CWrite для этого датчика. Буду очень признателен за любую информацию о том, где я ошибаюсь и как я могу правильно общаться с этим датчиком

...