Кто хочет принять активное участие в детальном исследовании работы блока USB в STM32? Откликайтесь!
Разложение USB на составляющие
Сообщений 1 страница 30 из 33
Поделиться22017-07-14 23:35:39
Тут уже есть ветка по USB. Вы же писали https://vk.com/protocols?w=wall-90550376_225 что в этом нет смысла...
Поделиться32017-07-15 05:59:42
Тут уже есть ветка по USB. Вы же писали https://vk.com/protocols?w=wall-90550376_225 что в этом нет смысла...
MasterElectric , если тебе всё ясно по USB, ходи мимо темы. А вспомнил! Ты обещался создать библиотеку для STM32 на C++. Что-то не слышно. Уже за ISA взялся, думаю результат будет тот же.
Поделиться42017-07-15 08:23:52
Для создания менее или более сложной программы нужно начинать с создания модели верхнего уровня без подробностей. Иначе может случиться эффект "Вавилонской башни", когда не имея плана лепят код, и по мере роста кода, всё менее понимают как всё это работает. Наконец наступает ступор и нет ни сил ни желания, всё это довершать. Но есть горячее желание передать проект приемнику. Поэтому анализ USB в STM32 полагаю нужно начать с создания общей схемы.
Поделиться52017-07-15 12:42:55
Граф конечного автомата - это способ наглядного представления поведения устройства. Граф конечного автомата всегда служит хорошей основой для программы. Реализация конечного автомата - это задача типовая, поэтому ...
Поведение устройства USB, по моему, можно представить как два конечных автомата. Один главный, описывает переходы между состояниями устройства (ATTACHED, POWERED, DEFAULT, ADDRESSED, CONFIGURED). И второй конечный автомат собирает из транзакций запросы управления и посылает сообщение главному, о поступлении управляющего запроса. Модель из двух автоматов, которые могут посылать друг-другу сообщения.
Поделиться62017-07-28 13:08:43
Общая схема, два конечных автомата, один автомат отвечает за переходы между состояниями USB устройства, а второй за сборку управляющих запросов из отдельных транзакций. После сборки сообщения , передаётся первому автомату и служит событием, которое может изменить его состояние. Когда смоделировать поведение устройства оказывается затруднительным одним автоматом, то оказывается просто смоделировать несколькими конечными автоматами, взаимодействующими друг с другом передачей сообщений.
Поделиться72017-07-28 13:49:10
Сборку запросов из транзакций трудно реализовать одним конечным автоматом. Каждому управляющему запросу должен соответствовать отдельный конечный автомат. На стадии setup производится разбор конфигурационного пакета и решается какой из автоматов задействовать, какой запрос реализовать. Как вариант, каждому запросу соответствует своя функция, реализующая автомат. Состояния хранятся либо во внешних переменных, либо в локальных со спецификатором static. Парсер конфиг. пакета присваивает переменной значение указателя на нужную функцию, а обработчик транзакций берёт из этой переменной значение и вызывает каждый раз эту функцию, при событии "транзакция" (входящая или исходящая). Пример графа переходов
Поделиться82017-07-28 14:56:53
linuxbergi, практика без теории конечно слепа, но теория без практики мертва )
Поделиться92017-07-28 17:30:36
Активность масс не вдохновляет.
Поделиться102017-08-08 09:53:33
Активность масс не вдохновляет.
Наблюдаю "активность масс" в твоём топике на electronix, бессмысленную и беспощадную )
IMHO, enumeration - малосущественная, одноразовая, чисто техническая проблема, и по большому счёту безразлично что и как её делает
Поделиться112017-08-08 10:48:23
С electronix или без, но задался задачей, кому-то интересно, кому-то нет. Денег не берут и много времени не потребляет. Если как и на других форумах, всё крутится либо, вокруг повышения собственной самооценки, без реального вклада, либо обесценивания выложенного материала, либо скачать что-нибудь не поучаствовав никак. Я этим сыт и как пропеллер в холостую крутится не собираюсь.
Поделиться122017-08-08 11:15:57
всё крутится либо, вокруг повышения собственной самооценки, без реального вклада, либо обесценивания выложенного материала
Именно, и именно поэтому тут просто промолчали, если (пока) не интересно, потому что у нас тут таких мотивов вроде нет
Поделиться132017-08-08 13:39:58
С electronix или без, но задался задачей, кому-то интересно, кому-то нет. Денег не берут и много времени не потребляет. Если как и на других форумах, всё крутится либо, вокруг повышения собственной самооценки, без реального вклад....
Вы ошибаетесь - самооценка там не более, чем развод для лохов, потому как на самом деле все крутится вокруг посещаемости, обеспечивающей доход от рекламы, а посещаемость легче всего обеспечивается срачем... чего тут, к счастью, пока почти нет.
И личное к Вам пожелание - смените плиз название темы, а то термин "разложение" как-то плохо пахнет.
Отредактировано SMART (2017-08-08 13:42:14)
Поделиться142017-08-09 12:07:22
Материальная заинтересованность есть везде, другое дело, что о ней умалчивают, или что хуже, говорят что её нет. Форумы и прочие "бесплатные ресурсы" создают с целью рекламы собственных услуг и продуктов, либо как рекламную площадку, либо для самоутверждения в собственных глазах. Утвердиться в собственных глазах можно быстро, поэтому такие ресурсы быстро умирают. Для привлечения масс нужен реальный напряг и отдача, ходить на работу бесплатно, долго не получится привсём желании.
Поделиться152017-08-09 12:55:05
linuxbergi Ну не знаю, я делаю свой проект, куски выложить мне не жалко, т.к. благодаря форумам сам очень многое узнал. Есть задача у меня в планах изучить USB, но хотелось бы изучить не только HID, но и уметь создавать высокоскоростную связь Full Speed, и писать драйверы под ПК, но владею я только Delphi. Позже разберу примеры из соседней ветки для начала. А там будет видно.
Поделиться162017-08-09 13:28:03
Материальная заинтересованность есть везде, другое дело, что о ней умалчивают, или что хуже, говорят что её нет. Форумы и прочие "бесплатные ресурсы" создают с целью рекламы собственных услуг и продуктов, либо как рекламную площадку, либо для самоутверждения в собственных глазах. Утвердиться в собственных глазах можно быстро, поэтому такие ресурсы быстро умирают. Для привлечения масс нужен реальный напряг и отдача, ходить на работу бесплатно, долго не получится привсём желании.
linuxbergi, я бы так сформулировал базовые принципы - свободный вход, свобода слова, никто никому ничего не должен.В общем, Тортуга )
Теоретически, можно завести тут файловый архив и какое-то подобие каталога, но, имхо, в этом нет смысла
Отредактировано vt340 (2017-08-14 21:38:25)
Поделиться172017-08-10 09:55:52
В цикле мониторятся флаги событий. GLOBAL_SM - мониторит RESET, SUSPEND и пр. Группа TRN_SM собирает из отдельных транзакций запросы управления, мониторит флаги транзакций передач управления. После транзакции setup, выполняется парсинг пакета конфигурации (выделено голубым), остальные секции не реагируют, состояние автомата фиксируется в глобальных переменных. По транзакции IN выполняется соответственная секция кода, состояние фиксируется в гл. переменных. Транзакция setup общая для всех передач управления, а дальнейшая реализация зависит от парсинга конфигурационного пакета из этой самой транзакции setup. В секции setup устанавливается указатель на функцию реализующую конкретный запрос и далее эта функция вызывается каждый раз при выполнении последующих транзакций пока запрос не закончится выполняться. Думаю схема ясна. Обработчик транзакций передачи данных прост, по сравнению с управляющими, поэтому пока не рассматривается
Поделиться182017-08-10 10:11:29
linuxbergi, у меня такое ощущение что "зубры" на элхе , вещающие о стеках USB, ни хрена не понимают что все их простыни реализованы в STM32 аппаратно.
Поделиться192017-08-11 16:01:53
Вообще в планах, хотелось создать закрытую небольшую группу, которая бы допилила до приемлемого состояния эти идеи. А в дальнейшем может создать Open Source ресурс или ещё как-то вознаградить себя. Не хочется задарма катить телегу нагруженную болтливыми бездельниками.
Поделиться202017-08-11 16:21:26
Вообще в планах, хотелось создать закрытую небольшую группу, которая бы допилила до приемлемого состояния эти идеи. А в дальнейшем может создать Open Source ресурс или ещё как-то вознаградить себя. Не хочется задарма катить телегу нагруженную болтливыми бездельниками.
no comment
Поделиться212017-08-11 19:00:04
linuxbergi От Вас я не видел ни строчки кода, пока еще... кто ж в закрытом клубе писать проги будет)) Вы то глубокий теоретик
Отредактировано MasterElectric (2017-08-11 19:05:17)
Поделиться222017-08-11 21:36:59
создать закрытую небольшую группу, которая бы допилила до приемлемого состояния эти идеи. А в дальнейшем может создать Open Source ресурс
А кто целевая группа, т.е. как ты представляешь потенциальных пользователей, кто они?
Поделиться232017-08-12 07:16:56
Как-то не подумал, что занимаюсь ерундой, спасибо просветил. Всем спасибо за содержательные замечания по делу. А программа почти готова, весьма компактный код получился.
Поделиться242017-08-12 10:17:49
Да почему ерундой, просто, имхо, это самое главное и самое трудное, люди же очень разные, в том числе и в эмбеде.
Я, например, когда пишу что-то содержательное, представляю себе целевую группу из клонов самого себя, но из прошлого, до того как въехал в тему
Поэтому не пишу статей и не пишу библиотек )
Поделиться252017-08-12 10:37:17
linuxbergi, все просто . Не отписываются не потому что не интересно, а потому что большинству не понятно.
Если бы ты выкладывал не урывками , или урывками но вместе с практикой ...
Поделиться262017-08-12 11:06:19
Не хочется задарма катить телегу нагруженную болтливыми бездельниками.
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)
Поделиться272017-08-12 11:30:46
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;
Поделиться282017-08-12 11:35:11
linuxbergi Как ты мне говорил: начни с простого, это слишком амбициозный проект, чтобы изучить stm32 нужно несколько лет. Мы я думаю слишком долго будем ждать от вас результата в виде программы, я лично думаю что никогда. А давайте устроим небольшое дружеское соревнование каждый из нас (я и ты) напишет библиотеку например под HD44780 1602. ну откладывать все дела не будем, по времени мне все-равно сколько хоть год, но выкладываем тут одновременно, судьи админы) И будет видно уровень знания железа и подход к делу, может нам и не стоит ждать твой быстрый шедевр. Хотя я думаю и так все понятно, а в твоей группе только болтовня, а в тех группах в вк где я общаюсь и ты там есть помощи другим от тебя я не видел.
Отредактировано MasterElectric (2017-08-12 11:40:56)
Поделиться292017-08-12 11:53:14
например под HD44780 1602
И получится жОсткий софто-ногодрыг, очередной велосипед
Здесь интересней http://kazus.ru/forums/showpost.php?p=7 … ostcount=9
Поделиться302017-08-12 12:16:40
Не совсем, я бы использовал 1 канал таймера для задержек. И у библиотеки был бы цикл вывода данных на экран (бесконечный) а из входных параметров 2 указателя на 1 строку и на 2 строку. И все что нужно от нас это указать какие данные выводить на экран.