Страница 1 из 1

Электромагнитные помехи от STM32 ухудшают приём GPS-сигнала

Добавлено: Сб май 23, 2015 17:06:27
Алехсей
Здравствуйте!

Недавно на работе столкнулся с такой "проблемой" :cry:: электромагнитные помехи от STM32F205VET6 влияют (не в лучшую сторону) на приём сигналов от GPS и ГЛОНАСС спутников.
Уже месяц как не нахожу себе места - перепробовал практически всё и плату переразводил, и включал фичу широкополосной модуляции для HSE... В итоге пришёл к странному выводу: в одном месте кода убираю вызов функции и всё работает, возвращаю на место - всё ломается. Функция самодельная: в ней тупо включается светодиод. Светодиод висит на выводе PE8.

Сталкивался ли кто с подобным чудом? И какие были варианты решений?

Заранее спасибо за ответы!

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Сб май 23, 2015 20:17:08
E71
Тю. Всё решается легко (несколько тысяч моих трекеров катается уже года 4 как, так что проверено :) ).

Вам надо просто внимательно почитать аппноты от производителей приёмкиков GPS и ГЛОНАСС. Если прочувствуете откуда бяка, то всё будет очень хорошо работать.


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

Изображение

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Вс май 24, 2015 02:50:29
DX168B
Eddy71
Жесть. :facepalm:
"Я нищий, потому что у меня нет денег." :))) Спасибо, Кэп. :))) :facepalm:

Алехсей
Какова скорость задана для той ноги, что светодиодом дергает? Если высокая, то стоит скинуть ее до минимума.
Еще следует проверить, ходят ли помехи по этой ноге. Если есть, то можно воткнуть последовательно мелкий дроссель на 47 мкГн
и после дросселя кондюк на землю.
Более бредовая теория:
Как известно, светодиод является по сути генератором сверхвысоких частот (свет)
и у него могут быть какие-то свои гармоники. Следует просто зажечь его один раз и посмотреть на качество приема пока он горит.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Чт май 28, 2015 22:30:55
Алехсей
Eddy71, я прочувствовал откуда бяка, но что-то это не помогло... Решать проблему переразводкой платой это самый нормальный вариант, но у меня сейчас классическая ситуация - всё должно быть сделано вчера.

DX168B, со скоростью идея хороша. Но светодиод не мигает так часто (всего 1 раз в секунду короткая вспышка) да и скорость работы вывода настроена на минимум (2 МГц). Свет вряд ли создаёт помехи. Это направленное излучение и частоты не те... 390-750 ТГц.

А теперь самое интересное!
Проблема с помехами, зависящими от кода, возникает из-за работы с FLASH!!! :shock:
Оказывается в STM32F2 флеш не только медленная, но и шумная:
(ой, кажется ссылку на нужный форум я потерял)
http://www.elektroda.pl/rtvforum/topic1541960.html
https://my.st.com/public/STe2ecommuniti ... tviews=474

Как решение люди предлагают:
1. Всё заэкранировать;
2. Делать работу МК событийной, т.е. вводить его в сон (wfi, wfe, SLEEPONEXIT) и просыпаться по событиям/прерываниям;
3. Перенести весь код (или основную часть его) в RAM.

От себя могу добавить:
4. Выключение фичи флеш под названием «Prefetch» (бит PRFTEN регистра FLASH_ACR). Кстати это же рекомендуют сами STМовцы для повышения точности работы АЦП (AN4073);
5. Использование фичи spread spectrum clock generation (регистр RCC_SSCGR). Правда я сам её до конца не понял… Точнее понял: мы спектр тактового сигнала «размазываем», тем самым снижая амплитуды его гармоник. Но я никак не могу понять: в таком виде сигнал и внутри МК распространяется? Ведь там только вкл./выкл…

Честно говоря, из программных методов самым действенным оказался третий, но он мне не нравиться – RAM на вес золота. Поэтому я копаю дальше.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Пт май 29, 2015 01:06:45
DX168B
Ну, какбы запись во Flash требует больше энергии. Процессы там быстрые, амплитуды токов большие.
Но ведь проблема изначально была с вызовом функции, зажигающей светодиод.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Пт май 29, 2015 01:38:49
a5021
Алехсей писал(а):5. Использование фичи spread spectrum clock generation (регистр RCC_SSCGR). Правда я сам её до конца не понял… Точнее понял: мы спектр тактового сигнала «размазываем», тем самым снижая амплитуды его гармоник. Но я никак не могу понять: в таком виде сигнал и внутри МК распространяется? Ведь там только вкл./выкл…
Меандр состоит из кучи гармоник, которые "светят" с постоянной энергией на конкретных частотах, если частота меандра постоянна. Суть размазывания в том, чтобы тактовую частоту из постоянной сделать переменной. Грубо говоря, тактовая все время гуляет, причем с высокой скоростью. Вслед за ней гуляют и гармоники, размазывая свою энергию по более широкому диапазону. Диапазон "свечения" становится шире, но амплитуда меньше.

Возможно и стоит попробовать этот спред спектрум, т.к. запросто может оказаться, что какая-то из гармоник попадает в диапазон жпса.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Пт май 29, 2015 08:44:28
Алехсей
DX168B, дело как раз не в записи/стирании FLASH, а в чтении из неё кода (при его выполнении). Эта проблема проявлялась не только при вызове функции зажигания светодиода, но по и в произвольных участках кода.

a5021, все эти моменты я понял. Мне интересно насколько «глубоко» подобный сигнал проходит в процессор, ведь внутри МК у всех вентилей есть только два состояния: вкл./выкл. и модулировать там нечего. И как раз шум всех вентилей будет гораздо сильнее, чем шум двух коротких тактовых линий с модуляцией.

Хотя... не совсем я всё понял: ведь суть размазывания в том, что мы из синуса (одна гармоника с большой амплитудой) получаем меандр (точнее треугольник, т.е. несколько гармоник, но с меньшей амплитудой) при той же мощности, или нет? При плавающей частоте будет одна и та же гармоника с большой амплитудой, но с разными частотами (то глушит сигнал, то не глушит). Смысла в последнем я не вижу.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Пт май 29, 2015 09:25:27
Morroc
Представьте что фронты тактовых импульсов слегка дрожат - вроде примерно так. То глушит то не глушит... ну может и так, но это может быть лучше, чем просто глушит.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Пт май 29, 2015 10:23:00
a5021
Алехсей писал(а):a5021, все эти моменты я понял. Мне интересно насколько «глубоко» подобный сигнал проходит в процессор, ведь внутри МК у всех вентилей есть только два состояния: вкл./выкл. и модулировать там нечего. И как раз шум всех вентилей будет гораздо сильнее, чем шум двух коротких тактовых линий с модуляцией.
Стопятьсот вентилей внутри мк не просто спят в одном из положений. Они, большинством своим, "щелкают" вслед за тактовой, т.ч. "светят" гармониками не только две тактовые линии. Насколько сильно "светят" -- это другой вопрос. Плюс, из МК могут выходить сигналы наружу, которые тоже оказываются привязаны к тактовой. Если "шатать" тактовую, вся эта камарилья "звенит" в более широком спектре, но меньшей амплитудой.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Вс июн 07, 2015 11:54:17
E71
Да, и эти все щёлкающие вентили будут всегда гадить, пока проц работает. А борьба с помехами сводится к правильно разводки как питания проца и приёмника (и то и другое как раз в аппнотах даташитов рисуют) + верная топология платы (там же картинки).

И хоть решить надо "на вчера", но самый быстрый способ (и самый верный) - переделать плату с учётом уже полученного негативного результата. А то головняк будет снова и снова возвращаться. Проверено на себе. :)

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Пн июн 08, 2015 08:49:02
Neekeetos
Алехсей писал(а):Решать проблему переразводкой платой это самый нормальный вариант, но у меня сейчас классическая ситуация - всё должно быть сделано вчера.
Как вариант можно настроить плл и частоту работы мк на другую (близкую к нужной), которая не дает гармоник в диапазоне работы gps приемника. Хотя для стандартных частот работы ф205 там нету таких, больше похоже на забитие мшу у модуля GPS произвольными помехами от мк. В любом случае смена частоты может помочь.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Ср июн 10, 2015 21:13:40
Алехсей
Ох, ну я и пропал...

Morroc, a5021, меня всё время клинит, что если есть модуляция, то это обязательно АМ. :facepalm: А есть же ЧМ, ФМ…

В STM для «размазывания» спектра применяется ЛЧМ (линейная частотная модуляция) https://ru.wikipedia.org/wiki/Линейная_ ... _модуляция. Для настройки используется два параметра:
1. Насколько сильно качать частоту (INCSTEP);
2. Насколько быстро качать частоту (MODPER).

Из-за подобной модуляции в спектре появляются дополнительные гармоники. А так как мощность сигнала (площадь спектра, если не ошибаюсь) не меняется, то амплитуда гармоник становиться меньше. Но об этом уже говорилось.
Форма сигнала не меняется, поэтому модуляция «доходит» до всех углов МК.

На практике частота качается (надо фото с осциллографа не забыть завтра выложить). Но толку нет. Как падал сигнал GPS, так падает дальше… :(
Плюс из-за того, что частота постоянно пляшет, интерфейсам, чувствительным к тактовой частоте (USB, RS, CAN и прочее) становится плохо.

Так что, лично я в этой «фиче» разочаровался. Хотя я оценивал качество её работы по БПФ в осциллографе, а не с помощью специального прибора для изменения ЭМИ.

Eddy71, абсолютно согласен. Но надежда на простое решение… как всегда умерла последней.

Neekeetos, частоту менял, но то ли я дурак, то ли лыжи по асфальту не едут – не помогло. Менял со 120МГц на выходе PLL до 48МГц (сразу, промежуточные не пробовал).
Снова же результат оценивал на глаз (по уровням GPS), а не с помощью специального прибора.

P.S.: :idea: Перемещение кода в SRAM реально помогает, процессор как будто и не работает… тишина! Но это тоже не вариант – прошивка слишком толстая. Хотя можно переместить в RAM часто используемые функции, что в принципе и было сделано. :beer:

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Чт июн 11, 2015 18:21:58
Neekeetos
Алехсей писал(а):На практике частота качается (надо фото с осциллографа не забыть завтра выложить). Но толку нет. Как падал сигнал GPS, так падает дальше… :(
Плюс из-за того, что частота постоянно пляшет, интерфейсам, чувствительным к тактовой частоте (USB, RS, CAN и прочее) становится плохо.
...
, частоту менял, но то ли я дурак, то ли лыжи по асфальту не едут – не помогло. Менял со 120МГц на выходе PLL до 48МГц (сразу, промежуточные не пробовал).
Снова же результат оценивал на глаз (по уровням GPS), а не с помощью специального прибора.
По моему это классика жанра - забитие мшу на входе у приемника. Поэтому и смена/модуляция частоты не помогает. Смысл в том, что на входе GPS присутствует сигнал вне рабочей полосы, который тем не менее усиливается входным усилителем. Учитывая, что там все нежное, происходит перегрузка. Я бы поставил прямо возле модуля на его вход полосовой керамический фильтр на GPS частоты(или многочастотный если модуль несколько стандартов поддерживает), или вариант для бедных - припаять мелкую индуктивность параллельно входу GPS приемника прямо возле его входа, это по идее немного задавит нч помехи.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Вс июн 14, 2015 12:30:25
Алехсей
Neekeetos, спасибо за идею! :beer:

Она как раз может объяснить ещё одну проблему: почему добавление усилителя GPS-сигнала вообще убивает приём.

И в принципе всё логично. Работа с FLASH сказывается на потреблении МК. С возрастаем потребления вылезает НЧ бяка, которая загоняет ВЧ схемы в ступор.

"Я бы поставил прямо возле модуля на его вход полосовой керамический фильтр"
Если не ошибаюсь на плате обычно оставляют место для П-образного ФВЧ.
Но у нас всё напрямую :facepalm:.

"припаять мелкую индуктивность параллельно входу GPS"
А от разделительного конденсатора, который есть в некоторых схемах, вроде тот же эффект будет, или нет?

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Вс июн 14, 2015 12:38:10
E71
На входе всех расковырянных мною приёмников GPS (где-то с десяток разных модулей расковырял когда-то) уже стоит полосовой керамический фильтр на 1572 МГц. А нет возможности использовать выносную активную антенну? Для автомобильных применений так и делают. Можно от фонящего проца утянуть далеко.

Ещё хорошо помогает отдельный стабилизатор. Не общий с процем. По проводам питания гадёж любит бегать..

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Вс июн 14, 2015 13:37:19
Алехсей
"А нет возможности использовать выносную активную антенну?"
Eddy71, к сожалению нет такой возможности. Она противоречит концепции устройства "всё в одном".

"По проводам питания гадёж любит бегать.."
Уже пробовали запитывать отдельно - не помогает.

Re: Электромагнитные помехи от STM32 ухудшают приём GPS-сигн

Добавлено: Чт июн 25, 2015 13:08:36
Cat
Поможет только нормальная разводка платы, как вы разведете землю и будете соблюдать рекомендации производителя касаемо рисунка печатной антенны. Других вариантов я не вижу.
http://www.elart.narod.ru/articles/arti ... icle11.htm

Помните - плата это одна из важнейших деталей устройства, чем выше используемые частоты, тем критичнее верность разводки.