Easyelectronics.ru

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

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • 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
Сообщения: 368
К чёрту подробности. Спецификация USB уже прочитана? Что вызвало затруднения в реализации USB на этом процессоре? Назначение каких регистров из RM непонятно?


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

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


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

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

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


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

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 368
Да. Сложно. С вашей постановкой задачи вообще невозможно. 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
Сообщения: 91
ElecDron писал(а):
Калокуб не годится. Говорю - в тех функциях, которые он использует, очень большая кодогенерация. Я же делаю свою библиотеку, где не будет ничего лишнего.
Хорошо, задача конкретнее: реализация простого Custom HID устройства (считаем, что дескрипторы уже написаны), способного обмениваться данными с ПК в режиме Full Speed или Low Speed (это, как я понимаю, самое простое). Вопрос: какие регистры нужно настроить для работы в таком режиме и как надо настроить? Какие регистры участвуют в обмене данными?

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

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


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

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 368
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
Сообщения: 2172
ElecDron писал(а):
Говорю - в тех функциях, которые он использует, очень большая кодогенерация. Я же делаю свою библиотеку, где не будет ничего лишнего.

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

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


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

Зарегистрирован: 26 авг 2014, 10:34
Сообщения: 728
использовал пример с библиотекой этого автора:
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
Сообщения: 428
Откуда: Санкт-Петербург
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
Сообщения: 3592
Откуда: Кемеровская область, Киселевск
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
Сообщения: 305
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
Сообщения: 368
sobs, класс! Отличная статья.

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

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


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

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


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

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 639
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
Сообщения: 564
Откуда: Германия
Для F103. Там главное понять, как вообще USB работает. А для F4, скорее всего, просто никому не нужно.


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

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

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


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

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

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


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

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1723
Откуда: Харьков
Вот мой 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
Сообщения: 639
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
Сообщения: 368
Reflector писал(а):
Понятно, что это когда-то был HAL и большинство в самописных либах все упрощает, но код реально разный и по размеру, и по содержанию. Так что я буду продолжать дальше думать, что именно поэтому для F4 ничего нет, а не потому, что это никому не нужно :)

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


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

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

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


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

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


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

Сейчас этот форум просматривают: hd44780, vasiliuz


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

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

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