Минимальный доступ к программе через программу через Stlink

Майклв
Солнце 24 апреля 2016 г. 8:10 вечера
Привет,

Я делаю свой собственный мини-доход, и мне было интересно, какое будет минимальное количество булавок, с которыми нужно соединить, чтобы всегда иметь возможность программировать чип, независимо от текущего состояния чипа. Это предполагает, что чип подключен к кристаллу, а питание поставляется.

SWCLK / SWIO / GND, безусловно, будет включен в требуемые булавки.
Как насчет:
Сброс: в каких случаях потребуется сброс чипа, также будет иметь силовую цикл вместо сброса работы ?
Boot0: я думаю о том, чтобы Boot0 всегда был привязан к земле, какой сценарий сделает чип неуместным через Stlink, если Boot0 всегда был подключен к земле ?
Boot1: так же, как Boot0.

Я помню, как читал, что Swclk & Свионы Swio могут или могут быть настроены как GPIO, чтобы чип больше не мог быть доступен через эти булавки. Я не помню, где я это читал, у кого -нибудь есть ссылка с дополнительной информацией об этом и как получить Swclk & SWIO возвращается к тому, чтобы быть Stlinkble ?

Спасибо!

Mrburnette
Солнце 24 апреля 2016 г., 8:23 вечера
Майклв написал:Привет,

Я делаю свой собственный мини-доход, и мне было интересно, каким будет минимальное количество булавок, с которыми нужно соединить, чтобы всегда иметь возможность программировать чип, Независимо от текущего состояния чипа. Это предполагает, что чип подключен к кристаллу, а питание поставляется.
<...>

ZMEMW16
Солнце 24 апреля 2016 г., 21:36
@michaeliv

Googling 'Connect inder stlink' дает ST Manual pdf

http: // www.Google.сопутствующий.Великобритания/URL?SA = T&rct = j& ... Arlduhwwlq

Кажется, я приобрел копию, следуя вышеуказанному : D

Это объяснит эффект, если какой -либо из Boot0/Boot1?

Стивен

Rogerclark
Солнце 24 апреля 2016 г., 21:40
Афик.

Если вы всегда собираетесь программировать через STLINK, вы можете все время тянуть Boot0 и Boot1 Low Low.

В крайнем случае, вы также можете жестко подключить линию сброса, и вместо этого просто цикл питания платы.

Вам нужно только подключить 2 линии SWD к программе через Stlink

Стевех
Пн 25 апреля 2016 г., 4:46 утра
и SWD нуждается в соединении с 3 картой 3.3v VCC как Vtref и GND, конечно,.
Card's Nreset является практическим обязательным для интерфейса SWD.

SWD и CLK, необязательно - это штифт трассировки... очень удобно для регистрации и профилирования в отладчике.

Rogerclark
Пн 25 апреля 2016 г., 7:02
@stevech

Вы уверены, что Stlink должен быть подключен к VCC.

Я иногда питаю доску через USB, и ее на борту 3.3V Reg, а затем подключите STLINK через SDIO SCLK и GND.

Если у процессора включены булавки SWD, не должно быть необходимости подключаться к сбросу. Но для безопасности у меня будет точка сброса, доступная для Stlink

Werecatf
Пн 25 апреля 2016 г., 7:09
Rogerclark написал:Вы уверены, что Stlink должен быть подключен к VCC.

Я иногда питаю доску через USB, и ее на борту 3.3V Reg, а затем подключите STLINK через SDIO SCLK и GND.

Майклв
Пн 25 апреля 2016 г. 8:13 утра
Спасибо все за ваши ответы, я получаю лучшее представление о том, что связано.
Может ли кто -нибудь сказать мне, как MCU может отключить свои выводы SWD (настроено как GPIO) ? Есть ли функция STM32Duino для этого ?
Если он достигнет этого состояния, какой правильный способ запрограммировать его через Stlink ? Удерживать сброс и доступ через Stlink ?

Кроме того ?

Спасибо!

Rogerclark
Пн 25 апреля 2016 г. 8:37 утра
Выводы SDW могут быть отключены, если они настроены как GPIO в прошивке.

Для таких плат, как Maple Mini, контакты SWD настроены как GPIO, что означает, что если вы попытаетесь программировать через STLINK после запуска эскиза, STLINK не будет подключаться к STM32 (это часть инициализации)

Таким образом, вам нужно выбрать «Подключиться к сбросу» в программе Stlink, затем удерживать STM32 в сбросе, а затем сообщите Stlink подключиться, а затем вывести STM32 из сброса.


Если вы хотите USB, вам нужны 2 USB -контакты, подключенные к USB I.E USB D+ и USB D-.

Чтобы в идеале перечислить USB, вам нужен внешний PNP -транзистор или PCHANLET FET, но это также возможно просто через 1.5K подтягивание на одной из линий USB, так как у нас есть хакерский способ переключить один USB -штифт на GPIO, а затем обратно в USB, что вызывает повторную реэпроизводство USB - но мы только для этого для поддержки плат без надлежащей USB -электроники электроники

Но, как сказал Рэй, посмотрите на мини -схему Maple, у нее сложная система сброса USB из 2 x npn транзисторов (которые, я думаю, можно заменить на один PNP), у нее также есть резисторы серии USB (22 Ом, я думаю ), а в некоторых досках также есть устройства для защиты USB.


КСТАТИ. Я не уверен, что вы строите, но в течение некоторого времени я испытывал искушение для разработки USB -платы в стиле Digistump на основе STM32, используя печатную плату в качестве разъема USB Edge.

Майклв
Пн 25 апреля 2016 г., 17:31
Я пытаюсь спроектировать доску Micro -стиль Arduino Pro (http: // artofcircuits.com/wp-content/upl ... ICRO-1.JPG) на основе STM32F103T8U6 (QFN/36). Это просто стандартная доска, но с более компактным форматом для облегчения раковины.
Вот почему мне было интересно, что мне нужно разоблачить для программирования. Я думаю, что не буду разоблачить пин -код для программирования.

Итак, какая прошивка / что мне следует избегать, чтобы не настраивать контакты SWD как GPIO и, следовательно, «кирпич».
Кроме того, я предполагаю, что по умолчанию чипы, которые отправляются с завода / Digikey, могут быть запрограммированы без сброса доступа, справа ?
Я планирую использовать 1.5K резистор для сброса. Если бы я хочу использовать механизм сброса транзистора, то мне понадобится пользовательский загрузчик, а также будет на 1 меньше GPIO для использования для общего назначения, справа ?

Достаточно смешно, для моего синего сброса/сброса/повторного выращивания с помощью USB работает на портах на левой стороне моего ноутбука, но не работает с портами на правой стороне моего ноутбука. Однако он работает с правыми портами + USB -концентратором. Я под Windows 8.

Rogerclark
Пн 25 апреля 2016 г., 21:49
Я не уверен, почему вы думаете, что подготовитель Custome был бы проблемой.
Легко добавить новую цель в существующий загрузчик и изменить контакт с сбросом USB.

Если вы не используете транзистор для сброса USB, нельзя работать на всех компьютерах.
Как то, что мы делаем с такими досками, как Bluepill и т. Д., - это в основном взлом. Но у нас не было выбора, кроме как использовать хак / обходной путь, так как мы не можем изменить то, как делаются эти доски.

Это зависит от вас, но если вы разрабатываете доску, которую вы намереваетесь предоставить другим людям, я думаю, вам следует серьезно подумать о добавлении транзистора сброса, даже если это означает потеря GPIO Line.

Rogerclark
Пн 25 апреля 2016 г. 11:27
Вы должны взглянуть на эту ветку

http: // www.STM32duino.com/viewtopic.PHP?t = 642&начало = 30

Также. Я почти уверен, что есть коммерческая доска, которая уже использует STM32F103T, но у меня возникают проблемы с отслеживанием его.

Я уверен, что где -нибудь кто -то разместил ссылку на это на форуме.

Майклв
Вт 26 апреля 2016 г. 2:00 утра
Rogerclark написал:Вы должны взглянуть на эту ветку

http: // www.STM32duino.com/viewtopic.PHP?t = 642&начало = 30

Также. Я почти уверен, что есть коммерческая доска, которая уже использует STM32F103T, но у меня возникают проблемы с отслеживанием его.

Я уверен, что где -нибудь кто -то разместил ссылку на это на форуме.

Rogerclark
Вт 26 апреля 2016 г. 3:19 утра
@michaeliv

Я думаю, что есть еще одна доска STM32F103T, она не так долго.

Я постараюсь найти это

Редактировать. Нашел это

http: // www.HOTMCU.com/stm32f103tb-arm-c ... CPATH = 1_20

Примечание. Похоже, у этой компании есть немного хитрый / незаконное программное обеспечение, размещенное на их сайте.

Стевех
Ср 27 апреля 2016 г., 4:36
Rogerclark написал:@stevech

Вы уверены, что Stlink должен быть подключен к VCC.

Майклв
Ср 27 апреля 2016 г., 4:47
Хорошо, я решил добавить схему отключения USB. Я все еще решаю, кто будет работать лучше всего.
Какой будет минимальный компонент, который будет работать надежно ?
Я нашел это с 2 резистором + PNP, который, как утверждается, является надежным: http: // www.STM32duino.com/viewtopic.PHP?t = 780
Кроме того, есть Maple Mini, но в котором 2 транзисторы используют 2 транзистора.
Предложения для лучшего использования ?

Также в стороне примечание - кто -нибудь знает, почему моя синяя таблетка не будет перечислять, если я удалю R10 (резистор 10K от PB12 до 3V3).

Спасибо!

Rogerclark
Ср 27 апреля 2016 г. 8:02
10K очень высока для перечисления USB, 1.5K чаще встречается.

Я думаю, что подтяжка является частью спецификации USB и указывает на хост, что подключен раб.

Без этого USB не повторно вытекает.


Также.

Re: Схемы сброса USB -сброса транзисторов

Смотрите также http: // магазин.Iteadstudio.com/images/pro ... E-V1_0.PDF

Они используют F FET -канал и 2 резистора.

Я хотел проверить этот способ сброса USB, и некоторое время назад я купил несколько P -каналов, но никогда не старался попробовать его.

Насколько я могу судить, необходимо либо одно устройство PNP (или канал P), либо 2 устройства NPN, так как цель транзистора - вытянуть USB D+ (PA12) высокий через 1.5K, когда дает сигнал сбросить USB

Наш метод взлома (с 1.Резистор 5K Постоянный подтягивание USB D+), полагается на то, что GPIO может управлять PA12 Low. Но на самом деле это не то, как вы должны сбросить USB, это просто работает большую часть времени ;-)

Майклв
Ср 27 апреля 2016 г. 15:48
Спасибо за информацию, теперь я немного смущен.
Я не знал, что для перечисления требуется подтягивание.
Кстати, когда вы говорите, что вы имеете в виду, вы имеете в виду:
- Начальная идентификация устройства, когда устройство подключено в первый раз
- Повторная идентификация устройства после общения с линией D+

Таким образом, чтобы адекватно заставить устройства повторно идентификацию, вам нужно было бы плавать как D+, так и D-PIN ?
Если это так, то зачем использовать транзистор для отключения ? Почему бы не иметь D+, подключенный к другому GPIO через 1.Резистор 5K и настройте GPIO на вывод 3.3V, затем, когда вы хотите повторно идентифицировать устройство, установите GPIO на плавание. Чем отличается от использования управляемого GPIO транзистора ?

У кого -нибудь есть ссылка, где дается дополнительная информация об этом ? Предпочтительно простое объяснение, а не 500 -страничная USB -спецификация : D

Martinayotte
Ср 27 апреля 2016 г. 18:01
Вот одна ссылка: http: // www.за пределами сложности.org/usbnutshell/usb2.SHTML

Майклв
Ср 27 апреля 2016 г. 18:10
Martinayotte написал:Вот одна ссылка: http: // www.за пределами сложности.org/usbnutshell/usb2.SHTML

Майклв
Ср 27 апреля 2016 г., 8:51 вечера
Майклв написал:Я не вижу причин использовать контролируемый GPIO транзистор. Я думаю, что мне не хватает чего -то.

Rogerclark
Ср 27 апреля 2016 г., 21:46
или использовать FET

Майклв
Чт 28 апреля 2016 г. 12:57 утра
Для любого любопытного, я проверил сопротивление GPIO D12 на землю, в то время как микро -добыта не работает и измеряется при 33 мэмах. какой ИМО не станет проблемой.
Сказав это, кажется, нет причин не использовать 1.Резистор 5K от D+ до другого GPIO.
Единственная причина, по которой я могу видеть сейчас, заключается в том, что сопротивление 33 момы не гарантировано спецификацией, поэтому теоретически в будущем оно может измениться - однако я считаю это чрезвычайно маловероятным.

Rogerclark
Чт 28 апреля 2016 г. 1:04
Возможно, высокое напряжение на GPIO не гарантированно не будет 3.3v, обязательно будет какое -то падение вольт, хотя внутренняя цепь для GPIO внутри STM32

Майклв
Чт 28 апреля 2016 г., 5:21
Rogerclark написал:Возможно, высокое напряжение на GPIO не гарантированно не будет 3.3v, обязательно будет какое -то падение вольт, хотя внутренняя цепь для GPIO внутри STM32

Rogerclark
Чт 28 апреля 2016 г., 5:47 утра
Чтобы построить нуждающееся.Exe (я думаю, что я использую копию Winavr) и просто поместите путь к компилятору ARM GCC на вашем пути var

Arduino скрывает GCC в папке AppData %/Arduino15 где -то

Just4fun
Чт 28 апреля 2016 г., 9:23
Всем привет,
Если это может помочь, вот схема моей «мультистандардной» доски (см. Мой пост в разделе «Приглашение»: http: // www.STM32duino.com/viewtopic.PHP?f = 2&t = 841), который использует один PNP для сигнала USB отключения.

PS: В эти дни я делаю новую доску, которая «присоединится к» миру STM32 «во вселенной CPLD/FPGA"... Я опубликую здесь результат (если есть... :ржу не могу: ). В настоящее время я начинаю дизайн печатной платы, используя однослойную домашнюю доску.... Не так просто.... Некоторые проблемы с линией передачи для управления....

Ваше здоровье.




Обновление (схематические ошибки):

L2 перевернулся;
USB (J3) щит не связан. Лучше подключить его к GND.

Стевех
Пт 29 апреля 2016 г., 5:55 утра
Майклв написал:Для любого любопытного, я проверил сопротивление GPIO D12 на землю, в то время как микро -добыта не работает и измеряется при 33 мэмах. какой ИМО не станет проблемой.
Сказав это, кажется, нет причин не использовать 1.Резистор 5K от D+ до другого GPIO.
Единственная причина, по которой я могу видеть сейчас, заключается в том, что сопротивление 33 момы не гарантировано спецификацией, поэтому теоретически в будущем оно может измениться - однако я считаю это чрезвычайно маловероятным.

Сигнал32
Пн 23 мая 2016 г., 8:05 вечера
Я спросил St-Guy в Maker Fair SF Bay 2016 о загадке GPIO-up-up-up-up-up-up-up-up. Несмотря на то, что он был программным парнем и не знал специфики, стоящих за выбором, который он указал, что с помощью GPIO вы подтягиваете к внутреннему напряжению Micro, которое подлежит шуму. Хотя это не казалось бы таким большим, с тех пор, как Сент говорит в своей таблице, что подтягивание должно быть сделано 3.0 В-3.3В.