реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> CC1101 - сильно отличаются значения RSSI из регистра и включенные в пакет.
zheka
сообщение Mar 4 2014, 17:56
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Господа, как известно, есть два способа получить значение 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 настроил на появление несущей, а в контроллер завел прерывание по спаду.
А читать мне нужно именно при появлении несущей, чтобы успеть настроить аттенюатор (рекомендованый техасцами способ борьбы со сбоями при слишком сильном сигнале)

В чем может быть причина?
Go to the top of the page
 
+Quote Post
DASM
сообщение Mar 5 2014, 11:34
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Ну так сферического коня в вакууме читаете. Значение RSSI , полагаю, берется из уровня АРУ чипа, с определенной постоянной интегрирования. Очевидно, что прерывания "наличие несущей" срабатывает раньше, чем установился нужный уровень АРУ.
Go to the top of the page
 
+Quote Post
zheka
сообщение Mar 5 2014, 18:07
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Причиной неверного чтения RSSI было то, что прерывание было настроено на спад, то есть когда чип переходи в IDLE (в GDO2 записано 0xE)
Как только поменял - проблема решилась. Стационарное устройство шлет импульсы, мобильное их принимает, если уровень сигнала превышает -39дбм, включается аттенюатор, в общем чтение практически без ошибок.

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


Наверное, правда все-таки не ваша - вот документ, почитайте раздел Timing и Figure1.


Сообщение отредактировал zheka - Mar 5 2014, 18:22
Go to the top of the page
 
+Quote Post
DASM
сообщение Mar 6 2014, 04:55
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Ну отчасти я прав — несоблюдение времени чтения.Впрочем спасибо, у меня в Si4463,кажется, такая же засада.
Go to the top of the page
 
+Quote Post
zheka
сообщение Mar 9 2014, 13:53
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



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

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

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

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


У меня вот такие модули, если что http://www.ebay.com/itm/1set-x-CC1101-PA-L...=item3cc6dbc2d0

Сообщение отредактировал zheka - Mar 9 2014, 13:57
Go to the top of the page
 
+Quote Post
Aner
сообщение Mar 10 2014, 08:09
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



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

....
нашёл +27 дбм, достаточно для забития приёмника, если на полную мощь гоняете вблизи. Обратите внимание на цепи питания и достаточности тока для этого TXa. Около 1...2 Ватт подводить требуется.
Go to the top of the page
 
+Quote Post
zheka
сообщение Mar 10 2014, 11:59
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Aner, уточню симптомы.
Методом тыка и исключения установлено, что проблема возникает при условии использования LNA.
Проблема не возникает ни при каких условиях, если LNA отключен.

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

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

Земля модуля припаяна к земляному полигону по всему периметру (по ссылке можно видеть модуль и контакты по периферии).
Привожу осциллограмму. СИний график - GD02 с несущей, красный график - GD0 настроенный на фронт по приему синхрослова.
После спада на красном графике точно ничего не передается.
Шумы на GD02 могут быть даже при отсутствующем сигнале.
Как уже писал - берешь рукой за металлическую часть разъема антенны - проблема исчезает. Прикасался этой частью разъема к земляному полигону на плате - не помогает.
Go to the top of the page
 
+Quote Post
Aner
сообщение Mar 10 2014, 17:35
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



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

Еще много разных факторов могут быть, ... по вашим скромным данным ... пока приходиться гадать. А какое питание у сия чуда? Есть ли импульсник ...? Какой проц или периферия? ...
Go to the top of the page
 
+Quote Post
zheka
сообщение Mar 11 2014, 00:08
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Цитата
А какое питание у сия чуда? Есть ли импульсник ...? Какой проц или периферия? ...

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

Топология печатной платы везде разная, с одной из плат модуль вообще соединен проводами, но я не сказал бы, что он работает хуже остальных. Единственная мера, которая пока помогала взяться за антенну рукой.

Сообщение отредактировал zheka - Mar 11 2014, 00:14
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 13 2014, 10:40
Сообщение #10


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



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

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


Go to the top of the page
 
+Quote Post
zheka
сообщение Mar 13 2014, 12:02
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Ну на одном столе два модуля, один ловит эту бытовую кашу, другой нет.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 13 2014, 13:05
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Причин может быть масса. Заочно трудно что-то сказать. Для начала перенести, например, приемники в другое помещение (и желательно, чтобы на время экспериментов рядом не было компьютерной техники), посмотреть, как изменится картина. Хорошо бы посмотреть спектроанализатором, что рядом делается. Можно сделать программный логгер RSSI - это информативнее, чем срабатывание "шумодава".
Наличие импульсного преобразователя тоже способно сильно подгадить, кстати. Равно как и связь с компьютером по USB, особенно если шнурок без ферритовых колец (очень заметно по картине RSSI).

Сообщение отредактировал rx3apf - Mar 13 2014, 13:07
Go to the top of the page
 
+Quote Post
zheka
сообщение Mar 13 2014, 14:21
Сообщение #13


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



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

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

Уважаемый Aner, когда вы сказали про провода питания без защиты от наводок, я так и подумал, что причина в итоге будет с этим связана.
А не подскажете, что это за провода такие с защитой от наводок? Обычный экранированный провод.
Go to the top of the page
 
+Quote Post
zheka
сообщение Mar 13 2014, 15:37
Сообщение #14


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Ну и окончательная победа наступила тогда, когда я сделал задержку в 50 мксек между обнаружением несущей и чтением RSSI. И само значение RSSI стало точнее на порядок.
Хотя в приведенном выше документе производитель сетует, что мол делать нужно все быстро, время идет на единицы -десятки микросекунд, а за это время нужно прочесть RSSI, принять решение о включении аттенюатора, включить его наконец.
Хотя... ведь эта статья не учитывает возможности использования усилителя мощности и усилителя приема.
Видимо все таки эти 50 мксек нужны для устаканивания АРУ.

Сообщение отредактировал zheka - Mar 13 2014, 15:43
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 13 2014, 16:22
Сообщение #15


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Еще зависит от выбранной скорости и полосы. У меня сейчас, например, задержка 1 mS (для минимальной скорости 31 кбит/сек), пришлось прибавлять (для 250 кбит было существенно меньше).
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 09:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01544 секунд с 7
ELECTRONIX ©2004-2016