Посмотрел установки регистров согласно
AN440, связанные с обработчиком пакетов. Мои замечания ниже. Существенные из них - длина преамбулы установлена на 16 бит и синхрослово другое, если только не изменили настройки из Вашего первого поста, а также регистр 0х75.
Установки радио-параметров не проверял, не знаю точно Ваших требований. Кстати, какая у Вас ревизия чипа приемника (см.
AN457)? Посмотрите на Errata на чипы.
Мои рекомендации:
1. Отмените на время кодировку Манчестера и отладьте на первом этапе все без нее.
2. Все-таки сделайте временно передатчик на таком-же чипе и отладьте связь на нем. Тогда будете уверены, что приемник работает правильно и проблема в передатчике XD-FST.
3. Передатчик этот XD-FST - полное "Гэ". Как Вы проверяли "данные в эфире"? Если есть анализатор спектра, советую проверить частоту излучения передатчика. Не вносит-ли передатчик задержки при модуляции по пину DATA?
SI4432_Write(0x30, 0xA8); Почему не 0х80 (несушественно)?
SI4432_Write(0x32, 0x8C); Такие значения не специфицированы в ДШ
SI4432_Write(0x33, 0x08); ОК (фиксированная длина пакета, синхрослово = 1 байт)
SI4432_Write(0x34, 0x04); Длина преамбулы считается в нибблах. Должно быть 0х08 для 4-х байтов
SI4432_Write(0x35, 0x22); ОК
SI4432_Write(0x36, 0xA2); Слово синхронизации 0хА2? В диаграммах выше было 0х2D.
SI4432_Write(0x37, 0x2D); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x38, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x39, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x3A, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x3B, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x3C, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x3D, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x3E, 0x10); Фиксированная длина пакета = 16 байтов
SI4432_Write(0x3F, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x40, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x41, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x42, 0x00); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x43, 0xFF); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x44, 0xFF); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x45, 0xFF); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x46, 0xFF); Это устанавливать необязательно (дефолтное значение)
SI4432_Write(0x58, 0x80); Такого регистра в документации нет
SI4432_Write(0x69, 0x60);
SI4432_Write(0x6E, 0x03); Это установка для передатчика
SI4432_Write(0x6F, 0xFD); Это установка для передатчика
SI4432_Write(0x70, 0x2A); ОК
SI4432_Write(0x71, 0x21); ОК
SI4432_Write(0x72, 0x50); Надеюсь на вычисления спредшита
SI4432_Write(0x75, 0x53); Странно, что бит hbsl не установлен. Уверены, что частота в спредшите задана правильно?
SI4432_Write(0x76, 0x62); Надеюсь на вычисления спредшита
SI4432_Write(0x77, 0x00); Надеюсь на вычисления спредшита