реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> cc2500 переполнение буффера
blox
сообщение Jan 31 2011, 17:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 18-07-10
Из: Челябинск
Пользователь №: 58 496



Подскажите пожалуйста что нужно сделать, происходит следующие
через некоторое время работы происходит зависание сс2500 считываю регистр RXBYTES 7 бит 1-ца, то-есть буффер приёмный переполнен перехожу в sidle очищаю rxfifo , но это не помогает трансивер отказывается принимать данные
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 31 2011, 17:09
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



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

Прием надо возобновить по srx. Или не допускать переполнения, своевременно освобождая буфер.
Go to the top of the page
 
+Quote Post
blox
сообщение Jan 31 2011, 18:19
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 18-07-10
Из: Челябинск
Пользователь №: 58 496



Спасибо!!! помогает, проблема в проге cranky.gif не успеваю разгребать буффер.
Извините за наглость не могли бы вы мне разъяснить пару вопросов?
Я не понимаю значения RSSI в плане оно отображаеться наоборот то есть чем лучше связь тем большее значение он показывает
или я не правильно его интерпретирую? скажем при расстоянии в 2-3 метра уровень -85,-70dbm , а при 10,12 метрах -35, -40dbm
и ещё один вопрос в pdf сказано что FEC можно использовать только при постоянной длинне пакета тогда нужно первый байт в пакете использовать как длинну пакета или достаточно задать значение в регистр PKTLEN ?
сейчас использую переменную длинну пакета
Заранее Спасибо!!!
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 31 2011, 19:04
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(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, первый байт пакета - данные.


Go to the top of the page
 
+Quote Post
blox
сообщение Feb 1 2011, 07:29
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 18-07-10
Из: Челябинск
Пользователь №: 58 496



Большое Спасибо за ответы !!!
Цитата
Большее значение 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
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 1 2011, 19:13
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(blox @ Feb 1 2011, 10:29) *
и вот что не понятно, по даташиту полученное значение при максимальном уровне сигнала должно стремиться к нулю, а получается наоборот вот для меня и непонятно

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

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

Go to the top of the page
 
+Quote Post
blox
сообщение Feb 9 2011, 14:04
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 18-07-10
Из: Челябинск
Пользователь №: 58 496



Здравствуйте!!!
не стал создавать новую тему, подскажите пожайлуста кто работал с режимом WOR, какие там особенности?
мне нужно сократить потребление по минимуму.
Работают четыре датчика и один приёмный модуль, датчики сами начинают сеанс связи каждые четыре секунды отправляют
пакет приёмному модулю, а тот подтверждает приём, если нет потверждения от приёмного передача повторяеться несколько раз,
далее датчик уходит в сон. Вот я подумал что, если каждому датчику выделить свой канал и перевести датчик в режим WOR,
пусть приёмный модуль опрашивает каждый датчик на своём канале.
Заранее Спасибо!!!
Go to the top of the page
 
+Quote Post
blox
сообщение May 2 2011, 18:24
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 18-07-10
Из: Челябинск
Пользователь №: 58 496



Опять вылезла эта проблема думал решил её , сделал непрерывную посылку данных через каждые 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
Go to the top of the page
 
+Quote Post
vba1984
сообщение May 1 2012, 17:12
Сообщение #9





Группа: Новичок
Сообщений: 1
Регистрация: 7-02-12
Пользователь №: 70 144



Цитата(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 и один усилок для них..
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 07:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01453 секунд с 7
ELECTRONIX ©2004-2016