Доброго всем. Решил и я поднять тему. У меня проблема с Si4432.
Задача: Нужно получить пакет с некоего фабричного изделия, которое передает пакеты в эфир вообще через другой чип (другого производителя), однако формат эфирного пакета совместим с Si4432.
Формат пакета:
1. Преамбула 32 бита.
2. Синхрослово 32 бита.
3. Данные 10 байт.
Соорудил с помощью RTL-SDR, GNU RADIO и какой-то матери приемник этих пакетов.
GNURADIO принимает пакеты корректно. А вот Si4432 почти корректно, но с одним НО:
При чтении данных из FIFO, вылазит сначала последний байт пакета, потом второй, третий ... и последний.
Покажу наглядно.
Пакет, принятый GNURADIO:
- Код:
pdu length = 10 bytes
pdu vector contents =
0000: f1 eb 24 a7 05 97 60 06 00 a9
************************************
А вот как его принял Si4432:
- Код:
A9 EB 24 A7 05 97 60 06 00 A9
При этом, если я отправляю через Si4432 свой пакет в эфир (числа от 0 до 9), то GnuRadio его принимает корректно:
- Код:
pdu length = 10 bytes
pdu vector contents =
0000: 00 01 02 03 04 05 06 07 08 09
************************************
Второй день уже воюю
PS: Разобрался. Просто неправильно читал из FIFO. Я каждый байт выдергивал функцией чтения регистра. А нужно было сделать Burst Read.