Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: cc2500 переполнение буффера
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Rf & Microwave Design
blox
Подскажите пожалуйста что нужно сделать, происходит следующие
через некоторое время работы происходит зависание сс2500 считываю регистр RXBYTES 7 бит 1-ца, то-есть буффер приёмный переполнен перехожу в sidle очищаю rxfifo , но это не помогает трансивер отказывается принимать данные
rx3apf
Цитата(blox @ Jan 31 2011, 20:05) *
Подскажите пожалуйста что нужно сделать, происходит следующие
через некоторое время работы происходит зависание сс2500 считываю регистр RXBYTES 7 бит 1-ца, то-есть буффер приёмный переполнен перехожу в sidle очищаю rxfifo , но это не помогает трансивер отказывается принимать данные

Прием надо возобновить по srx. Или не допускать переполнения, своевременно освобождая буфер.
blox
Спасибо!!! помогает, проблема в проге cranky.gif не успеваю разгребать буффер.
Извините за наглость не могли бы вы мне разъяснить пару вопросов?
Я не понимаю значения RSSI в плане оно отображаеться наоборот то есть чем лучше связь тем большее значение он показывает
или я не правильно его интерпретирую? скажем при расстоянии в 2-3 метра уровень -85,-70dbm , а при 10,12 метрах -35, -40dbm
и ещё один вопрос в pdf сказано что FEC можно использовать только при постоянной длинне пакета тогда нужно первый байт в пакете использовать как длинну пакета или достаточно задать значение в регистр PKTLEN ?
сейчас использую переменную длинну пакета
Заранее Спасибо!!!
rx3apf
Цитата(blox @ Jan 31 2011, 21:19) *
Я не понимаю значения RSSI в плане оно отображаеться наоборот то есть чем лучше связь тем большее значение он показывает
или я не правильно его интерпретирую? скажем при расстоянии в 2-3 метра уровень -85,-70dbm , а при 10,12 метрах -35, -40dbm

Большее значение RSSI соответствует большему уровню сигнала, но там происходит переход через 00, поэтому, чтобы было однозначное соответствие, надо отнять некоторую "базу" (я для удобства вычитал 192). А уровень в dBm, наоборот (поскольку значение отрицательное) - чем меньше (т.е. ближе к 0) число, тем больше уровень, достигая 0 (теоретически, на практике приемник захлебнется), и затем растет в сторону положительного (это когда на входе больше 1 mW).
Цитата
и ещё один вопрос в pdf сказано что FEC можно использовать только при постоянной длинне пакета тогда нужно первый байт в пакете использовать как длинну пакета или достаточно задать значение в регистр PKTLEN ?
сейчас использую переменную длинну пакета

При постоянной длине пакета эта длина записывается в PKTLEN, первый байт пакета - данные.


blox
Большое Спасибо за ответы !!!
Цитата
Большее значение RSSI соответствует большему уровню сигнала, но там происходит переход через 00, поэтому, чтобы было однозначное соответствие, надо отнять некоторую "базу" (я для удобства вычитал 192). А уровень в dBm, наоборот (поскольку значение отрицательное) - чем меньше (т.е. ближе к 0) число, тем больше уровень, достигая 0 (теоретически, на практике приемник захлебнется), и затем растет в сторону положительного (это когда на входе больше 1 mW).

Я данные RSSI читаю из приёмного буффера которые добавляються в конец пакета.
перевожу по рекомендации в даташите
Цитата
Convert the reading from a hexadecimal
number to a decimal number (RSSI_dec)
If RSSI_dec ≥ 128 then RSSI_dBm =
(RSSI_dec - 256)/2 – RSSI_offset
Else if RSSI_dec < 128 then RSSI_dBm =
(RSSI_dec)/2 – RSSI_offset

и вот что не понятно, по даташиту полученное значение при максимальном уровне сигнала должно стремиться к нулю, а получается наоборот вот для меня и непонятно rolleyes.gif
И скажите пробовали ли вы использовать с сс2500 усилитель сс2591?
сделал макетки дальность увеличилась, но вот не понятно в даташите указанно что если на вывод сс2591 HGM подана логическая
единица то имеем максимальное усиление входного сигнала, а у меня почемуто наоборот cranky.gif
rx3apf
Цитата(blox @ Feb 1 2011, 10:29) *
и вот что не понятно, по даташиту полученное значение при максимальном уровне сигнала должно стремиться к нулю, а получается наоборот вот для меня и непонятно

Значит, что-то не так с арифметикой, потому что да, результат должен стремиться к 0 dBm с ростом уровня.
Цитата
И скажите пробовали ли вы использовать с сс2500 усилитель сс2591?

Нет, с усилителями не пробовал.

blox
Здравствуйте!!!
не стал создавать новую тему, подскажите пожайлуста кто работал с режимом WOR, какие там особенности?
мне нужно сократить потребление по минимуму.
Работают четыре датчика и один приёмный модуль, датчики сами начинают сеанс связи каждые четыре секунды отправляют
пакет приёмному модулю, а тот подтверждает приём, если нет потверждения от приёмного передача повторяеться несколько раз,
далее датчик уходит в сон. Вот я подумал что, если каждому датчику выделить свой канал и перевести датчик в режим WOR,
пусть приёмный модуль опрашивает каждый датчик на своём канале.
Заранее Спасибо!!!
blox
Опять вылезла эта проблема думал решил её , сделал непрерывную посылку данных через каждые 2мс и приёмник стал
зависать, не опускаеться вниз GDO_0(настроен как приём синхрослова 0х06) есть примечание в пдф
Цитата
Asserts when sync word has been sent / received, and de-asserts at the end of the packet. In RX, the pin will de-assert
when the optional address check fails or the RX FIFO overflows. In TX the pin will de-assert if the TX FIFO underflows.

то-есть может не опускаться если переполнен входной буффер?
чтение регистра RXBYTES показывает что всего два байта в буффере.
принудительная очистка буффера и перевод в режим приёма не помогает, только перезагрузка
посоветуите что-нибудь crying.gif
быстрее считывать буффер не могу есть другие задачи, пробывал преходить в режим idle на момент чтения из буффера не помогает cranky.gif
vba1984
Цитата(blox @ May 2 2011, 21:24) *
Опять вылезла эта проблема думал решил её , сделал непрерывную посылку данных через каждые 2мс и приёмник стал
зависать, не опускаеться вниз GDO_0(настроен как приём синхрослова 0х06) есть примечание в пдф

то-есть может не опускаться если переполнен входной буффер?
чтение регистра RXBYTES показывает что всего два байта в буффере.
принудительная очистка буффера и перевод в режим приёма не помогает, только перезагрузка
посоветуите что-нибудь crying.gif
быстрее считывать буффер не могу есть другие задачи, пробывал преходить в режим idle на момент чтения из буффера не помогает cranky.gif


поделитесь пожалуйста наработками по теме, если не можно, - имею в наличии две сс2500 и один усилок для них..

Цитата(blox @ May 2 2011, 21:24) *
Опять вылезла эта проблема думал решил её , сделал непрерывную посылку данных через каждые 2мс и приёмник стал
зависать, не опускаеться вниз GDO_0(настроен как приём синхрослова 0х06) есть примечание в пдф

то-есть может не опускаться если переполнен входной буффер?
чтение регистра RXBYTES показывает что всего два байта в буффере.
принудительная очистка буффера и перевод в режим приёма не помогает, только перезагрузка
посоветуите что-нибудь crying.gif
быстрее считывать буффер не могу есть другие задачи, пробывал преходить в режим idle на момент чтения из буффера не помогает cranky.gif


запарился sm.gif)

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