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

 
 
> Радиолинк на СС1100, как правильно настроить FOC?
ivainc1789
сообщение Jun 13 2008, 07:24
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Есть ли у кого-нибудь положительный опыт использования FOC (Frequency Offset Compensation) в трасиверах СС1100?
Я сделал радиолинк на этих трансиверах: один передает пакет другому и тот эхом отправляет пакет обратно. Частота посылок раз в секунду. Прием/передача на обеих платах индицируется светодиодами. Работает примерно на 10 метров при минимальной мощности передачи.
С выключенной FOC радиолинк нормально работает в течении нескольких дней без потери связи, а как только включаю FOC связь становится неустойчивой. Если FOCCFG=0x16, как отрекомендовала Smart RF Studio, проходит всегда около 20 линков и частоты видимо расстраиваются окончательно, связь пропадает. Если FOCCFG=0x36 как по дефолту, связь живет примерно до часа и отваливается. Делал все по аппликухе swra159.pdf, но там лишь общий принцип реализации. Ниже привожу функцию, которая корректирует чатоту:

Код
  
// производит компенсацию частот RX и TX
// на основании тайминга валидного пакета принимающей стороной
// выполнять только в IDLE, сразу после перехода RX -> IDLE
// отдельная статистика для каждой передающей стороны
void SynCalibrate(unsigned char TXnodeAdr,unsigned char Direction){
  if (Direction == Read){// аккумуляторы ухода частоты
    if(TXnodeAdr == cc1100adr01) dSynFreq_01 += cc1100readStatus(FREQEST);      
    return;  
  }
  if (Direction == Write){// подготовка к последующей скорректированной передаче
    if(TXnodeAdr == cc1100adr01)cc1100write(FSCTRL0,dSynFreq_01);
    return;
  }  
}


Так как слейвов всего один применение функции осуществляем просто:

Код
  
   SynCalibrate(cc1100adr01,Read);// чтение данных калибровки синтезатора
   SynCalibrate(cc1100adr01,Write);// запись данных калибровки синтезатора


Вызовы вставлены сразу после перехода чипа в IDLE после режима RX.

От себя: возможно все из-за сильного шума сэмплов корректировки и нужно ставить программный ФНЧ? И что-то я не до конца понимаю назначение этого бита FOC_BS_CS_GATE в регистре FOCCFG. Комментарий к этому биту на стр. 76 даташита:
If set, the demodulator freezes the frequency offset compensation and clock
recovery feedback loops until the CS signal goes high.

У меня пакет обрабатывается только когда он пришел с верной CRC. В момент прихода естественно трансивер находится в режиме приема и CS имеет высокий уровень. Тогда получается что данный бит практически отключает FOC? Или нет?
Так в какой момент содержимое "замораживается" и когда его нужно читать? Действительно, один из трансиверов предполагается довольно долго держать в режиме RX, CS высокий практически постоянно, трафика нет...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_3m
сообщение Jun 13 2008, 12:22
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(ivainc1789 @ Jun 13 2008, 11:24) *
Есть ли у кого-нибудь положительный опыт использования FOC (Frequency Offset Compensation) в трасиверах СС1100?

Зачем вам это ?
Сделайте компенсацию заводского отклонения частоты кварца и все.

Цитата
От себя: возможно все из-за сильного шума сэмплов корректировки и нужно ставить программный ФНЧ? И что-то я не до конца понимаю назначение этого бита FOC_BS_CS_GATE в регистре FOCCFG. Комментарий к этому биту на стр. 76 даташита:
If set, the demodulator freezes the frequency offset compensation and clock
recovery feedback loops until the CS signal goes high.
У меня пакет обрабатывается только когда он пришел с верной CRC. В момент прихода естественно трансивер находится в режиме приема и CS имеет высокий уровень. Тогда получается что данный бит практически отключает FOC? Или нет?

Когда установлен этот бит подстройка частоты выполняется только при наличии несущей, соответственно должен быть настроен порог обнаружения несущей. Когда бит сброшен подстройка частоты выполняется все время, но при отсутствии трафика демодулятор будет пытаться подстроиться под шум эфира, что несколько глупо.

Цитата
Так в какой момент содержимое "замораживается" и когда его нужно читать? Действительно, один из трансиверов предполагается довольно долго держать в режиме RX, CS высокий практически постоянно, трафика нет...

Читать нужно сразу после приема пакета с правильной crc. Программный фильтр нч обязателен, как сказано в swra159.
Почему у вас постоянно высокий CS при отсутствии трафика?

Цитата(ivainc1789 @ Jun 13 2008, 14:53) *
Вот две картинки. На первой мониторится прочитанное содержимое FREQEST. На второй накапливаемая корректировка (содержимое dSynFreq_01). Как видно, частота уходит. Что-то тут не так и вроде не сказать что сэмплы FREQEST сильно отличаются друг от друга...

[attachment=21976:attachment]



[attachment=21977:attachment]

Откуда у вас вылезают значения 0xdd и т.п. ? Это может быть почти предельным отклонением. На первой картинке таких больших чисел не видно.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 26th July 2025 - 00:14
Рейтинг@Mail.ru


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