Здравствуйте. Прошу помочь с приёмом на CC1101. Ситуация такая: есть готовый девайс на CC1101 и исходники к нему. Использую его при отладке как передатчик.
В соответствии с исходниками, запрограммирован макет на основе такого же девайса с подключенным на проводах МК, работает приёмником (то есть железо аналогичное). После долгих танцев с бубном получил на GDO2 приёмника красивые импульсы (настроено 0x46 – вниз по синхрослову, вверх после приёма пакета). По концу импульса по прерыванию, перехожу в SIDLE, считываю STATUS_RX, PKTSTATUS и FIF0_RX. После этого чищу буфер RfStrobe(CC1101_SFRX); и возвращаюсь в режим приёма RfStrobe(CC1101_SRX); В результате вижу какую-то ересь (данные в десятичном формате):
****** RX_STSTUS: 11 PACKET_STSTUS: 18 FIF0_RX: 8,70,46,46,79,219,36,10,108,69,0,20,8,0,16,137,236,202,131,130,34,248,53,7,15,24 ,21,108,67,64,145,135,107,243,86,16,239,11,61,31,65,0,89,127,62,129,53,11,0,0,20 ,0,0,199,1,0,0,16,252,0,10,0,0,96, ****** Но даже это не всегда, чаще число приятных байт в RX_STSTUS равно нулю, а в FIFO тот же мусор.
Особенности эксперимента: 1. Притащил железо домой без антенн, вместо них две иголки, начальство уверяло, что и без них нормально работает на близких расстояниях. 2. Расстояние между приёмником и передатчиком около метра.
Вопросы: 1. О нормальной работе каких частей/настроек говорит наличие импульсов? (Импульсы меняют длину, как будь-то иногда принимается синхрослово, иногда весь или часть пакета) 2. Что должно быть в FIF0_RX в норме? Нули? Пока ни разу не удалось их увидеть как будь-то что-то с чтением. Burst-чтение вроде работает нормально, все 47 регистров настройки считывает нормально.
Сообщение отредактировал Yogen - Feb 7 2016, 07:01
|