DAndy_boy 0 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба Коллеги, добрый день. Прошу помощи, возможно кто-то сталкивался. Делаю железку на базе 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 супервизор питания на ресет не поможет. Включение аппаратной собаки скорее костыль, а не решение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 173 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба Для начала можно попробовать заменить 40кОм на BOOT0 на что-то поменьше, например, на 0-перемычку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DAndy_boy 0 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба 4 минуты назад, Arlleex сказал: Для начала можно попробовать заменить 40кОм на BOOT0 на что-то поменьше, например, на 0-перемычку. Попробую, но загрузчик не запускается если жестко не сажать BOOT0 на +3,3В Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба 1 час назад, DAndy_boy сказал: На ресете кондер 0,1МкФ и подтяжка 10К Кто вас учит такое делать? Зачем там конденсатор? Во-первых, нога сброса работает на выход во время сброса, и внутреннему ключу может поплохеть от разрядки такого конденсатора без ограничения тока. Во-вторых, все необходимые схемы для корректного сброса по включению питания есть внутри. В-третьих, при кратковременном пропадании питания этот конденсатор тупо будет удерживать NRST неактивным, сброса не произойдет и программа может залететь куда угодно. В-четвертых, при выключении у вас основное питание спадает быстрее, чем этот конденсатор разряжается на просевшее питание через ваши 10 кОм и нарушается требование Vih(NRST), max = Vdd + 0.5 В, то есть вход сброса опять же может подгореть. Если уж религия не позволяет вам отказаться от этого конденсатора - шунтируйте подтягивающий резистор обратносмещенным диодом (лучше Шоттки), через который конденсатор будет разряжаться на проседающее питание. Добвалено: Полистал документацию, эта схема приведена в документации. Вы не виноваты. Вопрос меняется: Кто ИХ учит такое делать? Аргументы остаются те же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DAndy_boy 0 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба 20 минут назад, Сергей Борщ сказал: Кто вас учит такое делать? Зачем там конденсатор? Во-первых, нога сброса работает на выход во время сброса, и внутреннему ключу может поплохеть от разрядки такого конденсатора без ограничения тока. Во-вторых, все необходимые схемы для корректного сброса по включению питания есть внутри. В-третьих, при кратковременном пропадании питания этот конденсатор тупо будет удерживать NRST неактивным, сброса не произойдет и программа может залететь куда угодно. В-четвертых, при выключении у вас основное питание спадает быстрее, чем этот конденсатор разряжается на просевшее питание через ваши 10 кОм и нарушается требование Vih(NRST), max = Vdd + 0.5 В, то есть вход сброса опять же может подгореть. Если уж религия не позволяет вам отказаться от этого конденсатора - шунтируйте подтягивающий резистор обратносмещенным диодом (лучше Шоттки), через который конденсатор будет разряжаться на проседающее питание. Пользовался рекомендациями производителя: http://www.gd32mcu.com/data/documents/yingyongbiji/AN056_GD32F4xx_Hardware_Development_Guide_Rev1.0.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба 1 минуту назад, DAndy_boy сказал: Пользовался рекомендациями производителя: Да, я тоже их увидел. Не нравятся мне они. Хорошо, отладчик внутрисхемный есть? Можете подключиться после зависания и посмотреть, где крутится программа? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DAndy_boy 0 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба отладчик есть. после зависания подключиться могу... но как дальше то? он же всегда на старт встает .... или на main смотря что указать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 233 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба 24 минуты назад, Сергей Борщ сказал: Во-первых, нога сброса работает на выход во время сброса, и внутреннему ключу может поплохеть от разрядки такого конденсатора без ограничения тока. Вроде в мануале ничего нет про "выход". А только "input". 24 минуты назад, Сергей Борщ сказал: В-третьих, при кратковременном пропадании питания этот конденсатор тупо будет удерживать NRST неактивным, сброса не произойдет и программа может залететь куда угодно. POR никто не отменял. Сброс должен произойти по POR. А кроме того - программа дополнительно сможет правильно диагностировать источник сброса: сигнал сброса или проблема с питанием. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба Только что, DAndy_boy сказал: отладчик есть. после зависания подключиться могу... но как дальше то? он же всегда на старт встает .... или на main смотря что указать можно без сброса если в кайле, то галочку снять Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 233 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба 4 минуты назад, DAndy_boy сказал: отладчик есть. после зависания подключиться могу... но как дальше то? он же всегда на старт встает .... или на main смотря что указать Воспользоваться: (IAR) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба 6 минут назад, jcxz сказал: Вроде в мануале ничего нет про "выход". А только "input". У меня документация на 403 под рукой - не думаю, что 407 тут чем-то принципиально отличается от 403 или STM32: У STM32 этот момент расписан более подробно: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DAndy_boy 0 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба в доке на gd32f407 вместо I/O стоит - Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба GD32F405 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба Забавно. А живьем кто-то может проверить - без конденсатора, в программе сделать программный сброс и глянуть осциллографом - дергается ли нога? Прошу прощения у автора темы за отвлечение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 233 19 мая, 2022 Опубликовано 19 мая, 2022 · Жалоба 13 минут назад, Сергей Борщ сказал: У меня документация на 403 под рукой - не думаю, что 407 тут чем-то принципиально отличается от 403 или STM32: в datasheet F407 только об input говорится: ...и ничего об output. в мануале F4 стрелка только в одну сторону: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться