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

Помогите разобраться с СС1101

Добрый день. У меня есть схема, состоящая их контроллера MSP430F2131 и трансивера СС1101, разводка СС1101 взята из даташита. Одну такую схему я запрограммировал на постоянную передачу, другую - на постоянный прием, скорость - 1200 бод. На данный момент проблема в том, что ни один пакет целым передать не удалось. Если включить автоочищение буфера RX при получении неправильного CRC - то вообще тишина. Если отключить эту фичу, то приемник постоянно ловит кучу мусора вперемешку с кусками посылаемого пакета, причем - часто даже не может корректно обнаружить границы байт. То есть, грубо - посылаю "12345", а получаю - "bdfhj", то есть, фактически - то самое "12345", сдвинутое влево на 1 бит. Попадаются пакеты, сдвинутые на 2, 3 и более бит, как вправо, так и влево. Уровень RSSI при этом у меня порядка 40h..70h, в зависимости от взаимного расположения приемника и передатчика (то есть, как я понял из даташита, практически максимально возможный), LQI - постоянно равен нулю. Кварц - 27 мегагерц, я смотрел осциллографом на ножке GD00 - частота вроде бы та, которая нужна (у приемника - ровно 27 мегагерц, у мередатчика - 27.001352 МГц). Подстройку частоты регистрами FREQ2..FREQ0 я пробовал делать - эффекта мало. Я подозреваю, что дело попросту в настройках приема-передачи. Не подскажете в чем может быть дело? Заранее спасибо

 

На всякий случай: содержимое настроечных регистров, которыми я инициализирую трансивер:

 

IOCFG2 DC8 06h

IOCFG1 DC8 2Eh

IOCFG0 DC8 3Fh

FIFOTHR DC8 07h

SYNC1 DC8 0D3h

SYNC0 DC8 91h

PKTLEN DC8 020h

PKTCTRL1 DC8 012h

PKTCTRL0 DC8 04h

ADDR DC8 0h

CHANNR DC8 0h

FSCTRL1 DC8 06h

FSCTRL0 DC8 0h

FREQ2 DC8 20h

FREQ1 DC8 25h

FREQ0 DC8 0EDh

MDMCFG4 DC8 085h

MDMCFG3 DC8 75h

MDMCFG2 DC8 10h

MDMCFG1 DC8 22h

MDMCFG0 DC8 0E5h

DEVIATN DC8 46h

MCSM2 DC8 07h

MCSM1 DC8 32h

MCSM0 DC8 18h

FOCCFG DC8 16h

BSCFG DC8 6Ch

AGCCTRL2 DC8 03h

AGCCTRL1 DC8 40h

AGCCTRL0 DC8 91h

WOREVT1 DC8 87h

WOREVT0 DC8 6Bh

WORCTRL DC8 0FBh

FREND1 DC8 56h

FREND0 DC8 10h

FSCAL3 DC8 0E9h

FSCAL2 DC8 2Ah

FSCAL1 DC8 0h

FSCAL0 DC8 1Fh

RCCTRL1 DC8 41h

RCCTRL0 DC8 0h

FSTEST DC8 59h

PTEST DC8 7Fh

AGCTEST DC8 3Fh

TEST2 DC8 81h

TEST1 DC8 35h

TEST0 DC8 09h

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


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

причем - часто даже не может корректно обнаружить границы байт. То есть, грубо - посылаю "12345", а получаю - "bdfhj", то есть, фактически - то самое "12345", сдвинутое влево на 1 бит. Попадаются пакеты, сдвинутые на 2, 3 и более бит, как вправо, так и влево. Я подозреваю, что дело попросту в настройках приема-передачи. Не подскажете в чем может быть дело?

 

PKTCTRL1 DC8 012h

 

MDMCFG2 DC8 10h

Было бы странно, если бы при таких настройках (особенно MDMCFG2) хоть что-то принялось бы правильно...А вообще полезно использовать Smart RFstudio, уж такого безобразия она явно не должна предлагать...

 

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


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

Было бы странно, если бы при таких настройках (особенно MDMCFG2) хоть что-то принялось бы правильно...А вообще полезно использовать Smart RFstudio, уж такого безобразия она явно не должна предлагать...

Такое значение MDMCFG2 мне посоветовал как раз Smart RFstudio

Но спасибо за наводку, буду копать в этом направлении. Может еще на какие регистры посоветуете обратить внимание?

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


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

Такое значение MDMCFG2 мне посоветовал как раз Smart RFstudio

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

 

 

 

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


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

На всякий случай: содержимое настроечных регистров, которыми я инициализирую трансивер:

У меня настройки такие (см. в приложении), все работает, сравните со своими.

_InitCC1100_0.zip

_InitCC1100_0.zip

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


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

Добрый день. У меня есть схема, состоящая их контроллера MSP430F2131 и трансивера СС1101, разводка СС1101 взята из даташита. Одну такую схему я запрограммировал на постоянную передачу, другую - на постоянный прием, скорость - 1200 бод.

Лучше начинать работу с высоких скоростей, например 250кбит. Низкие скорости с узкой полосой пропускания очень критичны к отклонениям частоты кварца.

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


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

На самом деле поменял значения указанных выше регистров и все пошло :)

Но на 250к почему-то не идет пока, я пробовал такую скорость ставить. С другой стороны - для меня критична дальность передачи, а она на низких скоростях вроде как побольше. А насчет ухода частоты - всерьез думаю по частотному выходу с GDO0 контроллером определять частоту кварца, и расчитывать параметры...

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


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

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

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

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

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

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

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

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

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

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