Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CC2500 Приемопередатчик
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Rf & Microwave Design
Страницы: 1, 2, 3, 4, 5, 6
Methane
Цитата(woodman @ Mar 12 2009, 11:45) *
Оба.
В моем посте два примера. И оба верны.
И иллюстрируют наиболее употребимое "quantity-per-quantity measures" в радиотехнике.
Для Вашего же конкретного случая возьмите ВАШЕ значение отклонения в ppm и пересчитайте его в герцы по приведеноой методе, она ведь проста, до безобразия.

ppm - One part per million: 1×10–6
нужно на 26 умножать или нет?
Зверюга
наверное нужно.
woodman
Цитата(Methane @ Mar 12 2009, 13:45) *
ppm - One part per million: 1×10–6
нужно на 26 умножать или нет?

И да и нет.
Да - если хотите узнать нестабильность в герцах кварцевого генератора на 26 МГц. Но умножать надо не 26 а 26*Е6 х ()ррм.
andrikk
зачем вы так сильно привязались к стабильности кварца? в цц2500 есть подстройка несущей - читать FREQEST, так же есть дизайннот где описывается динамическая подстройка частоты.
woodman
Цитата(andrikk @ Mar 13 2009, 04:22) *
зачем вы так сильно привязались к стабильности кварца? в цц2500 есть подстройка несущей - читать FREQEST, так же есть дизайннот где описывается динамическая подстройка частоты.

Подстройка частоты тоже имеет свои пределы, и чтобы быть уверенным, что изделие будет работать при предельных отклонениях частоты конкретных образцов кварцев выбранного типа (с выбранной температурной нестабильностью и начальным отклонением частоты) и в диапазоне температур (т.е. динамическая подстройка частоты вырулит текущее отклонение частоты кварца) Вам, как инженеру, это надо обсчитать?.
Harbinger
Вообще-то можно и параметрическую термокомпенсацию применить. Получить на гигагерце уход меньше 1 кГц вполне реально.
Methane
Цитата(Harbinger @ Mar 15 2009, 12:16) *
Вообще-то можно и параметрическую термокомпенсацию применить. Получить на гигагерце уход меньше 1 кГц вполне реально.

Что такое "параметрическая" термокомпенсация? Обычная термокомпенсация? А применить можно что угодно. Хоть атомные часы.
Harbinger
Обычная. TCXO по-буржуйски. В любом сотовике такая схемка.
Как-то проще, чем извращаться с программной подстройкой.
Methane
Цитата(Harbinger @ Mar 15 2009, 17:19) *
Обычная. TCXO по-буржуйски. В любом сотовике такая схемка.
Как-то проще, чем извращаться с программной подстройкой.

Термокомпенсированный кварц в любом сотике? У меня есть генератор прецезионный, ему на рабоий режим полтора часа кажись выходить, там термостабилизированный кварц.
rx3apf
Цитата(Methane @ Mar 15 2009, 19:06) *
Термокомпенсированный кварц в любом сотике?

По крайней мере в былые времена было именно так - и в мобильниках, и в домашних аппаратах 900-MHz диапазона. Там, где генератор одним таким блочком - он термокомпенсированный. Хотя вряд ли 1 ppm, скорее 2 ppm. В современных - затрудняюсь утверждать что-то определенное, но сильно подозреваю, что компенсация сделана программно-аппаратно. Что, кстати, нетрудно сделать и для CC2500, поскольку там есть и термодатчик. Только вот начальную калибровку делать придется...
Цитата
У меня есть генератор прецезионный, ему на рабоий режим полтора часа кажись выходить, там термостабилизированный кварц.

Термостабилизированный - это дело другое. Если что-то крупное, типа "Гиацинта" - то ему еще разогреться нужно. Но 1 ppm он достигнет много раньше, минут через двадцать максимум.
Methane
Цитата(rx3apf @ Mar 15 2009, 18:13) *
По крайней мере в былые времена было именно так - и в мобильниках, и в домашних аппаратах 900-MHz диапазона. Там, где генератор одним таким блочком - он термокомпенсированный.

а электричество откуда?

Цитата
Хотя вряд ли 1 ppm, скорее 2 ppm. В современных - затрудняюсь утверждать что-то определенное, но сильно подозреваю, что компенсация сделана программно-аппаратно. Что, кстати, нетрудно сделать и для CC2500, поскольку там есть и термодатчик. Только вот начальную калибровку делать придется...

А нафига его туда поставили. Может именно из за этого?

Цитата
Термостабилизированный - это дело другое. Если что-то крупное, типа "Гиацинта" - то ему еще разогреться нужно. Но 1 ppm он достигнет много раньше, минут через двадцать максимум.

Г3-110
rx3apf
Цитата(Methane @ Mar 15 2009, 19:36) *
а электричество откуда?

Для термокомпенсации не требуется заметных энергетических затрат. Один из вариантов - подбор конденсаторов с нужным ТКЕ в генераторе таким образом, чтобы минимизировать общее изменение частоты. Есть варианты с терморезисторами и варикапами.
Цитата
А нафига его туда поставили. Может именно из за этого?

Не знаю. Но сомневаюсь. Скорее, для компенсации изменения режимов аналоговых узлов.
Цитата
Г3-110

Жуть страшная... Да, генератор там - прямо брат-близнец "Гиацинта", термостабилизация есть. И наверняка в дьюаровской колбе...
Зверюга
В даташите есть схема - там вообще конденсаторов практически нет. Если так собрать, то чем чревато?
qaz79
Кондёры по питанию естественно нужны, причём очень важно какие именно. Долго колупался с одной платой, приём никак не хотел стабильно работать, подвисал, когда через минуту, когда через 10. В чувство приходил только после выключения питания.
Я уже был готов биться головой об стенку. По питанию стояло 3 кондёра 0603 0.1мкФ, после того как добавил к ним 2шт. 0603 4700 пФ всё заработало как часы.
Methane
Цитата(qaz79 @ May 13 2009, 22:54) *
Я уже был готов биться головой об стенку. По питанию стояло 3 кондёра 0603 0.1мкФ, после того как добавил к ним 2шт. 0603 4700 пФ всё заработало как часы.

Драсте. ESR на больших частотах очень сильно от емкости конденсатора зависит. Поэтому и не лепят везде на 0.1 а вешают гирлянду из 0.1, 1000пф, 33пф итд. Подробности в справочных данных на конденсаторы.

Цитата(Зверюга @ Mar 29 2009, 20:20) *
В даташите есть схема - там вообще конденсаторов практически нет. Если так собрать, то чем чревато?

В этой схеме конденсаторы по питанию просто не показаны. Но они нужны. Тут просто антенна по другому цепляется. Я так не делал, так как глюк поймать из за левой индуктивности или ёмкости, которая не будет на тех частотах работать очень большой. Лучше просто диполь использовать, если габариты позволяют
Denisnovel
Какой толщины должна быть плата если использовать Folded Dipole? Какие могут быть проблемы с ним?
Methane
Цитата(Denisnovel @ May 14 2009, 08:34) *
Какой толщины должна быть плата если использовать Folded Dipole? Какие могут быть проблемы с ним?

Я так понял, что любой, в разумных пределах. И там где-то были рекомандации. 1.4мм работает.
Denisnovel
А какая дальность?
Methane
Цитата(Denisnovel @ May 14 2009, 12:57) *
А какая дальность?

За угол комнаты заходил, работало до конца стены другой комнаты. Тоесть не мерял.
woodman
Цитата(Methane @ May 14 2009, 13:11) *
Я так понял, что любой, в разумных пределах. И там где-то были рекомандации. 1.4мм работает.

Делал антенны по размерам Даташитов. На 0,8 двухслойной и на 1,4 четырехслойной платах.
На 1,4 мм плате согласование было получше.
Это с учетом того что F антена была на мм длиннее и обрезанием доводил до кондиции.
Сделаете точо по руководству, проблем не будет.
OPM
Цитата(woodman @ May 16 2009, 11:28) *
Делал антенны по размерам Даташитов. На 0,8 двухслойной и на 1,4 четырехслойной платах.
На 1,4 мм плате согласование было получше.



А как вы определяли - где согласовано лучше? По конечному результату(т.е. дальности)?
Чем вообще можно мерять согласование pcb-антенны на плате....?
Zoltrix
Цитата(OPM @ May 17 2009, 20:25) *
А как вы определяли - где согласовано лучше? По конечному результату(т.е. дальности)?
Чем вообще можно мерять согласование pcb-антенны на плате....?



Я так понимаю, что при таких размерах антенны (несколько сантиметров) - ничем.
Ибо измерительное устройство внесёт рассогласование в 10 раз большее.
По дальности ориентируйся и точка.
woodman
Цитата(OPM @ May 17 2009, 20:25) *
А как вы определяли - где согласовано лучше? По конечному результату(т.е. дальности)?
Чем вообще можно мерять согласование pcb-антенны на плате....?

Как я это делал и результаты измерений до и после подстройки видно на прилагаемых фото.
Согласование можно измерять подходящим по диапазону Network Analyzer-ом.
Я использовал ZVB-4 (Rohde-Schwarz).
Иннокентий
не многли бы вы описать, как правильно работать с FREQEST и , судя по даташиту, связанный с ним FSCTRL0.
честно говоря реализовав пример из даташита под названием Permanent Frequency Offset Compensation, желаемого результата я не добился.
эффект прямо противоположный ):
Цитата(andrikk @ Mar 13 2009, 05:22) *
в цц2500 есть подстройка несущей - читать FREQEST, так же есть дизайннот где описывается динамическая подстройка частоты.
zheka
А в чем разница между RSSI и LQI?
Как сделать, чтобы передатчик и приемник не переходили в IDLE после приема и передачи?
Иннокентий
RSSI - это мощность сигнала, как таковая...
а LQI это качество сигнала...как-то так... : )
Цитата(zheka @ Jun 17 2009, 11:53) *
А в чем разница между RSSI и LQI?


см. регистр MCSM1.
Цитата
Как сделать, чтобы передатчик и приемник не переходили в IDLE после приема и передачи?
zheka
Хм.. ничего не делаю, инициализирую чип, пишу регистры, затем читаю статусы.
У меня RSSI всегда 128, а LQI каждый раз разный, в данный момент например 127.
Aner
RSSI - Received Signal Strength Indication — способ измерения уровня мощности принимаемого сигнала. Как правило, сигнал измеряется на на промежуточных частотах перед усилителем. Показатель RSSI плохо коррелирует с качеством сигнала, но может использоваться для приблизительной оценки качества сигнала. Более точную оценку можно получить с помощью параметра LQI — Link Quality Indicator.
rx3apf
Цитата(zheka @ Jun 18 2009, 20:10) *
Хм.. ничего не делаю, инициализирую чип, пишу регистры, затем читаю статусы.
У меня RSSI всегда 128, а LQI каждый раз разный, в данный момент например 127.

Похоже, "не то" читается. Читаем правильно, бурстовым чтением ? В любом случае, доставать RSSI и LQI из регистров статуса не очень удобно, гораздо проще включить APPEND_STATUS и получать эти байты вместе с принятым пакетом...
zheka
Я любитель, знания матчасти у меня не особо, поэтому чтобы не сорить здесь глупыми вопросами, дальнейшее обсуждение темы переножу в соседнюю ветку "Мои мучения с CC2500"

rx3apf, ответ на ваш вопрос там.
Denisnovel
Ктио-нибудь делал с усилителем сс2590/2591 на двухсторонней плате. Дальность сильно повышается? Особенно интересует как развести индуктивности, которые стоят по питанию.
ecspert
я вот тоже смонтировал платку 2-ч сторон. на 2590 .. никак не могу запустить ... мож что-то в дизйне.... или какое нить самовозбуждение ...
по RSSi трудно судить о приеме и как проверить что ОНО работает... laughing.gif дальность хочу повысить
zheka
Вы мне объясните, чем отличаются RSSI и LQI приходящие с пакетами и статусные?
Почему статсуные чему-то равны и плавают при отсутствии передачи пакетов?
Denisnovel
После часа работы сс2500 зависает, перестает принимать. GDO0 GDO2 в "1". Вот конфигурация
Код
void writeRFSettings(void)
{
     // Write register settings
    TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG2,   0x01);  // GDO2 output pin config.
    TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG0,   0x06);  // GDO0 output pin config.
    TI_CC_SPIWriteReg(TI_CCxxx0_FIFOTHR,  0x00);  //RX FIFO and TX FIFO Thresholds
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN,   0xFF);  // Packet length.
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL1, 0x04);  // Packet automation control.05
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x05);  // Packet automation control.
    TI_CC_SPIWriteReg(TI_CCxxx0_ADDR,     0x01);  // Device address.
    TI_CC_SPIWriteReg(TI_CCxxx0_CHANNR,   0xAA); // Channel number.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL1,  0x07); // Freq synthesizer control.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL0,  0x00); // Freq synthesizer control.
    TI_CC_SPIWriteReg(TI_CCxxx0_FREQ2,    0x5D); // Freq control word, high byte
    TI_CC_SPIWriteReg(TI_CCxxx0_FREQ1,    0x93); // Freq control word, mid byte.93
    TI_CC_SPIWriteReg(TI_CCxxx0_FREQ0,    0xB1); // Freq control word, low byte.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG4,  0x2B); // Modem configuration. 2D
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG3,  0xF8); // Modem configuration. 3B
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG2,  0x03); // Modem configuration. 73
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG1,  0x22); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG0,  0xF8); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_DEVIATN,  0x44); // Modem dev (when FSK mod en) 00
    TI_CC_SPIWriteReg(TI_CCxxx0_MCSM1 ,   0x0F); //MainRadio Cntrl State Machine 3F
    TI_CC_SPIWriteReg(TI_CCxxx0_MCSM0 ,   0x18); //MainRadio Cntrl State Machine
    TI_CC_SPIWriteReg(TI_CCxxx0_FOCCFG,   0x1D); // Freq Offset Compens. Config
    TI_CC_SPIWriteReg(TI_CCxxx0_BSCFG,    0x1C); //  Bit synchronization config.
    TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL2, 0xc7); // AGC control. c7
    TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL1, 0x00); // AGC control.
    TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL0, 0xb2); // AGC control. b2
    TI_CC_SPIWriteReg(TI_CCxxx0_FREND1,   0xB6); // Front end RX configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_FREND0,   0x10); // Front end RX configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL3,   0xEA); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL2,   0x0A); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL1,   0x00); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL0,   0x11); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSTEST,   0x59); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST2,    0x88); // Various test settings.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST1,    0x31); // Various test settings.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST0,    0x0B);  // Various test settings.
    
  
}

И еще вопрос. Попробывал CCA. После отправки пакета проверяю наличие данных в буфере TX. Часто там остается 1 байт. Что это такое?
Zoltrix
Цитата(Denisnovel @ Aug 3 2009, 09:06) *
Ктио-нибудь делал с усилителем сс2590/2591 на двухсторонней плате. Дальность сильно повышается? Особенно интересует как развести индуктивности, которые стоят по питанию.


Я делал.
Дальность повысилась с 30 метров на 2510 до 200 метров с 2591.
Антенна на печатной плате - одинаковая в обоих случаях.
Индуктивности по питанию делать не надо - это полный бред,
с ними у меня 2591 самовозбуждалась в режиме приёма при HGM=1. При низком усилении - работала стабильно.
После окончательной разводки поставил блокирующие конденсаторы в 2 мм от сс2591 без всяких индуктивностей.
Denisnovel
Может было у кого? Чип зависает после нескольких часов работы. На GDO0 и GDO2 напряжение равно 2В. Статус регистр показывает, что чип находистя в режиме приема(13), но ничего не принимает.
LessNik
Кто-нибудь использовал СС2520? Какие баги имеются?(не вошедшие в etrrata) Наткнулся на тему по СС2420
http://electronix.ru/forum/index.php?showt...mp;#entry193133
пишут, что "Слишком большое время переключения из приема в передачу". Есть ли этот баг в СС2520? И в каких микросхемах он проявляется (СС2420, СС2430...) ?
CHYVAKEASTSIDE
Привет всем!

Есть просьба. У кого есть рабочая конфигурация чипа СС2500???
Я собрал модули. Хочу проверить. Сам пробовал передавать, не принимает.

одно из двух либо не работает, либо не правильно конфигурирован.

Кто кинет конфигурацию регистров???
Таким образом, чтобы принять и передать хотябы 1 пакет.

Проверяю наличие приема так
while(1) {
temp=TI_CC_SPIReadStatus(TI_CCxxx0_RXBYTES);
UDR=temp;
UCSRB=(1<<TXEN);
_delay_ms(300);
}

Кварц 27.000мгц

За ранее благодарен за любую помощь.
mdmitry
slaa325a и SmartRF Studio стоит посмотреть.
CHYVAKEASTSIDE
Цитата(mdmitry @ Jul 26 2010, 19:08) *
slaa325a и SmartRF Studio стоит посмотреть.

Да неее, это я все знаю
Но мне нужно проверенная на практике работающая конфиг.
mdmitry
Цитата(CHYVAKEASTSIDE @ Jul 26 2010, 22:25) *
Да неее, это я все знаю
Но мне нужно проверенная на практике работающая конфиг.

С платами MSP-EXP430F5438 и своими модулями это работало как и задумано у авторов демки. Это не практика?
Вам надо тогда писать/исправлять/дополнять свой конфиг.
Цитата
Кварц 27.000мгц

А с кварцем все в порядке (частота настроек, запуск)?
rx3apf
Цитата(CHYVAKEASTSIDE @ Jul 26 2010, 22:25) *
Да неее, это я все знаю
Но мне нужно проверенная на практике работающая конфиг.

То, что дает SmartRF - реальная и проверенная конфигурация (я проверял на 250kbps+FEC). А вот что в первую очередь надо проверить - не гармониковый ли кварц в опоре. Что на GDO0 без его переконфигурации ? Если 140 с копейками kHz - нормально. А если втрое меньше - то и не будет ничего работать и надо брать приличный "фундаментальный" кварц. Да, и либо полоса должна быть достаточно широкой, либо опоры (либо подстроить номинал несущей)надо выставить достаточно точно, чтобы еще и по этой причине не было проблем...
mdmitry
Цитата(rx3apf @ Jul 27 2010, 17:13) *
То, что дает SmartRF - реальная и проверенная конфигурация (я проверял на 250kbps+FEC).

Только надо свой код в соответствие с настройками писать. rolleyes.gif Пример: MCSM1 = 0x00; а далее нет строба SRX на прием. Больше ничего не примем. Если MCSM1 = 0x0F; то строб не нужен.
CHYVAKEASTSIDE
Да елки зеленые...
Вы читали о чем я прошу...
Я прошу о проверенных настройках для кварца 27.000МГЦ
Пока я хочу проверить работоспособность модулей, работает кварц или нет я потом проверю.
Пока модули ...
ПРошу скиньте рабочие настройки:

а именно

void writeRFSettings(void)
{
TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL1,0x08);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL0,0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ2,0x5A);
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ1,0x1C);
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ0,0x71);
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG4,0x8B);
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG3,0xED);
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG2,0x73);
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG1,0xC2);
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG0,0xEC);
TI_CC_SPIWriteReg(TI_CCxxx0_CHANNR,0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_DEVIATN,0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_FREND1,0x56);
TI_CC_SPIWriteReg(TI_CCxxx0_FREND0,0x10);
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM2,0x07);
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM1,0x30);
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM0,0x18);
TI_CC_SPIWriteReg(TI_CCxxx0_FOCCFG,0x16);
TI_CC_SPIWriteReg(TI_CCxxx0_BSCFG,0x6C);
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL2,0x43);
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL1,0x40);
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL0,0x91);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL3,0xA9);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL2,0x0A);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL1,0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL0,0x11);
TI_CC_SPIWriteReg(TI_CCxxx0_FSTEST,0x59);
TI_CC_SPIWriteReg(TI_CCxxx0_TEST2,0x81);
TI_CC_SPIWriteReg(TI_CCxxx0_TEST1,0x35);
TI_CC_SPIWriteReg(TI_CCxxx0_TEST0,0x0B);
TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG2,0x0E);
TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG0,0x06);
TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL1,0x04);
TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0,0x05);
TI_CC_SPIWriteReg(TI_CCxxx0_ADDR,0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN,0xFF);
TI_CC_SPIWriteReg(TI_CCxxx0_FIFOTHR,0x07);
}


ПРИЕМ




int MAIN(void)
char paTable[] = {0xFF};
char paTableLen = 1;
char TXbuffer[]={1,2,3,4,5,6,7,8,9,0,
1,2,3,4,5,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4};

DDRD=255;


TI_CC_SPISetup();
TI_CC_PowerupResetCCxxxx();
writeRFSettings();


TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE,paTable,paTableLen );

TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
TI_CC_SPIStrobe(TI_CCxxx0_SFRX);
TI_CC_SPIStrobe(TI_CCxxx0_SFTX);




_delay_ms(2);
TI_CC_SPIStrobe(TI_CCxxx0_SRX);
_delay_ms(2);

temp=0;
while(temp==0) {temp=TI_CC_SPIReadStatus(TI_CCxxx0_RXBYTES);}
PORTD=4;//ни разу не загорался (((

while(1) ;}





ПЕРЕДАЧА

int MAIN(void)
char paTable[] = {0xFF};
char paTableLen = 1;
char TXbuffer[]={1,2,3,4,5,6,7,8,9,0,
1,2,3,4,5,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4};

DDRD=255;


TI_CC_SPISetup();
TI_CC_PowerupResetCCxxxx();
writeRFSettings();


TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE,paTable,paTableLen );

TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
TI_CC_SPIStrobe(TI_CCxxx0_SFRX);
TI_CC_SPIStrobe(TI_CCxxx0_SFTX);



_delay_ms(2);
TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO,TXbuffer,30);//заношу 30 байт
_delay_ms(2);
TI_CC_SPIStrobe(TI_CCxxx0_STX);
_delay_ms(4000);
PORTD=TI_CC_SPIReadStatus(TI_CCxxx0_TXBYTES); //остается почему то 28 байт????


while(1) ;}


ПРАВИЛЬНО ДЕЛАЮ???



brag
Доброе время суток!
Кто имеет опыт использования данного трансивера, помогит плс.
Задача такая: передавать/принимать цифровой сигнал побитно в риалтайме(ну почти). битрейт примерно 1-2кгц. модули юзаю эти http://www.seminews.ru/telecommunications/1174.html
коммутация RX/TX програмная.
сигнал идете через выводы GDO2 и GDO0, управление по SPI
Настройки использую дефилтные из смартрфстудии, только некоторые регистры подправил под конкретные условия(кофигурация GDO):
модуляция FSK.
Код
    0x06,  // FSCTRL1       Frequency Synthesizer Control
    0x2D,  // IOCFG0        GDO0Output Pin Configuration
    0x00,  // FSCTRL0       Frequency Synthesizer Control
    0x5D,  // FREQ2         Frequency Control Word, High Byte
    0x93,  // FREQ1         Frequency Control Word, Middle Byte
    0xB1,  // FREQ0         Frequency Control Word, Low Byte
    0x78,  // MDMCFG4       Modem Configuration
    0x93,  // MDMCFG3       Modem Configuration
    0x00,  // MDMCFG2       Modem Configuration
    0x02,  // MDMCFG1       Modem Configuration
    0xF8,  // MDMCFG0       Modem Configuration
    0x03,  // CHANNR        Channel Number
    0x44,  // DEVIATN       Modem Deviation Setting
    0x56,  // FREND1        Front End RX Configuration
    0x10,  // FREND0        Front End TX configuration
    0x07,  // MCSM2        Main Radio Control State Machine Configuration
    0x0F,  // MCSM1        Main Radio Control State Machine Configuration
    0x18,  // MCSM0         Main Radio Control State Machine Configuration
    0x16,  // FOCCFG        Frequency Offset Compensation Configuration
    0x6C,  // BSCFG         Bit Synchronization Configuration
    0x43,  // AGCCTRL2      AGC Control
    0x40,  // AGCCTRL1      AGC Control
    0x91,  // AGCCTRL0      AGC Control
    0xA9,  // FSCAL3        Frequency Synthesizer Calibration
    0x0A,  // FSCAL2        Frequency Synthesizer Calibration
    0x00,  // FSCAL1        Frequency Synthesizer Calibration
    0x11,  // FSCAL0        Frequency Synthesizer Calibration
    0x88,  // TEST2         Various Test Settings
    0x31,  // TEST1         Various Test Settings
    0x0B,  // TEST0         Various Test Settings
    0x07,  // FIFOTHR       RX FIFO and TX FIFO Thresholds
    0x0D,  // IOCFG2        GDO2Output Pin Configuration
    0x04,  // PKTCTRL1      Packet Automation Control
    0x32,  // PKTCTRL0      Packet Automation Control
    0x00,  // ADDR          Device Address
    0xFF,  // PKTLEN        Packet Length


Все в принципе работает, только вот дальность действия при сигнале 0дбм и антенной для WIFI http://www.ccrane.com/images/medium/5db-wifi-antenna.jpg дальность действия уверенного приема (примерно -85дбм по RSSI этого девайса) составляет метров так 5 максимум.
(микрочип MRF24J40 тоже 0dbm добивал на 100метров с pcb "E"-антенной, правда в пакетном режиме,риалтайма в нем нет)
Вариации с AGCCTRL ничего не дают, только шума прибавляют. Пробовал вручную подгонять частоту(FREQ0,FREQ1) (двумя кнопочками +-), думал мож разброс в кварцах - но тоже безрезультатно, с примерно одинаковыми значениями FREQx на обеих девайсах прием наилучший.
Пробовал расширят полосу пропускания (по дефолту было 200кгц, я дотягивал до 800) - только мусора ловится больше.

Далее взял усилок на SKY65135 http://www.skyworksinc.com/uploads/documents/200436E.pdf, на нем и данных антеннах удалось дострелить метров на 200. при чем качал усилок где-то минимум 0.5вт судя по индикатору поля и по VDET этого усилка.
В итоге тоже в радиусе 200м(есть дома, но видимость почти прямая) RSSI где-то тех же -85дбм, если отнести дальше - падает до -9х и качество сигнала уже непригодное. если еще дальше -100дбм и сигнала вообще нет. а на такой моще должно на 10км добить, ну хотяби на 2км smile.gif

Также пробовал вариации с FOCCFG. тоже безрезультатно... Куда копать еще? или мож есть какие-то другие модули, чтобы можно было в риалтайме биты передавать?
У когото есть опыт подключения усилителя к cc2500?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.