|
CC1101 - сильно отличаются значения RSSI из регистра и включенные в пакет. |
|
|
|
Mar 4 2014, 17:56
|
Гуру
     
Группа: Участник
Сообщений: 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 настроил на появление несущей, а в контроллер завел прерывание по спаду. А читать мне нужно именно при появлении несущей, чтобы успеть настроить аттенюатор (рекомендованый техасцами способ борьбы со сбоями при слишком сильном сигнале) В чем может быть причина?
|
|
|
|
|
Mar 5 2014, 18:07
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Причиной неверного чтения RSSI было то, что прерывание было настроено на спад, то есть когда чип переходи в IDLE (в GDO2 записано 0xE) Как только поменял - проблема решилась. Стационарное устройство шлет импульсы, мобильное их принимает, если уровень сигнала превышает -39дбм, включается аттенюатор, в общем чтение практически без ошибок. Цитата Очевидно, что прерывания "наличие несущей" срабатывает раньше, чем установился нужный уровень АРУ. Наверное, правда все-таки не ваша - вот документ, почитайте раздел Timing и Figure1.
Сообщение отредактировал zheka - Mar 5 2014, 18:22
|
|
|
|
|
Mar 9 2014, 13:53
|
Гуру
     
Группа: Участник
Сообщений: 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
|
|
|
|
|
Mar 10 2014, 11:59
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Aner, уточню симптомы. Методом тыка и исключения установлено, что проблема возникает при условии использования LNA. Проблема не возникает ни при каких условиях, если LNA отключен. Цитата Какой PA там у вас? Сколько dBm выдает? Возможно еще "забитие" приёмника у CC1101. вы понимаете, в чем парадокс - если плохое качество сигнала, помехи, или сигнал слишком сильный, то несущая должна определяться, а вот с демодуляцией и получением данных должны быть проблемы. Здесь же наоборот, данные читаются, а на GD02, отображающем несущую, каша. Сигнал кстати не мощный, на входе приемника -40-50 dBm. Земля модуля припаяна к земляному полигону по всему периметру (по ссылке можно видеть модуль и контакты по периферии). Привожу осциллограмму. СИний график - GD02 с несущей, красный график - GD0 настроенный на фронт по приему синхрослова. После спада на красном графике точно ничего не передается. Шумы на GD02 могут быть даже при отсутствующем сигнале. Как уже писал - берешь рукой за металлическую часть разъема антенны - проблема исчезает. Прикасался этой частью разъема к земляному полигону на плате - не помогает.
|
|
|
|
|
Mar 10 2014, 17:35
|

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

|
Тогда проверьте вариант: излишнее усиление и возбуд (генерёшка на гармошке) у LNA. Кстати он не всегда нужен и чаще мешает, добавляет шумы. Корректнее нужно, чтобы между LNA и входом CC1101, стоял ПАВ фильтр, но китайцы возможно сэкономили. LNA на входе чаще нужен для компенсации потрерь в кабеле. Но если кабеля нет, или он короткий, то LNA может быть лишним, что у вас может наблюдаться. Шумы на GD02, следствие ару, возможно его требуется корректировать. ...
Еще много разных факторов могут быть, ... по вашим скромным данным ... пока приходиться гадать. А какое питание у сия чуда? Есть ли импульсник ...? Какой проц или периферия? ...
|
|
|
|
|
Mar 13 2014, 10:40
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(zheka @ Mar 10 2014, 15:59)  вы понимаете, в чем парадокс - если плохое качество сигнала, помехи, или сигнал слишком сильный, то несущая должна определяться, а вот с демодуляцией и получением данных должны быть проблемы. Здесь же наоборот, данные читаются, а на GD02, отображающем несущую, каша. Сигнал кстати не мощный, на входе приемника -40-50 dBm. Ну, вообще-то даже -50 dBm это довольно-таки много. Что же да срабатывания детектора несущей - а почему бы и нет ? В крупных городах на 433 MHz (а вообще о каком диапазоне речь ?) такая каша.... Да и бытовая компьютерная техника тоже проявляет себя...
|
|
|
|
|
Mar 13 2014, 13:05
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Причин может быть масса. Заочно трудно что-то сказать. Для начала перенести, например, приемники в другое помещение (и желательно, чтобы на время экспериментов рядом не было компьютерной техники), посмотреть, как изменится картина. Хорошо бы посмотреть спектроанализатором, что рядом делается. Можно сделать программный логгер RSSI - это информативнее, чем срабатывание "шумодава". Наличие импульсного преобразователя тоже способно сильно подгадить, кстати. Равно как и связь с компьютером по USB, особенно если шнурок без ферритовых колец (очень заметно по картине RSSI).
Сообщение отредактировал rx3apf - Mar 13 2014, 13:07
|
|
|
|
|
Mar 13 2014, 14:21
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

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