i2c на myRIO-1900

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Artem.spb

Activity Автор
professor
professor
Сообщения: 3387
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

i2c на myRIO-1900

Сообщение Artem.spb »

Есть myRIO-1900 и есть ультрасоник
http://coecsl.ece.illinois.edu/ge423/de ... ranger.pdf
Пытаюсь получить с него данные БЕЗ fpga.
вот код
myrio.png
Если я правильно понял инструкцию, то по запросу "81" (51 в hex) датчик считывает расстояние и возвращает 2 байта. Их я и пытаюсь получить.
Т.к. 81 не сработало, перебрал все 255 вариантов. Результат тот же, ошибка с неведомым кодом (или что-то вроде "пришли странные данные").
Адрес пробовал перебирать, но работает только 0, что мне кажется подозрительным (уж не хост ли это).
При этом если читать 0 байт, то ошибки нет, а вот при любом количестве >2 выдаёт ошибку.

что не так, как получить данные? если адрес не тот, то как его узнать?
Адрес 0 выяснил таким же способом: перебрал коннект на все адреса 0..127, но без ошибки только 0.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: i2c на myRIO-1900

Сообщение Blackman »

... The SRF08 is always a slave - never a bus master.
LED
The red LED is used to flash out a code for the I2C address on power-up (see below). It also gives a brief flash during the "ping" whilst ranging.

И дальше таблица с адресами и соответствующее количество включений светодиода. Адреса - четные значения чисел из диапазона 224 ... 254 (всего 16 возможных значений). 0 адрес - General Broadcast address - только для одновременной передачи во все устройства (например передачи команды на начало измерения). А результаты должны считываться по заданным адресам устройств.

Upd. При записи и чтении необходимо указывать адрес регистра (location) на устройстве.
1. Адрес устройства - Адрес регистра для записи (Location) - Команда на запуск измерения - Количество байтов для чтения 0.
2. Пауза 65 мс
3. Адрес устройства - Адрес регистра для чтения (Location) - Количество байтов для чтения N
Artem.spb

Activity Автор
professor
professor
Сообщения: 3387
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: i2c на myRIO-1900

Сообщение Artem.spb »

В таблице адреса >127, что меня удивляет, т.к. до сих пор я думал, что адрес 7 байт.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2207
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: i2c на myRIO-1900

Сообщение Borjomy_1 »

Там младший бит - признак чтения/записи. Поэтому все сдвигается. Те не 51, а A2
Artem.spb

Activity Автор
professor
professor
Сообщения: 3387
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: i2c на myRIO-1900

Сообщение Artem.spb »

разобрался.
сналала отправить 0-81, подождать, отправить 2, прочитать 2 байта.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»