Перейти к содержанию
    

проблемы в работе GD32F407ZKT6. не запускается

28 минут назад, Сергей Борщ сказал:

Забавно. А живьем кто-то может проверить - без конденсатора, в программе сделать программный сброс и глянуть осциллографом - дергается ли нога?

У меня был случай (STM32), когда вот такой же конденсатор на 4.7мкФ не давал МК сброситься от внутреннего WDT. Поэтому да, там будет импульс на NRST.
 

1 час назад, DAndy_boy сказал:

Попробую, но загрузчик не запускается если жестко не сажать BOOT0  на +3,3В

МК не обязательно должен влететь в загрузчик. При барахле на BOOT0/1 управление может передаться в ОЗУ, а там, полагаю - в Вашем случаем мусор.

P.S. А еще, по-хорошему, надо смотреть разводку платы и наличие/тип VCAP-ов.

P.S. Немного по теме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Arlleex сказал:

У меня был случай (STM32),

Про STM32 все понятно из документации. Вопрос был про GD32 - у него эту функцию не реализовали при слизывании или просто забыли в документации упомянуть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Сергей Борщ сказал:

Вопрос был про GD32 - у него эту функцию не реализовали при слизывании или просто забыли в документации упомянуть?

За GD32, к сожалению, не скажу, т.к. не знаю. Я думал там полная копия STM32... Проверить сейчас только ТС может.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

39 минут назад, Arlleex сказал:

За GD32, к сожалению, не скажу, т.к. не знаю. Я думал там полная копия STM32... Проверить сейчас только ТС может.

обязательно проверю... сейчас нет доступа к железу. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19.05.2022 в 09:53, Arlleex сказал:

Для начала можно попробовать заменить 40кОм на BOOT0 на что-то поменьше, например, на 0-перемычку.

этот вариант не дал каких либо изменений. сейчас буду пробовать подключить программатор без сброса МК

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1429440411_image(3).thumb.png.9378d2f60599a4844236990fd400d51b.png210456751_image(2).thumb.png.1743b6151dba9e096ef4a564bd04468b.png

попробовал подключиться программатором без сброса МК

получается он встает в начало обработчика прерывания сброса и там висит, по ядру у него просто halted в статусе

Что можно еще предпринять? ну кроме как заменить камень...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, DAndy_boy сказал:

попробовал подключиться программатором без сброса МК

получается он встает в начало обработчика прерывания сброса

Видимо всё-таки - со сбросом. Без сброса не получилось.

Цитата

и там висит, по ядру у него просто halted в статусе

Ну так а какой у него должен быть статус если ваш отладчик его остановил?

Цитата

Что можно еще предпринять? ну кроме как заменить камень...

Пошагать по инструкциям. Если шагается - значит подключиться без сброса вам не удалось.

Тогда шагать дальше и искать где стопорится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день!

Столкнулся с этой же проблемой, но на GD32F405RGT6.

Пока не подашь RESET - не работает. Если при подаче питания удерживать RESET - не помогает - только второй дополнительный импульс.

Кста, в заводской загрузчик заходит тоже только после передергивания RESET.

После дополнительного импульса RESET - все прекрасно работает.

Если идти от минимального кода, то можно сделать рабочий blink.

Если blink плавно усложнять, то может сложиться ситуация, когда код перестает запускаться в принципе.

Это никак не связано со временем выполнения, т.к. blink может работать бесконечно.

Шьется всегда без проблем.

В партии обнаружили два МК с таким поведением - один у меня в наличии - могу всячески тестировать.

Замена МК помогает.

Если сделать рабочий blink, то при подаче питания - задержка выполнения кода - 140мс;

если удерживать RESET, подать питание, отпустить RESET - те же 140мс после отпускания RESET;

если передернуть RESET запитанного МК, то задержка выполнения кода нулевая.

Кста, размер работающего blink порядка 32кБ, просто в начале исходника перемещаю аналог while(1) и большая часть кода не выполняется.

Поискал причину: оказывается, что при старте SP не копируется из памяти.

При сбросе по питанию вижу SP=0xFFFFFFFC. При нормальной работе SP=0x20020000.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал принудительную инициализацию SP в начале вектора сброса - теперь все работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...