Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CC2500 Приемопередатчик
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Rf & Microwave Design
Страницы: 1, 2, 3, 4, 5, 6
RKS
Следующая проблема с CC2420. Запустить то я их запустил а вот дальности на PCB антенне добиться не могу. 35-40 сантиметров - с PCB и метра полтора с круглыми проволочными кольцами. Кольцо строго пополам разделено отводом. Мощность я уже установил и проверил - без нее они вообще не вяжутся. Теперь вот вопросы пошли из области скорее танцев с бубном . Есть там резистор 43 килоома точный. я поставил 5%-ый. Может ли он так фатально влиять? кварц выбирал с точностью по крайней мере обещанной продавцом - нагрузил как в PDF 27 пиками. с индуктивностями получилось все не так гладко. 12 наногенри нашел а вот 27 не получилось. поставил 22 - губительно ли это? еще вопрос по настройке. Надо ли при передаче выключать приемник? Значение RSSI которое приходит в принятом пакете предпоследним байтом наколько я понял знаоквое. в моем случае видимо с минусом. какое значение считается нормальным и какие настройки (программные) на него могут повлиять. Не бейте сильно если вопросы кажутся идиотскими. просто предыдущие ошибки были именно такими же и выловлены были именно в процессе иксплюспервой проверке. Поэтому отвечайте даже если самим смешно. потому что мне уже не смешно..... wacko.gif
rx3apf
Цитата(RKS @ May 29 2007, 12:04) *
Следующая проблема с CC2420. Запустить то я их запустил а вот дальности на PCB антенне добиться не могу. 35-40 сантиметров - с PCB и метра полтора с круглыми проволочными кольцами. Кольцо строго пополам разделено отводом. Мощность я уже установил и проверил - без нее они вообще не вяжутся.

Что-то очень странно, при таких расстояниях вообще без антенн должно бы работать (с 2420 я не имел дела, а с 2500 - проблем не было). По поводу номиналов - вряд ли в варианте с "дифференциальной" антенной критична разница 27 или 22 nHy (а вообще, когда в кассе нет такой мелочевки, проще намотать самому на хвостовике сверла, посчитав по RFsim99, хоть частоты и достаточно большие). Я сильно подозреваю, что проблема может быть в разбеге частот опорников - сделать контроль и сравнить, при необходимости подстроить (программно).
bodja74
Цитата(RKS @ May 29 2007, 11:04) *
потому что мне уже не смешно..... wacko.gif


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

Если дальность приема не изменяется при каждом новом включении (или вообще пропадает),значит "крутим" FREQ,в противном случае смотрим питание и тоже "крутим" FREQ smile.gif

Продавцам верить нельзя smile.gif А если даже верить погрешность кварца если составляет 40ppm ,на выходе мы будем иметь +\- 98кГц ,тоесть такой разброс может даже не влезть в полосу пропускания фильтра.Так что опять "крутим" FREQ smile.gif

Ну и для начала стартуйте с FSK модуляцией ,за счет девиации в настройках частот допускается "+\- трамвайная остановка" smile.gif
RKS
Цитата(bodja74 @ Jun 2 2007, 00:18) *
"крутим" FREQ smile.gif

а можно с этого места по подробнее. smile.gif Как крутить FREQ у 2500 я в принципе понял - уважаемыые товарищи уже выложили здесь достаточно подробный алгоритм. но у 2420 таких регистров как у 2500 нет . есть в (Frequency Synthesizer Test Register)ах несколько полей которые каким то боком коррелируют с этой задачей. Если Вы уже крутили может выложите здесь кусочек этой "крутилки" - очень бы выручили. Заранее спасибо
bodja74
Цитата(RKS @ Jun 3 2007, 23:24) *
а можно с этого места по подробнее. smile.gif Как крутить FREQ у 2500 я в принципе понял - уважаемыые товарищи уже выложили здесь достаточно подробный алгоритм. но у 2420 таких регистров как у 2500 нет . есть в (Frequency Synthesizer Test Register)ах несколько полей которые каким то боком коррелируют с этой задачей. Если Вы уже крутили может выложите здесь кусочек этой "крутилки" - очень бы выручили. Заранее спасибо

Нет в FSCTRL 2420 есть поле с 0 по 9 бит которое называется FREQ ,а не в FSTST.
Ну а принцип ,я думаю тотже.
Я допустим делал шаг на 10 единиц ,сваял небольшую программку для компа и через СОМ порт
регулировал ,одна кнопка посылала символ "+" ,другая "-" smile.gif ,после чего значение FREQ увеличивалось\уменьшалось ,сохранялось в ЕЕПРОМ и дальше рестарт с переинициализацией,в ответ получал пакет ,номер пакета (на случай чтобы контролировать пропуски пакета) и RSSI и LQI.
Делал для СС2500 ,так что исходники врядли чем помогут,ну а программку для ПК могу выслать если есть интерес.
RKS
проблема в том что эти биты предназначены не для точной подстройки а для настройки на канал. одна единица в значении этого поля эквивалентна мегагерцу! то есть добавив всего единичку вы перестраиваете частоту на мегагерц (если я конечно ничего не путаю). в 2500 возможно это и прокатило бы но тут 5 единиу в этом поле - это 5 мегагерц - это уже следующий зигбишый канал. А мне бы по чуть-чуть двигаться.... Есть стсойкое ощущение что у него встроенная самоподстройка все-таки работает. То есть на некотором расстоянии (скажем больше чем на полтора метра)- он не работает - если его приблизить и запустить обмен то можно отойти почти на 3 метра и все будет ок! но если остановить обмен скажем секунд на 15-20 то опять связи не будет. Если я правильно понимаю то он сам пытается подобрать какие то значения для осциллятора но где их смотреть и куда подсовывать для постоянного употребления - хоть прибейте не пойму 07.gif И еще одно стойкое ощущение - по одной схеме включения со штыревой антенной работает неплохо. А на втором устройстве антена PCB (да еще и не по чертежу бл...) так вот там приемник чует хуже - можно как нибудь программно или аппартно поднять его чувствительность - сколько не бился как слону дробина..
bodja74
Даа...
Глянул я характеристики этого чуда smile.gif
С такой полосой миниум в 5мег ,и делением в 1мег подохнуть ему близоруким,
остается верить что там действительно сильный демодулятор ,который позволяет давать разницу в кварцах в 120ppm.
Короче с такими фильтрами и шагами ,дистанции ему не видать как собственных ушей smile.gif

ЗЫ Но для мышки,клавы или ридера подойдет smile.gif
RKS
спасибо на добром слове - приободрили smile.gif но сдаться мы всегда успеем а пока есть вариант денег заработать будем стараться. вот есть в регистрах FSTST0 - FSTST3 несколько битовых полей типа 9:5 VCO_ARRAY_O[4:0] VCO array override value. и 4:0 VCO_ARRAY_RES[4:0] - The resulting VCO array setting from the last calibration и пр. может ткнет меня кто мордочкой в их подробное описание. а то я что то туплю - нет их в PDFнике а они очень калибровкой пахнут...
bodja74
Ну так это Вам не даташиты от Атмела,где все разжевано и расплевано :D
Куча умных словечек ,половину которых подразумевается что вы должны знать ,а про другую они просто забыли написать ,куча ошибок ,противоречий и т.д. :D
Короче даташиты от СС не для "средних умов" ,тут нужно однозначно проявлять смекалку.

Насчет VCO ,это относится к автокалибровке самого генератора и фазовой подстройке,думаю это зависимость от самого питающего напряжения и к AFC (автоподстройке частоты ) не имеет отношения,
хотя можно рискнуть поиграться.
Для 2500 FSCAL рекомендуют считать по студио и тоже ничего подробного не сказано про это.
После подачи строба автокалибровки - это значение меняется и дальше остается таким же,
единственное рекомендуют сохранять это значение при переходе на другой канал ,потом при возврате не нужно будет делать автокалибровку ,достаточно востановить значение.
Спартак
Помогите пожалуйста!

спаял две платки с контроллером и CC2500, прикрутил к ним ЖКИ
через SPI пишу регистры, читаю их.. Передаю пакеты, но не принимаю их на стороне прийомника sad.gif

Вот алгоритм моих действий:


Передатчик:
...
reset_cc2500();
сс2500_init(); //(длина пакета один байт, IOCFG0=0x06, AUTOFLUSH=1)
write_reg(PATABLE,0xfe);

while(1)
{
write_strobe(SIDLE);
write_strobe(SFTX);
write_reg(0x3f,0x55);
write_strobe(STX);
DelayMs(1);
жду когда на выводе GDO0 появится лог1 и иду дальше
}
...



Прийомник:
reset_cc2500();
сс2500_init(); //(длина пакета один байт, IOCFG0=0x06, AUTOFLUSH=1)
)
write_strobe(SIDLE);

while(1)
{
А
write_strobe(SFRX);
write_strobe(SRX);
В цикле контролирую ногу GDO0. Как только на ней лог1 - пришла синхронизация - идти дальше.
В цикле еще раз контролирую ногу GDO0 но жду лог0 - Если лог0 - идти дальше иначе на начало проверки

Проверка выполняется успешно!!!

читаю регистр RXBYTES, НО ТАМ НОЛЬsad.gif
(AUTOFLUSH=1 видимо автоматом очищается буфер из-за несовпадения СRС)
вовращаюсь на точку А

и снова RXBYTES=0
...
Спартак
подсказали ,что проверка RXBYTES совсем не к тому smile.gif

ну вот я пошел немного дальше:
читаю:


read_reg(RXBYTES)
=0

rw_spi(RXFIFO_B)
=16 (эт типа статус моей "просьбы" поработать с буфером)

rw_spi(0)
=161 (длина пакета..хотя я оговаривал длину в один байт)

rw_spi(0)
=31 (данные...хотя я передавал 0x55)

rw_spi(0)
=31 (это типа тут должны были быть RSSI)

rw_spi(0)
=31 (а вот тут LQI)

понимаю, что туплю, но где? smile.gif
как правильно работать буфером прийомной стороны?
TBI
Возможно ошибка в настройке канала связи. Запустите SmartRF Studio и отконфигурируйте регистры согласно вашим установкам. Попробуйте передать более одного байта.
Спартак
Цитата(TBI @ Mar 24 2008, 18:09) *
Возможно ошибка в настройке канала связи. Запустите SmartRF Studio и отконфигурируйте регистры согласно вашим установкам. Попробуйте передать более одного байта.


спасибо! уже разобрался smile.gif
я по простоте душевной в буфер передатчика данные писал совсем совсем не правильно..
сейчас передаю и принимаю пакеты. дальность на открытой местности еще не испытывал, но думаю, что 30 метров наберется


теперь у меня вопросы по работе сс2500 уже другие..

-вот как быстро просыпается сс2500 из состояния пониженного энергопотребления? сколько занимает времени переход из "power down modes" к режиму передачи/прийома?

- как правильно ее ложить спатки, как будить?

smile.gif
Спартак
..аппаратное управление/поддержка пакетами, включая:

-генерацию преамбулы
-вставка/обнаружение программируемого слова синхронизации
-проверка адреса
-поддержка переменной длины пакетов

если кто в курсе помогите вкурить нафиг это все нуна?




ADDR 0x09 //Device address
CHANNR 0x0A //Channel number
какой смысл, в чем разница?
Algol
DEVICE_ADDR - адрес используемый для пакетной фильтрации. Широковещательные адреса 0х00 и 0xFF.
CHANNR - выбор физического канала, который добавляется к базовой несущей частоте.

Иногда несколько раз прочитанный даташит снимает много дополнительных вопросов.

P.S. Простите за офф, но передачи/прийома как серпом по ...sad.gif
Спартак
Цитата(Algol @ Mar 27 2008, 15:23) *
DEVICE_ADDR - адрес используемый для пакетной фильтрации. Широковещательные адреса 0х00 и 0xFF.
CHANNR - выбор физического канала, который добавляется к базовой несущей частоте.

Иногда несколько раз прочитанный даташит снимает много дополнительных вопросов.

P.S. Простите за офф, но передачи/прийома как серпом по ...sad.gif



за оффтоп не пращаю, а за "пачитать даташит" ваще щаз абазлюсь на весь мир!
вот удивительные все же люди..значит прийом - это серпом, а на весь форум о яйцах эт ниче страшнава!? smile.gif)0

и о главном: если я буду передавать пакеты чипом сконфигурированным для работы CHANNR =1, то те чипы ,которые сконфигурированы для работы в CHANNR =2 нифинта не примут?
а если один чип будет работать в "DEVICE_ADDR №1", а другой в "DEVICE_ADDR №2" ?
что значит "широковещательные адреса 0х00 и 0xFF" ?
sensor_ua
Предлагаю Спартак ознакомиться с правилами форума http://electronix.ru/index.php?pid=2 и не забыть обратить внимание на п. 2
Спартак
Цитата(sensor_ua @ Mar 27 2008, 17:57) *
Предлагаю Спартак ознакомиться с правилами форума http://electronix.ru/index.php?pid=2 и не забыть обратить внимание на п. 2


да че там читать? эти ваши пунктики везде адинаковые! абищаю слушаться ,)

а кто может пролить свет на технологию CCA, WOR ?
а по русски о RSSI, LQI ? я вот в "паралельной" ветке встретил такое описание: RSSI - это уровень сигнала ,а LQI качество Эт, как панимать? А как переводить в нечто удобоваримое? smile.gif

и вот еще: если я потихонечку, не спеша - выбираю данные из буфера прийомника, а в этот момент передатчик передает пакет, то он (пакет) теряется?
я че спрашиваю: вчера настроил передатчик на длину пакета в 50 байт, 250kBaud. и с максимально возможной скоростью передаю пакеты, а вот прийомник принимает пакеты с пропуском некоторых ,это связано с тем ,что я не успеваю быстро обработать входной буфер?

Спасибо ,всем кто подскажет/поможет smile.gif
Спартак
Цитата(sensor_ua @ Mar 27 2008, 18:36) *


Спасибо, Вы удивительно внимательно отнеслись к моим вопросам, и очень верно подметили, что ответы на них искать нужно в других местахsmile.gif
и если можно удалите мои посты в теме ,пусть они умрут всместе со следами моего невежества, и моей беспрасфетнай глупасти. гы
morhit
Люди добрые, а может кто-нибудь нарисовать схему полную подключения ATmega8(или 48) и трансивера сс2500, буду ну оч благодарен.
aaarrr
Всей схемы там 6 проводов:
Код
CC2500    ATMega8

SCK       PB5/SCK
DO        PB4/MISO
DI        PB3/MOSI/OC2
CS        PB2 или любой другой
GDO0      можно подать на CLKIN для тактирования меги
GDO2      PD2/INT0 или PD3/INT1
morhit
Мог бы кто-нибудь выложить рабочий код (полный, вместе с инициализацией МК вобщем какой уже прошивается) на ассемблере, я в программировании МК новичек, на уровне подпрограм уже разбираюсь, а полный код из частей собрать не могу, буду очень признателен.
zltigo
Цитата(morhit @ Jun 2 2008, 06:55) *
Мог бы кто-нибудь...

Дайте воды напиться, а то так есть хочется, что переночевать негде, да и нескем...
Начните может быть с простых вещей типа "контроллера светодиода". Или, если все равно начинаете, купите готовый кит eZ430-RF2500 и начните с MSP430 а не с AVR. Там и нарисовано, и припаено будет, и написано...
Moderator:
С таким уровнем разговоров - строго в раздел для начинающих.
АДИКМ
Цитата(morhit @ Jun 2 2008, 07:55) *
Мог бы кто-нибудь выложить рабочий код (полный, вместе с инициализацией МК вобщем какой уже прошивается) на ассемблере, я в программировании МК новичек, на уровне подпрограм уже разбираюсь, а полный код из частей собрать не могу, буду очень признателен.


Скачайте с сайта TI продукт под названием Simpliciti. Это бесплатный, открытый стек. Правда он написан на С , зато Вам легче будет портировать на амтегу... smile.gif
AlbertShklovich
Хотелось бы поинтересоваться пробовал ктонить ставить на 2500 готовые балуны например муратовские LDB182G4520C-110
И вообще я пощитал импеданс выходной (по доку 80+j74) получается 148 ом эквивалент а готовый балун на 200 - да и слышал я гдето в сети что симметричный выход у 2500 - 200 ОМ. Или гдето у меня ошибочка
Да и попутно как вы считаете подойдут к системе кварцы типа cstcz_x12 ?
Dimon1000
Работаю с CC2500. Собрал схему как в DN004. Все работает, и дальность есть, и на разных скоростях все хорошо. Но есть один момент - это режим Sleep, включаемый командой SPWD. Потребление в этом режиме мне не удается снизить менее 150 мкА. Если включать режим SXOFF, то потребление на, заявленные, 160мкА больше, чем в Sleep. Т.е. потребление во всех режимах больше на эти 150мкА. Пробовал на порты SPI в Sleep выставлять и 1, и 0 – не помогает.
Кто-нибудь может помочь, а то очень хочется получить, заявленные 400 нА! (да хотя бы 1 мкА! и то жизнь медом бы показалась)
Alex B._
Цитата(Dimon1000 @ Jul 11 2008, 12:15) *
Т.е. потребление во всех режимах больше на эти 150мкА.

Значит что-то куда-то течет. Как измеряете? У меня меньше микроампера в слипе ест, как и заявлено.
Dimon1000
Цитата(Alex B._ @ Jul 11 2008, 14:04) *
Значит что-то куда-то течет. Как измеряете? У меня меньше микроампера в слипе ест, как и заявлено.


Пока не могу понять откуда и куда может течь!
Использую pic16f690. И то и другое запитываю от 3В литьевой батарейки. Для измерения использую резистор 24 Ом, после которого стоит конденсатор 10 мкФ. Мерю падение напряжение на резисторе.
Измерял двумя способами: всей платы в целом; отдельно СС2500.

Может еще питание частично снимать, например, с аналоговой части, но это уже огород какой-то получается! (Эти мысли уже от безысходности!!!)
TheMad
А иногда попадаются электролитические конденсаторы, которые имеют сопоставимую с этой цифрой утечку. Попробуйте проверить - чем черт не шутит...
Dimon1000
Проверял: включал RC без CC2500 – потребление 0 (по сравнению со 150мкА)!
И даже тантал паял вместо электролита!

Может, какие регистры не так конфигурирую?
Но я пробовал после сброса сразу в слип загонять без прогрузки регистров, так тот же результат получал.
Zoltrix
Вопрос не совсем по 2500, но тему создавать не хочется.

Делал ли кто более-менее живой проект на Си для 2510/2511 ??
Если делал - поделитесь исходником, хочу начать этот чип программить,
но не хватает так сказать проекта для затравки.
Вообщем хоть с чего начать, не с нуля же...
Заранее благодарен.
Если чего стукните в аську 218774540
Alex B._
Цитата(Zoltrix @ Aug 9 2008, 00:55) *
Если делал - поделитесь исходником, хочу начать этот чип программить,

За то время пока вы по разным форумам ищите исходники, можно было уже проект закончить.
acex2
Цитата(Zoltrix @ Aug 9 2008, 00:55) *
Вопрос не совсем по 2500, но тему создавать не хочется.

Делал ли кто более-менее живой проект на Си для 2510/2511 ??


TI делал. Проект вполне себе живой. На Си. Называется SimpliciTI.
И еще swrc085a.zip
Zoltrix
Цитата(acex2 @ Aug 9 2008, 11:55) *
TI делал. Проект вполне себе живой. На Си. Называется SimpliciTI.
И еще swrc085a.zip



Это я видел.
С первого взляда явная избыточность, как для примера.
Хотелось чё-нить попроще, понятное с первого взгляда.
Да и вообще найти и пообщаться с человеком с теми же проблемами.
Zoltrix
Вообщем за базовый проект, взял файл swrc085a.zip с примером программы под СС2510 с сайта ТИ.
Беру главный файл проекта - per_test_main.c. В принципе во многом уже разобрался (повыкидал код относящийся к некому ЖКИ, подставил режимы конфигурирования радиочасти без выбора с меню, а просто жёстко в программе прописал параметры) и даже некоторому научился - например сейчас без проблем могу читать/писать в пины, так что светодиодами на плате мигаю и состояния с переключателей режимов снимаю. Далее пошёл на конфигурирование радиочасти, установил 2460 частоту, 250 кбод, и другие параметры, всё как в примере. Зациклил эту некую процедуру передачи программно и спаял небольшую схемку - высокочастотный выпрямитель с выходом на чувствительный микроамперметр, подсоединил всё к антенне через конденсатор малой ёмкости. Вообщем при передаче стрелка чуть отклоняется - значит ВЧ энергия с выхода СС2510 идёт в антенну. К сожалению других приборов способных мерять 2,4 ГГц у меня нет.
В цикле передачи потом поставил задержку на пол-секунды, прошил, смотрю на микроамперметр когда идёт передача стрелка отклоняется, потом на пол-секунды падает. Вообщем всё как в программе. Сделал вывод - что-то в антенну идёт это точно.
Вопросы:
1)Но вот что??? Не могу понять где в процедуре передатчика подсовываются сами передаваемые данные
вот смотрю в условие if (mode == RADIO_MODE_TX)
там есть radioPktBuffer[i] = 0xCC; --- А ЧТО ЭТО???
2) Далее там же burstSize = selectBurstSize(); --- А ЧТО ЭТО ТАКОЕ???
Я задал значение из тех 4-ёх, что можно было, задал жёстко burstSize = 1000; сам не понимая что оно значит. Но как бы при 1000 цикл передачи у меня проходит в 10 раз быстрее чем когда ставлю 10000.
3) также вообще не могу понять что оно значит --- pktSetSeqNum(seqNum);
4) далее вопросы по части if (mode == RADIO_MODE_RX)
perRssiSum -= perRssiBuf[perRssiBufCounter]; --- ЧТО И ЗАЧЕМ ЭТО??
Там и дальше по программе ещё раз 5 встречаются строки с RSSI, соответсственно зачем они тоже не понимаю.
5) И где в итоге вышли те данные которые я хотел передать, я тоже не могу найти
Вообщем не вижу ни того, что входит ни того, что выходит. )))
Zoltrix
[quote name='Zoltrix' date='Aug 21 2008, 12:41' post='457961']
Вообщем за базовый проект, взял файл swrc085a.zip с примером программы под СС2510 с сайта ТИ.
Беру главный файл проекта - per_test_main.c. В принципе во многом уже разобрался (повыкидал код относящийся к некому ЖКИ, подставил режимы конфигурирования радиочасти без выбора с меню, а просто жёстко в программе прописал параметры) и даже некоторому научился - например сейчас без проблем могу читать/писать в пины, так что светодиодами на плате мигаю и состояния с переключателей режимов снимаю. Далее пошёл на конфигурирование радиочасти, установил 2460 частоту, 250 кбод, и другие параметры, всё как в примере.
Случилось чудо - радиотракт запустил. Потом пол-дня бегал смотрел, где как принимает.
Вообщем там пакет в radioPktBuffer заполняется данными 0хСС - уже разобрался, я поставил проверку при чтении и если принимает 0хСС то горит светодиод, если нет то тухнет. Типа простейший индикатор принятых данных.
В помещении на 5 метров при любой ориентации антенны работает,
при 10м уже начинаются проблемы, антенну надо ориентировать.
На расстоянии 20м приём получить крайне тяжело, нужно найти определённую точку для приёма и ориентацию антенны. Метров с 30 приёма нет вообще.
Тоесть, в принципе, всё как можно было использовать пример с сайта ТИ - я использовал.

Теперь остаётся самое сложное, как мне правильно передать СОМ-порт.
Мне обязательно необходима безошибочная передача, т.е. мне надо сделать некий буфер, заполнять его данными, потом в какой-то момент их передавать пакетом по радиотракту. А если он на приёмной стороне примется не правильно, то надо как-то заставить передатчик опять передать те даные, а на приёмной стороне их надо как-то опять правильно собрать в один поток и отправить в СОМ-порт. Вообщем я так понимаю должен быть целый алгоритм приёмо-передачи с исправлением ошибок, с повтором пакетов.
zl3p
Привет всем. Я проглядел данную тему и у меня сложилось впечатление, что при использовании данного девайса может возникнуть целая куча проблем. Даташит его выглядит для начинающего электронщика, не имевшего ранее дела с радиопередающими устройствами, весьма пугающе. У меня будет несколько общих вопросов:
1) так всё-таки, используется ли у кого-нибудь на практике сей девайс и как он себя проявляет?
2) как много времени уйдет на то, чтобы его заказать и получить? (ибо ждать два месяца нет возможности)
3) как много времени ушло у вас на то, чтобы научиться пользоваться этим приборам?
4) стоит ли с ним связываться? Возможно существуют аналоги немного более дорогие (до 20у.е), но более доработанные и удобные и использовании.

А задача всё та же - передать 3 бита информации на расстояние в 3 м.
ksv198
Цитата(zl3p @ Nov 6 2008, 17:00) *
Привет всем. Я проглядел данную тему и у меня сложилось впечатление, что при использовании данного девайса может возникнуть целая куча проблем. Даташит его выглядит для начинающего электронщика, не имевшего ранее дела с радиопередающими устройствами, весьма пугающе. У меня будет несколько общих вопросов:
1) так всё-таки, используется ли у кого-нибудь на практике сей девайс и как он себя проявляет?
2) как много времени уйдет на то, чтобы его заказать и получить? (ибо ждать два месяца нет возможности)
3) как много времени ушло у вас на то, чтобы научиться пользоваться этим приборам?
4) стоит ли с ним связываться? Возможно существуют аналоги немного более дорогие (до 20у.е), но более доработанные и удобные и использовании.

А задача всё та же - передать 3 бита информации на расстояние в 3 м.


1) И еще как! Провляет себя весьма положительно.
2) В Москве (если будут на складе фирмы) часа два, по России от почты зависит.
3) С нуля на первой версии даташита (где много чего не было) - около месяца, с учетом ручного домашнего изготовления плат.
4) Это Вам решать
andrikk
Ктот-то приделывал к нему RF-FrontEnd CC2591?
плату из референса разводили?
хочу попробовать на двухслойке, но боюсь возбуждения тракта.
ih_
2All:
- в чем отличие CC2500 от CC2550?
- подбросте ссылочку, как индуктивность трассой сделать?
спасибо. )
VAI
Цитата(ih_ @ Nov 14 2008, 11:07) *
2All:
- в чем отличие CC2500 от CC2550?
- подбросте ссылочку, как индуктивность трассой сделать?
спасибо. )

СС2550 - передатчик.
СС2500 - трансивер.
Zoltrix
Цитата(andrik.kiev.ua @ Nov 14 2008, 05:32) *
Ктот-то приделывал к нему RF-FrontEnd CC2591?
плату из референса разводили?
хочу попробовать на двухслойке, но боюсь возбуждения тракта.


делал как в РД,
в итоге при приёме получил возбуд, когда HGM=1.
Выкинул tl-индуктивности - всё ОК.
Надо ближе к корпусу МС располагать емкостя и возбуда не будет
andrikk
Цитата(Zoltrix @ Dec 19 2008, 09:02) *
делал как в РД,
в итоге при приёме получил возбуд, когда HGM=1.
Выкинул tl-индуктивности - всё ОК.
Надо ближе к корпусу МС располагать емкостя и возбуда не будет

спасибо за ответ.
в референсе многослойная плата. Сколько слоев у Вас?
как насчет дальности, стоит заморачиваться?
на зондах использую фолдед диполь, но не хватает дальности в городских условиях - хочу в базе поставить 2591.
Zoltrix
Цитата(andrik.kiev.ua @ Dec 23 2008, 02:31) *
спасибо за ответ.
в референсе многослойная плата. Сколько слоев у Вас?
как насчет дальности, стоит заморачиваться?
на зондах использую фолдед диполь, но не хватает дальности в городских условиях - хочу в базе поставить 2591.


У меня печатка всего 2 слоя. Антенна - псб-диполь на печатной плате. Длинна - 42 мм.
Расстояние без 2591 - около 20 метров при любом расположении антенн и около 100 метров при стогом направлении антенн друг на друга.
С усилителем 2591 - расстояния около 50 и 300 метров.
Кирпичную стену в 3 кирпича пробивает без проблем. Ж/Б плиту вниз на этаж, но с заметным затуханием - надо ориентировать антенны.
Всё очень сильно зависит от антенны - надо подбирать её длинну, так как хар-ки текстолита очень разные.
woodman
А кто-нибудь использует трансивер-SOC СС2510?
ksv198 - Вы работаете с СС2500 уже 3 года, по крайней мере начинали.
На СС2510 не переходили?
Вопрос вообще-то ко всем кто использует этот чип.
Есть ли зависания встроенного контроллера при приеме пакетов с использованием ПДП и как боретесь с этим.
Еррата даташит от TI читаем но что-то слабо помогает.
ksv198
Цитата(woodman @ Jan 20 2009, 04:06) *
А кто-нибудь использует трансивер-SOC СС2510?
ksv198 - Вы работаете с СС2500 уже 3 года, по крайней мере начинали.
На СС2510 не переходили?
Вопрос вообще-то ко всем кто использует этот чип.
Есть ли зависания встроенного контроллера при приеме пакетов с использованием ПДП и как боретесь с этим.
Еррата даташит от TI читаем но что-то слабо помогает.

Добрый день! На СС2510 не переходил, просто применял в другом проекте. СС2500+АТМега48 дешевле одной СС2510, при этом для моих целей Меги хватает. При использовании СС2510 только один плюс для себя нашел - меньше места на плате занимает.
woodman
Цитата(ksv198 @ Jan 20 2009, 20:14) *
Добрый день! На СС2510 не переходил, просто применял в другом проекте. СС2500+АТМега48 дешевле одной СС2510, при этом для моих целей Меги хватает. При использовании СС2510 только один плюс для себя нашел - меньше места на плате занимает.

Спасибо!
А зависания в режиме приема с СС2510 наблюдались?
И еще, использовали ли ПДП на приеме?
С передачей нет проблем, а вот прием (Пакеты ~24Bytes; 250kbps; FSK) какой-то глюкавый получается у нас.
Поэтому любой опыт работы с чипом будет интересен и полезен.
Zoltrix
Цитата(woodman @ Jan 22 2009, 04:44) *
Спасибо!
А зависания в режиме приема с СС2510 наблюдались?
И еще, использовали ли ПДП на приеме?
С передачей нет проблем, а вот прием (Пакеты ~24Bytes; 250kbps; FSK) какой-то глюкавый получается у нас.
Поэтому любой опыт работы с чипом будет интересен и полезен.


Зависания есть, помогает только пересброс питания или код подобный тому что у меня.
Происходят это после приёма сбойного пакета и последующей потери синхронизации, дальше надо проводить термокалибровку - без неё приём не востановится. А также не всегда при приёме пакета (особенно если он неправильный - сбойный) выстанавливался флаг.
Вот упрощённая процедура приёма.

tick_t4 - таймер по прерыванию 500 мкс
tick_25ms - счётчик 25 мс интервалов


void RadioRXwork(void)
{
mode = RADIO_MODE_RX;
// Установка DMA для перемещения пакета в радиобуфер
dmaRadioSetup(RADIO_MODE_RX);
// Начало приёма
DMAARM = DMAARM_CHANNEL0; // Arm DMA channel 0
RFST = STROBE_RX; // Switch radio to RX
tick_25ms=0; // Обнуление ожидания приёма

while (TRUE)
{
// Опрос поступающего пакета принятого по радио
if (pktRcvdFlag) // TRUE значит пришёл пакет и его обрабатывают
{
pktRcvdFlag = FALSE;
// Проверка принятого пакета
if (pktCheckValidity())
{ // Определяется что должно быть в пакете чтобы приемник его принял
// Запись данных в буфер UART и выдача в UART

tick_t4=40; // Снхронизация таймеров приёмной и передающей части

SIZE_UART_TX_DATA=radioPktBuffer[1]-6;
for (temp_i=7; temp_i<=38; temp_i++) uartTxBuffer[temp_i-7] = radioPktBuffer[temp_i];

// Если пакет не пустой, то запрещение прерываний (иначе UART передавал по несколько байтов) и выдача в UART
if (SIZE_UART_TX_DATA > 0) {RX_TX_DATA++; uartStartTxForIsr();}
return;
}
// Нам не нужен буфер пакета больше, готовимся к следующему пакету
if (SIZE_UART_TX_DATA == 0) {DMAARM = DMAARM_CHANNEL0; RFST = STROBE_RX;} //// <<<<<<<< ЭТО ОБЯЗАТЕЛЬНО!!!
}
if (tick_25ms>40) // Если не было обмена более 1с - выключаем радиотракт (переводим в режим IDLE)
{
P2_0=0; RFST = 0x04; //// <<<<<<<< переводим в режим IDLE ЭТО ОБЯЗАТЕЛЬНО!!! Чтобы без термокалибровки в приём не переходило
halWait(10); P2_0=1; // Мигание светодиода в дежурном режиме
tick_t4=20; break;
}
}
}


Кстати, везде где есть проверка флагов использую конструкцию с привязкой по времени
while((!pktSentFlag) && (tick_t4!=25)); //////////// ЗДЕСЬ без (tick_t4!=25) ЗАВИСАЛО
pktSentFlag = FALSE;
slpo10
Народ, наставьте на путь истинный. Завязался с СС2500 и СС2510. Сейчас в хозяйстве EZ430RF-CC2500 (родной TI) и самопальные СС2511 и СС2510 (макетки, кольцевая антенна).

Задача - беспроводной датчик с батарейным питанием (2хAAA). Период опроса - 10 - 60сек (не поллинг, сами просыпаются и отсылают). Размер помещения 6 на 40 метров, где будет работать штук шесть таких датчиков. Второй месяц разбираюсь с исходниками, и смотрю, что это еще на долго.

Вопрос к тем, кто уже бился smile3046.gif об эту стену. Надо ли мне simpliciti? В принципе датчик может не контролировать удачность приема - потеря нескольких измерений нестрашна. Может тогда СС2550 + какой-нибудь дешевый проц? Хотя из дополнительных функций теряется возможность изменения частоты опроса и смена номера канала (в соседнем помещении будет работать такой же комплект).

PS В EZ430RF в демо убила следующая вещь: при передергивании питания хоста, поинт не переподключается - надо передернуть и поинта.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.