- А вот (чисто теоретически). USB Host требует стабильную частоту 48
МГц. Или не сильно стабильную? Много лет у меня в STM32L476 48 МГц
получались из MSI, частота которого подстраивалась от LSE. А я взял
и убрал LSE. Нету его. Значит не подстраивается MSI. А Host у меня
нормально работает. Или это потому что комнатная температура? А на
морозе MSI уйдет на 8% и ку-ку? Хотя на минус 40 точно никому не
нужно пихать флэшки в USB. :-) Итак - сколько процентов можно
сдвинуть 48 Лaгyнoв(4 знак., 07.12.2024 14:55, ARM, полностью)
- Предположу, что ежели подключенный девайс умеет в Crystal-less - то
пофиг. Уедут они оба синхронно. - LightElf(10.12.2024 19:11)
- Резюмэ? При работе с USB обязательно применяем внешний кварц, а то
и термостатированный TCXO корпус, обеспечивая тайминг входа в майн
луп 2 минуты для стабилизации частоты? - bnb62(08.12.2024 09:16)
- у gd32f450 по этой теме отдельный IRC48 для USB, все работает,
подробности по точности не смотрел - Aleksey_75(07.12.2024 21:31)
- И не только у него. Это называется Crystall-less USB Device. Тут
главное - DEVICE!!!. Есть проверенный рабочий механизм, позволяющий
USB Device подстраивать свой генератор по пакетам SOF, которые USB
Host выдает с интервалом 1мс (для Full-Speed). Естественно, что
дискретность подстройки генератора у USB Device должна быть меньше
необходимой точности. - il-2(08.12.2024 11:33)
- Для GD32F450 начальная точность IRC48M составляет ±2% @ 25ºC,
пользовательская подстройка позволяет получить примерно ±0,12%.
Если я ничего не путаю, устройства USB device могут подстраивать
свое тактирование по SOF (начало фрейма). reZident(1 знак., 07.12.2024 22:11, картинка)
- Ну видимо всё-таки в заданном температурном диапазоне по точности
все устраивает, ну аудиофилы могут подстроить поточнее, на слух ))) - Aleksey_75(07.12.2024 22:14)
- 0,12% это 1200ppm, что заведомо меньше, чем 2500ppm требуемые для
FullSpeed согласно спецификации USB2.0. Для USB FlashDrive, с
которыми можно работать в FS-режиме, такой точности вполне
достаточно. reZident(1 знак., 07.12.2024 22:22, ссылка)
- Это если у вас есть возможность сравнить текущую частоту с опорой и
подстроить встроенный RC. Если вы сам и есть хост, то вам нужна
опора (кварц, часы, GPS). Nikolay_Po(193 знак., 08.12.2024 16:07)
- Вы невнимательно читаете? Я же написал, что такой точности
достаточно для USB FlashDrive, работающим в режиме Full-Speed. USB
FlashDrive относятся к категории USB-device, а не USB-Host. - reZident(08.12.2024 16:19)
- Вы не уточнили роль МК с обсуждаемым генератором. Я утверждаю, что
USB-флешка может не заработать с МК, работающим от IRC48. У меня
есть задача, заставить работать МК с пользовательской USB-флешкой.
Поэтому мыслил именно в этом направлении. - Nikolay_Po(08.12.2024 19:25)
- Я понимаю, что вы имеет право понимать не так, как я написал, а
по-своему. Но попробуйте все же включить разум. Я нигде не писал,
что USB-Host может работать от IRC48M, а только в применении к USB
FlashDrive, устройству которое выполняет функции device, а не host.
Если у себя в голове вы как-то связали мое сообщение, написанное в ответ на сообщение Aleksey_75, с вопросом именно ТС (Лагунова), то почему это должно быть моей
проблемой? P.S. в наших проборах, где reZident(113 знак., 08.12.2024 19:40)
- Если USB3 флешка, может и не заработать, не уверен, что там без
кварца. - Andreas(08.12.2024 19:31)
- а можно подробности ? почему так думаете ? - Aleksey_75(08.12.2024 19:28)
- Вы невнимательно читаете? "IRC48M oscillator Frequency accuracy,
User trimming step 0.12% typ." Это типовой шаг пользовательской
подстройки, а не точность. Nikolay_Po(377 знак., 08.12.2024 19:22, картинка)
- И хост тоже? Вроде, сейчас большинство устройств - дивйсов -
безкварцевые - подстраивают свою частоту по хосту автоматически. Nikolay_Po(154 знак., 07.12.2024 21:44)
- USB2.0 Specification, 7.1.11 Data Signaling Rate - il-2(07.12.2024 16:26)
- Интересно, зачем в таком вопросе вам непременно слухи ОБС? Не
логичнее ли обратиться непосредственно к спецификации USB? Вот что
говорится в USB Specification Rev. 2.0 reZident(2 знак., 07.12.2024 16:22, ссылка, картинка)
- ставлю кварц, ЕМНИП на 8 МГц, чтобы от HSE подстраивать HSI, после
чего отключаю HSE, ну а USB от HSI через PLL, ну и спатоньки.
UART-ы - от HSI без PLL - будятся автоматом, USB-device вместе с
PLL поднимается по ручному мониторингу ноги VBUS, ну и ядро
переключаю на HSI через свою PLL. - Vit(07.12.2024 16:10)
- И всё таки решился. Убираю нафиг LSE. Делаю внешний RTC на DS3231
(SO-8)/ Очень душевная штука оказалось. Главное, что ничего
внешнего не надо. Прицепил параллельно к EEPROM и вуаля. Пугали
меня потреблением. В рабочем режиме от +3 - 80 мкА. От 2032 меньше
1 мкА. Да пусть даже там его макс. 3 мкА будут. У меня пульты чаще
всего круглосуточно работают. Ну и обычный кварц на 8 МГц всё же
ставлю. - Лaгyнoв(10.12.2024 11:09, ARM, полностью)
- А не попадался ли кому Ethernet бутлоадер для CH32F? Собрался
соорудить такой, но может быть можно уменьшить градус
велосипедостроения? Алгоритм работы видится весьма простым: в
основной программе поднять FTP/TFTP/что-то подобное, принимаемый
файл запысывать в не занятую под программу часть флэши, которой у
CH32 с избытком, в отличии от STM32, при перезапуске МК
переписывать принятое на место старой программы крошечным, очень
простым загрузчиком. AlexG(48 знак., 06.12.2024 19:39, ARM, полностью)
- впервые понадобилось capture в таймере STM32. В моем 8-битнике всё
было просто и понятно. Тут какой-то дурдом. Так-то понял, что по
фронту на выводе TIM8 CH1 можно быть где-то сохранить текущее
значение счетчика. Но будет дальше считать? И чтоб пустить с начала
- только по прерыванию? В моем 8-битнике можно было просто задать
перезапуск. И тогда в соответствующем регистре всегда была
требуемая величина. Или я не туда полез? Мне просто надо, не
используя никаких прерываний , в Лaгyнoв(122 знак., 04.12.2024 14:14, ARM, полностью)
- завел такое вот интересное - С++20 Coroutine на К1948ВК018,
прикольно. оно работает. можно делать несложне шедуллеры не выбегая
за средства языка. миленько компактненько простенько. Для
контроллеров с озу 2к флеша 8к просто огонь! klen(9461 знак., 01.10.2024 13:25 - 16:05, ARM, ссылка, картинка, полностью)
- Что-то не понял, как работает caxapa.ru, не регистрирует. xray(206 знак., 29.11.2024 11:15,
)
- Невероятно красиво. Но мне увы не понять. Не владею плюсами. Но
эстетично. - vesago(20.11.2024 07:45)
- сделал сферического коня в вакуме - чистый проект. без crt , без
обработки прерываний по таймеру для событй, без cout. только прыжок
в main по ресету, и код шедуллинга четырех корутин для удобного
наблюдения без шелухи. 940 байт кода и 32 байта данных. листинги
символов и асма. цикловая работа задач - выполнить одн nop. klen(23818 знак., 02.10.2024 12:05)
- Когда очень хочется понять.. но нет времени и вообще влом
разбиратся klen(1 знак., 02.10.2024 02:21, картинка)
- Круто - изобрели PL-I (без стёба - это нужная штука) - symbions(01.10.2024 17:21)
- Это всё жуть как интересно, но ты скажи, все корутины имеют
выделенный стек или што? Или как? Можно юзать вызовы функций и
скока и как настроить? - =AlexD=(01.10.2024 13:41)
- какой умный и правильный вопрос!! уважаю! я сам долго отдуплял
смыслы это твоерниия: Сопрограмма — это функция, которая может
приостановить выполнение, чтобы возобновить его позже. Сопрограммы не имеют стека: они приостанавливают выполнение, возвращаясь к вызывающей
стороне, а данные, необходимые для возобновления выполнения, хранятся
отдельно от стека. Это позволяет использовать последовательный код, который выполняется асинхронно (например, klen(177 знак., 01.10.2024 14:36)
- Не-не вопросов меньше не стало. Т.е. это особый тип функции,
поддержка которых осуществляется на уровне компилятора, а не
библиотеки? А может стек всё же используется, но данные с него
копируются в динамическую память, выделяемую "на лету"? Каковы
накладные переключения корутин? Растут ли они с ростом локальных
данных? Как это вообще выглядит в ассемблере? - =AlexD=(01.10.2024 14:49)
- просьба почитать маериалы -я в первом сообщении накидал, это тремя
словами не выразишь. потом разжую детали. например то что компиллер
это делает все и как - это не либа, это алгоримы кодогенерации в самам компиляторе. наиболее обще
нужно понимать так - есть такие обхекты языка как переменные,
функции, классы и тд, и у них есть поведение согласно стандарту
С++, а теперь есть еще и co_routine. С++20 для поддержки этых
механизмов добавляет ключевые слова языка : klen(28 знак., 01.10.2024 15:05)
- Глянул одним глазком. Ну точно, состояние сопрограммы сохраняется в
куче, размер фрейма должен быть известен на момент компиляции, что
из этого следует - хз, вероятно рекурсии запрещены, может ещё чо. - =AlexD=(01.10.2024 15:54)
- Не обязательно в куче. Могу этот пример с корутинами накидать для
тривиальная прилагуха где нет malloc и new. В promise я опредеояю
где и как выделять фрейм для корутины. Это педаль для настройки. Я
всетаки реализую кучу чтоб юзать всю мощь STL... хотя и его можно
без кучи юзать переопределив аллокатрры на свои. - klen(01.10.2024 16:04)
- Дык какая польза от своих аллокаторов? Только если ты знаешь что и
когда выделяется и подсунуть статические массивы. А таг только
возня лишняя. - =AlexD=(01.10.2024 16:08)
- Я постиг смысл использовать перегрузку new, когда делал свои
визуальные классы. Экземпляров визуальных классов много, а работает
в данный момент времени всегда только один. Поэтому - выделил
статичный буфер памяти, чтобы влезал экземпляр максимального
размера (через union {}). Ну и перегрузил new в базовом визуальном
классе - чтобы возвращался всегда адрес буфера. il-2(264 знак., 01.10.2024 17:08)
- Раз ты такой въедливый - нааа... все ответы тут, реализация
внутренней механики в gcc klen(119 знак., 01.10.2024 16:25, ссылка, ссылка)
- Ты не знаешь, компилятор знает и спускает аллокатору размер фрейма.
Откуда он знает? Он есть построитель дерева и его анализатор.
Прежде чем ты от него получишь целевой асм, он на виртуальной
машине его эмулирует и смотрит что по чем и куда. - klen(01.10.2024 16:13)
- да на хабре про корутины нормально расписано в ряде статей.. а что
не расписано - то и знать ни к чему прогеру - POV(01.10.2024 14:51)
- Коллеги! а вот этих кто-то юзает? обсуждали? sav6622(1 знак., 22.11.2024 19:58, ARM, ссылка, полностью)
- Итак товарищщии! сегодня был в Зелеке на РадиоФесте в НИЭТе. был
круглый стол. по кругу много чего пускали но! в числе прочих
докладывал Станислав Шепелев из Микрона про амур мк32. На днях или
около того ожидается фиксация хотелок к таймерам в следующей третьей итерации амура. обещают например usb и
100-ногий корпус и тд. но моя боль это периферия. предлагаю
накидать какахов про таймеры. Станислав обещал попробовать это учесть в документе на фиксацию. klen(1964 знак., 15.11.2024 21:18, ARM, полностью)
- Нужен по большому счету для начала скалярный ПЧ в кремнии. Чтобы
был IP блок на входе которого регистры настроек а-ля частотник, на
выходе физические ноги на драйверы и входы защиты. Вот это будет
сильный коммерческий ход. - ЧyЧy(20.11.2024 09:30,
)
- Бит защиты eeprom от считывания не хватает. - stf(20.11.2024 09:22)
- наши требования загружены в Микрон. Микрон обещал почитать и
сделать обратные комменты для пообсуждать. ждем. - klen(19.11.2024 01:44)
- TIM1 от STM32F4, расширенный до 32 бит. Можно добавить к нему еще
пару каналов, аналогичных CH3 и даже без вывода на ножки. Если
влезет - несколько штук таких одинаковых (не повторять ошибок STM в
плане кучи разных таймеров). Это раз! ;-) - _LightElf(18.11.2024 12:13,
)
- А чо разРАБы не чейтают
пейджер вражеские даташиты на PIC/DSP контроллеры? Не всасывают мудрость
веков? Тупые или ленивые? - =AlexD=(18.11.2024 10:45)
- так будет USB Host? Флэшки можно будет читать? Прошивки с флэшек
грузить - Лaгyнoв(17.11.2024 18:49)
- Я не знаю что таймеры уже могут. Но лично мне нужно что бы - был
таймер близкий к TIM1 в STM32. Шесть выходов Шима для формирования
3х фазной синусоиды. - что бы хотя бы на одном таймере можно было
задавать в один фронт сигнала с помощью COM1 а противоположный
фронт этого же сигнала с помощью COM3.Тогда можно сформировать
любой сигнал на одном периоде счетчика. И на этом же таймере можно
было сформировать еще один такой сигнал. А в идеале в сумме четыре
таких три Sl(439 знак., 17.11.2024 00:37)
- Хорошо бы прикрутить I2S поверх существующих SPI, как, например,
сделано у SiLabs. - Costic(16.11.2024 19:00)
- Нужно семплирование АЦП запускать эвентом с регулируемой задержкой
от фронта многофазного ШИМ - Moтopчик(16.11.2024 17:28,
)
- Доку не читал, но пользуюсь следующим функционалом: 1. 3-канальный
центрированный ШИМ, каждый сигнал имеет 2 выхода: прямой и
инверсный VVB(310 знак., 16.11.2024 16:18)
- Это всё полумеры. Для реализации периферии нужно поставить к МК
хотя-бы 1кгейтовую ФПГА. И не париться с таймерами, в частности,
вообще. Из-за тупой мегауниверсальности периферии, получается
сложное, глюкавое говнище. На сайт выложить ИП корки с открытым
исходником и пусть незамутнённые пользуют, как есть, если сами не
умеют. И/или модифицируют, если наоборот. Ну и ёмкость поднять до
2-4кг. Этого хватит с гарантией. - mse homjak(16.11.2024 14:12)
- Кстати, а у китайцев есть мелкие плисины? Мелкие в плане ног и
гейтов. И которые можно тут купить и среда разработки чоб
более-менее... - Звepoящep(19.11.2024 08:23)
- Абсолютно согласен! Michael75(652 знак., 16.11.2024 19:48)
- +150. - enc(16.11.2024 21:03)
- это было бы прекрасно... но у них бюджет по транзисторам
(квадратным милиметрам крисалла) и амбиции насяльника.. поэтому
давайте хотеть что можно и не хотеть чего не можно. мечтать я тоже
умею - klen(16.11.2024 15:12)
- ФПГА, это регулярная структура, которая очень хорошо "разводится",
с максимальной плотностью. При освоении нового техпроцэсса, ФПГА и
ДРАМ, это главные тестовые структуры для коммерческого
производства. - mse homjak(16.11.2024 20:28)
- Драйвер ЖК сегментного дисплея пусть подумают, затрат немного. - jlm(16.11.2024 17:53)
- У Микрона, кстати, есть нечто подобное, называется 5510ТС028 AlexG(135 знак., 16.11.2024 17:33)
- Когда занимался генерацией всяких последовательностей сигналов на
STM очень огорчало что от схемы сравнения управляется только один
фронт импульса, второй всегда привязан к границе периода. А
хотелось бы выбирать сигналы/события для управления установкой и
сбросом независимо. - ЫЫyкпy(16.11.2024 14:04)
- у меня тоже такое было. я так полагаю нужно два регистра сравнения
на канал ... охх.. буржуи до этого не доросли.. а с другой строны
что жалко еще условно 32 триггера? - klen(16.11.2024 15:15)
- У меня, когда прикидывал варианты, получалось что в среднем нужно
меньше чем 2 компаратора на канал, но с возможностью выбирать от
кого срабатывать. Регистр-то ладно, а вот устройство сравнения
(компаратор), тем более 32- или хотя бы 24-разрядный и при этом
быстродействующий по площади будет существенно больше
мультиплексора. Другой вариант - иметь много простеньких таймеров,
которые можно запускать от главного в режиме одновибратора. - ЫЫyкпy(16.11.2024 16:32)
- Чо эта буржуи не доросли? Посмотрите у какого-нибудь TMS320x2833x,
там такое можно изобразить, что ой. Ещё и несколько модулей друг на
друга завязать. mr-x(5 знак., 16.11.2024 15:40, ссылка)
- Shadow загрузка значений (не знаю устоявшегося русского перевода )
если её ещё нет. - DH(15.11.2024 21:32)
- Мерло - POV(15.11.2024 21:19)
- всунул и протянул. gcc теперь умеет так: riscv32-kgp-elf-g++ .....
-mcpu=к1948вк018 ...., мой вклад в импортозамещение - буквы
русские! klen(1 знак., 10.10.2024 02:24, ARM, ссылка, полностью)
- Как вылечить CrossWorks 1.7.6? Okon (329 знак., 20.01.2008 15:29, ARM, полностью)
- Я наверное уже всех забембал своим КроссВорксом, но ИМХО это всё равно ближе к теме конфы, чем мечтания про "Пассажирский сверхзвук" в соседнем топике. В общем, лицензия стала, но не работает. При запуске crossbuild (компиляция проекта из консоли) Сидоргек(370 знак., 30.01.2019 13:50)
- Подниму древнючую тему. Собственно, та же проблема: Ключеделалка генерирует лицензию в ветку Permanent вместо Permanent Licenses и проект не компилируется. Придумали ли какой-нить способ делу помочь? - Сидоргек(25.01.2019 13:56)
- Посмотрел в других компах где пролицензировалось: везде Permanent вместо Permanent licenses и работает. И 2007й год не причём - на одном из компов устанавливалось в прошлом году. И на этом компе после переустановки ОСи (слетела десятка, снова Сидоргек(44 знак., 26.01.2019 14:05)
- 1.7.2 в аплоаде. Из запасников - бомж(26.01.2019 14:40)
- Спасибо, буду попробовать. - Сидоргек(27.01.2019 12:18)
- А для свежих версий (4.3.2) лечилки существуют? - evgeniy1294(26.01.2019 16:59)
- CrossWorks - не самый популярный пакет - скорее всего никто не делал. Я когда-то "игрался" с 3.х.х - нужно было получить у авторов демо-лицензию а затем продлевать её действие при помощи "замораживателя" триала. Отказался, т.к. вызывало какие-то Сидоргек(157 знак., 27.01.2019 12:26)
- Надо попробовать. Ценовая политика у CrossWorks не очень, некоммерческая лицензия стоит 150$, что при наличии бесплатных аналогов бессмысленно. evgeniy1294(224 знак., 27.01.2019 13:57)
- я не то, чтобы сильно против openocd (через него, в смысле софт, подключаю CMSIS-DAP к EmBitz), но пользуюсь самолепным JLink OB на STM32F072, а отладчик на FTDI так ни разу и не делал. известен также вариант JLink OB на STM32F103, но как-то до Vit(91 знак., 27.01.2019 23:36)
- ИМХО CrossWorks от "бесплатных аналогов" отличается тем же, чем Винда от Линукса - всё работает сразу, "искаропки". Пошаговая отладка через Jtag, например работает сразу, всегда и через любой интерфейс. - Сидоргек(27.01.2019 22:40)
- to serol: а можно еще раз выложить - Okon(21.01.2008 23:50)
- ИМХО попробуйте так - Koshak(21.01.2008 13:29, ссылка)
- Продолжаю троллить поклонников электрических книг :-) Kpoк(1 знак., 07.11.2024 09:15, ARM, картинка, полностью)
- Подскажите пожалуйста какой IAR поддерживает серию STM32G0xx? На
сайте IAR я вижу 9.32 поддерживает. Sl(135 знак., 04.11.2024 23:56, ARM, полностью)
- GD32F405, выход из Standby после пошаговой отладки не происходит,
контроллер спит и даже аппаратный резет не помогает. Ralex(815 знак., 30.10.2024 20:15, ARM, полностью)
- CH32F207, тактовая 120 МГц. Запись данных во Flash адекватно
отрабатывает не на всех чипах. На 96 МГц работает. AlexG(120 знак., 28.10.2024 10:54, ARM, полностью)
- Вторая серия: после добавления снижения в два раза HCLK перед
записью во Flash стали теряться отдельные пакеты CAN (не
удивительно). Наверное надо одновременно менять делитель PCLK1 в
обратную сторону? Ставлю для начала в PPRE1 деление на 2 (не трогая
HCLK) ...иии ничего не происходит, частота тактирования CAN
прежняя. Откуда же на самом деле тактируется CAN, который, по идее,
APB1 peripheral? - AlexG(29.10.2024 15:47)
- В даташите как-то коряво написано: il-2(1103 знак., 28.10.2024 16:02)
- Там надо частоту понижать в два разе перед записью во флеш - Poзoвый_cюcю(28.10.2024 15:01,
)
- Интересно, а с чем связано это? Что, не смогли китайцы всякие
флажки реализовать для оценки окончания записи?... POV(69 знак., 28.10.2024 13:55, картинка)
- я люблю во все возможные дырки тактовый генератор втыкнуть и
посмотреть где загнется. поробуйте эксперимент с повышением
напряжения питания - может что и выйдет. интересно. ибо снижать
скорость при модификации страницы в флеше не очень хочется. - klen(28.10.2024 11:39)
- Оно? SciFi(1 знак., 28.10.2024 10:56, картинка)
- Забавно, по ссылке справа К1978ВЕ1У глянул, с памятью плохо, но
питание 4.5.. 16 В удивило. - Visitor(14.10.2024 16:14, ARM, полностью)
- stm32h750. из доки ( RM0433 Table 14. Flash memory organization on
STM32H750xB devices ) понимаю что флеш организовано всего одним
128к сектором. это значить что если что то писать в него то и
стирать все сразу нужно. а как же загрузчик, а как
юзер-конст-данные ??? я правильно вообще понял юмор про 750? - klen(21.11.2021 14:55, ARM, полностью)