Проблемы режима Xbee API в C - PullRequest
1 голос
/ 02 апреля 2012

Я успешно использовал режим API Xbee при обмене данными между двумя компьютерами, когда они были подключены к USB-обозревателю (я отправляю данные, и они принимаются).Однако, когда я пытаюсь сделать то же самое с радио, подключенным к микроконтроллеру pic33, я получаю странные результаты.Вот мои настройки:

Радиомодуль Xbee, подключенный к ПК, Радиомодуль Xbee, подключенный к микроконтроллеру pic33

Микроконтроллер отправляет широковещательные данные.Вот команда API:

7E 00 13 10 01 00 00 00 00 00 00 00 00 FF FE 00 00 48 65 6C 6C 6F FD

7E: Разделитель
00 13: длина
10 01: тип кадра API и идентификатор кадра
00 x 8: координатор 64 битадрес
FF FE: 16-битный сетевой адрес
00 00: параметры и радиус braodcast
48 65 6C 6C 6F: данные (Hello)
FD: контрольная сумма

та же команда отлично работает с обоими радиостанциями, подключенными к ПК, и приводит к появлению окон XCTU.

Я отлаживал весь передаваемый код и отправлял команду как следует.Я проверил регистры TXREG при онлайн-отладке с помощью PICKIT3.Но ничего не принимается в окне XCTU.

Я играл с разными задержками, пробовал непрерывную и одиночную передачу и все, что я могу придумать, но в окне XCTU я абсолютно ничего не получаю.Что я хочу знать, так это то, что я должен сделать, чтобы это работало?

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Скорее всего, это электронная программа, а не проблема кодирования.XBee будет вести себя корректно, если сможет взаимодействовать с PIC.У вас есть следующая проблемная область:

1) Либо ваш код неправильно передает пакет (который вы отладили), либо, 2) Существует некоторая проблема в пути электронных коммуникаций между PIC иXBee

Вот некоторые вопросы, которые вы должны задать себе и проверить при подключении XBees к микроконтроллерам:

1) Как вы подключаете свой XBee к вашей PIC?Последовательный ввод / вывод XBee составляет 3.3v.Убедитесь, что логический уровень вашего PIC также составляет 3,3 В

2) Какую скорость передачи вы устанавливаете в PIC?Каков источник синхронизации вашего PIC?Это внутренний генератор, RC или кристалл?Убедитесь, что значение синхронизации генератора совпадает с таблицей для получения ожидаемой скорости передачи.

3) Можете ли вы читать из XBee?Если вы отправите пакет от модуля, подключенного к ПК, к модулю, подключенному к вашей PIC, что поступит на ваш микро?Вы можете получить весь пакет?Есть пропущенные байты?Получаете ли вы мусор (опять же, это может указывать на несоответствие скорости передачи)?

4) У вас включено аппаратное управление потоком данных (параметры XBee D6 и D7)?Если да, то как вы подключили эти контакты?Убедитесь, что их логические уровни установлены правильно, чтобы XBee не находился постоянно в состоянии управления потоком и, следовательно, не позволял ему получать байты от вашей PIC.Возможно, вы захотите отключить управление потоком, пока не начнете работать базовые коммуникации.

Возможно, вы захотите разделить и завоевать пространство проблем с оборудованием, полностью исключив XBee из уравнения и сосредоточившись на том, чтобы вы могли передаватьсерийно, как вы ожидаете.Если у вас есть переключатель уровня, вы можете подключить его к PIC, а затем подключить PIC к вашему ПК.Вы можете проверить, что вы можете прочитать сообщение, которое вы пытаетесь отправить из программы терминала ПК.Если вам повезло иметь логический анализатор, вы можете выполнить тот же тест, не подключая логический анализатор.

Удачи!

0 голосов
/ 07 декабря 2012

Digi выпустила xbee_ansic_library , библиотеку с открытым исходным кодом (MPL 2.0) кода ANSI C для связи с модулями XBee в режиме API.Он поддерживает POSIX (Linux, BSD, Mac OS X, Cygwin), Windows (MinGW / MSYS), DOS (OpenWatcom) и некоторые встроенные платформы.

Хотя он не поддерживает платформу PIC (пока),Возможно, вы захотите написать необходимый код (в основном последовательные процедуры), чтобы использовать его на своем оборудовании.

Это также полезно для написания настольных приложений для связи со встроенными устройствами через USB-адаптеры XStick или XBee.

...