STM32 подключение USB код ошибки 43

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
pazitiff25
Сообщения: 10

Сообщение pazitiff25 » 27 сен 2018, 22:59

Хочу передать байт с компа через USB на stm32. Купил отладочную плату NUCLEO-F767ZI. Делаю виртуальный com порт.

Посмотрел кучу роликов, у всех примерно одно и то же: https://www.youtube.com/watch?v=oDoavXrQdEg
https://www.youtube.com/watch?v=TYSCKWkCcPU&t=793s
https://www.youtube.com/watch?v=XKCjOlskW78
https://www.youtube.com/watch?v=4iSRUcb ... k&index=35
https://www.youtube.com/watch?v=Dy8CcO5i42Y
https://www.youtube.com/watch?v=YZjnCOun1wU

Скачал драйвер STSW-STM32102, поставил его после разархивирования.

В Cube настроил USB_OTG_FS >> Device only. И еще вверху USB_DEVICE >> Virtual com port. В настройщике частоты задал 48 МГц.

Втыкаю провод - выдает ошибку 43 (Система Windows остановила это устройство, так как оно сообщило о возникновении неполадок. (Код 43). Сбой запроса дескриптора USB-устройства).

Поменял в настройках проекта размер кучи и стека на 2000 и 4000.

В файле usbd_cdc_if.c заменил APP_RX_DATA_SIZE и APP_TX_DATA_SIZE на 64.

В файле usbd_cdc.h заменил CDC_DATA_HS_MAX_PACKET_SIZE и CDC_DATA_FS_MAX_PACKET_SIZE на 64U.

Перед отправкой проверяю соединение функцией if(hUsbDeviceFS.dev_state == 0x03) ... ;

Перезагружал комп раз десять. Купил новые хорошие провода. Втыкал их в разные usb-гнезда. Запитывал плату от батарейки, выдирая программатор.

Не помогает. Слышал, что надо напаять снаружи подтягивающий резистор 1.5к. Но вроде отладочная плата новая, неужели там что-то отвалилось?

Как думаете, что может быть не так?

Qic
Сообщения: 985

Сообщение Qic » 28 сен 2018, 01:50

.
Последний раз редактировалось Qic 19 май 2019, 19:33, всего редактировалось 1 раз.

pazitiff25
Сообщения: 10

Сообщение pazitiff25 » 28 сен 2018, 06:13

Делал под процессор.Переделал под плату - вообще перестал реагировать.

На схеме D+ подтянут к питанию резюком 1.5к (я так понял это 12 мб/с). Но через пин PG6. Надо его включить какой-то функцией (или просто халом) или тупо коротнуть проводочком на +3 вольта. Тут вдруг выясняется, что на этой дорогущей плате нет этого резистора 1.5к. Нашел в закромах, коротнул на питание - выскочила моя любимая табличка "43 устройство не опознано".

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

Грешу что чип горелый. USB висит на порте A, а я его изрядно покромсал, когда экспериментировал с портами. Наверное зря купил такой здоровенный мк, напихана там куча всяких функций, надо брать платки как у чуваков с видеороликов.

Еще некоторые жалуются, что ошибка 43 выскакивает на Windows10, а в ранних виндах все нормально. А я старый комп выкинул (((

резюк.jpg
Последний раз редактировалось pazitiff25 28 сен 2018, 09:29, всего редактировалось 2 раза.

pazitiff25
Сообщения: 10

Сообщение pazitiff25 » 28 сен 2018, 07:15

Есть в кубе в разделе USB_OTG_FS галочки Activate_SOF и Activate_VBUS.
Ну VBUS это питание, оно не сдалось, питание на плате и так есть (причем когда я ставлю эту галочку и начинаю генерить код, куб зависает намертво, даже в диспетчере задач не виден - приходится выдирать комп из розетки).
А что такое SOF? Start of frame аппаратный? Тыкаю его - не помогает.

Кстати, а SB186 - это перемычка или невпаянные детали?

Qic
Сообщения: 985

Сообщение Qic » 28 сен 2018, 20:04

.
Последний раз редактировалось Qic 19 май 2019, 19:32, всего редактировалось 1 раз.

pazitiff25
Сообщения: 10

Сообщение pazitiff25 » 28 сен 2018, 22:52

LD8 горит.

Аватара пользователя
iEugene0x7CA
Адепт
Сообщения: 1391
Откуда: Киев

Сообщение iEugene0x7CA » 29 сен 2018, 13:39

pazitiff25 писал(а):Еще некоторые жалуются, что ошибка 43 выскакивает на Windows10, а в ранних виндах все нормально. А я старый комп выкинул (((

Я как-то собирал USB-COM по тутору из инета, заработало сразу, но правда я на Win7 сижу. :)
На всякий случай — зайди в диспетчер задач и пробей как там поставился драйвер, Win10 часто не признаёт примочки вроде программаторов и самопальных USB девайсов.
Ставя драйвер нужно делать это вручную, и только зайдя под безопасным режимом с отключенной проверкой цифровой подписи драйверов.

Правда, если в коде или железе проблема — это совсем другое дело.
Советую для начала купить ту отладку, какую юзает автор тутора, чтобы можно было просто залить его код и убедиться что он работает.
USB штука достаточно не простая чтобы осваивать её методом тыка самому.

pazitiff25
Сообщения: 10

Сообщение pazitiff25 » 30 сен 2018, 00:54

Переставил драйвер в безопасном режиме с отключенной цифровой подписью, не помогает.

Подключил другой usb (тот что HS), тоже ошибка 43. Мало вероятно, что испорчены оба порта.
Последний раз редактировалось pazitiff25 30 сен 2018, 08:34, всего редактировалось 1 раз.

pazitiff25
Сообщения: 10

Сообщение pazitiff25 » 30 сен 2018, 08:30

Попробовал на другом компьютере - та же фигня.
Подскажите, а есть какие-нибудь библиотеки семплов или примеров для stm32f767? Где их искать?

Программатор-то на этих usb-портах работает, значит проблемы в коде.

Дурная идея - а нельзя ли передавать данные на компьютер через программатор?

Вернуться в «Микроконтроллеры и ПЛИС»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость