Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: СС1101 + STM32F = отлично, СС1101 + STM32L = сплошные проблемы
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Rf & Microwave Design
D1mconK
Всем привет. Столкнулся со следующей проблемой.

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

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

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


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

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

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


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

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

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

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

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

biggrin.gif
rsv
Могли контрафактную купить. Сейчас это очень просто, подделывают все.
rx3apf
Точный номинал рабочей частоты ? Используется один канал или выбирается из нескольких ? Если из нескольких, то одинакова ли картина на разных каналах ? Спектроанализатор в доступной близости есть ?

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

Что есть "мощные блокирующие конденсаторы" ? (hint - частота собственного резонанса зависит от емкости и вовсе не случайно в связной аппаратуре не злоупотребляют емкостью, а ставят, скажем, 1000 pF, а то и целый выводок - 20, 100, 1nF, 10 nF).
DASM
Если мне не изменяет старческая память — у стм прекрасно регулируется скорость нарастания сигнала на ногах. Обещать ничего не могу, но высокая скорость дает кучу помех. ДА, говорят сс110 очень не любят статику, тут не знаю, перешел на Силабс4463
Onic777
Цитата(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...

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


Приветствую!
Да с коэффициентами деления как раз все нормально, можно делить и делить!!!
biggrin.gif
Только вот коэффициент ошибки UART при этом не нулевой, а 0,16%, а для моей задачи это не допустимо! GPS выдает строковые данные 1 раз в секунду, т.е. если словил ошибочную посылку - очередную поймаешь, в лучшем случае, через 1 секунду!!!
Сергей Борщ
QUOTE (Onic777 @ Oct 16 2013, 07:08) *
Только вот коэффициент ошибки UART при этом не нулевой, а 0,16%,
Вообще-то UART способен принимать при разнице скоростей до 10%, а с вашей ошибкой скорости ошибок быть не должно вообще.
Onic777
Цитата(Сергей Борщ @ 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...
HardEgor
Цитата(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
Сергей Борщ
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-генератором".
demiurg_spb
Цитата(HardEgor @ Oct 16 2013, 13:44) *
Потому что коэффициенты делителей целые двоичные, вот и подгоняют частоту кварца к скоростям передачи чтобы было проще делить и получить разные необходимые скорости.
И ещё потому, что внешний кварц, как правило, более термостабилен, чем внутренний RC-генератор.
dac
QUOTE (Onic777 @ Oct 16 2013, 15:25) *
высокоточные генераторы 12МГц, дающие ошибку 0,26%. И вообще, какой смысл тогда вычислять ошибку менее 1%, ну или 5%.... ???

искать лень, по памяти стандарт говорит что у RS-232 допуск на скорость 2%
связано это со следующим:
синхронизацию происходит по фронту старт бита, максимум 10 бит, с битом четности и стоп битом. опрос производится по центру бита, соответсвенно к 10биту центр может сместиться меньше полбита, т.е. разность в скоростях 0,5T/10 = 0.05T т.е. грубо 5%.
более продвинутые схемы используют 3-16 опросов на бит, но это просто улучшение помехоустойчивости.

ЗЫ:
по теме топик стартера - а проц случаем не сбрасывается? еще можно смотреть - собака, висящие входы, подтяжки и т.п. потому как делаются по разным техпроцссам, может ток утечки по входу на Ф больше чем на Л, поэтому Ф работает
rx3apf
Цитата(Onic777 @ Oct 16 2013, 08:08) *
Только вот коэффициент ошибки UART при этом не нулевой, а 0,16%, а для моей задачи это не допустимо! GPS выдает строковые данные 1 раз в секунду, т.е. если словил ошибочную посылку - очередную поймаешь, в лучшем случае, через 1 секунду!!!

Роскошное попадание в номинал. Между прочим, основная масса современных COM-портов имеет как раз отклонение +0.16% от точного номинала. А для надежной работы достаточно вписаться в двухпроцентный допуск (причем отклонение может быть с обоих сторон, в разные стороны, и при этом, с 4% отклонения, все будет четко работать).
vadimp61
В асинхронной системе передачи данных с двумя разными генами никогда 0% не будет априоре.
В синхронных системах и то допускаются ошибки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.