Methane
Mar 12 2009, 10:45
Цитата(woodman @ Mar 12 2009, 11:45)

Оба.
В моем посте два примера. И оба верны.
И иллюстрируют наиболее употребимое "quantity-per-quantity measures" в радиотехнике.
Для Вашего же конкретного случая возьмите ВАШЕ значение отклонения в ppm и пересчитайте его в герцы по приведеноой методе, она ведь проста, до безобразия.
ppm - One part per million: 1×10–6
нужно на 26 умножать или нет?
woodman
Mar 13 2009, 00:16
Цитата(Methane @ Mar 12 2009, 13:45)

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

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

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

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

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

По крайней мере в былые времена было именно так - и в мобильниках, и в домашних аппаратах 900-MHz диапазона. Там, где генератор одним таким блочком - он термокомпенсированный.
а электричество откуда?
Цитата
Хотя вряд ли 1 ppm, скорее 2 ppm. В современных - затрудняюсь утверждать что-то определенное, но сильно подозреваю, что компенсация сделана программно-аппаратно. Что, кстати, нетрудно сделать и для CC2500, поскольку там есть и термодатчик. Только вот начальную калибровку делать придется...
А нафига его туда поставили. Может именно из за этого?
Цитата
Термостабилизированный - это дело другое. Если что-то крупное, типа "Гиацинта" - то ему еще разогреться нужно. Но 1 ppm он достигнет много раньше, минут через двадцать максимум.
Г3-110
rx3apf
Mar 15 2009, 17:26
Цитата(Methane @ Mar 15 2009, 19:36)

а электричество откуда?
Для термокомпенсации не требуется заметных энергетических затрат. Один из вариантов - подбор конденсаторов с нужным ТКЕ в генераторе таким образом, чтобы минимизировать общее изменение частоты. Есть варианты с терморезисторами и варикапами.
Цитата
А нафига его туда поставили. Может именно из за этого?
Не знаю. Но сомневаюсь. Скорее, для компенсации изменения режимов аналоговых узлов.
Цитата
Г3-110
Жуть страшная... Да, генератор там - прямо брат-близнец "Гиацинта", термостабилизация есть. И наверняка в дьюаровской колбе...
Зверюга
Mar 29 2009, 17:20
В даташите есть схема - там вообще конденсаторов практически нет. Если так собрать, то чем чревато?
Кондёры по питанию естественно нужны, причём очень важно какие именно. Долго колупался с одной платой, приём никак не хотел стабильно работать, подвисал, когда через минуту, когда через 10. В чувство приходил только после выключения питания.
Я уже был готов биться головой об стенку. По питанию стояло 3 кондёра 0603 0.1мкФ, после того как добавил к ним 2шт. 0603 4700 пФ всё заработало как часы.
Methane
May 14 2009, 04:38
Цитата(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
May 14 2009, 05:34
Какой толщины должна быть плата если использовать Folded Dipole? Какие могут быть проблемы с ним?
Methane
May 14 2009, 09:11
Цитата(Denisnovel @ May 14 2009, 08:34)

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

А какая дальность?
За угол комнаты заходил, работало до конца стены другой комнаты. Тоесть не мерял.
woodman
May 16 2009, 08:28
Цитата(Methane @ May 14 2009, 13:11)

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

Делал антенны по размерам Даташитов. На 0,8 двухслойной и на 1,4 четырехслойной платах.
На 1,4 мм плате согласование было получше.
А как вы определяли - где согласовано лучше? По конечному результату(т.е. дальности)?
Чем вообще можно мерять согласование pcb-антенны на плате....?
Zoltrix
May 28 2009, 15:39
Цитата(OPM @ May 17 2009, 20:25)

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

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

в цц2500 есть подстройка несущей - читать FREQEST, так же есть дизайннот где описывается динамическая подстройка частоты.
А в чем разница между RSSI и LQI?
Как сделать, чтобы передатчик и приемник не переходили в IDLE после приема и передачи?
Иннокентий
Jun 18 2009, 09:57
RSSI - это мощность сигнала, как таковая...
а LQI это качество сигнала...как-то так... : )
Цитата(zheka @ Jun 17 2009, 11:53)

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

Хм.. ничего не делаю, инициализирую чип, пишу регистры, затем читаю статусы.
У меня RSSI всегда 128, а LQI каждый раз разный, в данный момент например 127.
Похоже, "не то" читается. Читаем правильно, бурстовым чтением ? В любом случае, доставать RSSI и LQI из регистров статуса не очень удобно, гораздо проще включить APPEND_STATUS и получать эти байты вместе с принятым пакетом...
Я любитель, знания матчасти у меня не особо, поэтому чтобы не сорить здесь глупыми вопросами, дальнейшее обсуждение темы переножу в соседнюю ветку
"Мои мучения с CC2500"rx3apf, ответ на ваш вопрос там.
Denisnovel
Aug 3 2009, 06:06
Ктио-нибудь делал с усилителем сс2590/2591 на двухсторонней плате. Дальность сильно повышается? Особенно интересует как развести индуктивности, которые стоят по питанию.
ecspert
Aug 3 2009, 08:35
я вот тоже смонтировал платку 2-ч сторон. на 2590 .. никак не могу запустить ... мож что-то в дизйне.... или какое нить самовозбуждение ...
по RSSi трудно судить о приеме и как проверить что ОНО работает...

дальность хочу повысить
Вы мне объясните, чем отличаются RSSI и LQI приходящие с пакетами и статусные?
Почему статсуные чему-то равны и плавают при отсутствии передачи пакетов?
Denisnovel
Aug 7 2009, 10:14
После часа работы сс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
Aug 11 2009, 09:37
Цитата(Denisnovel @ Aug 3 2009, 09:06)

Ктио-нибудь делал с усилителем сс2590/2591 на двухсторонней плате. Дальность сильно повышается? Особенно интересует как развести индуктивности, которые стоят по питанию.
Я делал.
Дальность повысилась с 30 метров на 2510 до 200 метров с 2591.
Антенна на печатной плате - одинаковая в обоих случаях.
Индуктивности по питанию делать не надо - это полный бред,
с ними у меня 2591 самовозбуждалась в режиме приёма при HGM=1. При низком усилении - работала стабильно.
После окончательной разводки поставил блокирующие конденсаторы в 2 мм от сс2591 без всяких индуктивностей.
Denisnovel
Aug 21 2009, 08:22
Может было у кого? Чип зависает после нескольких часов работы. На GDO0 и GDO2 напряжение равно 2В. Статус регистр показывает, что чип находистя в режиме приема(13), но ничего не принимает.
LessNik
Aug 26 2009, 11:39
Кто-нибудь использовал СС2520? Какие баги имеются?(не вошедшие в etrrata) Наткнулся на тему по СС2420
http://electronix.ru/forum/index.php?showt...mp;#entry193133пишут, что "Слишком большое время переключения из приема в передачу". Есть ли этот баг в СС2520? И в каких микросхемах он проявляется (СС2420, СС2430...) ?
CHYVAKEASTSIDE
Jul 26 2010, 06:12
Привет всем!
Есть просьба. У кого есть рабочая конфигурация чипа СС2500???
Я собрал модули. Хочу проверить. Сам пробовал передавать, не принимает.
одно из двух либо не работает, либо не правильно конфигурирован.
Кто кинет конфигурацию регистров???
Таким образом, чтобы принять и передать хотябы 1 пакет.
Проверяю наличие приема так
while(1) {
temp=TI_CC_SPIReadStatus(TI_CCxxx0_RXBYTES);
UDR=temp;
UCSRB=(1<<TXEN);
_delay_ms(300);
}
Кварц 27.000мгц
За ранее благодарен за любую помощь.
mdmitry
Jul 26 2010, 13:08
slaa325a и SmartRF Studio стоит посмотреть.
CHYVAKEASTSIDE
Jul 26 2010, 18:25
Цитата(mdmitry @ Jul 26 2010, 19:08)

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

Да неее, это я все знаю
Но мне нужно проверенная на практике работающая конфиг.
С платами MSP-EXP430F5438 и своими модулями это работало как и задумано у авторов демки. Это не практика?
Вам надо тогда писать/исправлять/дополнять свой конфиг.
Цитата
Кварц 27.000мгц
А с кварцем все в порядке (частота настроек, запуск)?
rx3apf
Jul 27 2010, 13:13
Цитата(CHYVAKEASTSIDE @ Jul 26 2010, 22:25)

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

То, что дает SmartRF - реальная и проверенная конфигурация (я проверял на 250kbps+FEC).
Только надо свой код в соответствие с настройками писать.

Пример: MCSM1 = 0x00; а далее нет строба SRX на прием. Больше ничего не примем. Если MCSM1 = 0x0F; то строб не нужен.
CHYVAKEASTSIDE
Jul 27 2010, 18:21
Да елки зеленые...
Вы читали о чем я прошу...
Я прошу о проверенных настройках для кварца 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) ;}
ПРАВИЛЬНО ДЕЛАЮ???
Доброе время суток!
Кто имеет опыт использования данного трансивера, помогит плс.
Задача такая: передавать/принимать цифровой сигнал побитно в риалтайме(ну почти). битрейт примерно 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км

Также пробовал вариации с FOCCFG. тоже безрезультатно... Куда копать еще? или мож есть какие-то другие модули, чтобы можно было в риалтайме биты передавать?
У когото есть опыт подключения усилителя к cc2500?