CC110L отказывается от пакетов - помогает только сброс

У меня следующая установка: я использую несколько панелей запуска TI MSP430F5529 с Anaren AIR Boosterpack (в основном просто CC110L), которые взаимодействуют друг с другом, одна из них подключена к компьютеру через UART.

Теперь иногда (каждые несколько тысяч пакетов или около того, случайно, не воспроизводимые) один из приемопередатчиков (не воспроизводимый) отказывается принимать пакеты. Глядя на связь SPI, я вижу, что контакт GDO0 становится высоким, как и должно быть, но при запросе количества байтов в RXFIFO трансивер возвращает «0». Байт состояния, который я получаю, равен 16, что означает, что трансивер находится в режиме RX, но RXFIFO пуст, в отличие от 31 = 16 (режим RX) + 15 (доступно 15 или более байтов).

В настоящее время я подозреваю, что приемопередатчик отклоняет пакет на аппаратном уровне (имеется в виду, например, неудачная проверка CRC), НО все другие узлы с идентичным оборудованием и идентичным программным обеспечением могут получить пакет, и поэтому узел (узлы) в вопрос после сброса.

Насколько я понимаю, ни одна из проблем, упомянутых в листе ошибок, не соответствует описанию - есть идеи?

Привет, Дэвид


person David Auzinger    schedule 02.09.2014    source источник
comment
Пожалуйста, смотрите мой ответ ниже. Вы очищаете свой fifo? Если вы хотите пойти по пути, который вы уже установили, взгляните на CC1101.c, чтобы увидеть, как драйвер реализует связь с радио.   -  person bblincoe    schedule 08.09.2014
comment
Поскольку этой проблеме уже много лет, я понятия не имею, какое решение было в конечном итоге, но в итоге я модифицировал библиотеку, которую использовал (LarsRF), потому что она изначально была написана для более медленного чипа, и возникла проблема с синхронизацией. github.com/mobilars/LarsRF/commit/   -  person David Auzinger    schedule 03.07.2020


Ответы (1)


У трансивера есть несколько проблем, которые указаны в ошибках: http://www.ti.com/lit/er/swrz037/swrz037.pdf

Я много работал с CC110L и создал драйвер/библиотеку, которая работает с именно тем пакетом бустера, который вас интересует. Реализация должна обеспечивать реализацию решений проблем, указанных в опечатках. Ознакомьтесь со следующим протоколом: https://github.com/AnarenAIR/BaseLink.

Интересующие вас файлы находятся в папках /Source/Physical/Driver и /Source/Physical/Module. Драйвер представляет собой универсальную оболочку CC1101 (или L), которая требует реализации нескольких функций (зависящих от аппаратного обеспечения SPI/GDO). Модуль определяет конфигурацию, которую вы должны использовать с вашим сертифицированным модулем Anaren.

Дайте мне знать, если вы идете по этому пути, и если вам нужна помощь в начале работы. Вы всегда можете использовать код как есть (начиная с одного из примеров), поскольку он реализует маломощную конфигурацию протокола с несколькими конечными точками и шлюзом.

person bblincoe    schedule 08.09.2014
comment
В настоящее время я использую версию LarsRF, которую я портировал и очистил. Насколько я вижу, SPI Clock Sync может подойти, но, как я уже сказал, при использовании логического анализатора я могу проверить результаты SPI, которые я получаю на микроконтроллере, трансивер четко указывает, что его RXFIFO пуст. В настоящее время я реализовал обходной путь, который обнаруживает такой случай и просто сбрасывает трансивер, но как только я доберусь до него, я посмотрю, возникает ли проблема также при использовании вашего кода. - person David Auzinger; 09.09.2014