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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> СС1101 + STM32F = отлично, СС1101 + STM32L = сплошные проблемы
D1mconK
сообщение Oct 9 2013, 05:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 13-07-12
Пользователь №: 72 746



Всем привет. Столкнулся со следующей проблемой.

Есть 5 плат абсолютных близнецов по разводке радиочасти, на которых установлена CC1101. На 3 платах ей рулит STM32L на 2 - STM32F100.

На платах с STM32F получена дальность связи в помещении около 35 метров, уровень приема сигнала на расстоянии 1,5 метра -40дБ, данные отлично передаются и принимаются.

На платах c STM32L дальность связи не превышает 5 метров, уровень приема сигнала на расстоянии в 1,5 метра - 95дБ, как следствие - огромное количество пакетов с неверной контрольной суммой


Заменил на заведомо работающих платах STM32F на STM32L и все повторилось -95дБ и 5 метров.

В чем может быть проблема? Контроллеры пин-ту-пин совместимы, радиочасть на платах идентична, но при использовании STM32L результаты многократно хуже, условия проведения замеров также идентичны как и драйвер для работы с CC1101.

Прошу помощи в решении данной проблемы.
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Oct 9 2013, 08:21
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Либо связь по питанию между процессором и модулем , либо наводки по эфиру от умножителя частоты процессора.
Еще могут быть какие-нибудь эффекты от того что программ STM32 и STM32L разные.
Go to the top of the page
 
+Quote Post
D1mconK
сообщение Oct 9 2013, 11:20
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 13-07-12
Пользователь №: 72 746



Цитата(HardEgor @ Oct 9 2013, 12:21) *
Либо связь по питанию между процессором и модулем , либо наводки по эфиру от умножителя частоты процессора.
Еще могут быть какие-нибудь эффекты от того что программ STM32 и STM32L разные.


Связь по питанию одинакова на обоих процах, ввиду их совместимости, помех по питанию не обнаружено
Драйвер для процов одинаков, как и конфиг самой CC1101
Умножитель частоты .... оба проца тактируются от внутреннего источника, частота 16 МГц, частота. стабильна и не плавает
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 9 2013, 11:40
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (D1mconK @ Oct 9 2013, 14:20) *
Но вы ведь и сами понимаете, что чудес не бывает. Процессоры разные, какими бы совместимыми они ни были заявлены.
Возможно с L начинает звенеть ваш стабилизатор, звенеть на таких частотах, которых вы не видите вашим осциллографом. Возможно звенеть начинают цепи питания CC1101. У вас на питании около CC1101 параллельно обычным висят небольшие (сотни пик) емкости для больбы с ВЧ помехами по питанию?
Возможно у L больше (или наоборот меньше) скорость нарастания напряжений на портах и что-то в CC1101 записывается со сбоем. Возможно у L на выходы наводится помеха от PLL, которая через соединенные с CC1101 ноги портов попадает в CC1101 и как-то хитро резонирует с ее внутренними сигналами. Можно повесить емкости на несколько десятков-сотню пик на информационные линии между STM32 и CC1101 чтобы задавить такие наводки.
Кроме вас тут никто не сможет разобраться. Надо брать и постепенно исключать одно предположение за другим. Методом проб.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Onic777
сообщение Oct 9 2013, 15:30
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-08-10
Из: Кишинев
Пользователь №: 58 967



Привет!

Такое явление я замечал даже на одном и том же установленном процессоре C8051F432 + Si4432B1 при работе процессора на разных частотах. При работе на частоте внешнего кварца 11.0592МГц (для связи по UART c GPS модулем на скорости 9600 без ошибок) работа радиоканала была несколько хуже, чем при переводе процессора на тактовую частоту 48MHz от встроенного генератора с умножителем (12MHz * 4). Явление наблюдалось неоднократно на нескольких десятках одинаковых плат...

Вот такие пироги...

Цепи питания проверялись "осциллом" с полосой 250MHz. На плате стоят очень мощные блокирующие конденсаторы. Обильные земляные полигоны. Радиоканал и GPS модуль питаются от отдельных стабилизаторов c мощными фильтрами...

Все бы было хорошо, я вы с удовольствием работал на 48MHz (сэкономил бы внешний кварц с обвязкой и, соответственно, место на плате), да и пиковая производительность проца при этом достигает 48 MIPS!!! , но увы - при этом не могу обеспечить безошибочный прием данных по UART от GPS на стандартной скорости 9600.

biggrin.gif


--------------------
Regards,
Oleg Nicolaiciuc (onic777)
Go to the top of the page
 
+Quote Post
rsv
сообщение Oct 10 2013, 16:18
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 119
Регистрация: 16-07-07
Из: Тула
Пользователь №: 29 160



Могли контрафактную купить. Сейчас это очень просто, подделывают все.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Oct 10 2013, 17:22
Сообщение #7


Гуру
******

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



Точный номинал рабочей частоты ? Используется один канал или выбирается из нескольких ? Если из нескольких, то одинакова ли картина на разных каналах ? Спектроанализатор в доступной близости есть ?

Цитата(Onic777 @ Oct 9 2013, 19:30) *
Цепи питания проверялись "осциллом" с полосой 250MHz. На плате стоят очень мощные блокирующие конденсаторы. Обильные земляные полигоны. Радиоканал и GPS модуль питаются от отдельных стабилизаторов c мощными фильтрами...

Что есть "мощные блокирующие конденсаторы" ? (hint - частота собственного резонанса зависит от емкости и вовсе не случайно в связной аппаратуре не злоупотребляют емкостью, а ставят, скажем, 1000 pF, а то и целый выводок - 20, 100, 1nF, 10 nF).
Go to the top of the page
 
+Quote Post
DASM
сообщение Oct 11 2013, 16:55
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Если мне не изменяет старческая память — у стм прекрасно регулируется скорость нарастания сигнала на ногах. Обещать ничего не могу, но высокая скорость дает кучу помех. ДА, говорят сс110 очень не любят статику, тут не знаю, перешел на Силабс4463
Go to the top of the page
 
+Quote Post
Onic777
сообщение Oct 15 2013, 10:50
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-08-10
Из: Кишинев
Пользователь №: 58 967



Цитата(rx3apf @ Oct 10 2013, 20:22) *
Точный номинал рабочей частоты ? Используется один канал или выбирается из нескольких ? Если из нескольких, то одинакова ли картина на разных каналах ? Спектроанализатор в доступной близости есть ?


Что есть "мощные блокирующие конденсаторы" ? (hint - частота собственного резонанса зависит от емкости и вовсе не случайно в связной аппаратуре не злоупотребляют емкостью, а ставят, скажем, 1000 pF, а то и целый выводок - 20, 100, 1nF, 10 nF).

По питанию стоят 100uF (tantal) + 1.0 + 10n + 100p в соответствие с рекомендациями PDF

PS частота 433.95 канал 1...



--------------------
Regards,
Oleg Nicolaiciuc (onic777)
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Oct 15 2013, 19:54
Сообщение #10


Гуру
******

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



Да, такой выбор конденсаторов неплох (я, впрочем, на такой частоте обхожусь несколькими 0.1 uF, результат не страдает).
[offtopic on]
А вот с проблемой приема 9600 при тактовой 48 MHz - неужели в этом контроллере настолько плохо с выбором коэффицинта деления для UART ? И, в конце концов, при такой тактовой можно было бы приемник сделать просто на ICP таймера (если есть, конечно), я на AVR при на порядок меньшей тактовой так делал, потому что основной UART был занят...
[offtopic off]
Go to the top of the page
 
+Quote Post
Onic777
сообщение Oct 16 2013, 04:08
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-08-10
Из: Кишинев
Пользователь №: 58 967



Цитата(rx3apf @ Oct 15 2013, 22:54) *
А вот с проблемой приема 9600 при тактовой 48 MHz - неужели в этом контроллере настолько плохо с выбором коэффицинта деления для UART ?
[offtopic off]


Приветствую!
Да с коэффициентами деления как раз все нормально, можно делить и делить!!!
biggrin.gif
Только вот коэффициент ошибки UART при этом не нулевой, а 0,16%, а для моей задачи это не допустимо! GPS выдает строковые данные 1 раз в секунду, т.е. если словил ошибочную посылку - очередную поймаешь, в лучшем случае, через 1 секунду!!!


--------------------
Regards,
Oleg Nicolaiciuc (onic777)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 16 2013, 07:15
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Onic777 @ Oct 16 2013, 07:08) *
Только вот коэффициент ошибки UART при этом не нулевой, а 0,16%,
Вообще-то UART способен принимать при разнице скоростей до 10%, а с вашей ошибкой скорости ошибок быть не должно вообще.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Onic777
сообщение Oct 16 2013, 09:25
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-08-10
Из: Кишинев
Пользователь №: 58 967



Цитата(Сергей Борщ @ Oct 16 2013, 10:15) *
Вообще-то UART способен принимать при разнице скоростей до 10%, а с вашей ошибкой скорости ошибок быть не должно вообще.


Приветствую!

Что-то я такого не встречал... Наверное не там лазил! biggrin.gif
А зачем же тогда многие производители микроконтроллеров рекомендуют использовать специальные (зачастую - внешние, т. е. дополнительные) для UART кварцевые резонаторы типа 11,0592 или 22,1184, при этом на борту имеется встроенные высокоточные генераторы 12МГц, дающие ошибку 0,26%. И вообще, какой смысл тогда вычислять ошибку менее 1%, ну или 5%.... ???

Просто у меня очень большая напряженка со временем. Мне отводится всего 1 минута, за время которой я с гарантией должен успеть как минимум 3 раза считать с GPS модуля 4 текстовые строки, обработать их, структурировать данные, зашифровать их в радиофрейм и передать на землю, а потом получить уведомление о приеме, и в случае ошибки, успеть повторить как минимум 1 раз!!!
Вот и решили не рисковать и поставить внешний кварц 11,0592, и из-за него пожертвовать производительностью, площадью платы, весом и стоимостью изделия...

Но за совет спасибо! Попробую поработать от 48MHz...


--------------------
Regards,
Oleg Nicolaiciuc (onic777)
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Oct 16 2013, 09:44
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(Onic777 @ Oct 16 2013, 16:25) *
А зачем же тогда многие производители микроконтроллеров рекомендуют использовать специальные (зачастую - внешние, т. е. дополнительные) для UART кварцевые резонаторы типа 11,0592 или 22,1184, при этом на борту имеется встроенные высокоточные генераторы 12МГц, дающие ошибку 0,26%. И вообще, какой смысл тогда вычислять ошибку менее 1%, ну или 5%.... ???

Потому что коэффициенты делителей целые двоичные, вот и подгоняют частоту кварца к скоростям передачи чтобы было проще делить и получить разные необходимые скорости.
Вот здесь есть цифры разбросов http://www.gaw.ru/html.cgi/txt/doc/micros/...mega_a/21_7.htm
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 16 2013, 11:04
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Onic777 @ Oct 16 2013, 12:25) *
при этом на борту имеется встроенные высокоточные генераторы 12МГц, дающие ошибку 0,26%.
Во всем диапазоне температур и напряжений питания? И вместе с ошибкой округления коэффициента деления суммараная ошибка не будет превышать 5% (у устройства на другом конце провода может быть погрешность в другую сторону)? В таком случае этот генератор можно использовать для тактирования UARTа.

QUOTE (Onic777 @ Oct 16 2013, 12:25) *
кварцевые резонаторы типа 11,0592 или 22,1184
Потому что в их UARTах тактовая частота еще делится на 8 или 16. Вот с учетом этого деления из 12МГц никак не получается нужная скорость с допуском 5%. А те производители, которые умеют ставить на вход UART делители с дробным коэффициентом пишут "при использовании UART можно пользоватьтся внутренним высокостабильным RC-генератором".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

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

 


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


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