Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CC1101 - сильно отличаются значения RSSI из регистра и включенные в пакет.
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Rf & Microwave Design
zheka
Господа, как известно, есть два способа получить значение RSSI
Первый, это прочитать то, что чип записывает в буфер приема:
Код
if ((TI_CC_SPIReadStatus(TI_CCxxx0_RXBYTES) & TI_CCxxx0_NUM_RXBYTES))
  {
      
    pktLen = TI_CC_SPIReadReg(TI_CCxxx0_RXFIFO); // Read length byte
    if (pktLen <= *length)                  // If pktLen size <= rxBuffer
    {
      
      TI_CC_SPIReadBurstReg(TI_CCxxx0_RXFIFO, rxBuffer, pktLen); // Pull data
      *length = pktLen;                     // Return the actual size
      TI_CC_SPIReadBurstReg(TI_CCxxx0_RXFIFO, status, 2);
      LQI=status[1]& 0x7F;
            //LQI=status[1];
      RSSI=status[0];        // ВОТ ЗДЕСЬ!!!!!!                              // Read appended status bytes
      return (char)(status[TI_CCxxx0_LQI_RX]&TI_CCxxx0_CRC_OK);
    }                                       // Return CRC_OK bit


Второй способ - прочитать статусный регистр
RSSI_from_status=TI_CC_SPIReadStatus(TI_CCxxx0_RSSI);

Почему-то в пакете и в статусном регистре значения сильно отличаются. Когда читаю то, что в пакете, то путем расчета получается -28 dBm. И это, как выяснилось, правильное значение.
Но в статусном регистре почему то примерно - 82 dBm. Когда читаю? GDO2 настроил на появление несущей, а в контроллер завел прерывание по спаду.
А читать мне нужно именно при появлении несущей, чтобы успеть настроить аттенюатор (рекомендованый техасцами способ борьбы со сбоями при слишком сильном сигнале)

В чем может быть причина?
DASM
Ну так сферического коня в вакууме читаете. Значение RSSI , полагаю, берется из уровня АРУ чипа, с определенной постоянной интегрирования. Очевидно, что прерывания "наличие несущей" срабатывает раньше, чем установился нужный уровень АРУ.
zheka
Причиной неверного чтения RSSI было то, что прерывание было настроено на спад, то есть когда чип переходи в IDLE (в GDO2 записано 0xE)
Как только поменял - проблема решилась. Стационарное устройство шлет импульсы, мобильное их принимает, если уровень сигнала превышает -39дбм, включается аттенюатор, в общем чтение практически без ошибок.

Цитата
Очевидно, что прерывания "наличие несущей" срабатывает раньше, чем установился нужный уровень АРУ.


Наверное, правда все-таки не ваша - вот документ, почитайте раздел Timing и Figure1.
DASM
Ну отчасти я прав — несоблюдение времени чтения.Впрочем спасибо, у меня в Si4463,кажется, такая же засада.
zheka
Все-таки какая-то фигня творится...
Два одинаковых модуля, ведущий пингует ведомый и ждет от него ответа.
На ведомом все хорошо. С контролем ответа ведущим модулем плохо... Стал разбираться - на GDO2, настроенном на отображение наличия несущей, имеются беспорядочные, но правильной формы импульсы. Даже если ведомый отключен, то есть в отсутствие сигнала.

Помехи извне исключены - второй модуль работает нормально.
Самовозбуждение в приемнике? Но если не заморачиваться с GD02 и аттенюатором он отлично принимает данные.

Важная деталь - GD02 приходит в порядок если окружить рукой антенн (она у меня в пластиковом корпусе).

Что это может быть?


У меня вот такие модули, если что http://www.ebay.com/itm/1set-x-CC1101-PA-L...=item3cc6dbc2d0
Aner
Плохое согласование с антенной выхода модуля, наводки на модуль, провода питания без защиты от наводок и тд.
Какой PA там у вас? Сколько dBm выдает? Возможно еще "забитие" приёмника у CC1101.

....
нашёл +27 дбм, достаточно для забития приёмника, если на полную мощь гоняете вблизи. Обратите внимание на цепи питания и достаточности тока для этого TXa. Около 1...2 Ватт подводить требуется.
zheka
Aner, уточню симптомы.
Методом тыка и исключения установлено, что проблема возникает при условии использования LNA.
Проблема не возникает ни при каких условиях, если LNA отключен.

Цитата
Какой PA там у вас? Сколько dBm выдает? Возможно еще "забитие" приёмника у CC1101.

вы понимаете, в чем парадокс - если плохое качество сигнала, помехи, или сигнал слишком сильный, то несущая должна определяться, а вот с демодуляцией и получением данных должны быть проблемы. Здесь же наоборот, данные читаются, а на GD02, отображающем несущую, каша. Сигнал кстати не мощный, на входе приемника -40-50 dBm.

Земля модуля припаяна к земляному полигону по всему периметру (по ссылке можно видеть модуль и контакты по периферии).
Привожу осциллограмму. СИний график - GD02 с несущей, красный график - GD0 настроенный на фронт по приему синхрослова.
После спада на красном графике точно ничего не передается.
Шумы на GD02 могут быть даже при отсутствующем сигнале.
Как уже писал - берешь рукой за металлическую часть разъема антенны - проблема исчезает. Прикасался этой частью разъема к земляному полигону на плате - не помогает.
Aner
Тогда проверьте вариант: излишнее усиление и возбуд (генерёшка на гармошке) у LNA. Кстати он не всегда нужен и чаще мешает, добавляет шумы. Корректнее нужно, чтобы между LNA и входом CC1101, стоял ПАВ фильтр, но китайцы возможно сэкономили. LNA на входе чаще нужен для компенсации потрерь в кабеле. Но если кабеля нет, или он короткий, то LNA может быть лишним, что у вас может наблюдаться. Шумы на GD02, следствие ару, возможно его требуется корректировать. ...

Еще много разных факторов могут быть, ... по вашим скромным данным ... пока приходиться гадать. А какое питание у сия чуда? Есть ли импульсник ...? Какой проц или периферия? ...
zheka
Цитата
А какое питание у сия чуда? Есть ли импульсник ...? Какой проц или периферия? ...

Проверял на 3-х разных платах. На одной батарейное питание с импульсником. На другой питание от сетевого адаптера через импульсник. На третьей питание от USB через линейный преобразователь. Процы везде STM32F103. Периферия - светодиоды, датчики (не работающие постоянно.

Топология печатной платы везде разная, с одной из плат модуль вообще соединен проводами, но я не сказал бы, что он работает хуже остальных. Единственная мера, которая пока помогала взяться за антенну рукой.
rx3apf
Цитата(zheka @ Mar 10 2014, 15:59) *
вы понимаете, в чем парадокс - если плохое качество сигнала, помехи, или сигнал слишком сильный, то несущая должна определяться, а вот с демодуляцией и получением данных должны быть проблемы. Здесь же наоборот, данные читаются, а на GD02, отображающем несущую, каша. Сигнал кстати не мощный, на входе приемника -40-50 dBm.

Ну, вообще-то даже -50 dBm это довольно-таки много. Что же да срабатывания детектора несущей - а почему бы и нет ? В крупных городах на 433 MHz (а вообще о каком диапазоне речь ?) такая каша.... Да и бытовая компьютерная техника тоже проявляет себя...


zheka
Ну на одном столе два модуля, один ловит эту бытовую кашу, другой нет.
rx3apf
Причин может быть масса. Заочно трудно что-то сказать. Для начала перенести, например, приемники в другое помещение (и желательно, чтобы на время экспериментов рядом не было компьютерной техники), посмотреть, как изменится картина. Хорошо бы посмотреть спектроанализатором, что рядом делается. Можно сделать программный логгер RSSI - это информативнее, чем срабатывание "шумодава".
Наличие импульсного преобразователя тоже способно сильно подгадить, кстати. Равно как и связь с компьютером по USB, особенно если шнурок без ферритовых колец (очень заметно по картине RSSI).
zheka
АХРЕНЕТЬ!!!!
Нашел причину.
Питается у меня девайс от вот такого преобразователя http://www.ebay.com/itm/DC-DC-Auto-Boost-B...=item27d1aef75e
От его выходов отходят два кабеля - один питает устройство, другой идет к контактам на корпусе для подзарядки мобильного блока. Кабель этот скручен в жгут, нагрузки на нем нет. Неладное я заподозрил, когда при сборке устройства забыл подключить этот кабель к плате и проблема исчезла. Тогда я раскрутил жгут - все работает нормально. Обалдеть, кабель был просто подсоединен к выходам преобразователя, тока в нем не было (он не питал ничего), но за счет скрученности создавал помехи...

Вот чего крест животворящий делает....

Уважаемый Aner, когда вы сказали про провода питания без защиты от наводок, я так и подумал, что причина в итоге будет с этим связана.
А не подскажете, что это за провода такие с защитой от наводок? Обычный экранированный провод.
zheka
Ну и окончательная победа наступила тогда, когда я сделал задержку в 50 мксек между обнаружением несущей и чтением RSSI. И само значение RSSI стало точнее на порядок.
Хотя в приведенном выше документе производитель сетует, что мол делать нужно все быстро, время идет на единицы -десятки микросекунд, а за это время нужно прочесть RSSI, принять решение о включении аттенюатора, включить его наконец.
Хотя... ведь эта статья не учитывает возможности использования усилителя мощности и усилителя приема.
Видимо все таки эти 50 мксек нужны для устаканивания АРУ.
rx3apf
Еще зависит от выбранной скорости и полосы. У меня сейчас, например, задержка 1 mS (для минимальной скорости 31 кбит/сек), пришлось прибавлять (для 250 кбит было существенно меньше).
Aner
QUOTE (zheka @ Mar 13 2014, 17:21) *
АХРЕНЕТЬ!!!!
Нашел причину.
...
А не подскажете, что это за провода такие с защитой от наводок? Обычный экранированный провод.

Фильтры по питанию нужны с обоих сторон с использованием Chip Beade (у любителей название - ферритовые бусины, .. но, не совсем), ... но не только их.
http://ru.wikipedia.org/wiki/Ферритовый_фильтр
http://www.murata.com/products/emicon_fun/...6/emc_en14.html
http://aem-usa.com/products/hi-rel-ferrite-chips/
...
Много кто выпускает...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.