Есть myRIO-1900 и есть ультрасоник
http://coecsl.ece.illinois.edu/ge423/de ... ranger.pdf
Пытаюсь получить с него данные БЕЗ fpga.
вот код
Если я правильно понял инструкцию, то по запросу "81" (51 в hex) датчик считывает расстояние и возвращает 2 байта. Их я и пытаюсь получить.
Т.к. 81 не сработало, перебрал все 255 вариантов. Результат тот же, ошибка с неведомым кодом (или что-то вроде "пришли странные данные").
Адрес пробовал перебирать, но работает только 0, что мне кажется подозрительным (уж не хост ли это).
При этом если читать 0 байт, то ошибки нет, а вот при любом количестве >2 выдаёт ошибку.
что не так, как получить данные? если адрес не тот, то как его узнать?
Адрес 0 выяснил таким же способом: перебрал коннект на все адреса 0..127, но без ошибки только 0.
i2c на myRIO-1900
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: i2c на myRIO-1900
... 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
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
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: i2c на myRIO-1900
В таблице адреса >127, что меня удивляет, т.к. до сих пор я думал, что адрес 7 байт.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: i2c на myRIO-1900
Там младший бит - признак чтения/записи. Поэтому все сдвигается. Те не 51, а A2
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: i2c на myRIO-1900
разобрался.
сналала отправить 0-81, подождать, отправить 2, прочитать 2 байта.
сналала отправить 0-81, подождать, отправить 2, прочитать 2 байта.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение