Перейти к содержанию
    

cc2500 переполнение буффера

Подскажите пожалуйста что нужно сделать, происходит следующие

через некоторое время работы происходит зависание сс2500 считываю регистр RXBYTES 7 бит 1-ца, то-есть буффер приёмный переполнен перехожу в sidle очищаю rxfifo , но это не помогает трансивер отказывается принимать данные

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста что нужно сделать, происходит следующие

через некоторое время работы происходит зависание сс2500 считываю регистр RXBYTES 7 бит 1-ца, то-есть буффер приёмный переполнен перехожу в sidle очищаю rxfifo , но это не помогает трансивер отказывается принимать данные

Прием надо возобновить по srx. Или не допускать переполнения, своевременно освобождая буфер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо!!! помогает, проблема в проге :cranky: не успеваю разгребать буффер.

Извините за наглость не могли бы вы мне разъяснить пару вопросов?

Я не понимаю значения RSSI в плане оно отображаеться наоборот то есть чем лучше связь тем большее значение он показывает

или я не правильно его интерпретирую? скажем при расстоянии в 2-3 метра уровень -85,-70dbm , а при 10,12 метрах -35, -40dbm

и ещё один вопрос в pdf сказано что FEC можно использовать только при постоянной длинне пакета тогда нужно первый байт в пакете использовать как длинну пакета или достаточно задать значение в регистр PKTLEN ?

сейчас использую переменную длинну пакета

Заранее Спасибо!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не понимаю значения RSSI в плане оно отображаеться наоборот то есть чем лучше связь тем большее значение он показывает

или я не правильно его интерпретирую? скажем при расстоянии в 2-3 метра уровень -85,-70dbm , а при 10,12 метрах -35, -40dbm

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

и ещё один вопрос в pdf сказано что FEC можно использовать только при постоянной длинне пакета тогда нужно первый байт в пакете использовать как длинну пакета или достаточно задать значение в регистр PKTLEN ?

сейчас использую переменную длинну пакета

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

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое Спасибо за ответы !!!

Большее значение 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:

И скажите пробовали ли вы использовать с сс2500 усилитель сс2591?

сделал макетки дальность увеличилась, но вот не понятно в даташите указанно что если на вывод сс2591 HGM подана логическая

единица то имеем максимальное усиление входного сигнала, а у меня почемуто наоборот :cranky:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и вот что не понятно, по даташиту полученное значение при максимальном уровне сигнала должно стремиться к нулю, а получается наоборот вот для меня и непонятно

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

И скажите пробовали ли вы использовать с сс2500 усилитель сс2591?

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте!!!

не стал создавать новую тему, подскажите пожайлуста кто работал с режимом WOR, какие там особенности?

мне нужно сократить потребление по минимуму.

Работают четыре датчика и один приёмный модуль, датчики сами начинают сеанс связи каждые четыре секунды отправляют

пакет приёмному модулю, а тот подтверждает приём, если нет потверждения от приёмного передача повторяеться несколько раз,

далее датчик уходит в сон. Вот я подумал что, если каждому датчику выделить свой канал и перевести датчик в режим WOR,

пусть приёмный модуль опрашивает каждый датчик на своём канале.

Заранее Спасибо!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Опять вылезла эта проблема думал решил её , сделал непрерывную посылку данных через каждые 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:

быстрее считывать буффер не могу есть другие задачи, пробывал преходить в режим idle на момент чтения из буффера не помогает :cranky:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Опять вылезла эта проблема думал решил её , сделал непрерывную посылку данных через каждые 2мс и приёмник стал

зависать, не опускаеться вниз GDO_0(настроен как приём синхрослова 0х06) есть примечание в пдф

 

то-есть может не опускаться если переполнен входной буффер?

чтение регистра RXBYTES показывает что всего два байта в буффере.

принудительная очистка буффера и перевод в режим приёма не помогает, только перезагрузка

посоветуите что-нибудь :crying:

быстрее считывать буффер не могу есть другие задачи, пробывал преходить в режим idle на момент чтения из буффера не помогает :cranky:

 

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

 

Опять вылезла эта проблема думал решил её , сделал непрерывную посылку данных через каждые 2мс и приёмник стал

зависать, не опускаеться вниз GDO_0(настроен как приём синхрослова 0х06) есть примечание в пдф

 

то-есть может не опускаться если переполнен входной буффер?

чтение регистра RXBYTES показывает что всего два байта в буффере.

принудительная очистка буффера и перевод в режим приёма не помогает, только перезагрузка

посоветуите что-нибудь :crying:

быстрее считывать буффер не могу есть другие задачи, пробывал преходить в режим idle на момент чтения из буффера не помогает :cranky:

 

запарился :))

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...