Так затраты копеечные, не о чем говорить. А изделие готовым станет нескоро, полгода-год оно будет с открытым корпусом. Вот, например, паяльную станцию уже типа закрыл в корпусе, а все равно перешивал еще раз 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 запросто), в результате разочаруется в отладке в первый день и больше не будет ею пользоваться. Леонид Иванович, никого не слушайте: сброс к отладчику обязательно подключайте
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 65
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения