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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Фонит микроконтроллер STM32F205VET6 на GPS антенну
Bargul
сообщение May 23 2015, 14:59
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 23-05-15
Пользователь №: 86 836



Здравствуйте!

Недавно столкнулся с проблемой. Электромагнитные помехи от STM32F205VET6 влияют (не в лучшую сторону) на приём сигналов от GPS и ГЛОНАСС спутников. Был произведён эксперимент. Программа зациклена "вайлом" в самом начале (после настройки тактирования) и с помощью замыкания NRST микроконтроллера на землю выяснено, что в таком виде микроконтроллер не влияет на сигнал. Если зацикливаться чуть позже, то при включении микроконтроллера уровень сигнала резко падает, однако влияет не периферия микроконтроллера, а конфигурация (размещение в памяти???) кода:

В данном случае при включении микроконтроллера уровень сигнала не падает:
Код
asm("BLX %0"::"r"(&at45f_init));
int at45f_init(void)
{
  while(1) {;}
}

В этом случае при включении микроконтроллера сигнал заметно ухудшается:
Код
asm("BLX %0"::"r"(&at45f_init));
__NOP();
int at45f_init(void)
{
  while(1) {;}
}

Я в тупике, почему это происходит. Возможно, кто сталкивался с похожей ситуацией?

Спасибо за ответы!

Сообщение отредактировал IgorKossak - May 23 2015, 19:50
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
1113
сообщение May 23 2015, 15:12
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



покажите схему и плату
Go to the top of the page
 
+Quote Post
alexunder
сообщение May 23 2015, 15:15
Сообщение #3


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Сам МК вряд-ли может фонить: геометрические размеры области, генерирующей электромагнитные излучения и мощность малы. Думаю, фонит Ваша схема на базе этого МК.
at45f_init() как-то связано с работой внешней памяти семейства AT45? Тогда фон идет от интерфейсных линий м/у МК и флеш.


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
Bargul
сообщение May 23 2015, 16:34
Сообщение #4





Группа: Новичок
Сообщений: 4
Регистрация: 23-05-15
Пользователь №: 86 836



Насчёт платы, переразводили несколько раз, пока положительного эффекта не добились. Плата четырёхслойная со сквозными переходными отверстиями. Под антенной 4 слоя земли отведённой специально для приёмника и антенны. Единственно, что контроллер достаточно близко расположен с противоположной стороны антенны (наползает углом) и рядом с ним есть область переходных отверстий. Возможно, стоит попробовать шесть слоёв и сильнее заэкранировать антенну. Реально помогает только увеличение расстояния между микроконтроллером и самой антенной. Если взять плату, на которой расположен приёмник и GPS антенна (не обязательно нашу, любую) и запитать её от отдельного источника. И взять одну из проблемных плат (с подключенным по минимуму микроконтроллером), то при сближении сигнал на контрольной резко ухудшается. Попробую подключить контроллер навесным монтажом вне платы, посмотрю результат.

Однако в описанном выше случае плата перестаёт фонить (стабильно) и хотелось бы понять причины такого поведения.

Насчёт кода, я наверно не удачно оставил название функции (наводит на мысли о SPI), однако код следует воспринимать буквально. После входа происходит зацикливание без всяких действий, ничего не настраивается. Более нормальный вид:

Код
void main (void)
{
  pio_open();  // просто настройка портов (для светодиодов, без всяких альтернативных функций)

  asm("BLX %0"::"r"(&at45f_init));
  __NOP();

  // Остальной код
}

int at45f_init(void)
{
  while(1) {;}

  // Остальной код
}


Сообщение отредактировал IgorKossak - May 23 2015, 19:51
Go to the top of the page
 
+Quote Post
Myron
сообщение May 23 2015, 16:43
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 849
Регистрация: 6-02-05
Пользователь №: 2 451



Цитата(Bargul @ May 23 2015, 10:34) *
Насчёт платы, переразводили несколько раз, пока положительного эффекта не добились. Плата четырёхслойная со сквозными переходными отверстиями. Под антенной 4 слоя земли отведённой специально для приёмника и антенны. Единственно, что контроллер достаточно близко расположен с противоположной стороны антенны (наползает углом) и рядом с ним есть область переходных отверстий. Возможно, стоит попробовать шесть слоёв и сильнее заэкранировать антенну. Реально помогает только увеличение расстояния между микроконтроллером и самой антенной. Если взять плату, на которой расположен приёмник и GPS антенна (не обязательно нашу, любую) и запитать её от отдельного источника. И взять одну из проблемных плат (с подключенным по минимуму микроконтроллером), то при сближении сигнал на контрольной резко ухудшается. Попробую подключить контроллер навесным монтажом вне платы, посмотрю результат. Однако в описанном выше случае плата перестаёт фонить (стабильно) и хотелось бы понять причины такого поведения.
Посмотрите, как сделано в серийных ручных приборах. Например, NAV6000, Magellan, 1998 (металлические крышки с цифровой секции и с ВЧ секции сняты, край питч-антенны виден сверху, антенна на обратной стороне):
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
1113
сообщение May 24 2015, 04:29
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



а с питанием что? покажите кроме кода хоть что-нибудь!
Go to the top of the page
 
+Quote Post
Myron
сообщение May 24 2015, 13:00
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 849
Регистрация: 6-02-05
Пользователь №: 2 451



Цитата(1113 @ May 23 2015, 22:29) *
а с питанием что? покажите кроме кода хоть что-нибудь!
Ну да, похоже обычная ситуация. Проблему пытается разрешить программист только программными методами, которому всучили прибор без поддержки со стороны электронщиков. Ну или не верит он никому. Или даже сам сваял плату.
Go to the top of the page
 
+Quote Post
garry_
сообщение May 25 2015, 04:32
Сообщение #8


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

Группа: Свой
Сообщений: 85
Регистрация: 22-06-04
Из: Moscow
Пользователь №: 105



QUOTE (Myron @ May 24 2015, 16:00) *
Ну да, похоже обычная ситуация. Проблему пытается разрешить программист только программными методами, которому всучили прибор без поддержки со стороны электронщиков. Ну или не верит он никому. Или даже сам сваял плату.


Здравствуйте, столкнулся с такой-же проблемой с тем же мк, как ни странно смотрел плату на эмиссию (брали в прокат оборудование), шумит именно МК (возможно тракт PLL), мне помогло - разнести приемник и мк на разные платы , экран на мк + замена контроллеров источников питания, если от импульсников никак не отказаться, то у меня хорошо работает tps62040 + экранированная индуктивность



Go to the top of the page
 
+Quote Post
Mahagam
сообщение May 25 2015, 06:25
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



а сдвинуть частоту работы МК на мегагерца два в сторону пробовали?
Go to the top of the page
 
+Quote Post
alexunder
сообщение May 25 2015, 11:23
Сообщение #10


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Цитата(garry_ @ May 25 2015, 06:32) *
Здравствуйте, столкнулся с такой-же проблемой с тем же мк, как ни странно смотрел плату на эмиссию (брали в прокат оборудование), шумит именно МК (возможно тракт PLL), мне помогло - разнести приемник и мк на разные платы , экран на мк + замена контроллеров источников питания, если от импульсников никак не отказаться, то у меня хорошо работает tps62040 + экранированная индуктивность

Интересная история, будем иметь ввиду.
У автора явно не PLL является источником фона, а антена из проводников SPI к флеш, раз он замечает некую разницу от кода.


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
khach
сообщение May 25 2015, 19:12
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Для справки спектр STM32-F4 ”Discovery”http://www.edn.com/electronics-blogs/the-e...alyzer---Part-2
Спектр промерян сигналхаундом, который измерительным прибором можно назвать с натяжкой, но для информации подойдет. До частот GPS спектр не дотянули, надо бы перемерить нормальным анализатором спектр.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение May 25 2015, 20:13
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



П. 6.3.13. Electromagnetic Interference (EMI): http://www.st.com/web/en/resource/technica.../CD00237391.pdf
Правда, до ГНСС тоже не дотянули.
Go to the top of the page
 
+Quote Post
Bargul
сообщение May 28 2015, 11:43
Сообщение #13





Группа: Новичок
Сообщений: 4
Регистрация: 23-05-15
Пользователь №: 86 836



Проблема локализована. Виновата внутренняя flash микроконтроллера. При выполнении кода из оперативной памяти (__ramfunc) всё замечательно. Проблема с while описанная выше происходила из-за включённого Prefetch. Однако убрать проблему не удаётся, изменение частоты кварца или SSCG не помогает, настройки флеши (кэш или задержка на чтение) ничего не дают. Программа слишком большая, чтобы запихнуть её в оперативную память. Однако вариант решения должен быть, такой же микроконтроллер из чужой железяки (с их прошивкой естественно) не фонит.

Ps. Проблема точно не в плате, вариант с платой проверялся очень тщательно.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 28 2015, 19:21
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



ну можно же ускоритель флеши вырубить, работать будет медленнее, может и фонить не будет?
Go to the top of the page
 
+Quote Post
Bargul
сообщение May 29 2015, 06:11
Сообщение #15





Группа: Новичок
Сообщений: 4
Регистрация: 23-05-15
Пользователь №: 86 836



Цитата(Golikov A. @ May 28 2015, 22:21) *
ну можно же ускоритель флеши вырубить, работать будет медленнее, может и фонить не будет?


Вы имели ввиду ART? Я так понимаю ART = Prefetch. Он выключен. Его выключение помогло частично, исчезли проблемы с циклами ожидания (если зациклиться в пустом бесконечном цикле раньше фонило, теперь нет). Однако, при работе программы в целом не помогает.
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 - 08:06
Рейтинг@Mail.ru


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