трансивер chipcon cc1100

Обсуждаем цифровые устройства...
Ответить
Вечно гонимый
Аватара пользователя
Сообщения: 331
Зарегистрирован: Пн сен 04, 2006 20:25:28
Откуда: самоучитель по микроконтроллерам

Сообщение avr123.nm.ru »

slimm писал(а):Апноуты на ti.com заточены под c8051f320, я же не могу привязать трансивер к ATMega8. не хватает знаний и времени
дак исходники то на Си !
Контактная информация:
Реклама
Stellar

Сообщение Stellar »

Граждане, убъюсь скоро с этим чипконом (
На передачу работает, на приём, ни в какую, уже и так и эдак перепробовал, подскажите в чём может быть ошибка в коде???

Код: Выделить всё

char RFReceivePacket(char *rxBuffer, char len)
{
  char status[2];
  char pktLen;

  SPIStrobe(CC1100_SRX); 
  
//  while (!TESTBIT( PINC, GD0 ));

//  while (TESTBIT( PINC, GD0 ));

  if ((SPIReadStatus(CC1100_RXBYTES) & CC1100_NUM_RXBYTES)) // CC1100_NUM_RXBYTES = 0x7F 
  {
   
    pktLen = SPIReadReg(CC1100_RXFIFO); 

    if (pktLen <= len)                
    {
      SPIReadBurstReg(CC1100_RXFIFO, rxBuffer, pktLen); 
      len = pktLen;                  
      SPIReadBurstReg(CC1100_RXFIFO, status, 2);       
                                        
      return (char)(status[CC1100_LQI_RX]&CC1100_CRC_OK);   // CC1100_CRC_OK = 0x80
    }                                       
    else
    {
      len = pktLen;                     
      SPIStrobe(CC1100_SFRX);      
      
      return 0;                             
    }
  }
  else return 0;                            
}
вызываю так

Код: Выделить всё

if (RFReceivePacket(rxBuffer, 40)) {...} 
Заранее -=Спасибо=- за помощь )
Реклама
Stellar

Сообщение Stellar »

up, помогите, кто может
Родился
Сообщения: 1
Зарегистрирован: Сб май 14, 2011 15:31:13

Сообщение Chieva »

Помогите разобраться как подключаются, общаются АМR128 с ММсс1100. Там инструкция на польском и не понятно как перевести название портов GDO0 и GDO2.http://radiokot.ru/forum/posting.php?mo ... f=2&t=1108#
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 2
Зарегистрирован: Пт авг 24, 2012 12:34:27

Сообщение freedom-lex »

Снова подниму эту тему.
Возникла проблема с трансивером СС1100, а решение никак не ищется.
Вкратце опишу суть проблемы. Использую готовый модуль PAN2355 (868MHz) и контроллер ATmega16L. Антенна выполнена в виде провода на четверть длины волны. Библиотеку взял стандартную и доработал под свои нужды.
Конфигурация трансивера проходит нормально (наблюдал с помощью осциллографа): регистры пишутся и читаются, командный строб тоже проходит и в статусном байте вижу, что трансивер перешел в нужный мне режим. Чудеса начинаются, когда я пишу в TX_FIFO. Дело в том, что при записи данных в буфер передатчика на вход SI (slave input) возвращается статусный бит, младшие 4 бита которого повествуют о заполненности TX_FIFO. Так вот! Сколько бы я не пихал байтов в буфер передатчика, счетчик буфера говорит, что ничего там не лежит. Пробовал писать единичный байт по адресу 3F - пусто. Пробовал запихивать последовательность по адресу 40 - та же чертовщина. При этом записанные данные с успехом мною читаются, что так же наблюдал на осцилле. Получается, что по факту я данные записал, а железка утверждает, что она пустая.

Тут может быть два варианта: либо баг в программе, либо я чего-то не допонял с адресным пространством и пищу не по тому адресу. Склоняюсь ко второму варианту, поэтому код пока не выкладываю. Если понадобиться - выложу следующим постом. будем убивать траблы вместе :kill:

И еще одна непонятность! Переключив трансивер в режим TX, ничего на антенне я не наблюдаю: ни данных (хотя тут все понятно: какие к черту данные, если в буфере ничего нет), ни циклически следующих заголовков (соответствующий регистр сконфигурирован на то, что в отсутствии данных в буфере, ресивер будет оставаться в режиме ТХ и постоянно слать заголовок). :shock:

Голову почти уже сломал, поэтому обращаюсь к тем, кто уже работал с данным типом приемопередатчиков. Заранее спасибо откликнувшимся.
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 140
Зарегистрирован: Вт авг 03, 2010 15:21:20
Откуда: Екатеринбург

Сообщение zvukovik »

Приёмная сторона значит тоже ничего не принимает?

Кто может подсказать, нормально ли, что у CC1101 ошибки довольно часто проходят при передаче?
при использовании аппаратного синхрослова вообще через раз принимает, а без него принимает всякую лажу вместо того, что отправил, у RFM12 гораздо стабильнее связь наблюдал, может это быть из за настроек неправильных? могу выложить свои, если есть смысл
Реклама
Родился
Сообщения: 2
Зарегистрирован: Пт авг 24, 2012 12:34:27

Сообщение freedom-lex »

С заполнением буфера передатчика разобрался. Как я и думал, дело было не в бабине. Подучил матчасть, разобрался. Оказалось все вполне очевидно: младшие четыре бита показывают (если так можно выразиться) последние пятнадцать свободных байт буфера. Как только мы заполняем буфер 49 байтами включительно, то каждый последующий байт отображается в статусном сообщении.

С сигналом на выходе тоже прояснилось. В прошлый раз "щупал" сигнал осциллом с полосой пропускания 400МГц в полной уверенности, что я там хоть что-то увижу. И с чего я это взял?! А на прошлой неделе в мои руки попал осциллограф с полосой пропускания 1ГГц. В общем, сигнал на выходе присутствует. :idea:

Теперь буду пробовать непосредственно связать два трансивера. Посмотрим, что из этого получится...
Ответить

Вернуться в «Цифровая техника»