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

 
 
> Радиолинк на СС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



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:45
Рейтинг@Mail.ru


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