Bootloader - PIN -код USB D+ Dinconctect

Пито
Пт 12 августа 2016 г. 16:39
Я научился скомпилировать загрузчику с зеленым светодиодом, расположенным на выборе выбора, но я не полностью понял, как он с выводом, который отключает D+ для USB -перечисления.
В оборудовании.c Существует комментарий «Мы не делаем этого с PC12» (даже я видел, что в источнике был SetPin (C, 12), Maple Mini использует PB9 для отключения, а Яромир в его превосходном руководстве по паяль PB10 - почему?
Также я где -то читал, мы делаем это через PA12 (D+) сегодня (не требуется внешнего транзистора).
Итак, где в источниках мы можем установить Pinxy для разъединения USB (с внешним транзистором)?
PS: я хочу использовать PB2 (boot1) для этого..

Пито
Пт 12 августа 2016 г., 18:20
ОК, в USB.C Lines 54-55-это DEF для выводов BP.

Кстати, более пристальный взгляд на переключатель отключения транзисторов Maplemini 2 показывает, что встроен хороший трюк - основа Q2 питается от USB_5V (штифт vusb на разъеме USB) - таким образом отключен. Затем резистор плавает, для любого уровня напряжения диска. Таким образом, схема полностью выключена, и вы можете переключить диск по мере желания.
8-)

С выключателем PMOSFET на высоком уровне BP он может работать так же, как и MM, когда источник/излучатель транзистора Q1 будет подключен к VUSB (что не так при подключении к 5V или 3.3v VCC). Поэтому при подключении к 3.3VCC любое логическое изменение в сигнале диска будет переключать резистор 1K5, не хорошо.. :(
MM USB DENSCENCE.JPG
MM USB отключите.JPG (41.23 киб) просмотр 1598 раз

Rogerclark
Пт 12 августа 2016 г. 22:05
Можете ли вы опубликовать часть схемы Bluepill, на которую вы ссылаетесь, так как я не думал.
То, что мы делаем для сброса USB, это в основном взлом (но это единственный вариант, если вы не измените оборудование BP)

Пито
Сб 13 августа 2016 г. 12:13
@Roger - для внешних дисковых цепей BP
Биполярный Фредбокс:
http: // www.STM32duino.com/viewtopic.PHP?t = 780
и взлом PMOSFET от Jaromir:
http: // www.STM32duino.com/viewtopic.PHP ... MOS#P12933

Трудно понять настройки и процессы с дисковыми булавками, даже странно ИМХО :)

В основном у нас есть два места, где мы обрабатываем резистор 1K5 в USB D+:

1. В загрузчике, диск, определяется в конфигурации.H (клена) или в USB.C (Generics) - Линия 40+, DISC, используемый в USB.в
============================================================================= ======================================================================
- Для Maple мы: установите вывод диска в качестве OpendRain, затем установите его на 1, установите на 0, и вот он..
- Для мм это PB9

- Для общего мы: установите вывод диска в качестве нажимания, затем установите его на 0, подождите около 50 пользователей (??), установите его на вход (пусть он плавает), и это все..
- Для общего это PA12 (D+)

Передача сигналов на основе уровня вывода диска:
А. Maplemini:
log0: мы тянем D+ слабым высоко через 1K5
log1: мы позволяем D+ поплавок (1K5 отключен от VCC)
Беременный. Универсальный:
log0: мы тянем D+ жесткий низкий
Ввод: мы позволяем D+ быть слабым высоко через 1K5


2. В ядре - PIN -код, определенный в плате.H - DISC PIN используется для CDC Connect и отключение в USB_SERIAL.CPP - линия 60-90
============================================================================= ============================================================================= =======
- Для мм это PB9
- Для общего, это PB10 (??)

Передача сигналов на основе уровня вывода диска:
А. Для мм мы тянем D+ слабым высоким через 1K5, или мы позволяем D+ поплавок (1K5 отключен от VCC)
Беременный. Для общего мы тянем D+ Hard Low, или мы позволяем D+ быть слабым высоко через 1K5

:?

Rogerclark
Сб 13 августа 2016 г. 12:35
Я не смотрел подробно при сбросе USB, но MM определенно отличается от общего метода

В эскизе, я думаю, что MM устанавливает диск (высокий), чтобы сбросить USB, это тянет D+ до USB (VDD). ММ затем оставляет диск на 1 .
Я предполагаю, что USB DP подтягивается на хосте (ПК)

У общего не есть способ отключить 1.5K от VDD в качестве навсегда натянутой высоко, поэтому хитрость состоит в том, чтобы установить штифт в качестве GPIO и привести к нему низко, затем выпустить штифт GPIO, чтобы USB DP вытащили высоко на 1.5K

Разница между этими двумя методами будет заключаться в том, что на общей плате, как только она будет подключена в USB DP, будет высоким (на MM он изначально будет низким). После некоторого «настройки» USB DP приводится в систему, а затем выпущен.

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

Я не могу вспомнить, что делает загрузчик. Но я предполагаю, что он должен сбросить диск (на MM) на низкий уровень, в течение некоторого времени, а затем установить диск, чтобы USB DP можно было вытащить высоко через транзистор.


КСТАТИ. Я думаю, что USB -спецификация гласит, что USB DP не должен быть низким по цель.

Пито
Сб 13 августа 2016 г. 12:55
С внешним транзистором PNP или PMOSFET, который переключает резистор 1K5 на VCC (так называемый выключатель на высокой стороне). Существует только 2 состояния с D+, на основе уровня сигнала диска:

1. D+ вытягивают «слабый» высокий через резистор 1K5 в VCC,

2. D+ не поднимается слабым высоко, D+ не видит резистора 1K5 (высокий импеданс), так как резистор 1K5 отключен от VCC.

Нет таких уровней вывода диска, где D+ можно тянуть жестко низко, слабый или жесткий высокий..

Rogerclark
Сб 13 августа 2016 г., 3:45
@pito

Да. Я подозреваю, что использование FET - лучшая система. Я пытался изменить плату GD32, чтобы добавить FET PET PET для сброса, но не удалось заставить ее работать, однако я подозреваю загрузчик

Пито
Сб 13 августа 2016 г., 9:39
Я связывался с PB2 в качестве штифта диска.
У него есть 100 -километровый резистор на печатной плате (R4) последовательно с сигналом, но он не должен быть проблемой с PMOSFET (при условии, что мы не говорим о пулье длиной 15NS, RC этой схемы составляет около 40USECS).
Тем не менее, я не могу заставить его работать на PB2.
Построил новый загрузчик с PB2 и с опцией Maple Hardware. Он не находит DFU..еще..
PB2 Deancnect.jpg
PB2 отключить.Jpg (12 киб) просмотр 1571 раз

Rogerclark
Сб 13 августа 2016 г. 10:34
@pito

Я думаю, что у меня были похожие проблемы, я попытался использовать P -FET для сброса USB на GD32, но это не сработало.

И у меня не было времени отладки аппаратному оборудованию или программному обеспечению.

У меня все еще есть плата GD32 с PFET на нем, поэтому я постараюсь посмотреть на завтрашний завтра

Пито
Сб 13 августа 2016 г. 11:14
Я изменил пин -код диска на PB12, чтобы облегчить материал отладки. Сейчас нет резистора 100 тыс. Резистор 10K (D+, VCC) на устранении печатной платы BP. Я также заменил резистор 1MEG на 68K, чтобы ускорить схему, но без изменений.

После того, как я нажимаю HW Reset (во время кнопки сброса нажимается вниз, 1K5 отключается):
1. переключает 1K5 на 3.3В
2. Windows Bells и перечисление сразу и в диспетчере устройств я вижу драйвер DFU, зеленый светодиод мигает Aprox 3HZ
3. он держит 1K5 переключаться на 3.3V еще 8 секунд, DFU все еще в Dev Manager Visible, зеленый светодиод все еще мигает
4. Через 8 секунд он отключает 1K5, Win Bells и DFU исчезают от менеджера Dev, Green Led Lefling Mliging.

Загрузить из Arduino не работает, он не может найти DFU.
:?

Пито
Сб 13 августа 2016 г. 11:36 утра
Существует промежуточный промежуток в длину 50 нс после того, как диск перейдет в первый раз по низким показателям после сброса.
Диск PB12 2.JPG
Диск PB12 2.JPG (46.91 киб) просмотр 784 раза

Пито
Сб 13 августа 2016 12:40
И общая картина (данные USB не полностью видны с этой скоростью отбора проб).
Диск PB12 4.Jpg
Диск PB12 4.JPG (52.28 киб) просмотрено 782 раз

Пито
Сб 13 августа 2016 г. 15:42
Я взял Bootloader Binary от Fredbox (Dec2016) - он настроил диск на PB9.
http: // www.STM32duino.com/viewtopic.PHP?t = 780
Поэтому я пропустил его бинар и паяный диск на PB9. Использование PMO, как указано выше. Также отредактировал Правление.час.
Светодиод мигает всего за пару секунд до того, как он отправится в пользовательскую пользу, поэтому существует разница между его источником/двоичным источником.
Нет.
Я отредактировал основные файлы Generics, где это применимо - чтобы удалить материал PA12 GPIO, отключить материал (надеюсь).
Нет.

Так что, наконец, я установил Maplemini в IDE в качестве выбора, и он работает Идеально сейчас. Нет проблем с загрузкой от IDE. : Twisted:
Мне кажется, в текущих общих -
1. Источник загрузчика был изменен с декабря, и
2. Кроме того..

Теперь, как консолидировать все вещи, такие как мы можем создать загрузчик для BPILL (DISC PIN в качестве опции) и иметь рабочие файлы Core для Generic_bp_exdisc??
:)

Пито
Солнце 14 августа 2016 г. 10:39
Я снова взял источник загрузчика и скомпилировал для PB2/BOOT1 (разум, в последователе составляет 100 тыс. RC значений большого резистора и CIN -емкость Q1 (45pf) слишком велик для короткого пульса. Таким образом, вы можете попробовать с PB2, когда замените резистор 100K на печатной плате BP.

Я снова собрал загрузчик для диска PB12 (PMOS, 68K от G до VCC), перечисляется. Я установил профиль Maplemini в IDE (и установил PB12 в Maple /Poard /Poard.час).
Сначала попытки он не нашел DFU.
После того, как несколько заглушек/ins во время загрузки были обнаружены DFU, и он загрузил эскиз (появился Maple Com).
После этого он находит DFU каждый раз, и он загружает скетч.

Единственная проблема, которую я вижу, он сохраняет диск активным для 8 с.
Старая версия Fredbox заканчивается сразу после загрузки - мы, вероятно, не хватаем, чтобы установить диск высокий где -то в конце в последнем источнике.. Или я не могу правильно скомпилировать загрузчику..
Это схема, которая работает здесь:
PMOS Disc.jpg
PMOS Disc.JPG (19.31 киб) просмотрено 764 раза

Пито
Солнце 14 августа 2016 г., 11:28 утра
Хорошо, я вернулся в профиль общего BP - я отредактировал доску/доску.H для PB12 DISC и, в /Wirish /Boards_setup.CPP я прокомментировал строки 86-91).
Теперь он загружается нормально. По -прежнему существует проблема 8secs (светодиод указывает на 6secs после завершения загрузки, он находится в загрузке, затем колокольчики и переходит в пользовательский уровень). Maplemini идет сразу после загрузки.

Пито
Солнце 14 августа 2016 г., 8:27 вечера
GRRH, я нашел проблему с 8 секундами, ожидающими в загрузке - Button_bank должен быть определен, чтобы получить загрузку _wait "6", в противном случае bootloader_wait - "30".. :зло:

Таким образом, общая цель для BluePill с выводом диска на PB2 может выглядеть так в конфигурации.час:
.. #elif defined TARGET_GENERIC_F103_DISC_PB12 // BluePill #define HAS_MAPLE_HARDWARE 1 #define LED_BANK GPIOC #define LED_PIN 13 #define LED_ON_STATE 0 #define BUTTON_BANK 1 // DISCONNECT PIN (drives an highside PMOS/PNP) // mind the DISC pin is configured Open Drain #define USB_DISC_BANK GPIOB #define USB_DISC_PIN 2 ..

Пито
Пн 15 августа 2016 г. 10:34
И мой Bluepill отключится через мод PB2 (Boot1) - удален заголовка Boot0/1 и прокладки, используемые для пайки SMD PMOSFET (BSS223) и резистора Gate -VCC (здесь 47K). На нижней стороне печатной платы исходный резистор R10 = 10K отключил резистор отключения, R4 = 100K удален и заменен на 10K, R3 = 100K удаленные, R3, используемые для нового резистора отключения 1K5 (здесь 2K2 из моей нежелательной коробки, и она работает, будет заменен на 1K5) и 2 коротких проводах, припаянных в нужных местах :)
После мода контакт USB DISC - PB2, boot0 = 0, моды файлов конфигурации, как указано выше, плата IDE Generic Bpill.
Диск мод 1.Jpg
Диск мод 1.JPG (44.52 киб) просмотрено 708 раз

Rogerclark
Пн 15 августа 2016 г., 21:22
Вы использовали FET в своей последней модификации?
Я не мог видеть фета на фотографиях.

Можете ли вы нарисовать схему этих последних изменений (e.глин. Просто нарисуйте его на бумаге и сделайте фото)

Пито
Вторник 16 августа 2016 г., 10:06
Да, PMOSFET есть - на первом изображении 2 мм прямо от резистора 47K :)
У меня есть проблемы с квотой в приложении - я удалил почти все картинки из прошлого и все еще не в квоте :(.
=========================
Схема такая же, как приведенный выше диск PMOS.JPG:
Отсоедините PIN PB2
штанга.R3 1K..10K (хорошая инженерная практика - иметь там)
штанга.R2 1K5 (должен быть)
штанга.R1 10K..100 тыс. (Должно быть)
Q1 - PMOSFET с низким напряжением триггера VGS (около 1.5 В)
или
Q1 - PNP Биполярный, любой тип общего назначения
=========================
Фактическая реализация изображена на приведенных выше снимках - на печатной плате BPILL, которую вы связываете с печатной платой.R3, PCB.R4, PCB.R10 :)
Заголовок Boot0/1 - удален
печатная плата.R4 = Sch.R3
печатная плата.R3 = удален
печатная плата.R10 = удален

Rogerclark
Вторник 16 августа 2016 11:22
Привет, пито

Я не понял, что на изображениях была квота пользователя.

Я посмотрю, смогу ли я изменить его или, возможно, сдать ваши изображения (хотя мне пришлось бы найти и загрузить их и загрузить снова)

Пито
Ср 17 августа 2016 г. 9:09
Кажется <1 МБ - это квота для вложений (по крайней мере, в моем профиле). Довольно небольшая сумма в 2016 году. Пожалуйста, будет таким добрым и увеличивайте его, когда это возможно. Я уже удалил дюжину моих фотографий, чтобы остаться в квоте. В настоящее время у меня есть около 800 КБ JPEGS, и я не могу загрузить новый. Мои JPEGS в среднем 50 КБ.

Rogerclark
Ср 17 августа 2016 г. 11:07
Пито

Я не знаю, является ли это пользовательской квотой общей квоты сайта.

Существует настройка, называемая «квота», которая, кажется, установлена ​​на 52 МБ. Но я только что проверил, и это, кажется, фактический общий размер всех файлов, а не ограничение.

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

https: // www.InmotionHosting.com/поддержка ... Т-сетки

Вы уверены, что не можете прикрепить изображения к любому сообщению ?

Пито
Ср 17 августа 2016 г. 15:53
В настоящее время я не могу прикрепить картинки, которые я удалил из своего предыдущего поста, на нем изображен желтый треугольник с восклицательным знаком - «Извините, квота приложения доски была достигнута."
То же самое, когда я хочу добавить картинку в новый пост.

Rogerclark
Ср 17 августа 2016 г., 21:28
Попробуйте еще раз.

Я думаю, что нашел обстановку и увеличил ее ;-)

Пито
Ср 17 августа 2016 г. 22:15
Нет, попробовал с 31KB JPG - Статус: Желтый треугольник «Извините, квота прикрепления доска была достигнута."
665 КБ вложения здесь.

Rogerclark
Ср 17 августа 2016 г. 11:19
Ммм.

ХОРОШО.

Интересно, нужно ли мне что -нибудь сбросить, чтобы заставило это заметить изменение

Я вернусь к вам на это.

Пито
Пт 19 августа 2016 г. 14:59
Хорошо, я обновил картинки с фактической проводкой выше. Спасибо!