Easyelectronics.ru

Электроника для всех
Текущее время: 18 июл 2018, 00:07

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 17:08 
Старожил

Зарегистрирован: 11 фев 2016, 18:17
Сообщения: 333
Добрый день.
Хочу разобраться с работой USB на МК STM32F407. Знаю, что есть много статей как настроить и работать. НО! Все они выглядят примерно таким образом: "вот у ST есть пример Custom HID, можете сами добавить/изменить дескрипторы под ваши нужды. Далее в функции main вызовите эту функцию. А для записи и чтения - вот это и это... Всё, светодиоды мигают." Ребята стоп. Какие еще функции? В микроконтроллерах реализованы регистры, а не функции. Меня интересует, как настроить и работать с USB не через все эти убогие HAL, SPL и прочее с обилием ненужного кода, функционала и огромной кодогенерацией с точки зрения ассемблера, а непосредственно через регистры.
Т.е. какие из них нужно настроить для инициализации, какие - для чтения и записи и прочее?
Вот как в примерах про SPI - настраиваем тактирование, активизирует такие-то биты в регистре CR1, данные пишет в регистр DR и т.д.

Итого суть: друзья, кто разбирается в USB на этом МК, расскажите, какие регистры задействуются, в каком порядке, куда подавать тактирования, какие ножки активировать и в каком режиме? Если у кого есть пример кода - прошу поделиться в учебных целях.

Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 17:14 
Заглядывает иногда

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 198
К чёрту подробности. Спецификация USB уже прочитана? Что вызвало затруднения в реализации USB на этом процессоре? Назначение каких регистров из RM непонятно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 17:17 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1328
Когда делать нечего, то можно и биты в регистрах дёргать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 18:08 
Старожил

Зарегистрирован: 11 фев 2016, 18:17
Сообщения: 333
А когда есть чего делать, то и многокилобайтные функции не грех использовать.

Знание одних только регистров мало. Я же написал, елки-палки. Что и в какой последовательности нужно вызывать?
Сложно ответить по существу?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 18:22 
Заглядывает иногда

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 198
Да. Сложно. С вашей постановкой задачи вообще невозможно. USB с наскоку не берётся. Если хотите, то может получиться интересная тема. Но в рот разжеванное никто не положит. Начинайте, задавайте вопросы где застопорились - будем разбираться.

ЗЫ: Я хотел сказать, если есть конкретная задача - озвучивайте, разберёмся. А если просто поиграться, то натыкайте в калокубе и успокойтесь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 18:48 
Старожил

Зарегистрирован: 11 фев 2016, 18:17
Сообщения: 333
Калокуб не годится. Говорю - в тех функциях, которые он использует, очень большая кодогенерация. Я же делаю свою библиотеку, где не будет ничего лишнего.
Хорошо, задача конкретнее: реализация простого Custom HID устройства (считаем, что дескрипторы уже написаны), способного обмениваться данными с ПК в режиме Full Speed или Low Speed (это, как я понимаю, самое простое). Вопрос: какие регистры нужно настроить для работы в таком режиме и как надо настроить? Какие регистры участвуют в обмене данными?

Да, с USB я знакомлюсь только. Но одно дело знать спецификацию, а другое - знать ее аппаратную реализацию в МК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 19:22 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 38
ElecDron писал(а):
Калокуб не годится. Говорю - в тех функциях, которые он использует, очень большая кодогенерация. Я же делаю свою библиотеку, где не будет ничего лишнего.
Хорошо, задача конкретнее: реализация простого Custom HID устройства (считаем, что дескрипторы уже написаны), способного обмениваться данными с ПК в режиме Full Speed или Low Speed (это, как я понимаю, самое простое). Вопрос: какие регистры нужно настроить для работы в таком режиме и как надо настроить? Какие регистры участвуют в обмене данными?

Да, с USB я знакомлюсь только. Но одно дело знать спецификацию, а другое - знать ее аппаратную реализацию в МК.

Ну, если с протоколом USB всё просто, то осталось только прочесть даташит на камень. Или этого религия не позволяет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 19:24 
Заглядывает иногда

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 198
ElecDron писал(а):
Калокуб не годится. Говорю - в тех функциях, которые он использует, очень большая кодогенерация.

И что, производительности и размера flash в F407 не хватает на примитивный HID?

ElecDron писал(а):
Я же делаю свою библиотеку, где не будет ничего лишнего.

Если сделаете всё по спецификации, то может на 20% сделаете компактней, но потратите кучу времени и наплодите своих ошибок. ST-ная реализация USB не так уж и плоха для простых задач. Если у вас есть пара недель на чтение спецификаций и сидения в отладчике, то можете сделать свой велосипед, но не уверен что он лучше получится.

ElecDron писал(а):
Вопрос: какие регистры нужно настроить для работы в таком режиме и как надо настроить? Какие регистры участвуют в обмене данными?

Вопрос бессмысленный. Все регистры нужно настроить, иначе зачем бы они были. Ответа нет, потому что вся логика работы задаётся программой. Нельзя сконфигурить регистры и смотреть как данные сами ходят. Нужно жёстко реализовать спецификацию, однозначно реагируя на все воздействия хоста. Шаг вправо, влево - отлуп.

ElecDron писал(а):
Да, с USB я знакомлюсь только. Но одно дело знать спецификацию, а другое - знать ее аппаратную реализацию в МК.

Ну давайте с чего-нибудь начнём. Подайте на USB 48 МГц, включите режим Device, разрешите прерывания и поймайте RESET.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 19:26 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1744
ElecDron писал(а):
Говорю - в тех функциях, которые он использует, очень большая кодогенерация. Я же делаю свою библиотеку, где не будет ничего лишнего.

Спасибо, поржал. Куб ничего к юсб не генерирует (кроме дескриптора). Насчет "не будет ничего лишнего" тоже смешно. Сейчас вы даже не представляете, что там лишнее, а что нужно для дела. Да и, наверняка, вы далеко не первый с такими порывами. Но что-то воз и ныне там.

P.S. для начала вам стоит взять то, что "нагенерил" куб и разобрать его по косточкам. когда вы будете четко понимать, что делает каждая строчка, вам не составит труда написать свое и, вполне возможно, оно будет лучше штатной юсб либы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 19 май 2018, 19:45 
Старожил

Зарегистрирован: 26 авг 2014, 10:34
Сообщения: 724
использовал пример с библиотекой этого автора:
http://mikrocontroller.bplaced.net/word ... age_id=423
правда не эту, а USB_MSC_HOST, там минимум было SPLя (gpio, rcc). SPL легко вычистил и портировал в Кейл. Работа с USB через регистры.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 20 май 2018, 13:34 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 372
Откуда: Санкт-Петербург
ElecDron , вот это не читал ?
http://mcu.goodboard.ru/viewtopic.php?id=40


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 20 май 2018, 14:33 
Старожил

Зарегистрирован: 11 фев 2016, 18:17
Сообщения: 333
Спасибо за ссылки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 20 май 2018, 18:12 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3423
Откуда: Кемеровская область, Киселевск
ElecDron писал(а):
Калокуб не годится. Говорю - в тех функциях, которые он использует, очень большая кодогенерация. Я же делаю свою библиотеку, где не будет ничего лишнего.
Хорошо, задача конкретнее: реализация простого Custom HID устройства (считаем, что дескрипторы уже написаны), способного обмениваться данными с ПК в режиме Full Speed или Low Speed (это, как я понимаю, самое простое). Вопрос: какие регистры нужно настроить для работы в таком режиме и как надо настроить? Какие регистры участвуют в обмене данными?

Да, с USB я знакомлюсь только. Но одно дело знать спецификацию, а другое - знать ее аппаратную реализацию в МК.

Ну года 2-3 поработаете может и получиться своя либушка нормальная. Заодно полностью изучите USB на STM.
Чудес не бывает. Время - ресурс конечный и дорогостоящий.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 20 май 2018, 20:57 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 262
Oxford писал(а):
Ну года 2-3 поработаете может и получиться своя либушка нормальная. Заодно полностью изучите USB на STM.
Чудес не бывает. Время - ресурс конечный и дорогостоящий.


Вот именно. Оно конечно можно шлифовать регистры, но когда само изделие разрабатывать?
Ведь чаще всего вся эта красота не сама по себе.
Есть ТЗ, есть устройство, надо что-то измерять, чем-то управлять.
Понятно, если ты в огромной фирме на окладе программиста. Тогда можно и заняться самосовершенствованием.
Всяко рабочий день идет. :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 20 май 2018, 21:40 
Здравствуйте!

Зарегистрирован: 26 апр 2017, 17:19
Сообщения: 3
ElecDron писал(а):
Добрый день.
Знаю, что есть много статей как настроить и работать. НО! Все они выглядят примерно таким образом: "вот у ST есть пример Custom HID, можете сами добавить/изменить дескрипторы под ваши нужды. Далее в функции main вызовите эту функцию. А для записи и чтения - вот это и это... Всё, светодиоды мигают."

Прямо уж все... http://cxem.net/mc/mc432.php


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 21 май 2018, 08:26 
Заглядывает иногда

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 198
sobs, класс! Отличная статья.

Есть ещё всем известная USB in nutshell.

В принципе, обложившись специфткациями, RM и этими статьями можно запрограммить USB.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 23 май 2018, 11:49 
Старожил
Аватара пользователя

Зарегистрирован: 06 ноя 2013, 16:07
Сообщения: 553
Откуда: Германия
ТС, нет там ничего такого уж сложного. Читать уже упомянутый "USB in a NutShell" и RM на камень. У меня ушло две недели.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 23 май 2018, 12:10 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 560
dev писал(а):
ТС, нет там ничего такого уж сложного. Читать уже упомянутый "USB in a NutShell" и RM на камень. У меня ушло две недели.

Ты за 2 недели разобрался с USB именно для F4? Потому что для F0/F1/F3 полно самодельных либ, для F4 я не видел ни одной. По линку который давал oleg110592 обычная переделка из, похоже, SPL версии, такое можно сделать вообще не понимая как работает USB.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 23 май 2018, 12:17 
Старожил
Аватара пользователя

Зарегистрирован: 06 ноя 2013, 16:07
Сообщения: 553
Откуда: Германия
Для F103. Там главное понять, как вообще USB работает. А для F4, скорее всего, просто никому не нужно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 23 май 2018, 12:22 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 560
dev писал(а):
Для F103. Там главное понять, как вообще USB работает. А для F4, скорее всего, просто никому не нужно.

Нет, просто согласно распространенному заблуждению модули USB у F1 и F4 практически идентичны, на самом деле отличия там более чем существенны, а объем кода для F4 заметно больше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 23 май 2018, 12:43 
Заглядывает иногда

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 198
Да ничем особенным F4 не отличается от других чипов с OTG. Делал на F103 (на него и правда полно инфы в сети) и на F107 (там уже OTG почти такой как в F4). Ну да, буферы данных по разному организованы, но в остальном не принципиально, если понимаешь как должно работать. У ТС примитивный HID, там кроме как правильные дискрипторы отдать делать то ничего не надо.

Можете глянуть кусочек моих старых забав с F107, наверняка разницы с F4 не найдёте
Show Тык


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 23 май 2018, 13:02 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1600
Откуда: Харьков
Вот мой CDC со стандартными дровами виндовыми под F103.
Потрачено чуть больше недели вечеров: https://github.com/saewave/STM32F103-USB-CDC-CMSIS
До этого с USB дела вообще не имел.
F4 с usb нет, но можно переписать если найти камень.
За HID браться не приходилось, но по сути он не сильно уж и сложнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 23 май 2018, 13:50 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 560
VladislavS писал(а):
Да ничем особенным F4 не отличается от других чипов с OTG. Делал на F103 (на него и правда полно инфы в сети) и на F107 (там уже OTG почти такой как в F4).

Когда-то я генерил кубом код для F1 и F4(без OTG), потом убирал весь мусор, включая HAL, колбеки и макросы. Общий объем CDC кода для F4 получился больше на 3/4, при том что, допустим, работа с эндпоинтами там значительно проще.
Для примера, берем одну из функций(и ей сопутствующие) там и там. Это для F4:
Show

Это для F1:
Show

Понятно, что это когда-то был HAL и большинство в самописных либах все упрощает, но код реально разный и по размеру, и по содержанию. Так что я буду продолжать дальше думать, что именно поэтому для F4 ничего нет, а не потому, что это никому не нужно :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 24 май 2018, 18:13 
Заглядывает иногда

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 198
Reflector писал(а):
Понятно, что это когда-то был HAL и большинство в самописных либах все упрощает, но код реально разный и по размеру, и по содержанию. Так что я буду продолжать дальше думать, что именно поэтому для F4 ничего нет, а не потому, что это никому не нужно :)

Ну и зря. Достал STM32F411E-Discovery из закромов. Накатил на неё самописный USB-CDC от STM32F107. Заработало один в один с мелкой правкой названия нескольких бит в хидере процессора.


Вложения:
IMG_20180524_155700_.jpg
IMG_20180524_155700_.jpg [ 220.71 Кб | Просмотров: 738 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F407 и USB
СообщениеДобавлено: 24 май 2018, 18:39 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 560
VladislavS писал(а):
Ну и зря. Достал STM32F411E-Discovery из закромов. Накатил на неё самописный USB-CDC от STM32F107. Заработало один в один с мелкой правкой названия нескольких бит в хидере процессора.

Да, ты прав, глянул структуры для OTG у F4 и F107, с виду все 6 очень похожи. Только я сравнивал обычный модуль USB, не OTG, а там всего одна структура, что как бы намекает на очень существенные отличия. Все либы от alexsam, sobs, void1509 и другие, которые мне попадались, писались именно под этот значительно отличающийся USB и никак побыстрому под F4 переделаны быть не могут.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 5 часов


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB