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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Микроконтроллер STM32F407VD, Проблемы с прошивкой
Pavel30
сообщение Apr 10 2014, 05:54
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 10-04-14
Пользователь №: 81 309



Добрый день! Возникла такая проблема, в данной схеме включения, возникают проблемы с прошивкой. ( Прошивается, но, раз через раз). Может кто-нибудь сталкивался с проблемами с микроконтроллером STM32F407VD? С чем это может быть связано?
Прикрепленное изображение


Сообщение отредактировал IgorKossak - Apr 11 2014, 05:34
Go to the top of the page
 
+Quote Post
UnDerKetzer
сообщение Apr 10 2014, 06:00
Сообщение #2


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

Группа: Свой
Сообщений: 105
Регистрация: 10-03-08
Из: Helsinki
Пользователь №: 35 763



Чем шьете (софт/программатор)? Какую ошибку получаете в случае неудачной попытки? Устройств партия? Если да, повторяется ли ошибка на других платах?

Сообщение отредактировал UnDerKetzer - Apr 10 2014, 06:01
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 10 2014, 07:18
Сообщение #3


Гуру
******

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



Цитата(Pavel30 @ Apr 10 2014, 07:54) *
( Прошивается, но, раз через раз).
Я бы выкинул тяжелое наследие оккупацииPIC16C84 в виде C596.


--------------------
На любой вопрос даю любой ответ
"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
Existing
сообщение Apr 10 2014, 07:35
Сообщение #4





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



Цитата(Сергей Борщ @ Apr 10 2014, 11:18) *
Я бы выкинул тяжелое наследие оккупацииPIC16C84 в виде C596.

Конденсатор там как раз соответствует даташиту, в отличие от R583.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 10 2014, 07:43
Сообщение #5


Гуру
******

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



Цитата(Existing @ Apr 10 2014, 09:35) *
Конденсатор там как раз соответствует даташиту,
А нагрузочной способности выхода программатора? Нету на этом входе кнопки на длинном проводе, не нужен там конденсатор. А резистор не помешает.


--------------------
На любой вопрос даю любой ответ
"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
Haamu
сообщение Apr 10 2014, 08:50
Сообщение #6


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

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



Поясню немного ситуацию. Дело больше не в "шитье", а в неадекватной работе самого процессора. В некоторых случаях работы программы, например в перрываниях, программа улетает непонятно куда и не знает куда ей оттуда возвращаться. То есть будто стек разлетается и вместо тех адресов, что там должны быть, появляются абсолютно случайные числа. Иногда каким-то образом затираются или переписываются какие-то участки флеша и программа не работает, пока ее заново не прошить. При этом та же самая программа, прошитая в отладочную Discovery, работает без проблем. Замена самого микроконтроллера также ни к чему не привела.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 10 2014, 09:52
Сообщение #7


Гуру
******

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



а разве флэш перешить без спец команд можно?
Прошили, проверили прошивку, если ок, то все проблемы у вас в программе...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Apr 10 2014, 09:56
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Работаю с этим процессором. Текуший объём прошивки:
138 610 bytes of readonly code memory
59 535 bytes of readonly data memory (+ 4 absolute)
108 809 bytes of readwrite data memory
293 объектных файла. FreeRTOS.
Работает супер устойчиво. Просто блеск. За время отладки убил 2 проца перетыркиванием JTAG на лету. Больше инциндентов не было. Задействовано большинство периферии проца. Работает на максимальной частоте.

С прошивкой были проблемы. Связаны с тем, что прошивка возможна из нескольких источников. Детектирование идёт на лету, непонятно как, но проц часто неверно определяет источник. Для устранения данной ситуации необходимо чётко придерживаться доки CD00167594. Во время детектирования неиспользуемые источники должны сидеть на постоянном уровне. (Не должны болтаться в воздухе). Кроме того, даже если это соблюдено, иногда программа "STMicroelectronics flash loader" может выдать ошибку с сообщением, что надо сбросить проц. Сбрасываешь - и всё поехало. Это относится и к терминальной версии. Сделали свой бутлоадер - всё работает устойчиво.

Удачи.
Go to the top of the page
 
+Quote Post
Haamu
сообщение Apr 10 2014, 09:58
Сообщение #9


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

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



Цитата(Golikov A. @ Apr 10 2014, 13:52) *
а разве флэш перешить без спец команд можно?
Прошили, проверили прошивку, если ок, то все проблемы у вас в программе...

Знаю, что нельзя. В том то и загадка.
Дело точно не в программе. Пробовал простейшую программку зашивать, которая просто несколько байт по USART принимает. Те же чудеса происходят. А вот на Discovery то же самое работает как часы.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 10 2014, 12:41
Сообщение #10


Гуру
******

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



Тогда надо внимательно смотреть схему питания, разводку питания и земли.


--------------------
На любой вопрос даю любой ответ
"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
Haamu
сообщение Apr 11 2014, 04:31
Сообщение #11


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

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



Всё дело было в земле. На плате небыли соедединены аналоговая и цифровая земли, и между ними появлялся потенциал в 0,4 вольта. После соединения всё заработало. Видимо ядру нехватало питания, потому что до соединения земель на пинах VCAP 1 и 2 были минимальные 1,2В, а после соединения земель, стало 1,26В, как и должно быть по даташиту.
Go to the top of the page
 
+Quote Post
Haamu
сообщение Apr 11 2014, 10:11
Сообщение #12


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

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



Новый фокус. Линия V_BUS от USB и резистор P580. Подключаю USB разъем, со стороны разъема на резисторе 5В, со стороны контроллера - всего 0.5В. Контроллер на подключение разъема никак не реагирует. Делаю вывод, что сгорел вход контроллера. Но как-то странно он сгорел, потому что, если убрать инициализацию USB и настроить ногу PA9 на вход, то контроллер видит сигнал на этой ноге. Так же и на выход работает. Реально такое или снова фантастика какая-то?
Go to the top of the page
 
+Quote Post
Leopoldius
сообщение Apr 11 2014, 10:44
Сообщение #13


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

Группа: Свой
Сообщений: 78
Регистрация: 23-03-11
Из: Россия
Пользователь №: 63 824



Цитата(Haamu @ Apr 11 2014, 12:11) *
Новый фокус. Линия V_BUS от USB и резистор P580. Подключаю USB разъем, со стороны разъема на резисторе 5В, со стороны контроллера - всего 0.5В. Контроллер на подключение разъема никак не реагирует. Делаю вывод, что сгорел вход контроллера. Но как-то странно он сгорел, потому что, если убрать инициализацию USB и настроить ногу PA9 на вход, то контроллер видит сигнал на этой ноге. Так же и на выход работает. Реально такое или снова фантастика какая-то?


Может все же резистор плохо пропаян? laughing.gif
В корзинке опыта были случаи, что вывод вроде припаян, но то ли трафарет с браком, то ли пасты "зажмотили" и после пропайки, обыкновенным паяльником все наладилось. В пользу этого говорит :" если убрать инициализацию USB и настроить ногу PA9 на вход, то контроллер видит сигнал на этой ноге. Так же и на выход работает."
Go to the top of the page
 
+Quote Post
Haamu
сообщение Apr 11 2014, 11:11
Сообщение #14


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

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



Цитата(Leopoldius @ Apr 11 2014, 14:44) *
Может все же резистор плохо пропаян? laughing.gif
В корзинке опыта были случаи, что вывод вроде припаян, но то ли трафарет с браком, то ли пасты "зажмотили" и после пропайки, обыкновенным паяльником все наладилось. В пользу этого говорит :" если убрать инициализацию USB и настроить ногу PA9 на вход, то контроллер видит сигнал на этой ноге. Так же и на выход работает."

Как раз не в пользу, а наоборот. Если нога настроена на вход, то напряжение с обоих сторон резистора одинаковое. А паяльником пропаивал...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 11 2014, 19:06
Сообщение #15


Гуру
******

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



Цитата(Haamu @ Apr 11 2014, 14:11) *
Если нога настроена на вход, то напряжение с обоих сторон резистора одинаковое.
Может стоит разобраться, почему при нештатной работе эта кога настроена на вывод?


--------------------
На любой вопрос даю любой ответ
"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

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:52
Рейтинг@Mail.ru


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