Чтение данных с датчика через метку NFC типа 5 (NFC-V)

Я хочу создать приложение в Android Studio для чтения данных с датчика RGB ISL29125 через тег NFC типа 5 (ISO 15693). Тег NFC подключается к датчику по шине I2C. Я использую адресную команду для периферийной транзакции в соответствии с таблицей данных тега NFC. Мой код для периферийной транзакции в адресном режиме следующий:

     byte[] command = new byte[]{
                                             (byte)0x20, //Request flags (Address mode ON)
                                             (byte)0xA2, //PERIPHERAL TRANSACTION command
                                             (byte)0x2B, //Manufacter code byte
                                             (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //UID
                                             (byte)0x00, //Parameter byte = Stop bit disabled
                                             (byte)0x03, //NI2CWR (Number of bytes to be written) = 3
                                             (byte)0x88, //I2C slave address (write)
                                             (byte)0x09, //I2C slaves' register address
                                             (byte)0x89, //I2C slave address (read)
                                             (byte)0x01, //NI2CRD (Number of bytes to be read) = 1
                                     };

                             System.arraycopy(id,0,command,3,8); //Change of UID to id of the tag
                             textView.setText("This is command you sent: "+(getHex(command)));

                        byte[] userdata= nfcvTag.transceive(command);
                        userdata = Arrays.copyOfRange(userdata, 0, 32);
                        viewResult.setText(getHex(userdata));

Как должна выглядеть команда периферийной транзакции в соответствии с таблицей данных

После отправки я получаю 32 раза 0x00 байт, несмотря на то, что датчик заряжен, и свет идет на датчик (датчик RGB). Во всяком случае, в таблице данных тега NFC не указано, где должен быть размещен адрес подчиненного устройства (я вставил его почти в конце - байты 88 09 и 89, но я не уверен, что это правильно). Тег MAX66242, датчик ISL29125 (https://www.intersil.com/content/dam/Intersil/documents/isl2/isl29125.pdf).

Последовательность считывания с датчика

Я хочу прочитать данные из регистра 0x09 (зеленый НИЗКИЙ).

Мой вопрос: кто-нибудь знает, в чем может быть проблема? А почему я выявляю именно 0x00? Думаю, проблема может быть в инициализации. Как мне это сделать, если я хочу попробовать?

Спасибо за любой совет.


person A. Sobich    schedule 03.04.2018    source источник


Ответы (1)


Не знаю, действителен ли ваш вопрос или ожидает ответа ... Вы пытались отправить стоповый бит? Это будет: (байт) 0x10, // Байт параметра = Стоп-бит включен вместо «(байт) 0x00, // Байт параметра = Стоп-бит отключен» Это может помочь прервать последовательность I2c ...

person PCH aka Pacific Coast HighWay    schedule 14.06.2018