smk 0 12 апреля, 2014 Опубликовано 12 апреля, 2014 · Жалоба Еще на житаге некоторые резисторы по 10к лишние. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Haamu 0 16 апреля, 2014 Опубликовано 16 апреля, 2014 · Жалоба Перепаяли контроллер, проблема с USB осталась. Но нашлась одна особенность. Если запустить программу в режиме отладки, без всяких брейкпоинтов, ситуация не меняется. Но! После выхода из отладки комп начинает видить плату как COM-порт, собственно как и должен и всё работает. После перезапуска платы, снова перестает определяться. Где искать проблемму? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 16 апреля, 2014 Опубликовано 16 апреля, 2014 · Жалоба Можно предположить, что при запуске отладки ваша среда совершает некие действия (настройку тактирования, отключение периферии или что-то еще), которые не дают вашей программе работать как задумано, ибо писавший программу программист полагался на значения периферийных регистров по умолчанию. При выходе из отладки отладчик на прощанье сбрасывает процессор и он начинает выполнять программу заново, но уже со сброшенной периферией. Более точно трудно сказать - вы не признались, какую среду разработки используете, а с телепатией у нас напряженка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Haamu 0 16 апреля, 2014 Опубликовано 16 апреля, 2014 (изменено) · Жалоба Среда CoIDE. Программатор/отладчик ST-Link V2, расположенный на плате STM32F4Discovery. Обнаружил еще одну особенность. Дело даже не в отладке. Отладчик отключен, USB подключен. Включаю питание платы, USB не определяется. Очень кратковременно, буквально в одно касание, замыкаю ресет на землю и после этого комп начинает видить плату, можно втыкать - вытыкать USB, всё работает, до выключения питания платы. Попробовал выпаять конденсатор С596, тот что на ресете, ситуация не изменилась. Разобрался. Оказалось, что не успевал завестись внешний кварц. Увеличил HSE_STARTUP_TIMEOUT и всё заработало. А кварц не успевал стартовать, потому что емкости на нем слишком большие висели. Но все-же для меня осталось загадкой, зачем контроллер пытается V-BUS к земле притянуть? Изменено 16 апреля, 2014 пользователем Haamu Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eminem 0 18 апреля, 2014 Опубликовано 18 апреля, 2014 · Жалоба Haamu А в чем Вы схемы рисуете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 19 апреля, 2014 Опубликовано 19 апреля, 2014 · Жалоба Но все-же для меня осталось загадкой, зачем контроллер пытается V-BUS к земле притянуть? может чтобы определить есть внешние питание == подключение или нет? Ибо устройства с автономным питанием должны контролировать подключение через мониторинг VBUS, а не линии данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Haamu 0 21 апреля, 2014 Опубликовано 21 апреля, 2014 · Жалоба А в чем Вы схемы рисуете? Я не рисую, я программист. А вообще вроде в Альтиуме. Но конкретно эта похоже еще в Пеинте подтерта. может чтобы определить есть внешние питание == подключение или нет? Ибо устройства с автономным питанием должны контролировать подключение через мониторинг VBUS, а не линии данных. Похоже что так. Просто ввела в заблуждение инициализация этой ноги: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_OTG_FS); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 21 апреля, 2014 Опубликовано 21 апреля, 2014 · Жалоба я в этой инициализации ваще теряюсь) но вроде как к земле ее не тянули... а в альтернативных функциях все само работает, могли прочие поля структуры от копи паста остаться... блин неужели так ноги инициализировать удобнее чем через 3-4 понятные строки? выбор функции выбор подтяжки (если надо) направление начальное значение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 21 апреля, 2014 Опубликовано 21 апреля, 2014 · Жалоба Просто ввела в заблуждение инициализация этой ноги:Я не разбирался с системой USB этого контроллера, но строка GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; как бы подсказывает, что этот вывод настраиваивается совсем не на ввод. В задачнике спрашивается: зачем этой ноге быть выходом с открытым коллектором? Если вы сможете это обосновать, вы наверняка поймете кто и зачем тянет ее к земле. Если же обосновать не сможете - вероятно придете к выводу, что тут и кроется ошибка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Haamu 0 22 апреля, 2014 Опубликовано 22 апреля, 2014 · Жалоба Прошу прощения, не тот кусок инициализации выложил, это от ноги ID. Инициализация V-Bus отличается лишь тем, что там не открытый коллектор, а push-pull, но сути это не меняет. Перерыл весь USB-стек и не увидел нигде, чтобы V-Bus явно подтягивалась к земле, кроме работы в режиме хоста, где она отвечает за подачу питания на подключенное устройство. Следовательно, подтягивать ее к земле в режиме девайса может только альтернативная функция. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 22 апреля, 2014 Опубликовано 22 апреля, 2014 · Жалоба А она в альтернативную функцию настроена, или для STM это ничерта не значит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 22 апреля, 2014 Опубликовано 22 апреля, 2014 · Жалоба отличается лишь тем, что там не открытый коллектор, а push-pull, но сути это не меняет.То есть все равно выход? Вероятно вам все же стоит почитать описание этой ноги и работы с ней в руководстве пользователя. Поверьте, в примерах из интернета могут быть ошибки. Даже если эти примеры распространяет производитель контроллера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Haamu 0 22 апреля, 2014 Опубликовано 22 апреля, 2014 · Жалоба Да, эта нога настроена на работу альтернативной функции, соответственно и управляется она этой самой альтернативной функцией. Кстати, на другой плате с аналогичной схемой подключения USB, эта нога ведет себя точно так-же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 22 апреля, 2014 Опубликовано 22 апреля, 2014 · Жалоба VBUS, как я предполагаю, нужна для включения подтягивающего резистора на D+ (или D- для Low speed). Естественно, она должна быть выходом, OD или PP - неважно. Надо посмотреть по схеме, какой полярностью включается этот подтягивающий резистор. Там, наверное, и транзистор есть. А то и два. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба VBUS, как я предполагаю, нужна для включения подтягивающего резистора на D+ (или D- для Low speed).Драссте. Ну откройте же описание. VBus - вход во всех режимах работы USB. Сигнал VBUS не входит в группу альтернативных функций (Alternative function) соответствующего разряда порта. Он является дополнительной функцией (Additional function) и включается настройками USB-контроллера, а не порта. И когда вы включаете альтернативную функцию на этой ноге вы подключаете к ней выход какой-то другой периферии. Блин, да ну вас нафиг - три дня мусолить тему, которая в даташите ищется за две минуты. Причем почитать документацию автору темы предлагалось уже давно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться