Так затраты копеечные, не о чем говорить. А изделие готовым станет нескоро, полгода-год оно будет с открытым корпусом. Вот, например, паяльную станцию уже типа закрыл в корпусе, а все равно перешивал еще раз 10. А ведь поначалу чуть не сделал так, что доступ к разъему программирования есть только при снятой плате. Как хорошо, что все-таки впаял угловые штыри!
koyodza писал(а):
Бывает, что в отладочном экземпляре отсутствуют какие-то части, которые отлаживаются отдельно. Например, корпус
Неправильно. У Вас С1 будет отпускать одновременно ВООТ0 и сброс после отпускания ВООТ Нужно наоборот: одновибратор (формирующий короткий импульс) от ВООТ на сброс. А параллельно сбросу кнопка. Уровень на ВООТ0 анализируется сразу после сброса. Тогда просто сброс делается кнопкой сброса, а загрузка кнопкой ВООТ Только я всё равно не поддерживаю такого решения. Тогда уже лучше прямо на плате отладчик развести
Добавил картинку к предыдущему посту. Ваш новый вариант уже получше, но всё равно корявый. К тому же при подаче питания всегда будет попадать в режим загрузки, а кроме Вас оно больше никому не надо
Отладчик на плате это вот так: Сверху отладчик, снизу отлаживаемый МК
Вроде бы прошивки бегают то здесь то там. Всего 4 штырька потому, что земля и питание идут мимо штырьков, оно ведь на одной плате. Сброс на некоторых платах заведен, на некоторых нет
На счет удобства прошивки по уарт и дергания boot, и ресет кажись, хочу добавить, что этими сигналами можно управлять имея полный переходник с ком порта на uart TTL. такой вариант прошивки видел на одной из китайских плат. схему прилагаю источник http://we.easyelectronics.ru/STM32/stm32-usart-i-nemnogo-rs485.html стандартный прошивальщик от st поддерживает такое подключение (читал где то об этом)
стандартный прошивальщик от st поддерживает такое подключение
Спасибо, интересная информация. Действительно, удобно. Но у меня в БП будет переходник USB-UART на FR232RL с изоляцией на ADuM1201, поэтому доступны только два сигнала. Да и кнопочку вручную нажать не тяжело, лишь бы секвенсером с двумя кнопками не работать. Вот опять перечертил схему, так пойдет?
Да. Только чем не понравился мой вариант? Он проще, и не требует конденсатора 1мкФ Вместо DTC можно использовать транзистор и два резистора download/file.php?id=147913
Всего 4 штырька потому, что земля и питание идут мимо штырьков, оно ведь на одной плате. Сброс на некоторых платах заведен, на некоторых нет
Нашел в документе UM0919 описание и схему STM32VLDISCOVERY. Там есть распиновка разъема разъема SWD:
Я так понимаю, при отладке мне придется подключаться к этому разъему, поэтому я должен сделать такую же распиновку для разъема у себя на плате? На разъеме есть земля и питание, а вот сброса нет. Получается, в режиме SWD отладчик не может управлять сбросом? А если может, то через какой разъем/контакт? На схеме видно, что контакт 1 "VDD_TARGET" подключен через резистор 10 кОм к земле. Зачем этот сигнал нужен и когда он используется? Извините за большое количество вопросов, пока ничего не понятно.
Есть и другие отладчики, с другими разъёмами. Стандартным считается большой 20-контактрный разъём, есть ещё несколько более редких вариантов, а малоконтактные (до 10) все лепят как хотят, поэтому не нужно привязываться к этому разъёму. Для отладки по SWD нужны два сигнала (SWDIO и SWCLK) плюс земля. Обычно требуется также подача Vtarget (напряжение питания отлаживаемой системы), используется для согласования уровней (питание МК может быть и 1,8В, и 3,3В). Со стороны отладчика потребление небольшое, разные отладчики потребляют по этой цепи от долей до десятка мА Обычно при отсутствии этого напряжения отладчик не позволяет войти в режим отладки. В некоторых случаях внутри отладчика бывает возможность подать вместо Vtarget свои 3,3В Сброс в принципе подключать не обязательно. Но в некоторых случаях программно можно ввести МК в состояние, когда интерфейс отладки будет недоступен, поэтому желательно сброс всё же подключать. Конденсатор 0,1мкФ на входе сброса отладке не мешает. Рекомендую поставить любой 5-контактный разъём (если не хотите пользоваться стандартными), подключив туда все указанные выше сигналы, а к отладчику подключаться соответствующим кабелем-переходником. Сигналы SWDIO и SWCLK лучше разделить проводником земли или питания, чтобы уменьшить ёмкостную связь между ними, потому что используются частоты до 10МГц
Спасибо, все понятно, кроме одного. Куда именно подключать сигнал сброса к плате STM32VLDISCOVERY? И как выглядит процесс им управления, есть какая-то специальная функция? Чем отличается подключение сброса к отладчику от сброса вручную с помощью кнопки? Учитывая большую емкость на линии сброса (100 нФ), отладчик ведь не може дергать сброс быстро. Или дергает?
Подключается сброс к специальному контакту отладчика. Платы discovery по большому счёту отладчиком не являются, но использовать их можно. Для подключения сброса в stm32vl-discovery придётся, видимо, подпаяться к выв.19 контроллера, выполняющего роль отладчика (сигнал T_JRST на схеме). Сам я пользуюсь нормальными отладчиками, где все сигналы выведены. Дергать сброс быстро здесь и не нужно (но всё равно при 0,1мкФ он может дёргать быстрее и синхроннее, чем Вы будете это делать кнопкой). Просто отладчик может подключаться к МК как в нормальном режиме работы, так и при активном сбросе, которым он управляет сам. Естественно, что при отключении интерфейса отладки в программе (а также некоторых настройках тактирования, например) в нормальном режиме подключиться невозможно. Держать сброс вручную и подключаться отладчиком без линии сброса никогда не пробовал, да и желания заниматься ерундой нет
В разных средах программирования и для разных отладчиков это делается не одинаково. У меня это выглядит примерно так, как на картинке. В каких случаях это нужно я написал уже несколько раз, перечитайте мои сообщения на этой странице
Вопрос к koyodza: можно ли вместо STM32F100C4T6B без проблем применить STM32F100C6T6B. Почитал datasheet, вроде можно, вывод в вывод, отличия только в обьеме памяти, но есть сомнения.
Как это задается и в каких случаях используется тот или другой способ подключения?
ручной сброс нужен только в случае программного выключения выводов SWD (напр.можно использовать как GPIO). Но и в таком случае специально выводить сброс на разъем не обязательно - достаточно перед прошивкой кнопкой перегрузить в режим Boot.
можно ли вместо STM32F100C4T6B без проблем применить STM32F100C6T6B
Да, Вы можете менять С4 на С6 без оговорок.
zöner писал(а):
Но и в таком случае специально выводить сброс на разъем не обязательно - достаточно перед прошивкой кнопкой перегрузить в режим Boot.
Можно много чего не делать, не только сигнал на разъём не выводить. Изначально Леонид Иванович вообще не собирался использовать отладку, потому что никогда ею не пользовался. Начинать лучше с правильного подхода, а уже потом по мере понимания можно переходить к грязному хаку. Иначе по Вашему совету он сейчас не выведет сброс, потом отрубит SWD или начудит с настройками памяти (хотя вроде 100 этого не позволяет, не помню, а вот в 103 запросто), в результате разочаруется в отладке в первый день и больше не будет ею пользоваться. Леонид Иванович, никого не слушайте: сброс к отладчику обязательно подключайте
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения