Jump to content

    

Ioann_II

Свой
  • Content Count

    254
  • Joined

  • Last visited

Everything posted by Ioann_II


  1. Да, jcxz, по Вашим ссылкам программатор, судя по описанию, умеет прошивать наш МК. Жаль, что мы пошли не по тому пути (не тот программатор попробовали), но поиск выдал OffProg-1. Может быть, попробуем теперь тот, что вы указали. Но на данном этапе начал пробовать сделать сам, и думаю довести до конечного результата. Ну, во всяком случае, должен сделать попытку. Что на данном этапе и делаю.
  2. https://github.com/XIVN1987/DAPProg Алгоритмы программирования выдёргиваются из Keil, выдёргивалка тут https://github.com/mbedmicro/FlashAlgo Это тоже сырое. Но запустить удалось. Со сбросом целевого МК пришлось немного повозиться смотрите файл swd_host.c, там функции swd_set_target_state, надо проверять state не только на RUN, но и на RESET_RUN - тогда работает. И странно выглядит функция swd_set_target_reset и её вызовы. Тут не openocd... Пока не разобрался ещё, доступны ли эти регистры, хотя собирался попробовать. Как тут пишется во FLASH - пока не докопал. Может, не внимательно смотрел. Через регистры собирался попробовать. Кстати, какой документ вы показали на картинке?
  3. ArLLeex, я написал, что "основной функционал сделан". Option Bytes - для полноты. Представьте себе, что МК с завода прошили и запустили прошивку. Прошивка сама устанавливает Level 1. Тогда, после прошивки МК в плате и, соответственно, запуска прошивки, записать в МК что-либо можно только в том случае, если снять защиту (перейти из Level 1 в Level 0). А теперь практически: 1. Работник прошил МК в блоке. 2. Работник (по какой-то причине) не уверен, что этот блок прошит и пытается его прошить повторно. При этом, это может быть другой работник, не тот, что его прошивал в первый раз. И может думать, что этот блок ещё не прошит. Если не заложить возможность снятия защиты, то... Этот работник, при попытке прошить повторно, получит ошибку. 3. Получив ошибку при попытке прошить блок, работник несёт этот блок ко мне со словами: "... не шьётся... посмотрите...". А у меня, как Вы понимаете, дел по горло, уже давно не до этих блоков... я ведь их уже давно отдал в производство.... И, как Вы понимаете, этих блоков может быть целая коробка (большая).... А если автономный программатор сам, без всяких дополнительных телодвижений этого работника, сначала снимает защиту (попутно стирая ПО), а потом программирует МК, то... Этот самый работник, при попытке прошить любой блок, получает успешный результат, если, конечно, МК прошивается. И меня никто не беспокоит по пустякам. Так понятно? Но это идеал, к которому надо стремиться. А план-минимум уже наметился. Поэтому мне бы очень хотелось заложить в программатор такой функционал, чтобы работник мог самостоятельно разбираться со всеми исправными блоками, без моего участия. У меня есть компьютер, и с помощью ST-link могу сделать всё, что нужно. Но это, должен быть скорее исключительный случай, нежели правило. Да и эти работники, которые прошивают блоки, могут находиться достаточно далеко от меня. Как-то так...
  4. Всякий раз, когда приходится "уповать" на чужой проект, случается какая-то дрянь (может только у меня так?). И, т.к. проект чужой, попадаешь в ситуацию, когда не получается оперативно что-то сделать, становишься заложником чужих косяков. Да, J-link - "фирма"... JetLink - не знаю. Но и с "фирмой" случались "трудности", причём не только у меня. Это всё относится к стремлению что-то сделать самому. Да и самому полезно разобраться, понять....
  5. Нет, jcxz, не руки, а JetLink я не пробовал. Пользовался ST-link, всё устраивало. Но понадобился автономный, чтобы без компьютера, поиск вывел на OffProg-1. Попробовали - в STM32F030 не пишет, выдаёт ошибку. Их специалисты попробовали STM32F030 и ответили, что МК с завода действительно, не прошивается - возможно только обновление после предварительной прошивки. Ну и как-бы расписались в своей беспомощности. Наверное, слямзили у китайцев (там, в программе-конфигураторе проскочили иероглифы), а не сами делали. И даже исходников, видать, не имеют... а то в отладке нашли бы причину и исправили. Тогда стал искать другие варианты. Поиск вывел на демонстрационный проект такого программатора из blue pill. Попробовал (всего 10-20 минут заняло), подгрузил соответствующий алгоритм и нужный МК прошился... В принципе, основной функционал (проверка чистоты, стирание по необходимости, программирование, верификация и запуск) уже сделан. Теперь, для полноты, хотелось понять, как работать с Option Bytes посредством SWD. А так... осталось обеспечить питание от сети, подобрать корпус и сделать платы. Прошивка вместе с управляющей программой отлично умещается в памяти STM32F103C8.
  6. Задал вполне конкретный вопрос - о стирании Option Bytes (чтобы снять защиту). Нужен именно АВТОНОМНЫЙ программатор. Для записи ПО в один определённый МК. "Зачем лепить свой лисапед?" - писал, что пробовали готовое решение. Не устроило, т.к. именно в нужный МК писать не может (хотя обещано). Писал, что стирание, запись и запуск ПО получилось сделать. Устройств таких думаю, понадобится несколько штук. Выпускать серийно не предполагается. Устройство предназначается для серийной прошивки МК в схеме изделия, на предприятии.
  7. Здравствуйте, коллеги. Появилась необходимость в автономном программаторе для МК STM32F030, без участия компьютера. Попробовали готовое устройство из Питера - не устроило. Не умеет работать с нужным МК. Стал пробовать сделать своё, на базе проекта с гитхаба. Вроде запустил. Работает стирание, запись, чтение, запуск. Но вот никак не могу понять, каким образом через порт SWD стирать OB (Option Bytes). Т.е. как это делается из приложения - понятно, а как через SWD - не понятно. RM и PM на МК смотрел, но не нашёл (или плохо смотрел?). Если кто что знает - подскажите, где посмотреть. По содержанию темы отмечу сразу: бутлоадеры не интересуют,
  8. Пишите про плохую адгезию. Имеется в виду полная заливка в корпусе - не обеспечит герметичности?
  9. Спасибо, Andreas1, Пентаэласт-727, наверное, подойдёт. Попробуем. Свойства... Нужно просто заливать блок питания, помещённый внутри алюминиевого корпуса, для обеспечения герметичности - работать будет на улице: жара, холод, снег, дождь. Ну и подешевле.
  10. Важный момент в том, чтобы недорогой. Так-то компаунд найти не сложно: тот-же виксинт к-68, его аналоги. Но там цена под 1тр за кг. А хотелось-бы раза в 3-4 дешевле. Или может кто подскажет, где купить это подешевле? Предполагается 200-300 кг в месяц. Парафин, стеарин, воск - предлагать не надо. Надо не термопластичный, т.к. блок греется, есть элементы, которые нагреваются до 60-70 градусов, а в закрытом корпусе, может и немного больше. Если теплопроводность будет не очень плохая - лучше, чтобы тепло лучше отводить на корпус (алюминиевый).
  11. Что, никто не подскажет марки недорогого компаунда?
  12. Здравствуйте, Коллеги. Появилась необходимость герметизации блока путём заливки компаундом в корпусе. Прошу посоветовать дешёвый компаунд. Высоких напряжений (выше 1000В) в блоке нет. Спасибо.
  13. Ещё вопрос: добавил отверстия на полях для трафаретного принтера, при экспорте Drill Data в выходном файле нет сведений об инструментах (таких как: T1F00S00C0.01575) - как это исправить?
  14. Добрый день. Понадобилось самостоятельно мультиплицировать плату по Gerber-файлам, для разделения скрайбированием. Но почему-то границы соседних плат совмещаются не по центру, а по внешнему краю. Подскажите, как сделать, чтобы было по центру. Спасибо.
  15. Здравствуйте, Уважаемые коллеги. Появилась надобность в пайке BGA микросхем. Предполагается пайка в конвекционной печи. До настоящего момента паяли обычные SMD детали. Нанесение пасты через трафарет, установка элементов на автомате и в печь. Прошу подсказать, какие отличия при пайке BGA. Где почитать об этом. Интересует именно автоматизированный монтаж. А то поиск даёт только ручной монтаж/демонтаж. Нужен ли контроль пайки, какой (рентген?). Спасибо.
  16. Питание нарастает достаточно медленно, а GPIO имеет зону неопределённости между уровнями 0 и 1, поэтому у меня выбор: или ставить пороговый элемент (сформировать этот GPIO сигнал), либо применить обычную задержку. Пошёл по второму пути. Задержка (1с) основана на прерывании SysTick. Это прерывание единственное, и его я не отключаю.
  17. Времени не было сразу задуматься, почему не получилось на частоте 15кГц (с максимальным делением)... а на выходных задумался... Причина простая - есть обработчик прерывания, который вызывается каждую 1мс, и видимо, при такой частоте, не успевает за 1мс выполнить все необходимые операции.
  18. На 15кГц сделать почему-то не получилось. Но на 250кГц всё прекрасно. Вставил ожидание. И конденсатора в 470мкФ оказалось достаточно. Спасибо за подсказки.
  19. В даташите ниже 8МГц не упоминается - надо завтра попробовать. Про ключ на P-MOSFET: коммутирует напряжение от стабилизатора на МК. Через встроенный диод напряжение подаётся на МК, а включением ключа обеспечивается равенство напряжения со стабилизатора и на МК. Это для внешних цепей на АЦП - чтобы не потребляли ток, когда МК в режиме STOP.
  20. Есть ещё тёмное место. Не совсем пока уверен, но. В макетке, при постоянном питании от программатора (через мультиметр, для контроля тока), при переходе в STOP ток спадал сразу до 5-6мкА. А в образце, при отключении сети ток спадает сначала до 230мкА, потом до 100мкА, потом до 5-6мкА, и это в течении 1-2с. Может мультиметр так показывает (по времени)... но разница есть. Программа одна. В макетке датчик наличия сети иммитирую с помощью таймера. В образце таймер работает так-же, но его сигнал не используется. Ну ведь писал, что ставил ионистор и параллельно ему конденсатор 470мкФ. В этом случае уже стало работать как надо, т.е. коммутация сети не влияла. По расчётам там одного конденсатора должно бы хватать... Теперь следующий шаг - обойтись без ионистора. Теоретически он не нужен. Или я ошибаюсь? Неплохо-бы взглянуть на типовые решения, но смог найти только с батарейным питанием и пробуждением от кнопки.... а это делается на "раз-два".
  21. В 2-3 раза - это несильно. Тут бы на порядок... А где поискать посоветуете?
  22. Недопонял: предлагаете при пробуждении сделать другую настройку тактирования, а с задержкой времени изменить её? Судя по даташиту можно ток снизить с 16 до 5мА (хотя измеренный ток, вместе с индикацией в режиме RUN составляет 13мА). Несильно выиграю, если перестрою на 8МГц. Вообще, сначала была мысль пробуждаться периодически и проверять наличие питания, но, думаю, это неправильно.