|
|
  |
cc2500 переполнение буффера |
|
|
|
Jan 31 2011, 17:05
|
Участник

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

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

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

|
Спасибо!!! помогает, проблема в проге  не успеваю разгребать буффер. Извините за наглость не могли бы вы мне разъяснить пару вопросов? Я не понимаю значения RSSI в плане оно отображаеться наоборот то есть чем лучше связь тем большее значение он показывает или я не правильно его интерпретирую? скажем при расстоянии в 2-3 метра уровень -85,-70dbm , а при 10,12 метрах -35, -40dbm и ещё один вопрос в pdf сказано что FEC можно использовать только при постоянной длинне пакета тогда нужно первый байт в пакете использовать как длинну пакета или достаточно задать значение в регистр PKTLEN ? сейчас использую переменную длинну пакета Заранее Спасибо!!!
|
|
|
|
|
Jan 31 2011, 19:04
|
Гуру
     
Группа: Участник
Сообщений: 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, первый байт пакета - данные.
|
|
|
|
|
Feb 1 2011, 07:29
|
Участник

Группа: Участник
Сообщений: 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 и вот что не понятно, по даташиту полученное значение при максимальном уровне сигнала должно стремиться к нулю, а получается наоборот вот для меня и непонятно И скажите пробовали ли вы использовать с сс2500 усилитель сс2591? сделал макетки дальность увеличилась, но вот не понятно в даташите указанно что если на вывод сс2591 HGM подана логическая единица то имеем максимальное усиление входного сигнала, а у меня почемуто наоборот
|
|
|
|
|
Feb 1 2011, 19:13
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(blox @ Feb 1 2011, 10:29)  и вот что не понятно, по даташиту полученное значение при максимальном уровне сигнала должно стремиться к нулю, а получается наоборот вот для меня и непонятно Значит, что-то не так с арифметикой, потому что да, результат должен стремиться к 0 dBm с ростом уровня. Цитата И скажите пробовали ли вы использовать с сс2500 усилитель сс2591? Нет, с усилителями не пробовал.
|
|
|
|
|
Feb 9 2011, 14:04
|
Участник

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

|
Здравствуйте!!! не стал создавать новую тему, подскажите пожайлуста кто работал с режимом WOR, какие там особенности? мне нужно сократить потребление по минимуму. Работают четыре датчика и один приёмный модуль, датчики сами начинают сеанс связи каждые четыре секунды отправляют пакет приёмному модулю, а тот подтверждает приём, если нет потверждения от приёмного передача повторяеться несколько раз, далее датчик уходит в сон. Вот я подумал что, если каждому датчику выделить свой канал и перевести датчик в режим WOR, пусть приёмный модуль опрашивает каждый датчик на своём канале. Заранее Спасибо!!!
|
|
|
|
|
May 2 2011, 18:24
|
Участник

Группа: Участник
Сообщений: 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 показывает что всего два байта в буффере. принудительная очистка буффера и перевод в режим приёма не помогает, только перезагрузка посоветуите что-нибудь быстрее считывать буффер не могу есть другие задачи, пробывал преходить в режим idle на момент чтения из буффера не помогает
|
|
|
|
|
May 1 2012, 17:12
|
Группа: Новичок
Сообщений: 1
Регистрация: 7-02-12
Пользователь №: 70 144

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