-
- Слегка разгреб текучку и вернулся к вопросу. Повторил недельный
тест (15 мин вкл/5 мин выкл) для трех вариантов кода. 1. В коде
вообще нет обращения к контроллеру флеша в части стирания записи,
включая разблокировку-блокировку. 2. Вставил
разблокировку-блокировку, но стирания-записи нет. 3. Есть полный
функционал стирания-записи. Все тесты делал с BOR=3
(Ris=2,92v/Fal=2,83v). Всего тестил 7 плат. Варианты 1 и 2 в
течении 5 рабочих дней выдержали тест. Вариант 3 слетел my504(388 знак., 07.08.2023 12:10, картинка, картинка)
- а со стабильными платами есть разница в осцилограммах? - NAUT(07.08.2023 12:45)
- Возможно не в тему, потому как однозначно помочь не смогу. Но точно помню что у меня такой же баг был. И тоже на STM-е: при некоторых непонятных условиях программа прыгала (или вызывала) функцию записи флэша и прописывала нули в память (потому как не было корректного вызова функции с параметрами адреса и данных).. Долго тоже трахался, но на сколько помню, в итоге просто в функции записи сделал дополнительные проверки на нулевые данные и адреса или что-то подобное: т.е если MicroDiP(181 знак., 07.08.2023 12:40)
- У меня тоже есть версии - аппаратные и программные. Взять
обязательно сбоившую плату. Costic(551 знак., 12.07.2023 15:34)
- Кстати, вспомнил, там есть еррата, в ревизии чипа Revision A нельзя
включать Prefetch. SciFi(180 знак., 12.07.2023 15:40)
- Хе-хе, тоже вспомнил эту фигню. Знатно как-то на нее встал. LightElf(391 знак., 12.07.2023 15:49)
- Кстати, вспомнил, там есть еррата, в ревизии чипа Revision A нельзя
включать Prefetch. SciFi(180 знак., 12.07.2023 15:40)
- Для справки мне. А на чем, какая IDE разрабатываете? Стартап-код свой или тот что шел с IDE? - RxTx(12.07.2023 14:08)
- Я тут отдельно напишу свое видение, в т.ч. отрезюмирую то, что тебе
уже другие тут написали, и что ты упорно игнорируешь. il-2(1519 знак., 12.07.2023 08:07)
- А ресет точно гарантирует, что ни чего в м/к не будет работать? Вроде как отладчик может запуститься при активном ресете. И вообще часто ресет рассматривается как одно из прерываний. AlexBi(699 знак., 12.07.2023 10:03)
- Кстати, любопытсва ради. В сигнналовских 51ых VDD рекомендовалось получать от VDA через дросель или резистор. (мы через резистор делали). А тут как? VDD от VDA? Или вообще отдельные стабилизаторы? - symbions(12.07.2023 09:54)
- в одном девайсе, дабы не иметь таких гемороев фпынцыпе. Nikolay801_(243 знак., 12.07.2023 09:12)
- Это, всё же, костыль. Фпрынцыпе - это внешний супервизор. Или таки
увидеть осциллографом момент, когда нарушается предписанный режим
работы, и устранить, но это трудно и долго. - SciFi(12.07.2023 09:16)
- если посчитать скока я к сегодня километража на костылях намотал... Но я морально поддерживаю коллег которые все делают правильно и исключительно по уставу. Nikolay801_(17 знак., 12.07.2023 09:44)
- Это, всё же, костыль. Фпрынцыпе - это внешний супервизор. Или таки
увидеть осциллографом момент, когда нарушается предписанный режим
работы, и устранить, но это трудно и долго. - SciFi(12.07.2023 09:16)
- У меня такое ощущение, что вы просто решили мне рассказать о чем то
о своем... Вы вообще знакомы с законом Ома? Вы в состоянии
посчитать какое напряжение упадет на резисторе 10 Ом между AVDD и
VDD при имеющемся потреблении AVDD? Вы бы хоть постеснялись такую
пургу писать.... остальное комментировать нет никакого смысла.
Кстати, флеш в моем случае НЕ СТИРАЕТСЯ, а ЗАПИСЫВАЕТСЯ. Причем
побайтно подряд. А в том самом коде побайтно, но с шагом в слово. - my504(12.07.2023 09:04)
- У
палкирезистора 2 конца. Вы их зачем-то перепутали. Посчитайте по закону ома, что там может упасть при потреблении эээ... 100мА со стороны VDD. И какое имеет значение, стирается там оно или записывается. Но вы можете продолжать упорствовать. Кстати, я привел 2 варианта источника проблемы. Других не бывает. Вы упорно пытаетесь их игнорировать, и искать какой-то непонятный свой вариант. Не буду больше мешать. В поисках неведомого иногда совершаются великие il-2(9 знак., 12.07.2023 09:27)- Я ничего не путал. Очевидно, что фильтр стоит НА АНАЛОГОВОЕ питание. То есть ток течет из цифрового потенциала в аналоговый. Это не требовало комментариев. Из контекста было понятно. И 100 мА контроллер не жрет. Там максимум на все про все 30...40 - my504(12.07.2023 14:37)
- Кстати, про резистор. Уже много лет ставлю там ферритовую бусину.
По-моему, именно её обычно и ставят на всяких демо-платах. - SciFi(12.07.2023 09:31)
- Какой тип/номинал бусины, если не секрет? И конденсатора, после
нее. - AlexBi(12.07.2023 10:04)
- FBMH1608HM102-T + 0.1uF + 1uF. У бусины высокий импеданс в широком
диапазоне частот, выбирали для других дел, сюда поставили
паровозиком, и как-то прижилось. Есть аналог у Sunlord, кстати, но
на кратно меньший ток. SciFi(2 знак., 12.07.2023 10:16, ссылка, ссылка)
- Спасибо! Параметры у бусины зачетные. - Evgeny_CD(12.07.2023 15:05)
- Мне бусины не понравились. Для тех, к которым производитель давал
SPICE-модели, проводил моделирование. Оказывалось, что при
включении в цепь питания промеж конденсаторами (в моих случаях, с
моими номиналами и с моей нагрузкой) - звенят. Есть резонансная
частота с горбом +6..+10дБ на сотнях кГц, до пары МГц в зависимости
от бусины и ёмкостей. В итоге, ставлю бусины для ЭМС, но для
подавления резонансов, последовательно, дополнительно, резисторы
0.8..1.5Ом. - Nikolay_Po(12.07.2023 10:37)
- !!! АХТУНГ !!! Только что поимел грабли с такой схемой запитки на
МК GD32F405. SciFi, все как у тебя, ферритовая бусинка на 1мкГн и
емкости 1мкф + 0.1мкф на аналоговой ножке. il-2(526 знак., 13.07.2023 14:07)
- У ферритовой бусины нет никаких мкГн, это поглотитель помех, ЭМП
фильтр, а не дроссель. - mrFirst(17.07.2023 12:49, )
- Какое милое заблуждение. - SciFi(17.07.2023 12:53)
- У ферритовой бусины нет никаких мкГн, это поглотитель помех, ЭМП
фильтр, а не дроссель. - mrFirst(17.07.2023 12:49, )
- Есть еще хак от TI. Последовательно несколько бусин на разные
диапазоны. Моделировать резонанс все равно стоит, но так ширина
полосы подавления будет сильно выше. - Evgeny_CD(12.07.2023 15:07)
- Нет. На частоте ~1 МГц все эти бусины будут чистыми
индуктивностями. - SciFi(12.07.2023 15:10)
- Есть весьма низкочастотные "бусины", которые на 1МГц имеют импеданс
под 1КОм, но на 100 МГц это уже резистор. - Evgeny_CD(12.07.2023 15:17)
- Размером с кулак, наверное :-) - SciFi(12.07.2023 15:18)
- Есть весьма низкочастотные "бусины", которые на 1МГц имеют импеданс
под 1КОм, но на 100 МГц это уже резистор. - Evgeny_CD(12.07.2023 15:17)
- Нет. На частоте ~1 МГц все эти бусины будут чистыми
индуктивностями. - SciFi(12.07.2023 15:10)
- !!! АХТУНГ !!! Только что поимел грабли с такой схемой запитки на
МК GD32F405. SciFi, все как у тебя, ферритовая бусинка на 1мкГн и
емкости 1мкф + 0.1мкф на аналоговой ножке. il-2(526 знак., 13.07.2023 14:07)
- 1,6 Ом сопротивление постоянному току. Иы тоже подобное ставили, но
в нашем случае разницы с резистиором в 2 Ома не заметили。 - symbions(12.07.2023 10:25)
- Я тоже обычно 1..2 Ома ставлю, но бусина конечно правильнее, ее импеданс на ВЧ уже десятки-сотни Ом. - Andreas(12.07.2023 10:29)
- Это страховка от помех. Vdda питает в том числе PLL. Если рядом
что-то фонит на сотнях МГц, может его поломать. Если у вас нет
таких помех, это прекрасно. Но вообще всякое бывает. Даже банальный
импульсный преобразователь может неприятно звенеть. - SciFi(12.07.2023 10:29)
- У нас 3 с копецами МГц было - я и написал, что у нас разницы не
было. Был отрицательный опыт - решил коллега атмегу LC фильтром от
линии питания отделить - так сбоить стала атмега, пришлось на RC
фильтр переходить. - symbions(12.07.2023 13:15)
- Коллега поймал резонанс? И такое возможно, надо думать. - SciFi(12.07.2023 13:18)
- См. моё выше. Брал спайс-модели ёмкостей и бусины и смотрел АЧХ/ФЧХ и переходные процессы. Вышло, что сопротивления собственных потерь в бусине далеко не всегда хватает, чтобы не возникало резонанса. Nikolay_Po(1 знак., 12.07.2023 13:42, ссылка)
- Коллега поймал резонанс? И такое возможно, надо думать. - SciFi(12.07.2023 13:18)
- У нас 3 с копецами МГц было - я и написал, что у нас разницы не
было. Был отрицательный опыт - решил коллега атмегу LC фильтром от
линии питания отделить - так сбоить стала атмега, пришлось на RC
фильтр переходить. - symbions(12.07.2023 13:15)
- FBMH1608HM102-T + 0.1uF + 1uF. У бусины высокий импеданс в широком
диапазоне частот, выбирали для других дел, сюда поставили
паровозиком, и как-то прижилось. Есть аналог у Sunlord, кстати, но
на кратно меньший ток. SciFi(2 знак., 12.07.2023 10:16, ссылка, ссылка)
- Какой тип/номинал бусины, если не секрет? И конденсатора, после
нее. - AlexBi(12.07.2023 10:04)
- товарищ прав в главном. ЕСЛИ в коде есть момент, что может быть флэш разблокированной и туда что-то записано, то надо рыть всё же сюда. Вот если б в коде вообще намеков не было на разблокировку флэш, то рыть в электрическую часть. - Лaгyнoв(12.07.2023 09:13)
- Есть множество свидетельств вот именно того, что вы описываете.
Применительно к МК Silabs C8051 (бывший Cygnal). По-моему, я тоже с
этим сталкивался, просто давно это было. То есть ваш аргумент
разбивается о реальность. Но можете не верить, конечно. - SciFi(12.07.2023 09:08)
- При работе с АВР, правило хорошего тона не пользовать ячейку "0"ЕЕПРОМ и, соотвецтвенно, после любой транзакцыи с ей, парковать адресный регистр в "0", чтобы гадило в строго отведённое место. - mse homjak(12.07.2023 11:34)
- С силабсом был тоже интересный косяк, приводящий к порче флеша, но автору первоначального вопроса врядли поможет. symbions(589 знак., 12.07.2023 11:20)
- Описывает кто, il или my? У меня были только проблемы со произвольным переходом при сбое кварца. Были проблемы при перекосе питаний? - Andreas(12.07.2023 10:27)
- У
- Если б я что-нибудь понимал в этом вашем мёде, я бы... NAUT(494 знак., 11.07.2023 20:40)
- BOD включен? - 0men(11.07.2023 16:40)
- Вот уже включил по совету товарищей... Ждем-с результата... - my504(11.07.2023 17:04)
- выключен был?? ну это трэш... вангую причину в этом - 0men(11.07.2023 17:06)
- Он всегда включен. Просто предложено сделать более строгий порог. Авось заметёт проблему под ковёр. - SciFi(11.07.2023 18:31)
- выключен был?? ну это трэш... вангую причину в этом - 0men(11.07.2023 17:06)
- Вот уже включил по совету товарищей... Ждем-с результата... - my504(11.07.2023 17:04)
- После анализа всего что вы написали, я полагаю что причина порчи
FLASH единственна: исчезновение питания во время записи во FLASH.
Вопрос:исчезновение питания во время записи возможно? То что
портится совсем другая страница, что в коде железно прошиты и адрес
и страница не должно смущать, это не программный сбой а аппаратный.
При записи FLASH отрабатывает конечный автомат, сбой которого при
исчезновении питания непредсказуем. - RxTx(11.07.2023 15:35)
- Увы, но я уже написал - запись во флеш в составе этого стенда
принципиально невозможна. Выход в эту функцию связан с обменом. А
обмен отсутствует. Кроме того, в этой версии запись во флеш сделана
без скольжения и при рандомном нештатном обращении к этой функции я
бы давно испортил флеш. my504(424 знак., 11.07.2023 15:57)
- Я тебя понял. Тогда моя гипотеза не верна. Тогда перейдем на более
генеральные вещи. Тут вот что. Твоя мысль о том что ядро исполняет инструкции строго последовательно и для того
чтобы попасть на участок кода пишущий во FLASH должны выполниться
определенные условия.... не верна. В очень редкие моменты времени переходных процессов
питания ядро начинает хаотически блуждать и заходит в код
работающий с FLASH. Припоминаю аппноту (скорее всего от Microchip).
У RxTx(1196 знак., 12.07.2023 10:14)
- А вообще я бы подумал над кодом. Создается впечатление (это просто впечатление, может ошибочно) что ты "ужестил", сделал дубовой функцию записи. Результат - если проц в нее забредает, она отрабатывает всегда. Надо наоборот сделать не жесткой и дубовой, а очень хлипкой, очень хрупкой - такой чтобы она выполнялась только тогда, когда система гарантированно инцициализирована и гарантированно уже надежно отработала много циклов, т.е. все уже давным-давно застабилизировалось. RxTx(273 знак., 12.07.2023 10:24)
- У ST есть встроенный нестираемый бутлодер, который умеет писать во флеш. И если на глитче питания/клока процессор слетит с катушек - он и туда может зайти также спокойно. - LightElf(12.07.2023 10:18)
- Уберите прокладку под кварцем и, вероятно, флюс неотмытый там же.
Похоже, что заводится на сильно высокой частоте - Vit(11.07.2023 18:40)
- Прикол в том, что фото сделано на нормальной плате, ибо глазом их
не отличить. :) У меня на столе было две платы с которых я снял
дампы для сравнения. - my504(11.07.2023 21:59)
- я без шуток. прокладка под кварцем это вааще бич. разводка же вокруг кварца у вас терпима до менее 16 МГц. картинка
получилась убогой, потому не вижу что там, но похоже 20 МГц. для
такого разводка некорректна. Vit(178 знак., 12.07.2023 09:19)
- Кварц 8МГц. - my504(12.07.2023 14:41)
- я без шуток. прокладка под кварцем это вааще бич. разводка же вокруг кварца у вас терпима до менее 16 МГц. картинка
получилась убогой, потому не вижу что там, но похоже 20 МГц. для
такого разводка некорректна. Vit(178 знак., 12.07.2023 09:19)
- Прикол в том, что фото сделано на нормальной плате, ибо глазом их
не отличить. :) У меня на столе было две платы с которых я снял
дампы для сравнения. - my504(11.07.2023 21:59)
- Я тебя понял. Тогда моя гипотеза не верна. Тогда перейдем на более
генеральные вещи. Тут вот что. Твоя мысль о том что ядро исполняет инструкции строго последовательно и для того
чтобы попасть на участок кода пишущий во FLASH должны выполниться
определенные условия.... не верна. В очень редкие моменты времени переходных процессов
питания ядро начинает хаотически блуждать и заходит в код
работающий с FLASH. Припоминаю аппноту (скорее всего от Microchip).
У RxTx(1196 знак., 12.07.2023 10:14)
- Увы, но я уже написал - запись во флеш в составе этого стенда
принципиально невозможна. Выход в эту функцию связан с обменом. А
обмен отсутствует. Кроме того, в этой версии запись во флеш сделана
без скольжения и при рандомном нештатном обращении к этой функции я
бы давно испортил флеш. my504(424 знак., 11.07.2023 15:57)
- Кстати, есть вариант подрихтовать кувалдой и в продакшн: прописать
в Option Bytes BOR Level 3. - SciFi(11.07.2023 14:10)
- Спасибо, подрихтовал 20 плат и поставил на прогон... - my504(11.07.2023 15:58)
- К кварцу и его конденсаторам идет земля. Этот земляной провод
должен быть подключен к ближайшей земляной ноге процессора, и
только. Т.е. через этот проводник не должно течь никаких других
токов. Конденсаторы питания(керамические) для процессора должны
быть максимально близко к этим выводам процессора. Нет ли на плате
замкнутых контуров по земляным цепям(полигоны не в счет) ? - Sl(11.07.2023 14:00)
- Я десять лет работал с диапазоном 12...14 ГГц на поликоре. Поэтому
развести питание неправильно - это не мой случай. ))) Плата
нормальная двухстороняя, где нижний слой в районе МК - сплошной
полигон земли. Блокировки по питанию висят на пинах МК на
расстоянии максимум 3 мм от этих пинов. Никаких мощных потребителей
на плате нет. Это ПРИЕМНИК. Весь обмен и внешняя индикация на
другом краю платы и от другого питания (земля конечно обшая, но МК
- самый удаленный объект на плате my504(132 знак., 11.07.2023 14:57, картинка)
- А третий конденсатор что там делает? Он по питанию? И импульсные
токи через него будут идти по земле которая для конденсаторов для
кварца. Можно попытаться этот конденсатор перенести. Но скорее
всего, вряд ли в нем проблема. - Sl(11.07.2023 16:34)
- Там все конденсаторы по питанию (кроме пары на кварце). Один из них
- на внутреннем регуляторе питания ядра. Про кварц я ничего не
понял. Вы всерьез про возможность блокировочного конденсатора
мешать кварцу или пошутили? Вообще то это блокировка AVDD, от
которого и питается домен осциллятора. Опять же непонятно что там
может мешать - снизу полигон земли. Сплошной. - my504(11.07.2023 17:03)
- Почитайте тут (ссылка). Полигон земли тоже может быть подключён
неправильно, с точки зрения ЭМС. Конкретно см. пример 6, Фиг. 12. Nikolay_Po(1 знак., 11.07.2023 21:17, ссылка)
- Рука-лицо... Вы полагаете, что я это не знаю? При всем уважении к
вам и Тимофееву. Повторю еще раз. На плате нет мощных потребителей,
а МК максимально удален от разъемов к которым подключаются питание,
интерфейсы и внешняя сигнализация. Ну и при текущем тесте к плате
кроме питания ничего не присоединено. Я в курсе как правильно
разводить ВЧ (и даже СВЧ) устройства.... - my504(11.07.2023 22:04)
- Проблема-то есть. Знай вы всё наперёд, вопроса бы не возникло. Судя
по переходному отверстию у кварца, ваша разводка нарушает
рекомендации из статьи Алексея Кузнецова по ссылке. Проверьте, как
течёт ток по земляному полигону. Иногда, для сбоя достаточно
собственной ёмкости платы. Необязательно помехе течь между
соединениями с внешним миром. Nikolay_Po(315 знак., 11.07.2023 22:16)
- Помилосердствуйте, там кварц 8 МГц... Это вообще ни о чем. Тем более, что переходное отверстие - это питание. Надо ли вам объяснять, что тотально блокированное (включая соседнюю емкость) питание - это земля? Сбой исполнения тоже крайне маловероятен. А вот нештатное исполнение при падении питания при выключении - это реально. Поэтому порог BOR я поднял еще днем, практически через пять минут после сообщения SciFi . Меня интересуют реальные вероятные причины, а не my504(132 знак., 11.07.2023 22:28)
- Проблема-то есть. Знай вы всё наперёд, вопроса бы не возникло. Судя
по переходному отверстию у кварца, ваша разводка нарушает
рекомендации из статьи Алексея Кузнецова по ссылке. Проверьте, как
течёт ток по земляному полигону. Иногда, для сбоя достаточно
собственной ёмкости платы. Необязательно помехе течь между
соединениями с внешним миром. Nikolay_Po(315 знак., 11.07.2023 22:16)
- Рука-лицо... Вы полагаете, что я это не знаю? При всем уважении к
вам и Тимофееву. Повторю еще раз. На плате нет мощных потребителей,
а МК максимально удален от разъемов к которым подключаются питание,
интерфейсы и внешняя сигнализация. Ну и при текущем тесте к плате
кроме питания ничего не присоединено. Я в курсе как правильно
разводить ВЧ (и даже СВЧ) устройства.... - my504(11.07.2023 22:04)
- Почитайте тут (ссылка). Полигон земли тоже может быть подключён
неправильно, с точки зрения ЭМС. Конкретно см. пример 6, Фиг. 12. Nikolay_Po(1 знак., 11.07.2023 21:17, ссылка)
- Там все конденсаторы по питанию (кроме пары на кварце). Один из них
- на внутреннем регуляторе питания ядра. Про кварц я ничего не
понял. Вы всерьез про возможность блокировочного конденсатора
мешать кварцу или пошутили? Вообще то это блокировка AVDD, от
которого и питается домен осциллятора. Опять же непонятно что там
может мешать - снизу полигон земли. Сплошной. - my504(11.07.2023 17:03)
- А третий конденсатор что там делает? Он по питанию? И импульсные
токи через него будут идти по земле которая для конденсаторов для
кварца. Можно попытаться этот конденсатор перенести. Но скорее
всего, вряд ли в нем проблема. - Sl(11.07.2023 16:34)
- Я десять лет работал с диапазоном 12...14 ГГц на поликоре. Поэтому
развести питание неправильно - это не мой случай. ))) Плата
нормальная двухстороняя, где нижний слой в районе МК - сплошной
полигон земли. Блокировки по питанию висят на пинах МК на
расстоянии максимум 3 мм от этих пинов. Никаких мощных потребителей
на плате нет. Это ПРИЕМНИК. Весь обмен и внешняя индикация на
другом краю платы и от другого питания (земля конечно обшая, но МК
- самый удаленный объект на плате my504(132 знак., 11.07.2023 14:57, картинка)
- Записи во флеш нет на протяжении штатной схемы работы ? - sav6622(11.07.2023 13:09)
- В режиме, в котором слетает прошивка, обращения к записи во флеш
нет. То есть сама функция присутствует в коде. Однако она пишет в
задефайненый адрес (он не вычисляется) и в ней жестко присутствует
стирание страницы по этому же адресу. И этот адрес очень далеко от
начала. - my504(11.07.2023 13:22)
- Но нет ли разрешения на изменение флешки? Ниже верно сказали -
закомментировать нахер вообще весь код, что может флешку
разлочивать. - POV(11.07.2023 13:46)
- Я уже написал, что в функции записи во флеш имеется совершенно
линейный код в котором ПЕРЕД ЗАПИСЬЮ выполняется СТИРАНИЕ СТРАНИЦЫ.
Но попробовать можно. Правда все осложняется нерегулярностью
происходящего. На стенде лежат два десятка плат питающихся от
источника с таймером включения/выключения от сети и порой нужно
ждать неделю и больше. - my504(11.07.2023 14:18)
- Самое неприятное с закомментированием функции записи в том, что
непонятно что делать потом с результатом. Каким бы он ни был. Я не
могу убрать запись в продакшене. Это сохранение конфигурации
устройства при настройке. - my504(11.07.2023 15:10)
- А аппаратный патч произведенных плат возможен? - RxTx(11.07.2023 15:42)
- Не только возможен, но и необходим, по видимому. Всего плат отбраковалось порядка полсотни... - my504(11.07.2023 15:45)
- Это даст понимание. Софт портит сам себя или иное. Без этого дальше
думать не о чем. - POV(11.07.2023 15:11)
- Это точно не софт. Доступ к функции записи длинен и зело труден.
Для штатной записи нужно получить шифрованный пакет от ПО с
правильной командой на запись, которое (ПО с интерфейсным блоком)
на стенде в принципе отсутствует. Там лежат два десятка плат с
поданным питанием и маленькими петлями в разъеме антенн,
отключенными интерфейсами и индикацией и лишь на расстоянии
полметра от них включен передатчик с крошечной петлей в качестве
антенны заставляет работать эти my504(124 знак., 11.07.2023 15:26 - 15:28)
- ну да, это если логикой нормальной работы пользоваться... а если
прикинуть что при сбое, просто рандомно переходим по памяти и
попадаем на функцию записи, то всё становится гораздо проще... и
да, при ЭМСе у нас, у нас даже осциллограф некоторые функции
вспомнил =)) у него открылись функции более старшей модели, видимо
пролетело и записалось куда не нужно... sav6622(127 знак., 12.07.2023 08:49)
- Ну не верит человек. Что поделать, у нас свобода вероисповедания.
Каждый волен игнорировать те свидетельства, которые не вписываются
в его картину мира. - SciFi(12.07.2023 08:56)
- Дело не в картине мира. дело в минимизации времени для поиска
проблемы. Помимо всего прочего, вся эта история возникла не на всем
выпущенном тираже этих плат. А лишь на одной партии. Поэтому есть
версия и с проблемными чипами. А пока утром одна плата слетела с
совершенно идентичном повреждении флеша, хотя на всех BOR
максимальный. Я дописал в функцию записи во флеш пару входных
uint23 аргументов с проверкой их значения перед исполнением
стирания-записи. Типа такой двойной my504(51 знак., 12.07.2023 09:48)
- Я делал кучу блокировок дополнительных программных как можно ближе к конкретной асм инструкции записи, пофиг, только вероятность немного снижалась. ИМХО, Vit прав, говно под кварцем, мы или смд 3225, или выводной HC49S и приподнимаем на 1..2мм. - Andreas(12.07.2023 10:33)
- Это не так работает. Он прыгнет сразу на код разблокировки флеша, в
обход двойного ключа. Закон Мерфи же. Считайте, что PC
инициализируется случайно и притягивается к самому вредному коду.
Если уж делать такие штуки, я бы делал что-то типа того, что
описывает коллега выше. Максимально затруднить процу возможность
прыгнуть сразу на разблокировку флеша. SciFi(1 знак., 12.07.2023 09:53, ссылка)
- У меня пока возникла небольшая заминка. Видимо года три назад я случайно исправил код не в том проекте и сохранил. С тех пор бэкапился проект с ошибкой. Нужно найти где баг. Где то в DSP... Вашу мысль я понял, но физика мне непонятна. Учитывая переменную длину инструкций в АРМ, представить себе, что случайно попав на произвольный адрес флеша код сможет куда то там добежать и выполнить точку входа в коде длиной в сотню килобайт - это выглядит как оголтелая фантазия. Вероятней my504(71 знак., 12.07.2023 14:51)
- Дело не в картине мира. дело в минимизации времени для поиска
проблемы. Помимо всего прочего, вся эта история возникла не на всем
выпущенном тираже этих плат. А лишь на одной партии. Поэтому есть
версия и с проблемными чипами. А пока утром одна плата слетела с
совершенно идентичном повреждении флеша, хотя на всех BOR
максимальный. Я дописал в функцию записи во флеш пару входных
uint23 аргументов с проверкой их значения перед исполнением
стирания-записи. Типа такой двойной my504(51 знак., 12.07.2023 09:48)
- Ну не верит человек. Что поделать, у нас свобода вероисповедания.
Каждый волен игнорировать те свидетельства, которые не вписываются
в его картину мира. - SciFi(12.07.2023 08:56)
- Я тоже так думал (ссылко)... POV(334 знак., 11.07.2023 15:31, ссылка)
- Это достаточно старый чип и по нему нет сведений по такого рода проблемам. Я полагаю, что проблема в обвесе чипа, но пока не пойму где. У меня была проблема с TMS320, когда на нем на ядре висела блокировка с минимально возможной емкостью, поэтому в части плат из-за разброса конденсаторов возникали глюки в виде зависаний, но без повреждения флеша... - my504(11.07.2023 15:34)
- ну да, это если логикой нормальной работы пользоваться... а если
прикинуть что при сбое, просто рандомно переходим по памяти и
попадаем на функцию записи, то всё становится гораздо проще... и
да, при ЭМСе у нас, у нас даже осциллограф некоторые функции
вспомнил =)) у него открылись функции более старшей модели, видимо
пролетело и записалось куда не нужно... sav6622(127 знак., 12.07.2023 08:49)
- +1. Для начала надо диагностировать. Так-то при некотором умении можно сделать прошивку, которая сама себя залажает и без глюков железа. - SciFi(11.07.2023 15:17)
- Это точно не софт. Доступ к функции записи длинен и зело труден.
Для штатной записи нужно получить шифрованный пакет от ПО с
правильной командой на запись, которое (ПО с интерфейсным блоком)
на стенде в принципе отсутствует. Там лежат два десятка плат с
поданным питанием и маленькими петлями в разъеме антенн,
отключенными интерфейсами и индикацией и лишь на расстоянии
полметра от них включен передатчик с крошечной петлей в качестве
антенны заставляет работать эти my504(124 знак., 11.07.2023 15:26 - 15:28)
- А аппаратный патч произведенных плат возможен? - RxTx(11.07.2023 15:42)
- Самое неприятное с закомментированием функции записи в том, что
непонятно что делать потом с результатом. Каким бы он ни был. Я не
могу убрать запись в продакшене. Это сохранение конфигурации
устройства при настройке. - my504(11.07.2023 15:10)
- Я уже написал, что в функции записи во флеш имеется совершенно
линейный код в котором ПЕРЕД ЗАПИСЬЮ выполняется СТИРАНИЕ СТРАНИЦЫ.
Но попробовать можно. Правда все осложняется нерегулярностью
происходящего. На стенде лежат два десятка плат питающихся от
источника с таймером включения/выключения от сети и порой нужно
ждать неделю и больше. - my504(11.07.2023 14:18)
- Временно выкиньте данный код записи во флеш ВООБЩЕ, и перепроверьте... - sav6622(11.07.2023 13:45)
- Если во время коммутации питания что-то жёсткое с цепями питания
происходит, не следует удивляться таким чудесам. Чтобы исключить
эту версию, можно повесить внешний супервизор и посмотреть, будет
ли разница. Кстати, на днях видел блуждающий HardFault (правда, на
STM32L431), и единственным видимым объяснением была просадка Vdd на
0,5 В на единицы микросекунд, пока Vdda оставался стабильным. Некая
нагрузка коммутировалась рядом. - SciFi(11.07.2023 13:29)
- Спасибо за предложение, но это же устройство имеет версию на
AT32F407. С практически идентичной схемой - разница в двух пинах
перекинутого УАРТа, который в данной ситуации не задействован. И с
ним такого безобразия никогда не происходит... Питание на плате не
содержит импульсных преобразователей - только линейные регуляторы.
Входящее питание 24 Вольта от стандартного "кирпичика" подобного
ноутбучному. - my504(11.07.2023 13:37)
- И что это доказывает? Правильно, практически ничего. Очевидно, у
вас там что-то нештатное происходит. Следует ожидать, что
совершенно разные МК будут по-разному вести себя в нештатной
ситуации. - SciFi(11.07.2023 13:41)
- Тут вы правы. Ничего не доказывает. Но если подобное возможно, то
обычно вендор дает рекомендации для таких случаев. У меня там нет
ничего особенного. 30 мА потребления чипа берутся с линейного
регулятора LM2937-ET-3,3 на входе которого 18 Вольт. Стандартные
блокировки по всем пинам питания 0,1 мкФ типоразмера 0805. - my504(11.07.2023 13:58)
- Вендор подстелил соломку. Вот это соблюдаете, к примеру? >>> SciFi(1 знак., 11.07.2023 14:06, ссылка)
- Воевал ровной с той же проблемой на 51м цыгнале. И не я один. На силабовском комьюнити такие же были жалобы. Производитель выкатил рекомендацию вообще исключить обращение к расширенной ОЗУ (этими командами запись в разлоченную флешку производилась). Только после этого проблема ушла. Отследить где и что не так оставалось разлоченным - не удалось.. POV(148 знак., 11.07.2023 14:05)
- Если есть кварц, то у атмеги было такое при сбое кварца. Убираешь вообще запись во флешь из кода и глюки уходят. При изменении разводки проблема ушла. - Andreas(11.07.2023 14:05)
- Тут вы правы. Ничего не доказывает. Но если подобное возможно, то
обычно вендор дает рекомендации для таких случаев. У меня там нет
ничего особенного. 30 мА потребления чипа берутся с линейного
регулятора LM2937-ET-3,3 на входе которого 18 Вольт. Стандартные
блокировки по всем пинам питания 0,1 мкФ типоразмера 0805. - my504(11.07.2023 13:58)
- И что это доказывает? Правильно, практически ничего. Очевидно, у
вас там что-то нештатное происходит. Следует ожидать, что
совершенно разные МК будут по-разному вести себя в нештатной
ситуации. - SciFi(11.07.2023 13:41)
- VDDA нельзя выше VDD - так сказано в мануалах. - bnb62(11.07.2023 13:36)
- Или вот: Vdd rise time rate 20 µs/V min. - SciFi(11.07.2023 13:50)
- VDDA соединен с VDD через резистор 10 Ом с блокировкой на VDDA 0,1
мкФ. То есть выше никак не возможно. Только ниже. - my504(11.07.2023 13:39)
- Это я SciFi. Но вообще опасаюсь применять емкости которые
заряжаются от внешних источников непосредственно на входах. Т.е.
которые могут кратковременно питать узлы камня паразитно. - bnb62(11.07.2023 13:55)
- На каких "входах"? Питание должно быть блокировано емкостями на
каждом пине. И чего вдруг запускаться автомату записи чипа? Этот
автомат должен быть сначала разблокирован. - my504(11.07.2023 14:05)
- Vdd обязательно. Я имею в виду GPIO настроенными как вход, которыми
что-либо контролируется, компарируется ли. Ну и фиг конечно знает,
что у вас делает неразблоченный "автомат" который вообще никак не
должен не стирать даже, а записывать нули. Может что-то с
бутлодырем не так? BOOT0 притянут к gnd? - bnb62(11.07.2023 14:26)
- Притянут джампером. На фото присутствует. - my504(11.07.2023 15:00)
- Vdd обязательно. Я имею в виду GPIO настроенными как вход, которыми
что-либо контролируется, компарируется ли. Ну и фиг конечно знает,
что у вас делает неразблоченный "автомат" который вообще никак не
должен не стирать даже, а записывать нули. Может что-то с
бутлодырем не так? BOOT0 притянут к gnd? - bnb62(11.07.2023 14:26)
- На каких "входах"? Питание должно быть блокировано емкостями на
каждом пине. И чего вдруг запускаться автомату записи чипа? Этот
автомат должен быть сначала разблокирован. - my504(11.07.2023 14:05)
- Это я SciFi. Но вообще опасаюсь применять емкости которые
заряжаются от внешних источников непосредственно на входах. Т.е.
которые могут кратковременно питать узлы камня паразитно. - bnb62(11.07.2023 13:55)
- Спасибо за предложение, но это же устройство имеет версию на
AT32F407. С практически идентичной схемой - разница в двух пинах
перекинутого УАРТа, который в данной ситуации не задействован. И с
ним такого безобразия никогда не происходит... Питание на плате не
содержит импульсных преобразователей - только линейные регуляторы.
Входящее питание 24 Вольта от стандартного "кирпичика" подобного
ноутбучному. - my504(11.07.2023 13:37)
- Но нет ли разрешения на изменение флешки? Ниже верно сказали -
закомментировать нахер вообще весь код, что может флешку
разлочивать. - POV(11.07.2023 13:46)
- В режиме, в котором слетает прошивка, обращения к записи во флеш
нет. То есть сама функция присутствует в коде. Однако она пишет в
задефайненый адрес (он не вычисляется) и в ней жестко присутствует
стирание страницы по этому же адресу. И этот адрес очень далеко от
начала. - my504(11.07.2023 13:22)
- Слегка разгреб текучку и вернулся к вопросу. Повторил недельный
тест (15 мин вкл/5 мин выкл) для трех вариантов кода. 1. В коде
вообще нет обращения к контроллеру флеша в части стирания записи,
включая разблокировку-блокировку. 2. Вставил
разблокировку-блокировку, но стирания-записи нет. 3. Есть полный
функционал стирания-записи. Все тесты делал с BOR=3
(Ris=2,92v/Fal=2,83v). Всего тестил 7 плат. Варианты 1 и 2 в
течении 5 рабочих дней выдержали тест. Вариант 3 слетел my504(388 знак., 07.08.2023 12:10, картинка, картинка)