2014-09-02 10 views
0

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

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

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

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

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

+0

См. Мой ответ ниже. Вы развеяете свой фило? Если вы хотите пойти по пути, который вы уже установили, посмотрите на CC1101.c, чтобы узнать, как драйвер реализует связь с радио. – bblincoe

ответ

0

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

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

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

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

+0

В настоящее время я использую версию [LarsRF] (http://github.com/mobilars/LarsRF), которую я портировал и очищал. Насколько я вижу, SPI Clock Sync может поместиться, но, как я уже сказал, при использовании логического анализатора я могу проверить результаты SPI, которые я получаю на микроконтроллере, трансивер четко заявляет, что его RXFIFO пуст. В настоящее время я применил обходное решение, которое обнаруживает такой случай, и просто сбрасывает трансивер, но как только я доберусь до него, я увижу, возникает ли проблема при использовании вашего кода. –