Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » Public » Разложение USB на составляющие


Разложение USB на составляющие

Сообщений 1 страница 30 из 33

1

Кто хочет принять активное участие в детальном исследовании работы блока USB в STM32? Откликайтесь!

2

Тут уже есть ветка по USB. Вы же писали https://vk.com/protocols?w=wall-90550376_225 что в этом нет смысла...

3

MasterElectric написал(а):

Тут уже есть ветка по USB. Вы же писали https://vk.com/protocols?w=wall-90550376_225 что в этом нет смысла...


MasterElectric , если тебе всё ясно по USB, ходи мимо темы. А вспомнил! Ты обещался создать библиотеку для STM32 на C++. Что-то не слышно. Уже за ISA взялся, думаю результат будет тот же.

4

Для создания менее или более сложной программы нужно начинать с создания модели верхнего уровня без подробностей. Иначе может случиться эффект "Вавилонской башни", когда не имея плана лепят код, и по мере роста кода, всё менее понимают как всё это работает. Наконец наступает ступор и нет ни сил ни желания, всё это довершать. Но есть горячее желание передать проект приемнику. Поэтому анализ USB в STM32 полагаю нужно начать с создания общей схемы.

5

Граф конечного автомата - это способ наглядного представления поведения устройства. Граф конечного автомата всегда служит хорошей основой для программы. Реализация конечного автомата - это задача типовая, поэтому ...
Поведение устройства USB, по моему, можно представить как два конечных автомата. Один главный, описывает переходы между состояниями устройства (ATTACHED, POWERED, DEFAULT, ADDRESSED, CONFIGURED). И второй конечный автомат собирает из транзакций запросы управления и посылает сообщение главному, о поступлении управляющего запроса. Модель из двух автоматов, которые могут посылать друг-другу сообщения.

6

Общая схема, два конечных автомата, один автомат отвечает за переходы между состояниями USB устройства, а второй за сборку управляющих запросов из отдельных транзакций. После сборки сообщения , передаётся первому автомату и служит событием, которое может изменить его состояние. Когда смоделировать поведение устройства оказывается затруднительным одним автоматом, то оказывается просто смоделировать несколькими конечными автоматами, взаимодействующими друг с другом передачей сообщений.http://s6.uploads.ru/a3LtT.png

7

Сборку запросов из транзакций трудно реализовать одним конечным автоматом. Каждому управляющему запросу должен соответствовать отдельный конечный автомат. На стадии setup производится разбор конфигурационного пакета и решается какой из автоматов задействовать, какой запрос реализовать. Как вариант, каждому запросу соответствует своя функция, реализующая автомат. Состояния хранятся либо во внешних переменных, либо в локальных со спецификатором static. Парсер конфиг. пакета присваивает переменной значение указателя на нужную функцию, а обработчик транзакций берёт из этой переменной значение и вызывает каждый раз эту функцию, при событии "транзакция" (входящая или исходящая). Пример графа переходовhttp://s6.uploads.ru/t/Pc257.png

8

linuxbergi, практика без теории конечно слепа, но теория без практики мертва )

9

Активность масс не вдохновляет.

10

linuxbergi написал(а):

Активность масс не вдохновляет.

Наблюдаю "активность масс" в твоём топике на electronix, бессмысленную и беспощадную )
IMHO, enumeration - малосущественная, одноразовая, чисто техническая проблема, и по большому счёту безразлично что и как её делает

11

С electronix или без, но задался задачей, кому-то интересно, кому-то нет. Денег не берут и много времени не потребляет. Если как и на других форумах, всё крутится либо, вокруг повышения собственной самооценки, без реального вклада, либо обесценивания выложенного материала, либо скачать что-нибудь не поучаствовав никак. Я этим сыт и как пропеллер в холостую крутится не собираюсь.

12

linuxbergi написал(а):

всё крутится либо, вокруг повышения собственной самооценки, без реального вклада, либо обесценивания выложенного материала

Именно, и именно поэтому тут просто промолчали, если (пока) не интересно, потому что у нас тут таких мотивов вроде нет

13

linuxbergi написал(а):

С electronix или без, но задался задачей, кому-то интересно, кому-то нет. Денег не берут и много времени не потребляет. Если как и на других форумах, всё крутится либо, вокруг повышения собственной самооценки, без реального вклад....

Вы ошибаетесь - самооценка там не более, чем развод для лохов, потому как на самом деле все крутится вокруг посещаемости, обеспечивающей доход от рекламы, а посещаемость легче всего обеспечивается срачем... чего тут, к счастью, пока почти нет.
И личное к Вам пожелание - смените плиз название темы, а то термин "разложение" как-то  плохо пахнет.

Отредактировано SMART (2017-08-08 13:42:14)

14

Материальная заинтересованность есть везде, другое дело, что о ней умалчивают, или что хуже, говорят что её нет. Форумы и прочие "бесплатные ресурсы" создают с целью рекламы собственных услуг и продуктов, либо как рекламную площадку, либо для самоутверждения в собственных глазах. Утвердиться в собственных глазах можно быстро, поэтому такие ресурсы быстро умирают. Для привлечения масс нужен реальный напряг и отдача, ходить на работу бесплатно, долго не получится привсём желании.

15

linuxbergi Ну не знаю, я делаю свой проект, куски выложить мне не жалко, т.к. благодаря форумам сам очень многое узнал. Есть задача у меня в планах изучить USB, но хотелось бы изучить не только HID, но и уметь создавать высокоскоростную связь Full Speed, и писать драйверы под ПК, но владею я только Delphi. Позже разберу примеры из соседней ветки для начала. А там будет видно.

16

linuxbergi написал(а):

Материальная заинтересованность есть везде, другое дело, что о ней умалчивают, или что хуже, говорят что её нет. Форумы и прочие "бесплатные ресурсы" создают с целью рекламы собственных услуг и продуктов, либо как рекламную площадку, либо для самоутверждения в собственных глазах. Утвердиться в собственных глазах можно быстро, поэтому такие ресурсы быстро умирают. Для привлечения масс нужен реальный напряг и отдача, ходить на работу бесплатно, долго не получится привсём желании.

linuxbergi, я бы так сформулировал базовые принципы - свободный вход, свобода слова, никто никому ничего не должен.
В общем, Тортуга )

Теоретически, можно завести тут файловый архив и какое-то подобие каталога, но, имхо, в этом нет смысла

Отредактировано vt340 (2017-08-14 21:38:25)

17

http://sg.uploads.ru/t/qOzB5.png
В цикле мониторятся флаги событий. GLOBAL_SM - мониторит RESET, SUSPEND и пр. Группа TRN_SM собирает из отдельных транзакций запросы управления, мониторит флаги транзакций передач управления. После транзакции setup, выполняется парсинг пакета конфигурации (выделено голубым), остальные секции не реагируют, состояние автомата фиксируется в глобальных переменных. По транзакции IN выполняется соответственная секция кода, состояние фиксируется в гл. переменных. Транзакция setup общая для всех передач управления, а дальнейшая реализация зависит от парсинга конфигурационного пакета из этой самой транзакции setup. В секции setup устанавливается указатель на функцию реализующую конкретный запрос и далее эта функция вызывается каждый раз при выполнении последующих транзакций пока запрос не закончится выполняться. Думаю схема ясна. Обработчик транзакций передачи данных прост, по сравнению с управляющими, поэтому пока не рассматривается

18

linuxbergi, у меня такое ощущение что "зубры" на элхе , вещающие о стеках USB, ни хрена не понимают что все их простыни реализованы в STM32 аппаратно.

19

Вообще в планах, хотелось создать закрытую небольшую группу, которая бы допилила до приемлемого состояния эти идеи. А в дальнейшем может создать Open Source ресурс или ещё как-то вознаградить себя. Не хочется задарма катить телегу нагруженную болтливыми бездельниками.

20

linuxbergi написал(а):

Вообще в планах, хотелось создать закрытую небольшую группу, которая бы допилила до приемлемого состояния эти идеи. А в дальнейшем может создать Open Source ресурс или ещё как-то вознаградить себя. Не хочется задарма катить телегу нагруженную болтливыми бездельниками.

no comment

21

linuxbergi От Вас я не видел ни строчки кода, пока еще... кто ж в закрытом клубе писать проги будет)) Вы то глубокий теоретик

Отредактировано MasterElectric (2017-08-11 19:05:17)

22

linuxbergi написал(а):

создать закрытую небольшую группу, которая бы допилила до приемлемого состояния эти идеи. А в дальнейшем может создать Open Source ресурс

А кто целевая группа, т.е. как ты представляешь потенциальных пользователей, кто они?

23

Как-то не подумал, что занимаюсь ерундой, спасибо просветил. Всем спасибо за содержательные замечания по делу. А программа почти готова, весьма компактный код получился.

24

Да почему ерундой, просто, имхо, это самое главное и самое трудное, люди же очень разные, в том числе и в эмбеде.
Я, например, когда пишу что-то содержательное, представляю себе целевую группу из клонов самого себя, но из прошлого, до того как въехал в тему
Поэтому не пишу статей и не пишу библиотек )

25

linuxbergi, все просто . Не отписываются не потому что не интересно, а потому что большинству не понятно.
   Если бы ты выкладывал не урывками ,  или урывками но вместе с практикой ...

26

linuxbergi написал(а):

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

linuxbergi Ты вначале с GPIO разберись, вот наша пустая дискуссия в vk https://vk.com/protocols?w=wall-90550376_221. Почему-то замечания на очевидные вещи вызывают такую реакцию. Да и в твоих УРОКАХ есть такие сложные вещи как USB, Ethernet, FreeRTOS (я их абсолютно не знаю например) видимо они чужие или стандартные из примеров. dosikus я думаю оценит качество уроков (первый десяток точно твой). уроки: http://stm32.aiq.ru/examples.html . Меня в своей телеге можешь не катать, я говнокод и сам писать умею.

Отредактировано MasterElectric (2017-08-12 11:09:15)

27

MasterElectric написал(а):

dosikus я думаю оценит качество уроков

Ну дык, очередной изобреДатель велосипедов , сплошные Magic Numbers.
Ога , стм хэдеры периферии  писали для идиотов , зачем нам оно мы любим трудности.
Да и очередной вольный перевод RM и похоже через гугль.
   Сайт кстати тормозит, или это только у мну?
Здесь кстати, бездумный копипаст с SPL , с полным непониманием работы сишных конструкций

         

Код:
buf = GPIOC -> CRH;      // конфигурирование C9
         buf |= GPIO_CRH_MODE9_1;
         buf &= ~(GPIO_CRH_MODE9_0|GPIO_CRH_CNF9_1|GPIO_CRH_CNF9_0) ;

         buf |= GPIO_CRH_MODE8_1; // конфигурирование С8
         buf &= ~(GPIO_CRH_MODE8_0|GPIO_CRH_CNF8_1|GPIO_CRH_CNF8_0) ;

         GPIOC -> CRH = buf;

28

linuxbergi Как ты мне говорил: начни с простого, это слишком амбициозный проект, чтобы изучить stm32 нужно несколько лет. Мы я думаю слишком долго будем ждать от вас результата в виде программы, я лично думаю что никогда. А давайте устроим небольшое дружеское соревнование каждый из нас (я и ты) напишет библиотеку например под HD44780 1602. ну откладывать все дела не будем, по времени мне все-равно сколько хоть год, но выкладываем тут одновременно, судьи админы) И будет видно уровень знания железа и подход к делу, может нам и не стоит ждать твой быстрый шедевр. Хотя я думаю и так все понятно, а в твоей группе только болтовня, а в тех группах в вк где я общаюсь и ты там есть помощи другим от тебя я не видел.

Отредактировано MasterElectric (2017-08-12 11:40:56)

29

MasterElectric написал(а):

например под HD44780 1602

И получится жОсткий софто-ногодрыг, очередной велосипед

Здесь интересней http://kazus.ru/forums/showpost.php?p=7 … ostcount=9

30

Не совсем, я бы использовал 1 канал таймера для задержек. И у библиотеки был бы цикл вывода данных на экран (бесконечный) а из входных параметров 2 указателя на 1 строку и на 2 строку. И все что нужно от нас это указать какие данные выводить на экран.


Вы здесь » Микроконтроллеры » Public » Разложение USB на составляющие