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

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

Коллеги, добрый день. Прошу помощи, возможно кто-то сталкивался. Делаю железку на базе GD32F407ZKT6. Камень приехал из Китая (не через Али), с большой вероятностью с завода. питание 3.3В от импульсника. Внешний кврац на 25МГц. BOOT0 подтянут к нулю через 40К. На ресете кондер 0,1МкФ и подтяжка 10К.  Собака во фьюзах включена софтовая.

Первые пару дней все работало хорошо. Подключался встроенным загрузчиком по USB, через SWD STLink отладка.

затем без каких либо видимых причин перестала запускаться прошивка (версия не менялась) как на внутреннем, так и на внешнем кварце.

Симтомы:

1. В загрузчик при подтяжке BOOT0 на питание заходит стандартно. Скачков по питанию нет (проверил осцилом) ни в процессе работы ни при включении (ровные фронты вкл./выкл);

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

3. Если замкнуть кондер на ресете без питания, затем подать питание и отпустить кондер, прошивка не запускается. помогает только п.2

4. При запуске отладчиком через программатор прошивка запускается.

5. Разные настройки фьюза BOR не дали никаких положительных результатов.

6. Если во фьюзах включить аппаратную собаку, то прошивка нормально запускается сразу после подачи питания.

Вопрос: сталкивался ли кто с подобным? почему могло такое произойти? деградация камня после 2-5 перезаписей прошивки? что может быть в партии? какие варианты решения? подозреваю исходя из пунктов 2,3 супервизор питания на ресет не поможет. Включение аппаратной собаки скорее костыль, а не решение.

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


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

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

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


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

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

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

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

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


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

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

На ресете кондер 0,1МкФ и подтяжка 10К

Кто вас учит такое делать? Зачем там конденсатор?

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

Во-вторых, все необходимые схемы для корректного сброса по включению питания есть внутри.

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

В-четвертых,  при выключении у вас основное питание спадает быстрее, чем этот конденсатор разряжается на просевшее питание через ваши 10 кОм и нарушается требование Vih(NRST), max = Vdd + 0.5 В, то есть вход сброса опять же может подгореть. 

Если уж религия не позволяет вам отказаться от этого конденсатора - шунтируйте подтягивающий резистор обратносмещенным диодом (лучше Шоттки), через который конденсатор будет разряжаться на проседающее питание.

 

Добвалено: Полистал документацию, эта схема приведена в документации. Вы не виноваты. Вопрос меняется: Кто ИХ учит такое делать? Аргументы остаются те же.

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


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

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

Кто вас учит такое делать? Зачем там конденсатор?

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

Во-вторых, все необходимые схемы для корректного сброса по включению питания есть внутри.

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

В-четвертых,  при выключении у вас основное питание спадает быстрее, чем этот конденсатор разряжается на просевшее питание через ваши 10 кОм и нарушается требование Vih(NRST), max = Vdd + 0.5 В, то есть вход сброса опять же может подгореть. 

Если уж религия не позволяет вам отказаться от этого конденсатора - шунтируйте подтягивающий резистор обратносмещенным диодом (лучше Шоттки), через который конденсатор будет разряжаться на проседающее питание.

Пользовался рекомендациями производителя:

http://www.gd32mcu.com/data/documents/yingyongbiji/AN056_GD32F4xx_Hardware_Development_Guide_Rev1.0.pdf

image.thumb.png.fae20d898bfe2f2e462f5c2c6787b0f4.png

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


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

1 минуту назад, DAndy_boy сказал:

Пользовался рекомендациями производителя:

Да, я тоже их увидел. Не нравятся мне они. 

Хорошо, отладчик внутрисхемный есть? Можете подключиться после зависания и посмотреть, где крутится программа?

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


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

отладчик есть. после зависания подключиться могу... но как дальше то? он же всегда на старт встает .... или на main смотря что указать

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


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

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

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

Вроде в мануале ничего нет про "выход". А только "input".

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

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

POR никто не отменял. Сброс должен произойти по POR. А кроме того - программа дополнительно сможет правильно диагностировать источник сброса: сигнал сброса или проблема с питанием.

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


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

Только что, DAndy_boy сказал:

отладчик есть. после зависания подключиться могу... но как дальше то? он же всегда на старт встает .... или на main смотря что указать

можно без сброса

если в кайле, то галочку снять

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


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

4 минуты назад, DAndy_boy сказал:

отладчик есть. после зависания подключиться могу... но как дальше то? он же всегда на старт встает .... или на main смотря что указать

Воспользоваться:

702594606_attachtorunningtarget.png.a90fe7277399848aff69e3b5de18514e.png

(IAR)

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


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

6 минут назад, jcxz сказал:

Вроде в мануале ничего нет про "выход". А только "input".

У меня документация на 403 под рукой - не думаю, что 407 тут чем-то принципиально отличается от 403 или STM32:

image.thumb.png.f307f1c8c91042d66e1682cc7cb17da3.png

 

У STM32 этот момент расписан более подробно:

image.png.11b511ebe993fd08a332816d2320a5d3.png

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


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

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

Прошу прощения у автора темы за отвлечение.

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


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

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

У меня документация на 403 под рукой - не думаю, что 407 тут чем-то принципиально отличается от 403 или STM32:

в datasheet F407 только об input говорится:1555303432_NRSTGD32F4(datasheet).thumb.png.55a3943f4c19648810252bbbad6b6579.png

...и ничего об output.

 

в мануале F4 стрелка только в одну сторону: 158094627_NRSTGD32F4(manual).thumb.png.787e67ab6c90558f3c32a9ecc84970c0.png

 

 

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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