И сразу вопрос, как вы не сходите с ума от примеров идущих с кубом к вашему контроллеру? Зачем стм-погроммисты хуярят настолько трудный для понимания код, что просто башка закипает и руки тянутся к Ардуино?
примеры от куба не надо понимать, примеры от куба надо запускать. Для понимать есть SPL
>примеры от куба не надо понимать
Ну вот я лет шесть назад купил STM32F429I-Disco, поморгал светодиодом и закинул к хуям на полку. Наконец решил твердо взяться за STM32 и подключить датчик влажности к этой платке и вывести результаты на дисплей. Но оказалось, что StemWin выкинули нахуй и оставили только TouchGFX. В драйверах на HTS221 я просто охуел разбираться, всё в каких-то указателях на указатели на структуры указателей. Куб тоже дообновлялся, что уже нихуя не одуплю куда чего жать. Наверное закину взад на полку и достану старую добрую STM8
Согласен, у HAL хуевая документация, референс в разы лучше. И сам HAL тормознутый.
Но никто не запрещает использовать регистры там, где это проще и быстрее, а какой-нибудь usb virtual com сгенерировать в кубе и пинать через HAL.
Не надо пытаться понять хал, это совковая дедовщина в вас говорит.
2 варианта:
1) Накидываешь быстрохуйню на хале, прячешь ее за своими врапперами, читаемыми и оставляешь.
2) Накидываешь хуйню на хале, а как доходят руки переписываешь на флагодроче.
Не надо быть долбоебом и пихать вызовы хала в свой код и уж темболее бизнеслогику.
И все будет хорошо.
>и пихать вызовы хала в свой код и уж темболее бизнеслогику.
Какую нахуй бизнеслогику? Я о том, что стиль кода в примерах, сразу отбивает желание изучать этот контроллер, ибо написан ебанутыми на всю голову, помешанных на указателях индусах.
Потому, что это особенность куба. Он генерит не читаемое говнище.
Пример не пытается его сокрывать и соответственно тоже выглядит не читаемо.
Нормальные люди скидывают все это в 1 далекую папку, а вызовы куба идут из 10 оберток.
Я тут обнаружил ЖЖ Артемия Лебедева - https://narodstream.ru/rub_stm32
Чому в предыдущих, многочисленных тредах этого не было в шапке?
Он не очень. Я хуй знает. Все стримы про МК отечественные да и зарубежные не очень.
Там зачастую - куб хуюб хуяк хуяк готово.
Изучать все таки по тексту - статьи, гайды и тп надо.
В видео МОГЛИ БЫ поднимать интересные и дискуссионные темы, на которых текста много и они не точны.
Про архитектуру софта, про разные варианты решения задач и т.п. но этого нету нихуя.
Есть только обоссаное повторение экзамплов или в лучшем случае краткое описание своих проектов. Может на самом начальном уровне это и интересно, но потом хуй знает.
Зачем это смотреть, если можно открыть экзампл в коде и глазами + даташиту его разобрать?
У него вроде дублируется на ютубе все. Статьи у него относительно лучших из имеющихся тоже средние.
Обычно хорошая статья это:
- описание неких кейсов
- описание проблемы
- стандартные варианты решения
- описание проблемы с ними
- абстрактное решение решения
- описание инструмента решения (сабжа статьи)
- примеры с инструментом
- доп возможности инструмента
- выводы и перечисление где может и обычно используется
Хуевая статья это:
- описание инструмента решения (сабжа статьи)
- примеры с инструментом
И большая часть именно такие. А потом люди сидят и говорят что Х - сложно.
Короче читай дихальта =) После него будешь сам изучать все, без ютуба. В этом и годнота его уроков, он отводит не малую часть на абстрактную составляющую, которая вырабатывает у тебя понимание в целом, а не способность тупо скопировать решение.
Есть юсб-камера
Соответственно общается с компом через юсб
Как узнать сколько кадров в секунду она даёт?
Ну типа программа на компе может искуственно нарезать на бОльшее число кадров в секунду то изображение которое есть
Но вот как узнать сколько реально камера кадров в секунду выдаёт?
>О, наверное подходящий тред
Попал пальцем в небо, называется
>как узнать сколько реально камера кадров в секунду выдаёт?
Разобрать, посмотреть маркировку, загуглить
Статьи дихальта. http://easyelectronics.ru/avr-uchebnyj-kurs-postanovka-zadachi.html
Т.к. в студии есть симулятор, в принципе даже железа не надо.
не, ты не шаришь
Ну вброшу тогда наугад вопрос, может кто встречался. Надо в LwIP на STM32 выключить в библиотеке TCP, чтобы код поменьше был. Но если просто в настройках задефайнить LWIP_TCP в 0, то стек начинает давать ошибки выделения памяти с последующим переходом в _exit(). Как пофиксить?
uIP
В STM32F746G-Discovery, ебучие французо-итальяшки, взяли и припаяли вывод VBAT к VDD. Возможно ли отпаять BGA-чипс и припаяв к выводу VBAT тонкую проволочку, зареболлить его и впаять взад?
Есть какие-нибудь мануалы по указателям для умственно отсталых? Хочу познать всю силу этой противоестественной хуйни.
Там нет никакой хуйни. Нет никакой магии.
Блядь, как можно писать на мк не понимая указателей вообще?
Изучи ассемблер какой простенький - AVRа какого, и все на свои места встанет.
>Изучи ассемблер какой простенький - AVRа какого
Нахуй мне ассемблер АВР-а, если я хочу стм32 изучать?
Потому, что ассемблер стм ты охуеешь изучать.
Указатели очень ебаны для нюфагов. Максимально.
А если нюфаги железо и регистры руками не щупали - я даже не представляю насколько они ебаны.
Я начал с асма и когда я первый раз вылез в Си и за исключением некоторого сахара и способов описания данных в принципе понял его за пару дней.
Очень легко обучится Си и даже указателям, но боятся их исползовать.
Это ведет к использованию половины возможностей языка
Что ведет к дерьмовому и макаронному коду, архитектурным проебам.
Что ведет к разочаровыванию и боязни сложных программ.
К тому же, асм это то, что можно максимально наглядно и понятно потыркать в симуляторе и посмотреть что и как выглядит в регистрах.
Это кстати по мне очень важная хуйня, мы мыслим образами и в зависимости от того, и важно насколько хорошо и четко этот образ сформируется.
Написание и наглядное выполнение программы в симуляторе этому помогают.
Дефицит. Аллокейшн. СТМ обосрались.
>Очень легко обучится Си и даже указателям, но боятся их исползовать.
Это конечно та ещё срань, но
>Это ведет к использованию половины возможностей языка
Это как? Указатели не дают интерпретатору+компилятору самому выбрать оптимальный путь оптимизации?
>Что ведет к разочаровыванию и боязни сложных программ.
Примеры будут?
Указатель это не сама переменная, указатель это картинка переменной. Всё.
>Всё.
Это то я понял. А вот все эти телодвижения с разименовыванием, "*" в разных местах, вообще пиздец.
>Указатели не дают интерпретатору+компилятору самому выбрать оптимальный путь оптимизации
Компиляторы довольно тупые, не смотря на все россказни, что нет.
Особенно МКшные,
Особенно когда ты пишешь не некими общепринятыми методами, а велосипедами.
Но это тут не причем. Я говорю про описательные возможности языка, а не то во что оно компилируется.
>Примеры будут?
Примеры чего? Массив указателей на указатели какой нибудь. Не понимая и не чувствуя концепции ты его никогда не будешь по своей инициативе использовать.
Как обезьяна, по халявному промокоду, записался забесплатно на embedded world 2021 DIGITAL и ни разу еще не зашел позырить чаво там происходит. Люди по 550 ойро платят, а я как мудак.
Зашел. STM будет халявные борды раздавать. Нужно только похвастаться своими проектами и попиздеть с ними в чятике. А у меня ни первого, ни знания английского. Блядь. Как в другую вселенную попал.
А ты не делай этого.
Я его съел.
>г д е а н и м е ?
Какой нахуй МАНЯМЭ? Тут вот в ST вакансия есть. Переведите, дохуя серьезные требования? Если архив тредов полистаю, не подойду им?
Пикосекунда в mail.ru
Встраиваемая система — специализированная микропроцессорная система управления, контроля и мониторинга, концепция разработки которой заключается в том, что такая система будет работать, будучи встроенной непосредственно в устройство, которым она управляет. Википедия
Насчет плат - невелика потеря, они в рознице пару косарей стоят, у китайцев плата с h7 - 800 р.
Я себе плату с F405 за 500 р и пару вечеров сделал, когда она срочно нужна была.
Чот я снял розовые очки. Посмотрел стримы всяких ARM, STM, etc., нихуя сногсшибательного. Бубнят чот про свои контроллеры, индусы какие-то, нихуя не понятно. Анонимасы вопросы онлайн пишут, индусы игнорят и нихуя не отвечают. В итоге мне наскучило, так и не понял за что народ платит 550 евриков. Напомнило пасту про
Ну нихуя ты гуру преподавания. В политехе работаешь, кэп?
>будучи встроенной непосредственно в устройство, которым она управляет
Т.е. embedded это все, что не вроде пикрил? Т.е. 98% современной электроинки. Зачем тогда вообще отдельный термин для этого?
В принципе вполне реально, вакансия должна быть годная, денежная. Написано, что есть обучение за счет компании, сытные обедики, компетентный коллектив, личный водитель даже довезет тебя до работки, анончик :з А вот несколько советов, что нужно немножечко подучить:
- Электроника (железо)
- С++, асм
- Линупс и прочие ОС, в рилтайме няш
- Самостоятельность
- Уметь пиздеть с кастомерами
- Уметь делать презентации, чтоб охуенненько было
- Уметь работать в команде
- Иметь беглые английский и немецкий
- Иметь водительские права кат. B
- Магистерскую степень в электронике получить
- 6-10 лет поработать в отрасли
- Очень желательно уметь в микровейв
загони в гугл транслейт, долбоеб, если на слово няше не веришь
если тралиш кста то годно
Так что дерзай, анончик, все довольно несложно, почитай треды на архиваче и иди устраиваться, расскажешь нам потом, как там работается :з
> Переведите, дохуя серьезные требования? Если архив тредов полистаю, не подойду им?
Туда только шерстянных пидорасов берут, ойропа же. У тебя фурсьют есть?
Я весь порос густым волосом и люблю вести себя как животное. Уверен, меня бы приняли.
Ты отлично впишешься в команду, Махмуд, Махмед, Мухаммат и Мухаммет тебя полюбят сразу.
Считай что это любые компьютеры, кроме тех, что общего назначения, ошибешься не сильно.
Отдельный термин указывает на то, что это совокупность электроники и софта.
Электронщик не обязательно встраиваемщик, он может тебе БП или драйверы двигателей какие делать, ВЧ схемы и тп. Но в МК\МП не шарит и уж темболее не умеет их программировать.
Вообще это термин скорее из мира ПО, чем электроники. Когда там идет деление на системщиков, мобильщиков и т.п.
Я, конечно, благодарен за наводку, но вот программировать-то он толком не учит. Это как у всех остальных, с расчётом на то, что читатель способен наокдить ААА игру или САПР, но ему захотелось железяки для прикола подёргать.
Куколка, которая поет песенку маленьким микроконтроллером :з - это ембеддед?
Там дальше есть ввод в архитектуру самый базовый. Но да.
Но!
1) Основные правила пограммирования типо солидов и прочего более чем применимы.
2) Большая часть паттернов применимы и даже рекомендованы (мною лол) не смотря на оверхед по размеру и скорости.
3) По архитектуре вообще инфы нет в интернете по встраиваемкам. Тут блин только опыт. Увы. И оно скорее всего понятно почему - каждое устройство очень сильно отличается от других. Излишняя универсальность архитектуры будет сильно вредить.
бамп вопросу
Подскажи неофиту, чо за хуйня.
Когда мк запитан (всмысле подключены лишь vcc и gnd) от st-link'а - программа, залитая во время отладки, выполняется (мигание диодиком),
Когда запитан от лбп или аккума - нихуя, тишина на выводе (осциллом смотрел)
Лол. У меня есть и знание английского и проект и вопросы по презентахе. Написал чуваку в личку, даже сраную борду не просил. Не удостоился не то что борды, но даже и ответа. На NXP перейду, суки!
А, не важно. После очередного (где-то пятого) переподключения заработало
Хотя я все еще не понял, что это была за хуйня
Опиши подробнее своё железо, это какой-то девкит или самодельная? Ресет и бут как подключены?
Почему blue pill с чипом CS32F103C8T6 стоит дешевле, чем сам чип отдельно.
Я не понял.
Потому что китаец, продающий платы, вынужден конкурировать с кучей продавцов этого популярного товара, а чипы отдельно особо никому не нужны, поэтому на них можно сделать и накруточку для лаоваев.
Потому что это все разные микроконтроллеры. CS32F103C8T6 это китайский клон STM32F103C8T6, очевидно что в чем-то отличающийся от оригинала. На второй картинке у тебя что-то совсем непонятное без логотипа ST.
Нуу, это не совсем по теме треда... у меня stm8s
Самодельный "паучок" под гребенку с минимумом обвязки для старта, все согласно даташиту.
>Ресет и бут как подключены
Напрямую. Для ресета еще дополнительно кнопка с кондером.
Оталдка через iar.
Наверное, просто крокодилы у бп подокислились, а пока шурудил туда-сюда несколько раз, почистились. А акум просто сдохший.
Ща все вроде работает
Мельком в Кубе увидел, что есть поддержка C++.
Кто-нибудь пробовал? Он сильно кастрированный в сравнении, скажем, с C++17?
Это всё быстро въедается в память при регулярном использовании.
Пару месяцев активной разработки и всё усвоится само собой.
>Переведите, дохуя серьезные требования?
Если ты не владеешь языком даже на таком базовом уровне, чтобы это просто перевести, то нет, ты им не подходишь.
Если ты о том кубе который IDE, то в нем обыкновенный gcc. Вот значит и смотри что может gcc.
Однако если ты о кубе который MX, то вопрос бессмысленный.
>Я, конечно, благодарен за наводку, но вот программировать-то он толком не учит
Так не надо начинать знакомство с программированием с контроллеров.
Нужно хотя бы осилить основы на пека, и потом уже уходить в конкретику.
>Вот значит и смотри что может gcc.
Т.е. можно применить всю мощь стандартной библиотеки, с умными указателями, коллекциями и регулярными выражениями?
Вообще охуетб
> Как вкатиться в ёбаный кодинг с полного нуля?
Без курсов не вариант вообще. Причём, дешёвые не бери, но и дорогие тоже. Где-то 30-40 косарей в месяц оптимально. Через полгода в гугл устроишься (шутка в яндекс миддлом только, но не рекомендую - лучше нонейм конторы, там зарплаты, внезапно, выше)
Не благодари
Как это случайно не сделать? Куда жать не надо?
Это будет управление вентиляторами в пеке с замером температур через 18B20 и общением по USB. GPU пока не собираюсь делать, добавил на всякий случай
Пробегитесь глазами, где я мог накосячить?
Все пины проверенны на blue pill, на всех всё работает. Температуры читаются, вентиляторы ШИМятся, пищалка играет музыку.
Вопрос в обвязке микрухи.
учитывая, что все вентиляторы стартуют при разной скважности а некоторым и сглаженное напряжение надо, а не шим, почему бы не завести тахо на контроллер чисто убедиться, что вентиляторы стартовали? Да, учитывая, что ты дергаешь минус, его придется сдвинуть.
Вентиляторы тоже индуктивности, надо защитный диод как у реле.
Usb будет питать комп, а не наоборот, ибо 1117 скорее всего выдаст напряжение выше, чем юсб.
На SWD колодку лучше вывести ресет.
2N7000 по нынешним меркам древность, посмотри IRLML.
Если ты собираешься прошивать через бутлоадер, то имей в виду - -у оригиналов в режиме бутлоадера на jtag пинах подтяжка вверх
>2N7000 по нынешним меркам древность, посмотри IRLML.
А конденсаторы и диоды так вообще, лютая архаика и нужно избавляться от них, ведь это не стильно, не модно, не молодёжно!
Какие зумеры дегенераты, пиздец просто.
Поставь защитные диоды от статики типа usblc6 на юсб и разъемы датчиков.
Я бы поставил электролиты и керамику на 12 В у разъемов вентиляторов поставил, из-за ШИМ и длинных проводов будут пульсации входного тока.
Лучше пропустить 5 В от линейника и от юсб через диоды, чтобы не было лишних токов из девайса в пк и наоборот. Не помню, надо ли подключать VBat.
На 5 Омах включенного 2N7000 рассеется большая мощность, он максимум 200 мА держит. Анон выше прав, рекомендую поставить что-то с низким rdson в районе 0.1 ом и небольшой емкостью затвора.
Какая примерно частота ШИМ? Частота вращения регулируется без проблем?
Буду делать похожую штуку, а с вентиляторами через ШИМ пока не работал.
>А зачем стабилизатор на пять вольт?
Не знаю. Убрал. Из 12 сразу 3.3 теперь будет.
>>454910
>вентиляторы стартуют при разной скважности
У меня одинаковые.
>завести тахо на контроллер
Я не проверял, но мне кажется он не будет работать когда ему питание подают и забирают тысячи раз в секунду. А ещё это мне с каждого вентилятора читать надо, а у меня их до 10.
Да и если не будут работать, будет перегрев и для этого у меня пищалка для сигнала АВАРИИ.
>надо защитный диод как у реле
Поставил.
>Usb будет питать комп
Выпилил +5В с платы.
>На SWD колодку лучше вывести ресет.
У оригинально blue pill не выведено и всё нормально шьётся. Зачем он?
>2N7000 по нынешним меркам древность
Я вообще без мосфетов сидел. Сегодня купил MTP3055VL, буду на них.
>прошивать через бутлоадер
Через ST-LINK
>>454912
>диоды от статики
Плата будет внутри пеки вставлена в внутренний усб, никогда отключаться не будет.
>Я бы поставил электролиты и керамику на 12 В у разъемов вентиляторов поставил
Воооот. Вот тут есть подводный камень. Я тоже так планировал пока не затестил. У меня ШИМ 20кГц
Мосфет открывается и кондёр моментально заряжается. И у меня всегда вентилятор крутится на 100%
Там либо частоту увеличивать, либо даже не знаю. Короче ну его нахер.
Но на всякий случай места под кондёры добавил.
>надо ли подключать VBat
Но это же питание от батарейки для часов. По моему.
>рекомендую поставить что-то с низким rdson в районе 0.1 ом
Взял MTP3055VL (Rds): 0.18 Ohm
>Какая примерно частота ШИМ? Частота вращения регулируется без проблем?
20кГц. Тестил на 140мм вентиляторах, которые в корпусе будут стоять, всё нормально. Раньше на attiny13a делал ШИМ 27кгц, там тоже нормально всё работает. Только там получилось, что вентилятор начинает вращаться при ~80% заполнения ШИМ. Хотя там был транзистор с оптопарой по моему. Но я и не против, это всё в коде прописывается.
Напихал ещё предохранителей на всякий случай.
Пойду разбираться дальше как работает кикад и разводить это всё.
>А зачем стабилизатор на пять вольт?
Не знаю. Убрал. Из 12 сразу 3.3 теперь будет.
>>454910
>вентиляторы стартуют при разной скважности
У меня одинаковые.
>завести тахо на контроллер
Я не проверял, но мне кажется он не будет работать когда ему питание подают и забирают тысячи раз в секунду. А ещё это мне с каждого вентилятора читать надо, а у меня их до 10.
Да и если не будут работать, будет перегрев и для этого у меня пищалка для сигнала АВАРИИ.
>надо защитный диод как у реле
Поставил.
>Usb будет питать комп
Выпилил +5В с платы.
>На SWD колодку лучше вывести ресет.
У оригинально blue pill не выведено и всё нормально шьётся. Зачем он?
>2N7000 по нынешним меркам древность
Я вообще без мосфетов сидел. Сегодня купил MTP3055VL, буду на них.
>прошивать через бутлоадер
Через ST-LINK
>>454912
>диоды от статики
Плата будет внутри пеки вставлена в внутренний усб, никогда отключаться не будет.
>Я бы поставил электролиты и керамику на 12 В у разъемов вентиляторов поставил
Воооот. Вот тут есть подводный камень. Я тоже так планировал пока не затестил. У меня ШИМ 20кГц
Мосфет открывается и кондёр моментально заряжается. И у меня всегда вентилятор крутится на 100%
Там либо частоту увеличивать, либо даже не знаю. Короче ну его нахер.
Но на всякий случай места под кондёры добавил.
>надо ли подключать VBat
Но это же питание от батарейки для часов. По моему.
>рекомендую поставить что-то с низким rdson в районе 0.1 ом
Взял MTP3055VL (Rds): 0.18 Ohm
>Какая примерно частота ШИМ? Частота вращения регулируется без проблем?
20кГц. Тестил на 140мм вентиляторах, которые в корпусе будут стоять, всё нормально. Раньше на attiny13a делал ШИМ 27кгц, там тоже нормально всё работает. Только там получилось, что вентилятор начинает вращаться при ~80% заполнения ШИМ. Хотя там был транзистор с оптопарой по моему. Но я и не против, это всё в коде прописывается.
Напихал ещё предохранителей на всякий случай.
Пойду разбираться дальше как работает кикад и разводить это всё.
Шунтировать вентиляторы конденсаторами нахуй не надо, особенно если ты собираешься использовать ШИМ!
Диоды 1н5402 - обычные выпрямительные, они не предназначены для работы в цепях, где частота будет выше килогерца-двух.
60в транзисторы для коммутации 12в - перебор, но тут каждый дрочит, как он хочет. Можно и на 1.2 киловольта ставить, только нахуя?
Есть M1 пикрелейтед. Ну ещё есть BAT54C / BAT54S https://www.vishay.com/docs/85508/bat54.pdf
Что из них ставить?
>60в транзисторы для коммутации 12в - перебор
Пришел, попросил N-канальные мосфеты для 3В логики, мне продали. Ничего больше не знаю.
>Что из них ставить?
Ничего, малосигнальные шоттки там вообще не нужны, а М1 какой смысл? У тебя в вентиляторе уже всё есть.
Есть три вопроса по основам.
1.Я хочу написать мигалку 1 сек, начну с проекта в кубе, но писать буду не в нем.
Как правильно создать файл чтобы все правильно скомпилировалось, слинковалось и собралось?
Хочу получить что-то типа make файла + .c .h и все., а на выходе бинарник. как с avr.
2.Как всунуть в проект .s asm листинг чтобы использовать функции из него? мне нужно cmsis dsp, пришел с пердуины, в которой баг, в котором никто не разобрался (виснет bluepill и начинает пульсировать PC13, при этом это не просадка питания)
3.Как пользоваться этими ебаными компиляторами, которых целая КОЛЛЕКЦИЯ блеать (gcc)?
Хочу руками написать все что мне нужно один раз чтобы разобраться как все устроено, пришел с ардуины с где нахуевертили и не разобраться.
4.Куб тормозное говно, хочу в блокноте писать.
Я имел в виду конденсаторы по питанию между 12 В и землей, не параллельно вентилятору. Мелкую керамику у каждого разьема, и электролит на сотни мкф с низким esr общий на плату. Можно без них, но тогда большая часть пульсирующего тока ШИМ потечет по проводам до блока питания, создавая пердеж и помехи на линии питания 12 В.
>создавая пердеж и помехи на линии питания 12 В
Пердёж - это твои потуги на двачах, нормальные люди контролируют скорость открытия и закрытия транзисторов и радуются жизни. Хотя, куда тебе до такого? Ты ведь даже индуктивность провода длиной 10см посчитать не сможешь. Твой уровень - "максимально прямоугольные и крутые фронты", ибо так надо, потому что потому, да?
>по основам.
Ебать ты зелёный, открываешь куб, выбираешь свой МК, назначаешь конфиг выводов и собираешь клок-три, дальше генеришь файло и мейкфайл. Усё, готово, закрыл куб и радуйся жизни, он уже не нужен.
Тут уже понабежали советчики и все разъебали небось, но скажу от себя.
- Не делай повороты линий без отступа от рисунка компонента, как на пик 1. Потом при перетаскивании будет боль и вообще выглядит уебищно.
- Все что можно использовать стандартное - используй стандартное (пик 2). В либе есть спец символы питания 3.3В.
- Различай питание и земли с пеленок, потом легче будет. Даже если у тебя их по 1 штуке в проекте.
- Наименование компонента это его наименование. Если под транзистором пишется его модель, то под разъемом - модель разъема. То что это УАРТ можно показать как J_UART или комментарием.
- Никто не пишет Ohm (вроде) есть наше (не знаю как) и забугорное R\K 100R 0R01, 1K2 и прочее.
Продолжение.
- Схемы читаются слева направо, сверху вниз. Не будь уебком (пик 1)
- Элементы которые должны находится близко к другому компоненту - рисуют прям около него (пик 1) у тебя должен прям у МК торчать. ЛИБО иметь подпись что он находится максимально близко к компонент-нейм
- У затвора мосфетов должен быть пулап\пулдаун или во время инициализации МК - состояние мосфета будет неопределенным. (пик 2)
Даже сюда попали какие то лудитные дегенераты. Ну иди на ГТ приемники собирай мудило.
Вот такие мудаки наделают схема на своем говне, а потом когда заказчик сидит и охуевает от стоимости и наличия неликвидного говна они обычно тихо сьебывают и увольняются, что бы потом жрать стекломой и пердеть в подливе про зумерков.
Не слушай таких мудил. Если целесообразно и возможно поставить что то современное ставь.
>>454899
- Не лепи компоненты друг на друга. Будут проблемы с редактирование. А еще бывает проебываться соединение, выглядит что вроде соеденины а по факту - нет. Потом будет косяк при разводке.
Всегда должна быть зеленая линия между компонентами. (пик 1)
- Не забывай что микры должны иметь под боком байпас конденсаторы. У тебя их нет на схеме.
>Даже сюда попали какие то
... зумерки, которые всё, что освоили, это поливать говном собеседников в интернетах.
"неликвидные" 2н7002 и прочее до сих почему-то ставят везде и всюду, хинт - сот23-3 с маркировкой 702 это 7002, они активно производятся и им далеко до статуса NRND.
Но это только не у тебя, в твой реальности это не так, у тебя в реальности какой-то стекломой, какие-то заказчики с говном.
>Будут проблемы с редактирование. А еще бывает проебываться соединение, выглядит что вроде соеденины а по факту - нет
Ебать, что это за проблемы, это какой-то игл или что-то вроде, где не завезли DRC? Или это ты не осилил DRC? Наверное, второе, ведь тебя и на спеллчекер не хватило.
Переделаю.
>>455081
>используй стандартное (пик 2)
>Различай питание и земли
Но это и есть питание из кикада. Там у всех положительных питаний такая стрелка. И земля тоже оттуда.
>>455084
>выглядит что вроде соеденины а по факту - нет
KiKad так не разрешает. Он не даст создать плату если что-то не соединено. Но линии сделал.
>байпас конденсаторы
Я с blue pill перерисовывал https://freeelectron.ro/wp-content/uploads/2019/12/blue-pill-schematic.png
Там ничего такого нет. Там 4 керамики на 4 пинах питания, я их добавил.
Мне на 4 питания по электролиту ещё добавить надо?
Там кстати ошибка, у 8мГц кристалла нет земли, а у J-Link разъёма неправильно пины подписаны. На микрухе SW на разъёме SWD.
>>454911
Не надо мешать в одну кучу разработки на поток и поделки радиолюбителей.
Когда китайцы гонят серию 1кк штук, им каждый цент важен. Когда оп идет в радиодетали, где оба условно стоит два рубля, почему бы ему и не взять с меньшим RDS?
Да пусть даже и 10р стоят вместо двух, такая большая сумма, что даже с земли влом будет подобрать, а уж для хобби тем более не жалко.
>KiKad так не разрешает
Разрешает.Пик 1-2
>Я с blue pill перерисовывал
>Там ничего такого нет.
Пик 3.
А в офф апноте есть =) Байпасы они сделаны (у тебя на другой странице оказались почему-то. А вот тантал зажали.
Учти что они должны быть максимально близки к выводам питания и земли, создавая наикротчайший путь.
>>455091
Стекломойный придрался в мосфету и не понимает, что его обоссывают не за мосфет, а за проспиртованные мозги и взгляды.
>Стекломойный
Хватит проецировать свои реалии на всех. Тебе показали твоё место, обтекай.
В след. раз лучше почитай про NRND / Obsolete и прочие статусы, а потом уже пиши.
>>455107
>почему бы ему и не взять с меньшим RDS?
Да мне похуй, что кто куда и как покупает и ставит. Меня забавляет следование мантрам, вроде "зашунтировать электролит плёнкой-керамикой", диод для "ЗАЩИТЫ от выброса ЭДС" влепить, обсыпать плату ненужными конденсаторами, потому что это круто и "помехи по проводам не гуляют".
Это обычный каргокульт, когда ардуинщики не могут посчитать и просто делают, как им советуют такие же дегенераты. Типо без горы кондёров-диодов джигурда-кладбище. И обязательно покупать самые новые детали.
Давай сюда свои рассчеты мань.
Я хуй знает где ты там работаешь, что у тебя считают лишнюю керамику за ноль центов.
У тебя у самого каргокульт из совкового КБ, который ты проецируешь.
Никто не будет строить матмодель вибратора и никто не будет морочится с экономией 0.1 цента за керамику блядь.
Поэтому да - ставить, потому, что ОБЫЧНО СТАВЯТ, и это норм решение.
С всякой мелкосерией и домашней хуйней это вообще даже обсуждению не подлежит.
Ебануться, кадр, образованный, расчитываюционер. Охуеть вообще. Сейчас буду сидеть байпас капаситры считать. Пиздец.
Каких только шизоидов на двачи не заносит.
>диод для "ЗАЩИТЫ от выброса ЭДС"
Ебать, а с этим-то что не так?
Ну иди попробуй к своей ардуине релюху напрямую зацепить, без защитного диода.
>лишнюю керамику
>>455145
>за ноль центов
>>455145
>Никто не будет
Оу, вот это фантазии, бесплатные компоненты, бесплатное место на плате.
Не знаю, хватит ли у тебя понять, о чём тут пишут:
https://www.ti.com/lit/an/slyt187/slyt187.pdf
https://sh.kemet.com/Lists/TechnicalArticles/Attachments/11/2010-04 CARTS - Can ESR Be Too Low.pdf
Поэтому скажу просто - дохуя кондёров или кондёры с сильно маленьким ЕСР дестабилизируют импульсники и линейные регуляторы.
>>455145
>Поэтому да - ставить, потому, что ОБЫЧНО СТАВЯТ, и это норм решение.
Ардуинщик, плиз, не надо экстраполировать свою безграмотность на других. Обычно делают "по чертежу", чтоб не было "пиздежу". Т.е. считают, моделируют и делают так, как надо, а не как "обычно кто-то где-то делает".
Не, ну для хоббистов законы не писаны, они не могут посчитать индуктивность провода, помножить на di/dt и оценить, какое будет падение напряжения на проводе и стоит ли городить кондёры. Тут как бы норм, ведь в голове ветер.
>Ебать, а с этим-то что не так?
Для обычных бесколлекторных комповых вентиляторов это не надо, ведь это не релюха.
Лол и в правду пишет. Не видел ни разу. Ок.
Была у них бага (фича) не помню точно что, но некоторые символы из стандартной либы имеют выводы какого то стандартного типа. Не напиздеть, ВНУТРИ НЕ ПОДКЛЮЧЕН, и когда ты уводишь в него линию, она будет просто отсутствовать на PCB и ничто тебе не сообщает. Ща не найду уже...
Почему не надо?
Чисто приниципиально возможно угандошить вентилятор если его быстро крутить, у меня так улитка от дорогого ноута сгорела когда я ее раскрутил компрессором.
Я сделол.
Плата однослойная, красный слой - перемычки. У микрухи дорожки 0.3мм, остальные 0.5мм и 1мм ибо ЛУТ и убитый офисный лазерный принтер.
Всё правильно? Нет? Я второй раз это разводить не буду.
Развокда питания и землю просто пиздец.
С количества конденсаторов, ЗАШУНТИРОВАННЫХ КЕРАМИКОЙ посмеялся.
Спасибо за контент.
Ты что здесь забыл и где ты его здесь рассчитывал видеть? Если так хочется - бери и трассируй плату, там шелкографией сделай анимешную картинку.
Землю лучше было бы залить полигоном и захуярить на двухслойном текстолите.
Хватит и одного электролита на плату.
С управлением от МК транзистор долго находится в приоткрытом состоянии.
Тут это не страшно - ток и частота маленькие, транзистор на 60 В с небольшой емкостью затвора.
На больших токах и частотах понадобятся транзисторы с оптимальным соотношением rds и емкости затвора, нормальный драйвер, фильтрующие конденсаторы на нужные частоты и хорошая топология.
Разумеется, нужен баланс между малым временем переключения и ровными переходами без звона, выбросов и приоткрывающихся мосфетов.
We did it reddit!
Не учитывая кучу перемычек и разрезанных дорожек из-за косяков в схеме и корпусах всё работает!
Пищалка пищит, вентиляторы крутятся, температуры читаются, USB определяется как COM порт и передаёт данные. Пока STM32 очень нравится.
Дальше код, корпус, установка, там уже сам разберусь.
Всем спасибо за помощь.
бамп
Проблема залития землей на таких платах - легко соплю на этот полигон повесить, при пайке дорожки.
Потом его еще размазывать сидеть.
Еще проблема, что бы он на ЛУДе каком не уебищно проявился.
Дорожки сложнее покрасить, если обосрался и пор
Это он на фотке светлый. А так это тёмный гетинакс, от которого отлетают дорожки и который режется ножницами обычными.
>>455399
Если прошивку, то её ещё нет.
Если проект кикада, то на https://anonfiles.com/73aelfe4s6/FanControlSTM32_rev1.0_FINAL_TODO_fixes_zip
Все ошибки подписал как TODO.
>Если прошивку, то её ещё нет.
Я подумал, что если у тебя уже и ЮСБ работает, и данные передаются, и всё крутится-вертится - то ты уже всё заебенил. И охуел от твоей скорости разработки %)
>Это он на фотке светлый.
Там на одной из фоток в отверстии внизу по середине платы видно остатки стекловолокна (белый пух).
Гетинакс - это же бумага со смолой, там такого быть не может, а текстолит - ткань на смоле, стеклотекстолит - стеклоткань на смоле.
Так USB COM порт включается парой кликов и в CubeIDE и в ArduinoIDE. Самому ничего делать не надо. Пару ног подёргать для проверки ещё проще.
>>455538
Слушай, а может и стеклотекстолит. Но дорожки от него отлетают. Да и ножницами обычными я его резал, он мягкий какой-то.
У меня двусторонний был, я там провод припаивал и с трудом отрывал. А тут сами отваливаются от нагрева.
>CubeIDE
А оно код генерит так же / такой же, как и STM32CubeMX или пизже? Если несложно - таки закинь куда-нибудь нагенеренный код.
>>455563
>а может и стеклотекстолит. Но дорожки от него отлетают
Они по качеству отличаются, я как-то покупал в местном магазе какой-то односторонний - фольга плохо держалась. Двусторонний разной толщины - всегда был лучше.
Компилить же твой говномакаронный код.
В диспетчере устройств отображается как USB Serial. Что делать-то?
Установить на принтер плату. Но экрана у меня нет, могу только через USB увидеть жива она или нет. Но все управлялки работают через виртуальный компорт.
Гугл сказал mks robin e3d это CH340.
https://zyltechfile.s3.amazonaws.com/MKS+ROBIN+DataSheet.pdf
Там есть подводный камень.
Ты ставил на CH340 официальный драйвер? Если так, то всё плохо. А скорее всего это так, раз его видно как USB Serial
Там защита от пиратства и они блокируют китайские копии чипов и ты уже не сможешь им пользоваться пока не вычистишь всё из системы. Я один раз так наебался, потом винду переустанавливал.
Если ещё не ставил, ищи васянские сайты и ставь старые версии CH340 оттуда.
Кажется я рано тебя испугал и защита была у PL2303 а не CH340.
В любом случае в той пдфке написано, что нужен CH340.
Да все получилось. Правда написано была Instal failure, но контроллер определился. Меня поначалу тоже выкинуло на CH340, но там начало связывать с ардуинами и я подумал, что это какая-то ошибка, да и для ардуин у меня уже были установлены дрова.
Впервые проектировал корпус по 3д модели платы. Теперь всегда так делать буду.
Распечатал, поставил, подключил, работает.
Кто молодец? Я молодец. Только прошивку всё ещё не написал.
>Распечатал, поставил, подключил, работает.
Геморно иметь принтер? Долго добивался качества приемлемого? Какая себестоимость материалов на такой корпус?
>Посоветуйте книгу годную по этим вашим стм32. Допустим у меня есть голый стм и программатор за 5 долларов.
Я вкотился весной прошлой с бэкграундом обычного десктопного байтоёба. Кроме даташита и пары статей с хабра ничего не надо.
>Геморно
Какой возьмёшь, такой и будет. Я брал себе анет, который надо постоянно доделывать и возиться, но я ради этого его и брал. Вон до чего доделал >>447064 →
>качества приемлемого
Если хочешь качество, покупай SLA принтер. А так ставишь низкую скорость печати, слои 0.05-0.1мм и дорогой филамент, у которого стабильный диаметр и получаешь супер крутую печать. Но хуже чем SLA. Но там ещё можно по ацетоновой бане угореть. Но если хочешь печатать аниме фигурки, бери только SLA.
>себестоимость материалов
Печатаю дешманским фдпластом по 850р/кг, этот корпус это ~50 грамм, получается 42 рубля. А хочешь печатай бутылками бесплатными.
>>456020
Плагин StepUp на FreeCAD который потом может экспортировать плату в .STEP и там уже открывай чем хочешь.
Я сейчас посмотрел почём я брал фдпласт, он по 568 рублей за кило был.
>Я брал себе анет, который надо постоянно доделывать и возиться
Как на такое говно не попасть? Слежу за принтерами со времён reprap, но очень не хочу ебаться с доводкой. Даже думал фрезер взять, но дома это пыль и стружка и шум.
>этот корпус это ~50 грамм, получается 42 рубля.
Терпимо
>А хочешь печатай бутылками бесплатными.
Ух бля! Не сарказм, работает?
Ну и нахер ты голую микруху купил?
Покупай blue pill или распаивай его обвязку для своей микрухи и качай arduino ide. А дальше там нагуглишь уроки.
>Проблема в том, что пхп-макака, байтойобством не занимался.
Тогда пока отложи контроллер и попробуй на нормальном (компилируемом) языке писать хеловорды и задачки из учебника.
Нет, они пилят её потому что хотят заработать денег на вкатунах в электронику.
Кстати, "паялы" обычно очень плохие кодеры, у них мозг по-другому заточен.
Может, сначала С, а потом куб от производителя? Куб самое то для новичка.
Ардуина в определенных ситуациях довольно тормозная и ресурсоемкая, и ты в это упрешься рано или поздно.
На С и регистрах в узких местах можно добиться на порядок лучшего быстродействия и меньшего объема кода.
Кроме того, куча других МК не поддерживает ардуину и пишется на С.
Докладываю. Сделал прошивку, запустил, и это 10 ИЗ 10, ГОСПОДИ, 10 ИЗ 10!
Раньше в играх у меня нагревался воздух в корпусе вместе с корпусом и если не открутить боковую крышку то через 20 минут пекарня вырубалась.
Теперь корпус холодный как лёд и вентиляторы вращаются как надо, а не как дебильная материнка их вращала процентов на 10 всегда.
Проект закончен, я доволен, STM32 крута. Но я не понял где покупать голые STM32G030C8T6. Они на али дороже, чем готовые платы blue pill с ними. Хоть покупай и выпаивай.
>перемаркер гд32
Я читал отзывы на всякие CS32 и там пишут, что не работает отладка. Я свою дешманскую блю пилл пробовал через CubeIDE и в ней всё работает. Получается действительно надо покупать блю пилы и выпаивать. Там точно всё будет работать.
>Покажи исходники
Я вот говорить не стал, но я не умею в C, я прочитал пол книги по C++ и ничего не запомнил, я пытался attiny13 кодить в атмел студио с регистрами и этим всем и мой код вытворял что-то рандомное.
Я пишу в ардуино иде копируя куски кода из гугла. Всё работает, я доволен.
https://anonfiles.com/Pf55Y28bt2/FanControl_rev1_7z
>Я читал отзывы на всякие CS32 и там пишут, что не работает отладка.
Я пробовал дебажить ГД32, который стоял на "блю пил", он был заполирован сверху и покрашен, я протёр ацетоном и маркировки не стало. Про то, что это ГД32, я узнал из гугла, когда гуглил ID, что показал OpenOCD. Дебажилось - брейкпоинты ставились, память смотрелась, код прошивался.
Я их отпаял и запаял кошерные STM32F103, ну его нахуй ебаться с непонятными багами, наткнёшься на какую-нибудь проблему или отличие в китайском копии - заебёшься разбираться, то ли ты сделал хуйню, то ли контроллер глючит.
>>456323
>Я пишу в ардуино иде копируя куски кода из гугла. Всё работает, я доволен.
В целом всё хорошо, если не приёбываться к мелочам. Я вообще ожидал там код от CubeMX, интересно было посмотреть на работу с USB, а у тебя в коде по юсб вообще ничего нет.
Конечно
>кошерные STM32F103
Где и сколько они стоят?
>юсб
Включается галочками в ардуино иде. После этого Serial.println() пишет всё в USB COM порт. Самому никакой код писать не надо, всё само работает.
Текстолит это, просто хуёвый.
В старых тредах по стм был разбор. Гд вроде без проблем оказались, в чём-то даже пижжее стм но это не точно. Вот cs — говно.
Ты когда-нибудь делал двустороннюю плату с 100+ переходными отверстиями в которые надо паять проволочки в каждое? Я делал.
Вот пик1 - 30+ переходных отверстий, очень маленькая, улетела в мусор потому что отзеркалил не тот слой и не заметил. Пришлось делать заново.
А вот тебе пик2,3 - всё было просверлено и запаяно и на этапе отладки оказалось что ничего работать не будет. В мусор.
Что ты знаешь о заёбе?
Эта плата управления вентиляторами это прям супер легко, по сравнению с тем, что бывает. Ты прям затриггерил меня.
Пиздец. Меня ломает уже от 10 отверстий.
>Гд вроде без проблем оказались, в чём-то даже пижжее стм но это не точно. Вот cs — говно.
Там где-то было - чип флэша отдельно, а на контроллере вместо флэша очень много оперативки и при буте туда пишется содержимое флэша. Если не путаю.
но это всё хуйня, это же китайцы, то, что они делали год назад, не факт, что будут завтра. вчера у тебя работало, с новым контроллер - работает, но не всё или не всегда.
>>456368
>Где и сколько они стоят?
Пару брал года два назад, их было дохуя и везде. И пару выпаивал с рабочих железяк. Вообще ситуация какая-то не очень, я спалил stm32f407vet6 и убил ещё одну дев-борду. В местных магазах все контроллеры разобрали. Дефицит, блин.
Наверное, тупой вопрос задам. Сам никогда не делал платы, даже не пытался. Поясни, почему в качестве первой итерации не сделать макет на копеечной односторонней макетке с али? Ну да, будет ворох проводов, перемычек, зато в процессе все проверишь, перепроверишь и переделаешь косяки. А потом можно и плату развести.
Я делал. Каждый раз думаешь "да чего там паять, сделаю за 20 минут" потом сидишь весь день страдаешь. Если какой-то резистор перепутал его очень больно менять, все провода отлетают от места пайки. Ещё я часто путал ноги микрух, потом сидишь пытаешься понять куда что.
И главное схемы вообще нет никакой, только в голове, через год всё забудешь. Так ещё и корпус хрен сделаешь с первого раза. Всё замерять, подгонять.
Вот пик 1 я делал платку на attiny13 ещё и ноги её гнуть надо чтоб в 2.54 шаг попасть. Я так намучался с ней. Аж вктился в 3д сканирование телефоном, чтоб по скану корпус сделать. Ну и паять это просто не удобно. А ещё если понадобится вторая такая плата, придётся всё с нуля делать.
По крайней мере у меня так.
А если ЛУТ - накидал схему, развёл плату, распечатал, протравил, просверлил и паять. И тут я узнал о плагине HTML BOM на кикад. Пик 2,3. Ты просто наводишь мышь и видишь что, сколько и куда паять. Да это же рай какой-то просто. А корпус вообще по 3д модели делается >>455996 всё почти идеально подходит с первого раза.
>в процессе все проверишь, перепроверишь и переделаешь косяки
А вот это я делаю на бредборде (который без пайки). Собрал куски схемы, проверил, переписал в кикад. Потом ноги микрухи проверил, подписал их в кикаде, готово. Только я в кикаде нумерацию ног корпусов не проверил ну и USB не туда подтянул. А так всё отлично.
>Каждый раз думаешь "да чего там паять, сделаю за 20 минут" потом сидишь весь день страдаешь.
Люто-бешено двачую.
Он тебе не про это.
Он про модульную концепцию - если у тебя какой то хитровыебанный хз, силовой каскад в плате - собери его отдельно протестируй. Потом уже ебаш плату с шестью.
Я хуй знает - не взлетело в железе это какой-то проеб на этапе проектирования платы.
Бывает не взлетает из-за того, что требуется другое решение, но это уже не по теме.
Для того что у тебя на пике действительно не нужны никакие макетки, можно на бредборде набросать и проверить. Низкоскоростная цифровуха не чувствительна к такому. Вот силовые, аналоговые и высокочастотные утехи на бредборде если и заработают, то крайне хуево.
Впрочем, все-равно ты привел хороший пример как делать НЕ надо. Тебе, видимо, жалко "дорогую" двухстороннюю макетку с переходными отверстиями и поэтому пытаешься уместить кучу всего в узкий огрызок. Это неправильный подход, конечно запутаешься в проводах. Лично я обычно стараюсь заранее продумать компоновку и, прости г-споди, разводку, чтобы было как можно меньше пересечений и минимальная длина.
Но всего учесть невозможно и потому годно получается не всегда. Тоже покажу адовую махарайку с тини13. Изначально планировалось раза в 2-3 меньше деталей, в симуляторе все было заебись, но в реале пришлось все сильно усложнять, в итоге получилась адовая плотность монтажа. Ну, почти все детали и соединения все же видно, и у меня есть полная схема этого трешака, сделанная сразу по достижении требуемых результатов. Если бы разводил и заказывал плату, с изначальной схемой, все улетело бы в мусорку, и потребовалось бы еще минимум 2-3 итерации с правками. Даже если делал бы платы сам, все-равно убил бы кучу времени и денег на доработку. А так обошелся одним макетом, пусть и пришлось излишне поебаться.
С некоторых пор в 9 из 10 случаев пользуюсь именно односторонними макетками. Они реально копеечные, их вообще не жалко, а с моим стилем монтажа от переходных отверстий толку все-равно нет, напротив, больше неудобства.
А для разводки плат перешел на EasyEDA, мне удобно, там сразу доступны готовые пользовательские библиотеки практически для всего.
Я обычно использую ЛУТ для макетирования силовых схем и соединенные друг с другом макетки soic/sop/qfp для не очень быстрых аналоговых.
Для импульсников альтернатив ЛУТ просто нет, там важна топология и полигоны. Переходы можно делать заклепками М0.9 или проволокой, так что получается близко к нормальной двухслойке.
Макетки позволяют взять доступные smd корпуса, напаять smd-обвязку из книг иногда навесным монтажом, лол, и потом использовать микросхемы с обвязкой в следующих проектах, если понадобится.
Впрочем, тут макетка с отверстиями тоже хороша, все зависит от корпусов имеющихся компонентов.
>пытаешься уместить кучу всего в узкий огрызок
Иначе оно не влезет туда, где оно должно стоять. Пикрелейтед.
>пик 4
Это какие-то безумные умения, не доступные простым смертным.
Мне намного проще пару плат вытравить, чем пытаться сделать такое.
>EasyEDA
Я вот тоже на нём сидел, но он становится всё хуже и хуже. Они пытаются добавить новых фич и на каждую новую ломают 2 старых.
Ещё мне нужно было экспортировать 3д вид платы, а там нельзя.
Ещё меня бесила путаница с корпусами. Где чей, кто автор, куда что. В KiCad это сделано намного удобнее и создавать свои копии под ЛУТ (чтоб диаметр 0.3мм) очень легко и быстро. Они ещё и хранятся просто как файлы в папках, можно перенести куда хочешь.
>Если бы разводил и заказывал плату
Ну вот до заказа как раз нужно обязательно самому травить плату, чтоб точно знать, что всё работает. Одними макетками не обойдёшься. Если плата не 4х слойная или BGA конечно
И кстати двусторонние макетки вообще не дорогие. Пик2.
Только если будешь брать, не бери 5070 у них очень маленькие отверстия. Бери 8060, там нормально. По крайней мере у моих так.
>>456509
Нога PA11=USBD-
Нога PA12=USBD+
USBD- подтянуть 1.5кОм к 5В.
И всё работает. COM порт определяется, данные передаются.
>Ну вот до заказа как раз нужно обязательно самому травить плату, чтоб точно знать, что всё работает.
Суть jlcpcb и прочих таких как раз в быстром прототипировании, они и в рекламках у себя об этом пишут.
Но как вы понимаете теперь мне нужно 10 таймеров, а их всего 3. Какие могут быть решения? Чувствую что не использую и трети возможностей этих таймеров.
Минимум 2 недели.
>Иначе оно не влезет туда, где оно должно стоять. Пикрелейтед.
Признаю, ошибся в своих умозаключениях. Базару ноль.
>Это какие-то безумные умения, не доступные простым смертным.
Примерно после 10й махарайки в таком исполнении лепишь подобное относительно шустро, нагромождение смд - не проблема, если зрение хорошее и рука твердая. Действительно безумные умения в той махарайке - мистический проеб последнего куска листовой меди, с последующим изобретением радиаторов из проволочек и припоя.
>Я вот тоже на нём сидел, но он становится всё хуже и хуже. Они пытаются добавить новых фич и на каждую новую ломают 2 старых.
Частично согласен. Вообще, планировал освоить кикад, но я ленивый.
>Ну вот до заказа как раз нужно обязательно самому травить плату, чтоб точно знать, что всё работает.
Мне почти всегда удавалось обходиться макетами, в плане проверки и отладки схемотехники. Конечно, главное - потом не обосраться в разводке платы, перепроверить все перед заказом и оплатой. Ту же 3д модель посидеть, покрутить, скурить тщательно.
Про ЛУТ - я всегда боялся связываться. Ладно бы старые гигантские детали, но мне действительно часто нужны пятаки и дороги в районе 0.2-0.3 мм. Думаю, нужно проебать дохуя времени и денег перед тем как отладишь технологию и начнет получаться стабильный результат без косяков. Так-то у меня есть старый ламинатор, есть пару лазерников. Вроде и нужны только текстолит и хим. реактивы. И еще сверлилка. Где и почем покупаешь материалы? У меня в мухосрани за один 20х30 см кусок одностороннего 1.5 мм FR4 пару лет назад просили в районе 550 руб, я ебал такие цены!
>>в быстром прототипировании
>2 недели для россии? Или сколько у них там?
>
Почему рашковане местные такой биз не замутят? Ничего сложного не видно
Вместо ЛУТа смотрю на западе делают на фоторезисте + вместо проектора используют 3D принтер с УФ лазером вместо сопла
Можно от 1 рабочего дня. Но цена за одну голую плату тебя не обрадует.
>Про ЛУТ - я всегда боялся связываться.
Чё там бояться-то, хоссспаде. Прям как девственники из б. Просто попробуй.
>Ладно бы старые гигантские детали, но мне действительно часто нужны пятаки и дороги в районе 0.2-0.3 мм.
Делаю лутом дороги 0,25 мм в основном. Просто используй термотрансферную бумагу, а не обложки журналов/фотобумагу/ещё какое найденное под ногами говно. Может и получиться с помощью говна нормально сделать, но без гарантий.
>Думаю, нужно проебать дохуя времени и денег перед тем как отладишь технологию и начнет получаться стабильный результат без косяков.
Нет. Просто делаешь и всё.
>Так-то у меня есть старый ламинатор, есть пару лазерников. Вроде и нужны только текстолит и хим. реактивы. И еще сверлилка.
Сверлилка только если ты собираешься в отверстия монтировать дохуя. Простверлить десяток дырок под электролиты по питанию хватит не сильно бьющего шуроповёрта и тонкого сверла с али. "Реактивы" хлорное железо опасны только возможностью ушатать одежду неотстирывающимися пятнами и продаются в любом магазине для радиогубителей.
>Где и почем покупаешь материалы?
У китайцев же. Двухстронний текстолит марки "какой-то" отлично подходит для подавляющего количества махараек без высокого напряжения или частоты. У них же и спецбумага покупается.
Вообще, после того как пристрастился к луту, не понимаю тех, у кого не получается. Процесс максимально простой же. Не получиться может только если используешь говно вместо бумаги, или чего-то не понимаешь и грубо нарушаешь технологию. НЕ ЗАБЫВАЙ ОБЕЗЖИРИВАТЬ ПЛАТУ БЛЯТЬ!
>планировал освоить кикад, но я ленивый
Очень сильно удивишься насколько он простой.
>есть старый ламинатор
Я утюгом перевожу так то. Прокладываю салфетки в несколько слоёв и ~минуту жарю.
>Вроде и нужны только текстолит и хим. реактивы
Ещё нужна термотрансферная бумага. Очень советую купить, а не журналами делать. https://www.aliexpress.com/wholesale?SearchText=pcb+thermal+transfer+paper
А травлю хлорным железом. Пытался перекись из аптеки+лимонная кислота из магазина+соль но она мне дорожки отрывает, слишком сильно бурлит. А так тоже работает.
>Где и почем покупаешь материалы?
На радиорынке местном. Вот купил двусторонний стеклотекстолит 32см*52см за ~250 рублей. Это наверное ещё советские запасы продают. Он весь грязный и царапанный не глубоко, но зашкурил его и тонер липнет без проблем.
Хлорное железо уже не помню почём брал.
Так то если у тебя ламинатор есть, можешь угореть по фоторезисту. Говорят одни профиты. Только там ещё соду будешь покупать, фоторезист, плёнку для принтера, УФ лампу, и наверное что-то. Но с этим можешь уже и шелкографию дома делать.
А у меня ни ламинатора, ни нормального принтера, который чёрные полигоны печатать может.
>НЕ ЗАБЫВАЙ ОБЕЗЖИРИВАТЬ ПЛАТУ БЛЯТЬ!
Вот тут я хочу добавить. Я шкурил текстолит, а потом протирал растворителем для краски и у меня дорожки вообще не клеились.
А стал просто сухой салфеткой протирать зашкуренную плату и всё отлично переводилось. Сейчас протираю изопропиловым спиртом и всё хорошо.
В общем можно чем-нибудь не тем протереть, а потом не понимать почему у тебя тонер не переводится.
>шкурил текстолит,
лучшее обезжиривание это снятие части поверхности
>а потом протирал растворителем для краски
и тем самым наносил жир, растворённый в растворителе
Так понравилось, что поехал купил три штуки 90мм вентиляторов по 0.22А каждый (по факту по 0.26A жрут).
И тут выяснилось, что мне попались вентиляторы, которые не могут в ШИМ. Они не двигаются, но делают это с усилием.
Пришлось паять какие-то костыли из резисторов и кондёра.
Не делайте ШИМ. Ищите способ как регулировать напряжение.
Но теперь! Пик 1 было, пик 2 стало.
Дольше держать страшно, сгорит ещё чего-нибудь.
Никогда у меня ещё не было карты с нормальным охлаждением. Они все всегда перегревались. Как и корпус, всегда боковая крышка была открыта.
А теперь всё так, как должно быть.
>И тут выяснилось, что мне попались вентиляторы, которые не могут в ШИМ. Они не двигаются, но делают это с усилием.
>Пришлось паять какие-то костыли из резисторов и кондёра.
>Не делайте ШИМ. Ищите способ как регулировать напряжение.
Ну а ты шимил же адеюсь отрицательные (общий) провуд ?
А после шима вешал LC фильтр надеюсь?
Иначе же на сенсор оборотов пойдет меандр и оно не сможет работать.
Стыдно такое не знать.
>Иначе же на сенсор оборотов пойдет меандр и оно не сможет работать.
>
>Стыдно такое не знать.
Очень много "комповых" вентиляторов, да почти все, делаются для управления вращением с помощью ШИМ. Там внутри уже есть обмотки, которые и интегрируют напряжение. >>456692
>Пришлось паять какие-то костыли из резисторов и кондёра.
>Не делайте ШИМ. Ищите способ как регулировать напряжение.
Что за вентиляторы? Какая частота ШИМ?
Там ведь не коллекторные двигатели стоят.
В тех что делаются ключ стоит опосле питания датчика хола.
Совсем другое дело шимить крутилятор на это не рассчитанный
Такие? Компутерные меняют да.
>LC фильтр
Я даже нагуглить не смог какие частоты нужны для индуктивностей, это слишком сложно для меня. Да и осциллографа нормального у меня нет это отлаживать.
У меня была идея поставить digipot и LM317. Но там ведь 1-1.5 вольта теряться будут.
>>456764
>Что за вентиляторы? Какая частота ШИМ?
http://gembird.ru/catalog/parts/fans/fancase2/ball/
20кГц
Остальные у меня 3 вида 140мм вентиляторов и с ними таких проблем нет. Там другая есть, двое из них начинают вращаться на длине импульса 2/1023 и причём быстро
Пробовал, всё збс. Вентиляторы "большие" были
Завел на стм32f429 одновременно оперативку и дисплей через spi. Дальше я хочу аппаратным dma слать из внешней оперативки в spi данные, и сосу, потому что halhmatransmit принимает адрес для передачи, ограниченный словом, а адрес ОЗУ выше. Это косяк hal или контроллер не сможет задействовать прямую передачу из внешней оперативки?
Открой юзер мануал и посмотри описание нужных тебе вещей. Мне это за тебя делать?
Неужели никто не сталкивался с такими задачами? Бамп вопросу
Ещё одно доказательство несостоятельности так называемых программистов под мк
Вы тупые макаки ничего сложнее си понять не способны, если я вам ебанашкам покажу свой продакшн код на расте или шарпе вы вообще охуеете
Я делал понижайку на 100 кГц с катушкой 47 мкГн, конденсатором 220 мкФ + керамика 2.2 и 0.1 мкФ по входу и выходу, dead time 500 нс, пульсации были 100-200 мВ, кпд 95-98%.
Транзистор нужен с достаточно малым Rds и небольшой емкостью затвора <2 нФ. Нужен драйвер транзисторов типа ir2113, макс скважность 96-98%.
Это все легко моделируется.
К сожалению, понадобится переделывать топологию или ставить еще плату с понижайкой, навесным монтажом и соплями не заработает.
Тут проще взять вентиляторы со встроенным ШИМ или подобрать частоту.
>на 100 кГц с катушкой 47 мкГн
Дроссель выбирается для заданной частоты и нагрузки так, чтоб был режим неразрывного тока - так будет линейная регулировка заполнение - выходное напряжение. Можно смело ставить дроссель на больший номинал - будет меньше пульсаций. Выбирать дроссель надо так, чтоб он не насыщался при макс. токе нагрузки.
Попка бобо потому что ты глупенький?
>Я даже нагуглить не смог какие частоты нужны для индуктивностей, это слишком сложно для меня
100uH
И конденсатор на 200мкФ
Это из справочника Стели.
Тут мудрить ненужно, подбираешь из того что под рукой то что работает.
>Это на 20кГц?
При разрывном токе дросселя будет нелинейная функция регулирования, т.е. приблизительно то, что происходит с проблемными вентиляторами при попытке ШИМить им питание напрямую.
Можно с минимальными переделками перевести твой шим в линейный выход, см. аттачи. Р3 - это твой вентилятор. На транзистор нужен будет радитор. Резистор со стока подбирается так - ставить заполнение 80-85 процентов и подбираешь значение, чтоб на вентилятор шло не менее 90-95% напряжения питания. Обрати внимание на диод на питание.
Я правильно понял, что ты ШИМом заряжаешь C1, а он уже своим напряжением открывает мосфет частично, ограничивая ток?
Только зачем его gate подтянут к питанию? Стабилитрон чтоб 12 не попали на 3.3?
Разве его не надо тянуть к земле?
А, или там задумка, что gate будет подтянут к 3.3? Тогда мне нужен другой мосфет, а не мой logic level. Но зачем? Я не могу на своих это сделать, подтягивая к земле?
В общем надо будет поиграться, потестить. Если получится, сделаю заново всё.
>>457271
Без осциллографа сложно. У меня есть DSO138 но у меня есть подозрение, что он какой-то подпаленный и местами показывает какую-то херь.
Коробка с выпаянными деталями из рандомных плат есть, наверняка там есть пару дросселей. Будет свободное время, попробую тоже.
>Я правильно понял, что ты ШИМом заряжаешь C1, а он уже своим напряжением открывает мосфет частично, ограничивая ток?
>Только зачем его gate подтянут к питанию? Стабилитрон чтоб 12 не попали на 3.3?
ШИМ заряжает конденсатор на землю, а резистор со стока на затвор создают обратную связь по напряжению, уменьшая крутизну транзистора и получается зона с более-менее линейным участком, а не вкл-вкл.
>>457295
> Тогда мне нужен другой мосфет, а не мой logic level.
На картинке лоджик-левел мосфет, ИРЛ530, можешь скачать лтспайс и смоделировать, поставить что-то похожее на свой (или даже свою модель).
>>457295
>Стабилитрон чтоб 12 не попали на 3.3?
Это диод шоттки, на питание контроллера (на шину 3в3). Без нагрузки (когда выход контроллера будет как вход) на этом выходе будет чуть больше порогового напряжение Vth, задача этого диода "на всякий случай"" не допускать ток с затвора на пин контроллера.
>>457295
>Я не могу на своих это сделать, подтягивая к земле?
Не очень понял, что куда подтягивать собрался?
Если что - графики регулировки с резистором со стока на затвор и без в аттаче. С транзистором с большой крутинзой (gfs
еривая без резистора будет ещё вертикальнее.
>Если получится, сделаю заново всё.
Зачем делать заново? Я тебе родил схему, которая делается подпайкой пары деталей к твоей плате. Ну и резистор на затвор поменять номинал. И радиатор прикрутить на канал, на котором висят хуёвые вентиляторы. Остальные каналы трогать не надо.
> Резистор со стока подбирается
Если поиграться со значениями - можно сделать довольно протяжённый участок для регулировки. тут 2к2 и 12к.
Соединяю несколько stm32f042 в can шину.
При передаче, сообщения иногда прерываются в середине, будто контроллер обнаружил коллизию, соответственно, возникают потери. Слушал шину китайским saleae logic. Если включить auto retransmission, проблема позволяет с этим жить, но причина остается загадкой, ведь я уверен, что коллизий и помех в шине нет, передает только одно устройство, остальные - молчат. Понижение частоты не дало результата, пробовал от 25 кб/с до 1000 кб/, терминаторы на концах стоят по 120 Ом, отводов нет, длина шины - 2 метра проводом cat5e.
Есть идеи?
>Есть идеи?
Брать нормальный осцилл и смотреть, нужно локализовать проблему - или это проблемы с целостностью сигналов или какой-то совтарный или около баг.
>>457620
Вооружился цифровым осциллографом, в шине происходит bit recessive error, о чем правильно сообщали биты LEC в регистре CAN_ESR. Ошибка всегда возникает после контрольной суммы на битах подтверждения (ACK/NAK). На всякий случай сменил терминаторы, теперь стоит 100 Ом, но изменений никаких.
Написал тест на отправку 1000 пакетов и проверку регистра TX_OK.
Ошибка воспроизводится при отправке только на определенные адреса, при этом зависит от количества устройств в шине. Есть подозрения, что некоторые устройства ставят ACK не вовремя по мнению передатчика, что вызывает конфликт. Поясните мне, может ли такое быть, если частота шины всего 25 кб/с, а все мк 48МГц?
Все "хорошие" и "плохие" приёмники на одних и тех же микроконтроллерах, с одним и тем же кварцем и настройкой clock tree для периферии?
Всё правильно сделал? Или еще будут недорогие контроллеры STM32?
>али-помойка
>НА РУССКОМ
>Всё правильно сделал?
Если тебе пришлют сальваж, то считай, что выиграл в лотерею. 95% что это будут перемаркированные фейки от Ляо-Сяо-Хуй-в-Ротяо Ltd. Но, скорее всего, ты - типичный говноед, как 99.9% покупателей али и тебе ума не хватит отличить оригу от фейка, кроме как сравнивать глубину маркировки.
> кроме как сравнивать глубину маркировки
В отзывах пишут, что новье и ID-чипса совпадает с оригиналом
Еще скажи, что ne555 подделывают.
Я же говорю, таким как ты дегенератам не дано осилить измерение параметров и сравнение с даташитом. Маркировка и ID чипа - все ваши знания.
Подозреваю он намекал на то что можно проверить электрические параметры. Ток потребления хотя бы. Можно проверить еррату, вряд ли китайцы копировали ошибки в том числе.
А еще можно проверить объем памяти. В STM32F103C8T6 реально объем флеша 128 кБ, т.е. вдвое больше чем в даташите и соответствует STM32F103CBT6.
Потому что производители расчитывают наладить предложение через два года, а мелкие производители и барыги будут играть на этом потому что... причина. хотя, их вэйфери отличаюца от тех, что в дефиците.
И что в таком случае, взять? Нуклео и отпиливать от платы ст-линк?
>подтягиваю rst к земле и в режиме hotplug
Это ещё зачем? Оно тебя просило подключить резет к ст-линку, чтобы попытаться подключиться через "connect under reset", а ты что?
Попробовал все режимы подключения и все режимы ресета - итог один. Но при подтяжке и хотплаге он контроллер распознает
Я, конечно, в этом не разбираюсь, но у меня как было.
Зажимаешь на плате ресет и держишь, жмёшь коннект (без under reset) и отпускаешь ресет. И он сразу коннектится, и затираешь чип. Я свой так раскирпичил, когда залил какой-то кривой бутлоадер.
Из вопросов - какую иде мне надо? я сколько видел проектов, и все в разных иде, я так понимаю какая то из них даже предоставит мне тот самый необходимый набор библиотек, который не hal, но них пишут почти все, что я видел.
Где то есть референсы с функциями которые в этих самых библиотеках используются? Максимум с чем я работал - ахк, и на их сайте на каждую функцию все красиво и детально расписано что куда, да еще и с примерами, для стм такого же не нашел.
В гайдах объяснение происходящего идет таким образом, что у того кто это вот читает есть уже какая то база знаний и навыков, на которое это все опирается, но я не представляю что мне в принципе необходимо уже знать, чтоб начать работать с стм.
я в отчаянии, памагите пожалуйста
Моё увожение, только в моем случае кнопка NRST не помогла, но помогла eBOOT0. Сделал full erase и все заработало
>Чем китайский клон cs32f103 отличается от оригинала stm32f103?
Придется для начала изучить китайский. https://stm32duinoforum.com/forum/upload/CS32F103手册.pdf
Можно для начала просто посмотреть числа, местами без перевода понятно к чему оно относится, потому что названия регистров и аббревиатуры написаны привычным образом. Пока заметил что у cs32 больше ОЗУ.
Мое мнение - не нужно трогать эти cs32, тем более если не знаешь китайский. Может как-то еще можно GD32 применять, но тоже не нужно.
Да я просто в локальном магазине блюпилл платку купил, а там цс вместо стм. Различия в цифрах похую, мне много ПЗУ не надо. Там нет никаких фатал эрроров по апаратной части? Ну или по совместимости со всякими кейлами, например
>Там нет никаких фатал эрроров по апаратной части?
Было бы удивительно, если бы их не было. У всех еррата есть, а тут вдруг не будет? Только тут оно будет на китайском, в лучшем случае.
ацп показывает отсебятину, jtag нет, официальный gdb ворчит, а вот i2c наоборот не создает проблем
У всех этих GD, CS и прочих фейков нет никакой ерраты, я изучал даташиты. Люди давно изучили кристаллы под микроскопом, по топологии это не копии, а абсолютно другие МК, по сути - функциональные аналоги. Документация максимально бедная, есть даташит и больше нихуя. Вероятно, зная китайский, можно раскопать больше инфы по ним, но смысла я не вижу.
В блюпилы с али ставят вообще какие-то фейки на фейк, типа стоит чип GD, но по параметрам не соответствует. Например, потребление в максимально глубоком сне должно быть не более 5-6 мкА по даташиту на GD, а по факту более 100 мкА + некоторая периферия работает неадекватно. Ну, либо это отбраковка какая-то, хуй их разберешь. Оригинал stm32 с той же прошивкой ведет себя как надо.
Касательно дефицита STM8 и STM32 с повышением цен в разы - я на стороне тех, кто считает, что все это спланированный сговор с целью поднятия цен. STM демпинговали много лет, подсадили на свои МК, теперь типа дефицит, но когда он пройдет, цены сильно опускать не будут. Все будут покупать как раньше. А куда деваться?
Микрочип уже заявил что тоже поднимает цены. Это тема выгодна многим производителям полупроводников.
> теперь типа дефицит, но когда он пройдет, цены сильно опускать не будут
Да это как бы и без сговора так работает
Ну в теории внутри китайских ST-LINK стоит STM32F103C8T6 и они в районе 2$
Можно покупать выпаивать.
400x300, 0:10
Ебать ты наебатор системы. Да, стопудово там оригиналы за 2$. Покупай вагонами, выпаивай, еби систему в рот!
В будущем прекрасном мире не будет нищуков, только элита.
>0 In Stock
>Manufacturer Standard Lead Time
>52 Weeks
Точно купишь? А даже если покупать, то не лучше ли перейти на что-нибудь из STM32L или еще что-нибудь с ерратой поменьше?
Ага, всего лишь годик с копейками подождать придется.
Предлагаю скинуть запасы стм8 и стм32 всего треда в общак, открыть интернет-магаз и распродавать чипы по 10-20$ за штуку. Уверен, что покупатели найдутся.
> Другие версии есть?
А нахуя тут сговор? Прогнозировали замедление роста рынка ПК, а в результате пандемии рынок выстрелил ну кто б мог подумать, спрос превысил предложение, тмсц и самсунг работают на полной мощности. ВНЕЗАПНО, спрос на автомобили тоже оказался выше ожидаемого. Рынок настолько охуел, что аж интел начал строительство линий под контрактное производство.
А в условиях, когда спрос превышает предложение повышать цены это естественно. Дефицит это только усиливает. И всё, сговора тут нигде нет.
Еще один еблан, который корчит что-то из себя. К финансовым отчетам имеют доступ определенные органы, а хуи с горы.
Говно какое-то прочитал в интернете, поверил и истину несет в народ.
Давай линк на "отчет".
>спрос превысил предложение, тмсц и самсунг работают на полной мощности
Твоя теория разбивается о тот факт, что росту подверглась лишь продукция отдельных производителей МК. На тмсц не только процессоры и память для твоего игросрального ведра делают. Цены на огромное разнообразие другой полупроводниковой продукции сколь-либо значительно не выросли. Когда читаешь срывы покровов в интернете, думай своей головой.
Вообще-то у большинства компаний годовые и квартальные отчеты обычно в открытом доступе на их сайтах во вкладках Investors/Investor relations находятся.
Вот некоторые
https://investor.tsmc.com/english/quarterly-results/2020/q4
https://investors.st.com/annual-reports
https://www.samsung.com/global/ir/
https://www.intc.com/intel-online-annual-report
мимопроходил
У самсунга выложен отчет максимум за 2020 год, еблан. Остальное и проверять не хочется с таким отношением к пруфам.
>сам их тоже не открывал, но продолжет думать, что компании по ссылкам не показали прибыль за ковидный 2020
> но продолжет думать, что компании по ссылкам не показали прибыль за ковидный 2020
Хуясебе шизик бредит.
Очень понравились логи в EPS32.
Есть ли адаптация для STM32?
Если я указываю полный путь, то находит. А есть ли способ указать относительный путь, если я, допустим, проект перемещу в другую папку? Библиотека лежит внутри проекта.
Если я правильно помню, то #include <> ищет в системных папках, а #include "" уже как файл.
Попробуй #include "../../my-file.h"
Десять дней отправлялось-отправлялось да не выотправилось. Вчерась вернули деньги заместо десяти контроллеров. Наверное настоящие и китайца приберегла до момента подороже.
Махарайщикам вполне реально на стафф от микрочипа перекатиться, а вот производители сосут писос. Копеечную цену на вумных говорящих хомяков теперь не удержишь, придется тратиться на разработку под всратые мк от китайских производителей.
>на стафф от микрочипа перекатиться
Таких же дешевых и с такой же жирной внутрянкой, как у stm32, нет.
И не будет. STM все эти годы демпинговали, и ты успешно подсел на ихнюю иглу. Теперь жри почем дают и радуйся, либо перекатывайся.
>>459549
Все это немного доступнее, но цены тоже задрали так, что стало не сильно дешевле оригиналов. При малом опте оно лишь на 10-20% дешевле. При этом выбор скудный, самые ходовые модели так же в дефиците, разбирают мигом.
Ядро аналогичное, часть переферии - реверс, часть своя. Отличия по памяти (флэш, оперативная), по таймингам на шинах.
Короче это и то, и другое. В некотором роде функциональный аналог, но есть нюансы. Если речь про уровень разработки "я у мамы ардуинщик" - то аналог заебись, если уровень "тайминги GPIO на AHB меня не устраивают" - то уже могут быть проблемы.
Так самая суть в том, что на эти анал.оги нет ерраты и вообще полноценной документации. Разрабатывать без референс мануалов и аппнотов, используя STM-овские - это цирк треш-шапито.
Это именно функ. аналоги, топология полностью своя, из общего только архитектура.
Даже ардуинщик запросто может столкнуться с тем, что работать будет не так, как надо, а то и вообще не будет, библиотеки-то писались с костылями под оригиналы.
Блять, что произошло... раньше покупал STM32F1C8T6 по доллару за штуку. Сейчас - хотят от около 4.5 до 8. Пиздос. Пиииздоооос бля. Что за ебать.
Короче, походу, наверное... теперь имеет смісол для чего-то прям простого использовать F0, а на что-то "поинтереснее" - кошелится на F4/F7, ебана.
Нужно переждать. Через год подтянут объемы, будут еще доплачивать, что бы ты купил F4...
Ну а пока посасывать на AVR, лол.
Хуйня какая-то... долго так не будет. Розничным покупателям похуй, а те что клепают изделия сотнями тысяч перейдут на дешевые аналоги, их в поднебесной хоть жопой жуй.
Проиграл с двачного дауна. Аналоги делают не идиоты, цены давно подняли, оптовая цена в пределах 10-20% ниже продукции STM.
>bluepill
Сука, вам родину модель МК дала.
Вы какие то ардуинские имена напридумывали и в жопу долбитесь.
Что такое блупил, в чем особенность этого блупила? Это же просто самая бич доска с рандомной СТМ на борту?
Че вы несете то епта.
придумали ей имя чтобы различать доски, так как я купил уже говнодоску черную на том же c8t6, а в ней выведено не все, в частности не выведен пин vbat и несколько GPIO
пока обсуждают, спрошу: купил платку на стм32 за ~150р до кризиса, где-то в 2019-2020, точно уж не помню, контроллер стоит именно не CS, GD а именно написано STM32. Вопрос: клон ли это, и если да, то насколько говеный? У меня он не прошился по UART, хотя переходник сделан из говнодуины, в которой он выполнен уже на меге16у2 и не совсем подходит для такого
упд: МК как на плате слева, с большим и не косячным шрифтом, с одной выемкой
Подскажите, а реально ли написать SPI/microSD bootloader под stm32f101c4, в котором всего 16 Кб флеша, уложившись в 2-4 Кб?
Никакого HALа использовать не получится и придется писать на регистрах или это все равно будет почти нереально?
Может кто-нибудь сможет подкинуть парочку годных статей с реализацией чего-то подобного?
Должно быть вполне реально. У FatFs вроде как 2-3 кБ. Но если можно обойтись без файловой системы вовсе, то и одного килобайта хватит.
>Может кто-нибудь сможет подкинуть парочку годных статей с реализацией чего-то подобного?
А какие могут быть проблемы? Просто берешь байты откуда-то и пишешь в память.
А что, правда сейчас нельзя читать несколько каналов АЦП кроме как через DMA?
Сначала мной был нагуглен пример через HAL_ADC_PollForConversion для нескольких каналов (отключаешь все, кроме нужного и читаешь) Потом я обнаружил, что там якобы в HAL ошибка. А затем и то, что теперь этот метод не работает и надо использовать DMA.
Более того, не могу найти ADC_RANK_NONE и ADC_RANK_CHANNEL_NUMBER дефайны в своем HAL-драйвере, их упразднили?
Зачем нужны микроконтроллеры в 2к21 кроме хобби?
1. Хорошее хобби, получше просмотра аниме и всяких онлайн дрочилень, просмотров говна на ютубах, современного «кинематографа» и т.д.
2. Таки МК - тоже специализация. Как правило, человек пилящий принципиальную схему с МК и прошивку для МК - это в нормальных условиях 2 человека. И фирмварщикам, как правило, по перчику ваши эти пыхи с джангами.
3. МК таки используют в промышленности. Например, спиздь где-нибудь сервис мануал с принципиальной схемой на какой-нибудь dj-контроллер - скорее всего, там будет МК. Или те же ЭБУ ДВС - там тоже стоят МК, как правило, automotive серий.
4. Ну и самое главное, чтобы по-человечески писать 2021 вместо 2к21. Это самая главная причина.
Затем, чтобы ты каждый день использовал приборы с ними напрямую, а также для применения на огромном множестве производств и организаций, которые участвуют в производстве товаров и услуг, которые ты потребляешь.
Они почти везде: от микроволновки, стиральной машины и камеры наблюдения до спутников, дронов и управляемых снарядов.
Альтернатив просто нет: процессоры дороже и больше по габаритам, логика очень сильно больше по габаритам и не перепрограммируется.
>1. Хорошее хобби, получше просмотра аниме и всяких онлайн дрочилень, просмотров говна на ютубах, современного «кинематографа» и т.д.
Ну с хобби не спорю.
>2. Таки МК - тоже специализация. Как правило, человек пилящий принципиальную схему с МК и прошивку для МК - это в нормальных условиях 2 человека.
В СНГ обычно это один человек, да еще и работащий за 40-50к максимум, если без диплома топ-вуза. Поэтому зачем заниматься микриками и встраиваемкой в России, если в том же IT куда больше денег и перспектив.
>3. МК таки используют в промышленности. Например, спиздь где-нибудь сервис мануал с принципиальной схемой на какой-нибудь dj-контроллер - скорее всего, там будет МК. Или те же ЭБУ ДВС - там тоже стоят МК, как правило, automotive серий.
Это все хорошо, вот только эти ЭБУ и прочую автоматику разрабатывают люди в развитых странах за соответствующую зарплату. В СНГ же ты будешь делать какую-то мелкосерийную фигню на атмегах или стм32 за копейки.
>логика очень сильно больше по габаритам и не перепрограммируется.
Видимо, ты не слышал про плиски.
Кручу STM32F030F4P6 - младший разряд гуляет на 3-6 единиц туда сюда. Думал питание хуевое - сделал VDDA - батарейное, и на вход АЦП подал 1.5 с батарейки, Sampling time selection поставил максимальный - все равно гуляет.
1) полностью батарейное питание
2) LC-фильтры по питанию, даже батарейному
3) максимально короткие проводники
4) засунуть все в экранированный корпус
Иначе про младшие разряды АЦП можешь забыть, должной точности не будет.
Да, в случае с хобби - я ж и написал поэтому. Хоть вернулся былой искренний интерес к жизни, хех)
> В СНГ обычно это один человек, да еще и работащий за 40-50к максимум, если без диплома топ-вуза. Поэтому зачем заниматься микриками и встраиваемкой в России, если в том же IT куда больше денег и перспектив.
> Это все хорошо, вот только эти ЭБУ и прочую автоматику разрабатывают люди в развитых странах за соответствующую зарплату. В СНГ же ты будешь делать какую-то мелкосерийную фигню на атмегах или стм32 за копейки.
Блин, чувак, я уже устал повторять: уезжайте из России, лучше вообще из пост-совка в целом) Уезжайте, пробуйте, исследуйте. Мир - весьма разнообразная и интересная штука) Там, как ты сам написал, карьера будет интереснее. И не только в инженерии, кстати. Не понравится\не получится - всегда успеете вернуться обратно. Фронтобекенды - классно, но не всегда интересно (а на работе, напоминаю, мы все проводим по минимум 8 часов жизни в день - это очень большая часть жизни).
В ДС2 и ДС можно легко получать 60-120к и решать интересные задачи в куче разных областей.
Хочешь - занимайся медтехникой или промышленными системами, хочешь - программируй отечественные МК/DSP для оборонки и космоса, хочешь - иди в стартап и занимайся робототехникой. Есть и работа расслабоне, и лютый ЦОС с матаном и космосом, и что-то среднее.
Не обязательно идти на первую попавшуюся вакансию в мухосрани.
Конечно, в айти денег больше, но удовольствие от работы за деньги не купишь.
Если дохуя бизнесмен, есть годные идеи и немного опыта, то можно разработать свое нишевое устройство, заказывать платы и сборку в Китае и продавать за рубеж, получать евро и тратить рубли. Но тут может быть куча своих проблем с окупаемостью, бракованными компонентами, отказами, таможней, etc, обычная работа гораздо проще и надежней.
60к и даже больше, в ДС можно получать почти ничего не делая. Например можно работать испытателем радиоэлектронной аппаратуры. Приехал, загрузил в камеру, прилег на диван до вечера, достал из камеры все это дело, а потом и домой. Скучно только, но многим так нравится.
>Или те же ЭБУ ДВС - там тоже стоят МК, как правило, automotive серий
Ну хуй знает, я знаю в России только Ителму, которая делает ЭБУ, и у них DSP-сок от STM использовался.
Но так да, есть же не только ЭБУ, есть приборки например, или органы контроля/управления (приборка там, климат, вот это всё) - там используют автомотив МК.
>>461637
Бич плиз
Всё у нас нормально разрабатывают. Давно уже все блоки тут допилены. Ничего импортного не осталось, даже в Весте наверняка все блоки от Итэлмы уже были реношные в первый год-два.
Блоки АБС разве что, наверно, Бош (пока). Просто потому что их сертифицировать надо (в Европе, дорого).
Поддерживаю анона сверху. Думаешь что в рашке всё хуёво и пора съебывать - съебывай. На тебя просто давит мысль о том что тут всё хуёво, и тебе это мешает незамутнённо смотреть на то что есть. Если съебёшь и вздохнёшь с облегчением - тогда даже реализоваться сможешь. А сидеть пердеть, и думать что в рашке всё хуёво - приведёт только к депрессии и проебанному потенциалу.
ПРАВДА!
STM32H743VIT6 хватит для сбора данных о температуре и обработки 40шт DS18B?
Какая скорость опроса датчиков? Они как подключены? Насколько синхронно надо снимать показания?
Если похуй на всё - ебашишь 1wire через uart и не ебешь себе и окружающим мозги плывущей времянкой.
Возьми ПЛИС - ебанешь "размножитель" uSart через который будешь синхронно опрашивать сразу 40 датчиков и потом по SPI или еще как читать 40 измерений.
void SetSysClockToHSE(void)
{
ErrorStatus HSEStartUpStatus;
/ SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------/
/ RCC system reset(for debug purpose) /
RCC_DeInit();
/ Enable HSE /
RCC_HSEConfig( RCC_HSE_ON);
/ Wait till HSE is ready /
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if (HSEStartUpStatus == SUCCESS)
{
/ Enable Prefetch Buffer /
//FLASH_PrefetchBufferCmd( FLASH_PrefetchBuffer_Enable);
/ Flash 0 wait state /
//FLASH_SetLatency( FLASH_Latency_0);
/ HCLK = SYSCLK /
RCC_HCLKConfig( RCC_SYSCLK_Div1);
/ PCLK2 = HCLK /
RCC_PCLK2Config( RCC_HCLK_Div1);
/ PCLK1 = HCLK /
RCC_PCLK1Config(RCC_HCLK_Div1);
/ Select HSE as system clock source /
RCC_SYSCLKConfig( RCC_SYSCLKSource_HSE);
/ Wait till PLL is used as system clock source /
while (RCC_GetSYSCLKSource() != 0x04)
{
}
}
else
{ / If HSE fails to start-up, the application will have wrong clock configuration.
User can add here some code to deal with this error /
/ Go to infinite loop /
while (1)
{
}
}
}
void SetSysClockToHSE(void)
{
ErrorStatus HSEStartUpStatus;
/ SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------/
/ RCC system reset(for debug purpose) /
RCC_DeInit();
/ Enable HSE /
RCC_HSEConfig( RCC_HSE_ON);
/ Wait till HSE is ready /
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if (HSEStartUpStatus == SUCCESS)
{
/ Enable Prefetch Buffer /
//FLASH_PrefetchBufferCmd( FLASH_PrefetchBuffer_Enable);
/ Flash 0 wait state /
//FLASH_SetLatency( FLASH_Latency_0);
/ HCLK = SYSCLK /
RCC_HCLKConfig( RCC_SYSCLK_Div1);
/ PCLK2 = HCLK /
RCC_PCLK2Config( RCC_HCLK_Div1);
/ PCLK1 = HCLK /
RCC_PCLK1Config(RCC_HCLK_Div1);
/ Select HSE as system clock source /
RCC_SYSCLKConfig( RCC_SYSCLKSource_HSE);
/ Wait till PLL is used as system clock source /
while (RCC_GetSYSCLKSource() != 0x04)
{
}
}
else
{ / If HSE fails to start-up, the application will have wrong clock configuration.
User can add here some code to deal with this error /
/ Go to infinite loop /
while (1)
{
}
}
}
Очевидно что ядро будет работать на частоте кварца. Комментарий про PLL в этом коде совершенно не в тему.
Однако помимо ядра в микроконтроллерах есть другая периферия, которая может работать не на частоте ядра, хотя у тебя частоты вроде бы совпадают.
Спасибо. Начал только осваивать, узнал, что от кварца само не тактируется, вставил эту процедуру и всё стало медленнее раз в 10. Кварц 8 МГц, от внутреннего генератора без настроек запускается на какой частоте? Я предполагал, что тоже 8 МГц, замедление заметил по замедлению обновления экрана, обновление привязно на прерывание SysTick.
Есть 2 процедуры
int ClockInit(void){
__IO int StartUpCounter;
RCC->CR |= RCC_CR_HSEON; //Запускаем генератор HSE
//Ждем успешного запуска или окончания тайм-аута
for(StartUpCounter=0; ; StartUpCounter++){
//Если успешно запустилось, то
//выходим из цикла
if(RCC->CR & RCC_CR_HSERDY)
break;
//Если не запустилось, то
//отключаем все, что включили
//и возвращаем ошибку
if(StartUpCounter > 0x1000){
RCC->CR &= ~RCC_CR_HSEON; //Останавливаем HSE
return 1;
}
}
//Настраиваем PLL
RCC->CR |= ~RCC_CR_PLLON;
//PLL множитель равен 9
RCC->CFGR |= RCC_CFGR_PLLMULL2;
//Тактирование PLL от HSE
RCC->CFGR |= RCC_CFGR_PLLSRC_HSE;
//FLASH->ACR|= FLASH_ACR_PRFTBE; //Включить буфер предварительной выборки
//FLASH->ACR&= ~FLASH_ACR_LATENCY; //Очистить FLASH_ACR_LATENCY
//Устанавливаем 2 цикла ожидания для Flash
//так как частота ядра у нас будет 48 MHz < SYSCLK <= 72 MHz
//FLASH->ACR |= FLASH_ACR_LATENCY_2;
RCC->CR |= RCC_CR_PLLON; //Запускаем PLL
//Ждем успешного запуска или окончания тайм-аута
for(StartUpCounter=0; ; StartUpCounter++){
//Если успешно запустилось, то
//выходим из цикла
if(RCC->CR & RCC_CR_PLLRDY)
break;
//Если по каким-то причинам не запустился PLL, то
//отключаем все, что включили
//и возвращаем ошибку
if(StartUpCounter > 0x1000){
RCC->CR &= ~RCC_CR_HSEON; //Останавливаем HSE
RCC->CR &= ~RCC_CR_PLLON; //Останавливаем PLL
return 2;
}
}
//Делители
//Настроить делитель для шины APB1
RCC->CFGR &= ~RCC_CFGR_PPRE1; //Очистка битов предделителя "APB1 Prescaler"
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; //Установить "APB1 Prescaler"
//
//Настроить делитель для шины APB2
RCC->CFGR &= ~RCC_CFGR_PPRE2; //Очистка битов предделителя "APB2 Prescaler"
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; //Установить "APB2 Prescaler"
//Настроить делитель для AHB
RCC->CFGR &= ~RCC_CFGR_HPRE; //Очистка битов предделителя "AHB Prescaler"
RCC->CFGR |= RCC_CFGR_HPRE_DIV1; //Установить "AHB Prescaler"
//Переключиться на тактирование от PLL
RCC->CFGR &= ~RCC_CFGR_SW; //Очистка битов выбора источника тактового сигнала
RCC->CFGR |= RCC_CFGR_SW_PLL; //Выбрать источником тактового сигнала PLL
while((RCC->CFGR&RCC_CFGR_SWS)!=0x08){} //Ожидание переключения на PLL
//После того, как переключились на
//внешний источник такирования
//отключаем внутренний RC-генератор
//для экономии энергии
//RCC->CR &= ~RCC_CR_HSION;
//Настройка и переклбючение системы
//на внешний кварцевый генератор
//и PLL запершилось успехом.
//Выходим
return 0;
}
И вторая
int main(){
ClockInit();
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
// Конфигурируем CRL регистры.
GPIOB->CRL&= ~GPIO_CRL_CNF6;// Сбрасываем биты CNF для бита 6. Режим 00 - Push-Pull
GPIOB->CRL |= GPIO_CRL_MODE6_0;// Выставляем бит MODE0 для 6 пина. Режим MODE01 = Max Speed 10MHz
while(1){
GPIOB->BSRR = GPIO_BSRR_BR6; // Сбросили бит.
Delay_m(55560);
GPIOB->BSRR = GPIO_BSRR_BS6; // Установили бит.
Delay_m(55560);
}
}
Обе процедуры собраны с разных сайтов, комментарии где-то были, где-то я вписал для сохранения нити повествования как я понимаю работу тактирования.
На ножку PB6 я подключился осциллографом.
При изменении коэффициента в строках
//PLL множитель равен 9
RCC->CFGR |= RCC_CFGR_PLLMULL2;
на любой, стрелка осциллографа прочно держится в окрестности числа 43.20 Гц, хотя, казалось бы, частота должна меняться от 16 до 72 МГц, в отладчике инициализация проходит успешно. Осциллограф DS203, с прошивкой wildcat.
Когда тыкаюсь иголочкой в ножку кварца сигнал на ножке пропадает - генерация срывается, я так полагаю, почему он аварийно не переходит на HSI?
Изменение настроек flash закомментировано потому что при раскомментировании отладчик перестает работать, а контроллер срывается в какую-то дичь ничем не мигая, ничего не делая.
С контроллерами ранее дела не имел.
Есть 2 процедуры
int ClockInit(void){
__IO int StartUpCounter;
RCC->CR |= RCC_CR_HSEON; //Запускаем генератор HSE
//Ждем успешного запуска или окончания тайм-аута
for(StartUpCounter=0; ; StartUpCounter++){
//Если успешно запустилось, то
//выходим из цикла
if(RCC->CR & RCC_CR_HSERDY)
break;
//Если не запустилось, то
//отключаем все, что включили
//и возвращаем ошибку
if(StartUpCounter > 0x1000){
RCC->CR &= ~RCC_CR_HSEON; //Останавливаем HSE
return 1;
}
}
//Настраиваем PLL
RCC->CR |= ~RCC_CR_PLLON;
//PLL множитель равен 9
RCC->CFGR |= RCC_CFGR_PLLMULL2;
//Тактирование PLL от HSE
RCC->CFGR |= RCC_CFGR_PLLSRC_HSE;
//FLASH->ACR|= FLASH_ACR_PRFTBE; //Включить буфер предварительной выборки
//FLASH->ACR&= ~FLASH_ACR_LATENCY; //Очистить FLASH_ACR_LATENCY
//Устанавливаем 2 цикла ожидания для Flash
//так как частота ядра у нас будет 48 MHz < SYSCLK <= 72 MHz
//FLASH->ACR |= FLASH_ACR_LATENCY_2;
RCC->CR |= RCC_CR_PLLON; //Запускаем PLL
//Ждем успешного запуска или окончания тайм-аута
for(StartUpCounter=0; ; StartUpCounter++){
//Если успешно запустилось, то
//выходим из цикла
if(RCC->CR & RCC_CR_PLLRDY)
break;
//Если по каким-то причинам не запустился PLL, то
//отключаем все, что включили
//и возвращаем ошибку
if(StartUpCounter > 0x1000){
RCC->CR &= ~RCC_CR_HSEON; //Останавливаем HSE
RCC->CR &= ~RCC_CR_PLLON; //Останавливаем PLL
return 2;
}
}
//Делители
//Настроить делитель для шины APB1
RCC->CFGR &= ~RCC_CFGR_PPRE1; //Очистка битов предделителя "APB1 Prescaler"
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; //Установить "APB1 Prescaler"
//
//Настроить делитель для шины APB2
RCC->CFGR &= ~RCC_CFGR_PPRE2; //Очистка битов предделителя "APB2 Prescaler"
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; //Установить "APB2 Prescaler"
//Настроить делитель для AHB
RCC->CFGR &= ~RCC_CFGR_HPRE; //Очистка битов предделителя "AHB Prescaler"
RCC->CFGR |= RCC_CFGR_HPRE_DIV1; //Установить "AHB Prescaler"
//Переключиться на тактирование от PLL
RCC->CFGR &= ~RCC_CFGR_SW; //Очистка битов выбора источника тактового сигнала
RCC->CFGR |= RCC_CFGR_SW_PLL; //Выбрать источником тактового сигнала PLL
while((RCC->CFGR&RCC_CFGR_SWS)!=0x08){} //Ожидание переключения на PLL
//После того, как переключились на
//внешний источник такирования
//отключаем внутренний RC-генератор
//для экономии энергии
//RCC->CR &= ~RCC_CR_HSION;
//Настройка и переклбючение системы
//на внешний кварцевый генератор
//и PLL запершилось успехом.
//Выходим
return 0;
}
И вторая
int main(){
ClockInit();
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
// Конфигурируем CRL регистры.
GPIOB->CRL&= ~GPIO_CRL_CNF6;// Сбрасываем биты CNF для бита 6. Режим 00 - Push-Pull
GPIOB->CRL |= GPIO_CRL_MODE6_0;// Выставляем бит MODE0 для 6 пина. Режим MODE01 = Max Speed 10MHz
while(1){
GPIOB->BSRR = GPIO_BSRR_BR6; // Сбросили бит.
Delay_m(55560);
GPIOB->BSRR = GPIO_BSRR_BS6; // Установили бит.
Delay_m(55560);
}
}
Обе процедуры собраны с разных сайтов, комментарии где-то были, где-то я вписал для сохранения нити повествования как я понимаю работу тактирования.
На ножку PB6 я подключился осциллографом.
При изменении коэффициента в строках
//PLL множитель равен 9
RCC->CFGR |= RCC_CFGR_PLLMULL2;
на любой, стрелка осциллографа прочно держится в окрестности числа 43.20 Гц, хотя, казалось бы, частота должна меняться от 16 до 72 МГц, в отладчике инициализация проходит успешно. Осциллограф DS203, с прошивкой wildcat.
Когда тыкаюсь иголочкой в ножку кварца сигнал на ножке пропадает - генерация срывается, я так полагаю, почему он аварийно не переходит на HSI?
Изменение настроек flash закомментировано потому что при раскомментировании отладчик перестает работать, а контроллер срывается в какую-то дичь ничем не мигая, ничего не делая.
С контроллерами ранее дела не имел.
Сгенерируй кубом, только на LL а не HAL и скопируй.
>//PLL множитель равен 9
>RCC->CFGR |= RCC_CFGR_PLLMULL2;
Если что, то это значение недопустимо для STM32F103C8T6.
>__IO
За этим макросом скрывается volatile, это явно лишнее. И вообще можно попроще, без этих счетчиков.
Решил STM32 освоить и заодно Си. Купил Стивена Прату, начал читать, делать упражнения и понимаю, что все уходит в какие-то дебри типа ввод-вывод, символьные строки и тд, что на мой взгляд не имеет прямого отношения к микроконтроллерам. А хочется сразу применять на практике, а как применять printf, которому уделена четверть книги?
Анон, что я делаю не так? Или не обращать внимания, штудировать последовательно ?
Обычно программирование начинают с вывода Хелловолда, как раз через printf. Сам по себе printf достаточно большое жлобство на микроконтроллере, однако на современных чипах оно не только вполне себе заведется, но и вполне себе сносно работает, словно на десктопе. Можно выводить всякие надписи на экранчик, срать отладкой в порты или сеть, да и вообще удобно, но может сильно вогнать в стресс олдфагов, которые были такой радости лишены и смотрят на такое как на пидорство.
Я бы порекомендовал сначала выучить саму Сишку, без микроконтроллеров, для десктопа, но без использования винды или какого-либо гуя. Простые консольные приложения, начать с простого вроде осиляния указателей, что строка - это просто массив байтиков и тому подобное. В принципе, если асм знаешь, то тебе это легко будет.
Спасибо анон, у меня примерно такая же мысль сформировалась, что Си придется изучать без привязки к микроконтроллерам, а конкретно по STM32 пока грызть периферию, регистры, там пока знаний Си не нужно.
Про регистры - это к чему ты привык, да и что там принято в проекте, над которым будешь работать. А то нынче модно напрограммировать мышкой в кубе, все похоронить под 10 слоями абстракций, а самому регистры не трогать. Подергать таймеры действительно проще через регистры, а вот USB делать самому - ну его нахуй, только кодогенерация из Куба.
Молвил как Боженька, спасибо.
>>//PLL множитель равен 9
>>RCC->CFGR |= RCC_CFGR_PLLMULL2;
>Если что, то это значение недопустимо для STM32F103C8T6.
Кварц 8 МГц, контроллер может 72 МГц, почему такое значение недопустимо?
>>__IO
>За этим макросом скрывается volatile, это явно лишнее. И вообще можно попроще, без этих счетчиков.
Я знаю. Как это влияет на настройки тактировария?
>>462855
Извини анончик, это я с другим микроконтроллером перепутал.
Ну как, смог уже скопировать код из LL?
>Я знаю.
Тогда зачем вставил?
>Как это влияет на настройки тактировария?
Почти что никак, только мешает компилятору оптимизировать код, в результате чего может появиться дополнительная очень маленькая задержка в этих циклах, а может и не появиться.
Погоди, насчет USB. А разве там не поможет стшная либа, которая USB-FS? Ну типа подключить ее, заюзать и радоваться? Чтобы не трогать ртом грязные сифозные письки тупых макак, написавших халокубы говнокуб. Или эта либа тоже говно из-под куба?
Да, LL работает предсказуемо и сразу. Но какой-то он бездуховный, нет в нем лапидарности какой-то что ли, скрепности нашей Русской.
Это боль на самом деле при переезде с асма, т.к. есть кучай хуйни, которая не понятно как происходит.
Типо маллоков, стдаут\инпут всяких и оно пугает. Т.к. ты вроде знаешь что ниже, а вроде вот уровень выше уходит под ковер и должен бы пролезть в знаемые тобой места, но нет, там хуя какой-то еще уровень оказывается и никто его в начальных курсах не затрагивает.
От этого пизда дискомфорт.
Поэтому советую - изучали маллочество, изучи стдинпут\аутпут со стороны си, изучи соглашение о вызове. И все встанет на свои места.
Можно конечно забить хуй, но после асма, оно реально не комфортно. Вот говорят СТДАУТ, а спойлер, в большинстве МК, это вывод в УАРТ0, тупо байт за байтом. Иногда даже с обработчиком прерываний, иногда тупо линейно.
А некоторые компиляторы просят определить putc функцию, что бы его реализовать.
Что бы полностью это говно понять - изучи основы UNIX систем и поймешь что все это - сорт одной параши, только вместо уарта - пайп ОС.
>Можно конечно забить хуй, но после асма, оно реально не комфортно. Вот говорят СТДАУТ, а спойлер, в большинстве МК, это вывод в УАРТ0, тупо байт за байтом. Иногда даже с обработчиком прерываний, иногда тупо линейно.
>А некоторые компиляторы просят определить putc функцию, что бы его реализовать.
Если очень хочется что-то такое, то лучше sprintf использовать, тогда везде будет одинаково в рамках стандарта, и можно будет при необходимости макросами полностью выкидывать отладочную печать. Но еще лучше вообще подобной ерундой со стандартной библиотекой не заниматься.
Нафиг? Почему не программировать прямо через USB DFU?
Какие платы с одним stm32f04* USB там должен быть прошит DFU, не нужен st-link.?
Ардуинщики вон успешно все отлаживают, тупо высирая стринги в консоль. Чем стм32-господа хуже?
Да, в 99% так и делаю, ну, пока что мне не нужен дебагер. Мне нужна плата которая примерно так же будет выглядеть как мое устройство в конце. Я думал сам развести плату для 20 пинового МК, но так как я даже hello world не написал для АРМ, то будет легче если начну с готовой платы, но без st-link, так как он мне не нужен пока что и только все усложняет.
Не знаю как дебаггер работает в МК, если можно оставить какие-то вводы/выводы и разъем и перемычку на всякий случай, то почему бы так не сделать? Тогда, когда нужно подключил программер-дебаггер.
Напомните, какой прогноз?
Кто-нибудь уже перекатился на китайские аналоги или схожие по функционалу армки?
>>464764
Это не вопрос можно или нельзя. А вопрос твоего времени. Стм дебаггер стоит как моча.
Я в любой момент помогу стек-трейс посмотреть, значения всех переменных, пройти по шагам любое стремное место, меняя результаты на ходу (inb4 квох пиши тесты).
Нахуй мне каждое стремное место обмазывать принтфами, а потом пересобирать проект.
А если баг только в некоторых сборках проявляется? (ты пересобрал а он исчез)
А если у тебя проблемное место вызывается 9999 раз в секунду и дохнет на 1000?
На хуй это надо короче. Какая то дедовщина и вьеб личного времени ни на что.
GoToApp должен перейти в FLASH_USER_START_ADDR + 4, в моем случае это 0x08002404
Не могу понять, зачем нужно разыменовать всю эту конструкцию перед присвоением в appJumpAddress? В итоге там оказывается значение 0x080026C1, разве это правильно?
В дебаге получаю следующее сообщение, хотя я и не ожидал, что дебаг перейдет в мое тестовое приложение:
Break at address "0x80026aa" with no debug information available, or outside of program code.
Тестовое приложение с мигалкой светодиодом отдельно запускается без проблем, там я все вроде правильно сместил. Прошивка тоже записывается правильно, проверил с помощью STM32 ST-LINK Utility. Куда копать?
Быстрое дополнение - по 0x80026aa видимо лежит HardFault_Handler моего тестового приложения.
Там нет кучи конфигурации как в cube я cub еще не запускал, не знаю для чего он нужен.
Не только для stm32, есть кое какая поддержка микрочип SAM и других АРМов.
Документации не много, но полно примеров. Есть книжка Beginning STM32, в ней libopencm32 и FreeRTOS.
>>464855
Может компилятор как-то по другому транслирует это выражение, потому что так же в Mastering STM32.
Посоветуйте, что читать на эту тему.
Если порт используется для ввода, уровень 1/0 поступает в регистр ввода input data register в руководстве.. Разве это не регистр параллельного ввода и серийного вывода?
Съебал тебе за щеку. Ты мог бы дать ссылку на доки по HBA шине и мосту, вместо этого засрал тред, и вынудил меня опуститься до твоего быдло уровня.
>Посоветуйте, что читать на эту тему.
Припади к истокам, ёптеть!!! https://developer.arm.com/documentation/ihi0033/latest/
Да, AHB-lite. Еще про PC104 прочел в Хоровитце. Про AHB еще нашел в Harris, Digital signal and computer architecture, последнем издании. В PC104 каждый бит/вывод регистра подключен к шине, 8 бит. В AHB, 32 бита. думал последовательно передает. AHB частота такая-же как и у проца. Как-то так понял.
Вроде как все просто. Есть адрес FLASH_USER_START_ADDR, начиная с которого должна лежать таблица NVIC. Если что, то не бутлоадера, а основной программы.
Так вот нужно получить из этой таблицы адрес reset handler, для этого нужно прочитать 4 байта, которые лежат по адресу FLASH_USER_START_ADDR+4. Так вот в строке 158 берется этот адрес и приводится к указателю на uint32_t, потому что прочитать нужно именно 4 байта. А потом этот указатель разыменовывается, потому что нужен не адрес, а само значение из таблицы NVIC. Далее, в строке 159 оно приводится к указателю на функцию для того чтобы можно было ее вызвать.
А проблемы могут быть из-за того что ты мог забыть исправить скрипт линкера для основной программы, линкеру же нужно знать что программа будет лежать по другому адресу.
Стоит ли вкатываться в дешевые, мощные микроконтроллеры от ST или лучше в дорогие и редкие?
Кто-нибудь работал с компаратором TCMP1 и UART?
Что за хуйня творится на пике? Что пытаются сделать?
Регистродрочеры все еще запускают тактирование, что бы блинк сделать.
Ну такой слэш используется для переноса строк, чтобы компилятор воспринимал это как одну строку. Зачем оно нужно в этом месте — без понятия, оно вроде даже для C89 в этом месте не нужно.
А потом, у тебя код похоже вообще не от STM32, а от силабовских микроконтроллеров. Хоть бы указал для чего код и для какого конкретно микроконтроллера, а то они разные бывают.
Это вроде для макросов. Обычный код и так воспринимает же. Особеность компилятора?
//LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_0 | LL_GPIO_PIN_1 | LL_GPIO_PIN_10 | LL_GPIO_PIN_11, LL_GPIO_MODE_OUTPUT);
//LL_GPIO_SetPinOutputType(GPIOB, LL_GPIO_PIN_0 | LL_GPIO_PIN_1 | LL_GPIO_PIN_10 | LL_GPIO_PIN_11, LL_GPIO_OUTPUT_PUSHPULL);
LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_0, LL_GPIO_MODE_OUTPUT);
LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_1, LL_GPIO_MODE_OUTPUT);
LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_10, LL_GPIO_MODE_OUTPUT);
LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_11, LL_GPIO_MODE_OUTPUT);
LL_GPIO_SetPinOutputType(GPIOB, LL_GPIO_PIN_0, LL_GPIO_OUTPUT_PUSHPULL);
LL_GPIO_SetPinOutputType(GPIOB, LL_GPIO_PIN_1, LL_GPIO_OUTPUT_PUSHPULL);
LL_GPIO_SetPinOutputType(GPIOB, LL_GPIO_PIN_10, LL_GPIO_OUTPUT_PUSHPULL);
LL_GPIO_SetPinOutputType(GPIOB, LL_GPIO_PIN_11, LL_GPIO_OUTPUT_PUSHPULL);
Но стоит мне раскомментировать две верхних строки и закомментировать восемь нижних он работать перестает - в другом месте пишу в регистр BRR, а ножки мк не дергаются. Пишу через или как в закомментированных строках.
Что я делаю не так, подскажите, будьте любезны?
>Что я делаю не так
Не читаешь доксигеновские комментарии. Там написано так:
>@param Pin This parameter can be one of the following values:
Для сравнения, там где можно комбинировать так, как ты хотел, пишут так:
>@param Periphs This parameter can be a combination of the following values:
Конечно можно еще попробовать разобраться с самим кодом LL, но это без меня.
Спасибо, мил человек. Буду читать, что там понаписали разработчики.
Вычисляешь НОД от всех задержек и настраиваешь один таймер на это значение,потом из обработчика прерываний считаешь время и вызываешь нужный код.
В двух моих стлинках стоят клоны, в третьем стоит f101. Сделал на клоне себе макетку, по uart отвечает и вроде шьёт, но не прошивал ничего осмысленного.
Дефицит коснулся всех современных, nrf51 например, просто на алике отбраковка или бу, поэтому не так заметно, как если брать катушками новые
Atmega 8, attiny85,.attiny88, stm8f103, - 1-2$
STM32f103 - 3$.
Esp32, esp8266 -2$ и 1.1$ соответственно, как и до кризиса.
Получается, проще всего переходить на esp.
Ну и на всякое говно тини13 ставить.
Я сам хотел освоить stm8 (и освоил в принципе, всю основную периферию пробовал) и как Кент ставить их везде, но они подорожали в 5 раз и стали по цене как есп8266. Вот нахуя так делать. Если уже поднимаешь цены, поднимай на все. А так я расстроен, что мои знания теперь не нужны даже мне.
Где бы пойти обменять stm8 на esp, у меня их 100 штук, только в не родной упаковке, а есп модуля всего 4.
>Получается, проще всего переходить на esp.
Странные выводы. Что ты такое делаешь, что такая разница в цене оказывается существенной? Считаю что важнее наличие необходимой периферии, нормального компилятора и опыта работы. Ну и да, проблемы не только с микроконтроллерами. Микроконтроллер то еще можно как-то заменить один на другой с небольшими изменениями в коде и схеме, а попробуй заменить допустим синтезатор частоты.
Опыт работы не важнее. Скорее наоборот - используй более разное, если хочешь расти.
Удобные компиляторы и вообще окружение конечно круто. Но как поймешь не попробовав? Некоторое вообще кажется очень неудобным, но после опыта, понимаешь, что оно не просто так и в действительности это действительно удобно.
>>467204
ЕСП тянет за собой дин.память и просто охуевших размеров код библиотек. Он до сих пор не очень стабилен. Не каждой задачи подойдет.
Не каждой задачи подойдут ее размеры и потребление.
У нее мало ног и маловато периферии.
В общем это не дил брекер.
Даун, ты где такие цены взял? На али что ли, лолблядь?
На лцсц та же тини13а (в наличии) - US$1.7799 за штуку при опте 1000+ шт. На атмеги и прочее лучше вообще не смотреть.
Есп 12 все еще дешевые потому что спрос на них мал, и это глючное говно - не замена нормальному МК.
Может быть. Но если делается такой упор на стоимость, то затраты времени на освоение чего-то нового будут еще более критичны. А вообще, все микроконтроллерные армы весьма схожи, по крайней мере те, которых я касался.
>Удобные компиляторы и вообще окружение конечно круто. Но как поймешь не попробовав?
Очевидно что единственные нормальные для любительских поделий это gcc и clang, потому что остальные потребуется крякать. А зачем крякать, если можно обойтись без этого и будет ничуть не хуже?
Ты уж определись, тебе упор на стоимость или любительство?
>зачем крякать
Потому, что почему бы и нет? Потому, что дядя с 999999$ сказал, что нельзя?
>Ты уж определись, тебе упор на стоимость или любительство?
Это не у меня заскоки про стоимость микроконтроллеров. Наоборот, смешно от таких, когда один корпус поделки может обойтись намного дороже микроконтроллера.
>>467225
>Потому, что почему бы и нет? Потому, что дядя с 999999$ сказал, что нельзя?
Потому что можно обойтись без этого и будет ничуть не хуже, я же писал об этом. А "дяде с 999999$", который хочет еще больше $$, можно не способствовать даже кряканьем, по крайней мере в данном случае.
Может, есть говноклоны по более грубому техпроцессу?
GD и CS тоже подорожали.
Еще остались недорогие msp430, но это менее производительное ядро и другая периферия.
Перекатился на выпаивание контроллеров из плат с помойки. Попробуй, еще захочешь.
Перекатился, а в stm32 смысл был, что они дешевые. Дорогие есть и получше.
>>467237
Заебатая тема, сам недавно снял два топовых пика, три msp430, одну атмегу8 и пару ST7, которые оказывается нихуевые такие. Сам я редкостный некрофил и в настоящее время ковыряю 8031(8051 без внутренней памяти), МК из монитора и из стиральной машины с внешней памятью.хуй знает зачем написал
Пока все получается
А китайские клоны значит еще более глючное говно?
И что же не глючное говно тогда? Или таких stm32 не существует, чтобы не глючное и не говно?
>что-то совсем непонятное без логотипа ST
по каким-то причинам многие продаваны обязаны замазывать логотипы производителей на микрухах (даже на "рассыпухе" типа PCF8574), но в итоге приходят с логотипами все как положено (хоть и подвальный клон - главное что работают)
>А так это тёмный гетинакс, от которого отлетают дорожки и который режется ножницами обычными.
Был у меня приличный такой кусок советского гетинакса, толщину не помню, около 1-1.5мм, надо было его на куски порезать, так вот эпоксидка которой он пропитан просто каменная - хуй разрежешь ножницами, еще и по краям скалывался наружный слой.
0.273972602739726 поделки в день!
Это поделки уровня: чел попросил сделать девайс и в итоге допилив нормальный функционал толкаю их периодически на всяких авито (таких поделок законченых 3 штуки и 2 в процессе допиливания прошивки). Часть из них на 20-ножках для экономия места на плате и простоты трейсинга, а те в которые не влезла проша пришлось на камни побольше перенести. Один из девайсов юзает обе: на 20-ножке работа с 220 (симисторный регулятор мощности с true rms измерением напряжения и тока 1000 раз в период) и через гальваническую развязку i2c на adum1250arz с ней общается большая микруха на которой крутится интерфейс с дисплеем, кнопками, датчиками и тд.
ПЕРДОЛА РУЧНАЯ РАБОТА ЭКСКЛЮЗИВ БЕЗ ТОРГА
контроллер/регулятор ануса с функцией дрочения и изменения скорости введения - как-то так, рили нишевая хуйня, но челикам нужна и при этом аналоги либо ультрадешевый кал, который нихуя не работает и горит через месяц, либо европейская хуита за 100$+ с кучей дополнительных ненужных фич
>либо европейская хуита за 100$+
Конструируешь и собираешь пердолы дешевле 100$? Норм амбиции.
640x640, 0:15
Так и живу хули, по крайней мере лучше чем РАБОТАТЬ. Раньше 5 лет был веб макакой за 2к вечнозеленых, но потом тупо все заебало, каждый день одно и то же: либо фиксить баги в древнем корпоративном говне, либо клепать однообразное говно в MVC фреймворке, еще и обязаловка каждый день по 9 часов видеть унылые ебала такого же планктона - спасибо наелся. Лучше на воде с хлебом буду сидеть пердеть, смотреть аниме и играть во всякую парашу в перерывах между пайкой пердолы.
>по крайней мере лучше чем РАБОТАТЬ
>Лучше на воде с хлебом буду сидеть пердеть, смотреть аниме и играть во всякую парашу в перерывах между пайкой пердолы
Двачну.
Попробую подмазаться - не хочешь скоопиться в артель? Сам фриланшу эмбедедом, но на заказчиков.
Комплексую, что командного опыта нет и вообще вне сообщества варюсь в каше.
Можно попробовать какую конкурентную ебань забацать.
Та не спс, мне бы свое говно доделать, а потом со знакомым че-нибудь замутить, он хочет вкатиться в тепличный бизнес (собирать ярусные гидропонные залупы для зелени) от меня хочет только йоба контроллеры для всего этого чтоб беспроводные, легко масштабируемые и тд.
Я у этого продавана беру наверное 50-60% элементной базы (микрухи, транзисторы, симисторы и прочее), ну а всякий смд мусор в виде резисторов и кондеров выходит дешевле в местном радиомагазе.
А то не очень хочется 500+ за stm32f103c8t6 с клоном отдавать...
>в чем подводные?
Функции HAL-а будут иметь другое написание может быть. А так-то даже лучше. Давно пора хоронить М0-говно
Заебался пахать инженегром-разработчиком. Пора расширять свои знания. Какие норм книжки по языкам программирования для embedded systems? Ну чтоб с чего-то начать. Пытался сразу залететь с книг по стм32, но читать код для меня пока тяжело, хочу вникнуть.
#Не знаю ни одного человека, который бы куда-то в айти вкатился по книжкам
Берешь плату, берешь примеры, запускаешь;
//Все базовый вкат есть
Дальше берешь примеры и меняешь их под себя;
Чем больше опыта, тем больше можешь поменять;
И уже после того как все попробовал, можно прочитать какую-то книжку о том, как это все сделать с нуля самому;
И запилить свою ос для контроллеров (т.е. RTOS);
Ну ок, плата есть, всякие датчики тож. Попробую потихоньку их коннектить. Правда не особо такой подход люблю. Буду разбирать чужие примеры.
Только STM32F103 это Cortex-M3. И чем по твоему плохи допустим STM32L0, которые на Cortex-M0 и которые поновее и в которых кое-что улучшено по сравнению с STM32F1?
Еще не поздно прикупить акций ST?
Могу помелочи поменторить с нубскими вопросами по МК, в обмен попрошу лишь тоже самое только в радиоинженерии.
Platformio
Ты наверное имеешь ввиду считаешь не время, а количество входов в обработчик прерывания и методом switch переключаешься в обработчик нужного действия ? Надо попробовать.
Я в итоге ту задачу решил немного иначе, у таймера есть регистры совпадения, их 8 штук и вообще по хорошему их используют для шим, но по сути когда таймер до считывает до каждого из значений вызывается прерывание, а дальше маскирую прерывание и выполняю определенное действие, но конечно тут все ограничивается 8 временными интервалами. Твой вариант поинтереснее выглядит.
Сразу задам ещё вопрос, посоветуйте какое железо взять дабы плотно заняться изучением stm32, интересуют все интерфейсы передачи данных, АЦП, ЦАП. Копался на Али и чёт не уверен что брать. Сам я раньше прогал миландровские 1986be91t, но как оказалось советское говно никому не нужно. Короче опыт небольшой но есть.
Если я писал под миландр очевидно что си я знаю, другое дело что с++ не знаю. Но это и не обязательно ведь.
Нормально освоил AVR на ассемблере.
Решил перекатываться на STM, и заодно освоить Си. Немного поигрался с условными конструкциями, циклами и тд, понял, что хочу нормально освоить язык, купил Стивена Прату "Си", и уже сотую страницу унываю, дохуя уделено внимания printf, scanf и их спецификаторам, модификаторам и все это нихуя не применить на микроконтроллере, лежат отладки скучают, пока я ебашу в консоли "Ваш вес составляет 120 кг, ебать вы жироскот"
Что делать? Изучать Си "как есть"? Потом адаптироваться к микроконтроллерам? Или изучать тупо по ютубу именно то, чт онужно?
Пропусти разделы с printf'ами
Попробуй сразу нырнуть с головой и приконнектить к своему мк какую-то йобу. Мне так гораздо легче давалось, чем сто лет всякую хуйню по Прате на Си писать. Имхо так углубляться без практики не стоит, тебе оттуда надо вынести суть про указатели и основные команды. Лучше уж тогда Хоровица и Хилла "Искусство схемотехники" наверни, больше толку будет. А учебники по Си я бы использовал как справочники, когда что-то не получается (хотя зачем, если есть документация).
Принтф применяется на микроконтроллере.
Я тут выше писал, что изучить как оно реализованно на МК - важно и стоит.
Еще стоит изучить как работает внутрянка маллока и соглашение о вызове. Это наверно 3 столпа понимания СИ.
Ну и да. Эти все изучения - довольно херня, самое лучшее обучение это ставить задачу и искать способы реализации.
Тогда ты поймешь, зачем все эти архитектуру, принципы и тп, почему говнокод не приветствуется, почему стоит декомпозировать, почему требуется уменьшать связаность и тд и тп.
Сейчас ты наверно читаешь и думаешь, что понимаешь, но нет, я сам до конца не понимаю.
Рано или поздно ты поймешь, что написать работающий драйвер для периферии или дочернего устройства - это хуйня. А вот написать его +\- стабильно и гибко и правильно встроить в проект по настоящему сложно.
Нахуя вообще тогда такой ебанутый зоопарк говна когда что f103c8 что 102c8 что 030c8 стоят одинаково под 5 баксов?
Самое время вкатиться в старшие планшетные чипы!
А20 очень популярен был раньше в планшетах и поэтому до сих пор не сдох. Даташиты есть на все кроме mali.
Только с питанием нужно разобраться.
>одинаково под 5 баксов
ну это ж барыжные цены, в некоторых местах они вообще охуевшие до 10-12$ за 030c8, а если заказываешь от 5000/10000 штук у производителя, то их цена дешевле доллара с разницей 15-20 центов, просто придется ждать пол года...
мне бы хоть сто штук заказать...
росто не понимаю цен блять у барыг
stm32f103r8t6 - 300 рублей
stm32f103rbt6 - 600 рублей
stm32f103ret6 - 300 рублей
stm32f030r8t6 - 500 рублей
ну и прочее нелогичное дерьмо, типа за 030c8 по 250-350 рублей когдя рядом 103c6 за 150.
хз, могу предположить что 030c8 тупо почти нигде нету, а челам они нужны для ремонта или каких-то изделий и при этом им впадлу или нет возможности перенести проект на другой камень, поэтому на такие ходовые камни и цены ставят на похуе - кому очень надо все равно купит
так на любое дерьмо такая хуйня. даже на 030f4. даже на 8битное говно....
вот тупо нарандомили цен барыги чтобы всё было дороже 3-5 баксов. Даже самое дно.
всё дорого...
просто жопа горит, qfp64 по той же цене что и 48 32 и 20 ног...
Ты о чем? Не знаю что там с дисплеями, но большинство более-менее нормальных библиотек не то чтобы платформо-независимые, но не прибиты к конкретным микроконтроллерам. Как пример из наиболее известных - FatFs и lwIP. Вот и для дисплеев какие-нибудь библиотеки не должны быть прибиты. Из чего-то такого около-дисплейного читал о Nuklear, так оно тоже ни к чему не прибито.
ну вот есть u8g у ардуины... на ней лепил на ардуине дисплеи 1306 и 1106
аналога для стм так и не подобрал. куча всяких переделок портов для 1-2 контроллеров, с кучей вырезанного т.к. авторы не осилили чего-то там.
Я не хочу писать это. Я хочу взять уже готовое и не ебаться. Это програмирывание ради програмирывания какой-то бред.
Ардуина трэнд где-то там ниже
Чет кекнул. Там чувак олед дисплей жалуется что через куб не настраивается, а ты ему lwip.
Ее без подробного КАК ПО ШАГАМ на рандомный проц можно запердолить, не прокляв все на свете?
Ну я тебе скажу так.
Если тебе нужно сделать что то сложное и качественное, не лагающее и вылетающие если юзер полез не туда говно на ардуино. А вот реально подзабить камень многофункционально и что бы было похоже на серьезное устройство - ты наебешься еще с этими либами 10 раз.
80\20 правило реально. Что то выполняющее свою роль сделать быстро, а вот что бы оно было надежным и плавным - придется всрать еще столько же времени и зачастую лезть вглубь.
И лучше бы тебе эту глубь знать...
>>469219
пока-что я сосу даже в попытке устроить инцест между dma и i2c
HAL_I2C_Master_Transmit_DMA не хочет слать байты в экран хоть тресни... HAL_DMA_GetState(hi2c1.hdmatx) возвращает постоянно занятый i2c и нихуя не происходит. при попытке скинуть его принудительно после нескольких мс простоя просто нихуя не происходит дальше. на ровном месте какие-то сложности...
без ПЖП всё работает я жеж не совсем еблаклак чтобы не проверить что без дма работает или нет. без дма хуярит на 1.2 мегагерцах, после дуины конечно я охуел от силкисмуз скролла всего экрана, но хочется дма. ЛЛ хз что такое, мне куб HAL генерирует.
>Так эта библиотека вполне работает на STM32.
через какое-то дополнительное говнокодие
но с дма возможно это какой-то косяк F4 серии, беглый гуглеж выдает кучу жалоб без работающего решения.
hall_i2c_master_transmit_dma наглухо вешает линии на 0, SCL вообще остается до перезагруки притянутой к земле...
Как его заставить заработать? мц с черной таблетки stm32f401cc
Как бы по логике для начала I2C устройству нужно передать адрес в первом пакете вместе с R/W, на что он должен ответить ACK, после чего уже может передаваться массив данных.
Логично предположить, что этот адрес должен передаваться не через ПДП, и только после того как ведомый ответит ACK можно заряжать ПДП. Также логично сделать все это по прерываниям, иначе зачем ПДП?
Вот и разберись что, как и по каким прерываниям делает функция hall_i2c_master_transmit_dma.
короче все было в том что куб упорно выдавал такой порядок для инициализации переферии
MX_I2C1_Init();
MX_DMA_Init();
поменял местами, начало работать через дма.
пиздец какой софт у стм...
теперь i2c наконец-то пропукивается через дма, но приходит мусор (строки обрезаные, инициализация не пашет и все такое) но тут думаю уже разберусь тут сам.
> пиздец какой софт у стм...
Не программисты, а какие-то принцессы нынче. За них целый стек написали, а им все плохо. Возьми и напиши хорошо и выложи на гит, раз такой охуенный софт пишешь.
Чел, это куб так сгенерировал...
Я как раз хуево пишу, но именно хуевость и должен компенсировать софт который генерит код. Но он делает крайне неочевидную вещь - генерит неправильный порядок инициализации...
Пилю свою плату по вот этому вот гайду с небольшими дополнениями.
https://www.youtube.com/watch?v=C7-8nUU6e3E&t=4113s
И есть несколько вопросов.
Насколько он адекватен вообще? Вроде лучшее что я нашел. Но я не разбираюсь в вопросе и мой опыт говорит о том что 90% интернет гайдов говнище жуткое.
Хочу что бы контроллер автоматически сохранял переменные во время отключения питания. Каким образом это правильно сделать? Мой мозг подсказывает мне что нужно поставить конденсатор побольше емкости что бы его хватило на пару секунд. Плюс вывести питание в обход этого конденсатора на какую то из ножек Что бы когда на ней пропало питание МК это почувствовал. Где я обосрался? Если не обосрался то как правильно будет поставить этот кондер и расчитать его емкость?
И последний вопрос. Уже скорее просто теоретический.
Хочу что бы считывались значения с датчика холла. Три провода земля питания и сигнальный. Можно ли каким то образом понять что датчик не подключен? Например плохой контакт или его забыли воткнуть? Может каким то образом по висящей в воздухе ножке? Не бейте сильно может хуйню спрашиваю. Но больше спросить не у кого. Каким то образом делют же предупреждения мол не подключено такое то оборудование. Или там дополнительный какой то способ опроса?
>Мой мозг подсказывает мне что нужно поставить конденсатор побольше емкости что бы его хватило на пару секунд.
Ну наверное можно так сделать. Хотя есть и другие способы, например можно использовать батарейный домен (нога VBAT и прочее), или даже просто тупо сохранять почаще. Можно взять микроконтроллер с FRAM, но это наверное для каких-то совсем критичных применений.
>Плюс вывести питание в обход этого конденсатора на какую то из ножек Что бы когда на ней пропало питание МК это почувствовал.
У STM32 есть такая штука как PVD, у других микроконтроллеров может быть что-то аналогичное. Так что микроконтроллер вполне может почувствовать когда напряжение начнет падать без дополнительных перемычек. Это конечно если питаешь через какой-нибудь стабилизатор напряжения.
>Если не обосрался то как правильно будет поставить этот кондер и расчитать его емкость?
Рассчитывается по соотношениям из школьного учебника физики. q=CU, q - заряд, C - емкость, U - напряжение до которого заряжен конденсатор.
Поскольку разряжать не в ноль собираемся, а до минимального напряжения при котором еще будет работать микроконтроллер, то получаем It=C(U1-U2), I - ток потребляемый микроконтроллером с прочей фигней, t - требуемое время работы от конденсатора, U1 и U2 - начальное и конечное напряжение на конденсаторе. Конечно ток потребления будет зависеть от напряжения питания, но этим можно пренебречь, тем более что все равно нужно брать с запасом.
>Можно ли каким то образом понять что датчик не подключен?
Зависит от того какой выход у твоего датчика. Если цифровой выход push-pull, то легко, подтягивающими резисторами притягиваешь то к земле, то к питанию и проверяешь что лог. уровень остается на месте. Конечно датчик тоже может сработать в процессе такой проверки, но можно принять меры к тому чтобы это не происходило, либо можно повторить такую проверку несколько раз, т.к. вероятно что уровень на выходе вряд ли будет очень часто меняться. А если выход с открытым стоком, то сложнее, там и подтягивающий резистор вероятно будет дополнительный внешний.
>Мой мозг подсказывает мне что нужно поставить конденсатор побольше емкости что бы его хватило на пару секунд.
Ну наверное можно так сделать. Хотя есть и другие способы, например можно использовать батарейный домен (нога VBAT и прочее), или даже просто тупо сохранять почаще. Можно взять микроконтроллер с FRAM, но это наверное для каких-то совсем критичных применений.
>Плюс вывести питание в обход этого конденсатора на какую то из ножек Что бы когда на ней пропало питание МК это почувствовал.
У STM32 есть такая штука как PVD, у других микроконтроллеров может быть что-то аналогичное. Так что микроконтроллер вполне может почувствовать когда напряжение начнет падать без дополнительных перемычек. Это конечно если питаешь через какой-нибудь стабилизатор напряжения.
>Если не обосрался то как правильно будет поставить этот кондер и расчитать его емкость?
Рассчитывается по соотношениям из школьного учебника физики. q=CU, q - заряд, C - емкость, U - напряжение до которого заряжен конденсатор.
Поскольку разряжать не в ноль собираемся, а до минимального напряжения при котором еще будет работать микроконтроллер, то получаем It=C(U1-U2), I - ток потребляемый микроконтроллером с прочей фигней, t - требуемое время работы от конденсатора, U1 и U2 - начальное и конечное напряжение на конденсаторе. Конечно ток потребления будет зависеть от напряжения питания, но этим можно пренебречь, тем более что все равно нужно брать с запасом.
>Можно ли каким то образом понять что датчик не подключен?
Зависит от того какой выход у твоего датчика. Если цифровой выход push-pull, то легко, подтягивающими резисторами притягиваешь то к земле, то к питанию и проверяешь что лог. уровень остается на месте. Конечно датчик тоже может сработать в процессе такой проверки, но можно принять меры к тому чтобы это не происходило, либо можно повторить такую проверку несколько раз, т.к. вероятно что уровень на выходе вряд ли будет очень часто меняться. А если выход с открытым стоком, то сложнее, там и подтягивающий резистор вероятно будет дополнительный внешний.
Воу. Спасибо за такой развернутый ответ. Не все понял, но хотя бы теперь есть материал для гугления.
>Можно взять микроконтроллер с FRAM, но это наверное для каких-то совсем критичных применений.
У меня не критично.. Все таки хоббийный проект. Я взял какой то распространенный EEPROM и повесил на i2c линию. К нему в даташите написано что нужна задержка для нормальной записи. Сейчас не вспомню сколько и в код лень лезть, но там довольно существенная. Не секунда но все же. Поэтому и задумался о каком то резервировании питания что бы запись могла произойти без сбоев.
Опять же по даташиту там довольно ограниченное количество перезаписей так что я подумал что перезапись по кругу будет плохой идеей. Нужны какие то тригеры для записи. Отсюда и взялась идея выполнять запись при прикращении питания. Пойду почитаю про батарейный домен и PVD, а то совсем не вкурсе что это.
>Зависит от того какой выход у твоего датчика.
Вот тут я совсем завис. Пожалуй нужно подробнее почитать про gpio в МК. Потому что отдельные слова я понимаю, а в целое они не складываются. Каким образом можно переменно притягивать выход то к земле то к питанию ни малейших идей. Пользуюсь Кубом если что и там при инициализации ножки можно ее подтянуть к чему то или оставить висеть в воздухе. Как это делать внутри кода на лету фиг знает. Но в любом случае спасибо, ты наметил мне путь. Буду учиться дальше.
>Я взял какой то распространенный EEPROM
Сейчас обычно проще взять микроконтроллер с EEPROM внутри.
>Опять же по даташиту там довольно ограниченное количество перезаписей так что я подумал что перезапись по кругу будет плохой идеей.
Смотря как, можно писать не в одни и те же ячейки, особенно если много памяти не требуется.
>там довольно ограниченное количество перезаписей
Можешь взять внешнюю FRAM, например в электронщике FM24C64B и совсем не дорого.
>нужно подробнее почитать про gpio в МК
Это не в "мк", то же самое во всех цифровых устройствах.
Если у тебя STM32F1, то вроде почти все правильно, конечно если у тебя в initRCC есть RCC->APB1ENR |= RCC_APB1ENR_TIM2EN, но очевидно что есть, поскольку ты писал что таймер считает. Только мигать будет редко. __enable_irq() - тут лишнее. А если у тебя не STM32F1, то всякое может быть.
Самое подозрительное это "вырубание" светодиода вместо инверсии. А то что там у тебя закомментировано, корректно инвертировать не будет, второе условие неправильное и вообще лишнее. Там нужно просто:
if (GPIOC->ODR & GPIO_ODR_ODR13) GPIOC->BSRR |= GPIO_BSRR_BR13; else GPIOC->BSRR |= GPIO_BSRR_BS13;
Ну или покороче, но чуть менее читаемо:
GPIOC->BSRR |= (GPIOC->ODR & GPIO_ODR_ODR13) ? GPIO_BSRR_BR13 : GPIO_BSRR_BS13;
>stm32f1
Да, оно. Известная китайская плата на f103c8t6 поддельным скорее всего, правда. Тактирование настроено на максимальные 72 МГц, делитель шины APB1 делит пополам.
>__enable_irq() лишнее
Почему? По дефолту разве не запрещены прерывания?
>самое подозрительное
Сброс бита, потому что светодиод жопой подключён, я его в initGPIO ставлю в 1, чтобы не светился.
Поковырял ещё в отладчике, UIF ставится в 1 сразу при запуске таймера, но никаких прерываний при этом нет. Так разве должно быть?
>По дефолту разве не запрещены прерывания?
https://developer.arm.com/documentation/dui0552/a/the-cortex-m3-processor/programmers-model/core-registers?lang=en
PRIMASK после сброса нулевой, а запрещаются прерывания записью единички.
>Сброс бита, потому что светодиод жопой подключён, я его в initGPIO ставлю в 1, чтобы не светился.
Ну это понятно, только тот закомментированный код все равно неправильный.
>UIF ставится в 1 сразу при запуске таймера
Это нормально, если такого не хочешь, то перед запуском таймера можно сделать TIM2->EGR |= TIM_EGR_UG;
>но никаких прерываний при этом нет.
А это не нормально. Только что проверил твой (почти) код и оно работает.
>PRIMASK после сброса нулевой, а запрещаются прерывания записью единички.
Ну ёмаё. Ещё одна дока. В technical reference на ядро про это не нашёл.
>закомментированный код все равно неправильный
Исправил.
>А это не нормально. Только что проверил твой (почти) код и оно работает.
А можешь скинуть? Наверняка в этом "почти" и вся проблема.
Я бы гнал на конкретный контроллер, но на HALе мигалка по прерываниям у меня работала.
>А можешь скинуть?
Вот, код и .hex
https://pastebin.com/aXBW9e0u
https://pastebin.com/Zc8jeTd9
>Наверняка в этом "почти" и вся проблема.
Ну не знаю, в тех кусочках твоего кода не вижу проблем.
Я в си не шарю, но на твоём месте попробовал бы load и prescaler объявить как 32-битные переменные.
По даташиту 16-битный доступ к таймеру допускается, но хз как там у китайцев.
Смысла экономить нет, потому что регистры все равно 32-битные. 16 и 8 битный доступ, учитывая что шина 32-битная, сделаны через костыли и гарантировано будут работать только с ОЗУ.
У товарища снизу в коде нет явного задания типа, поэтому возможно у него и работает с 32 битами по дефолту.
Лол, крещение байтоебов.
Помню пару лет назад видел пресс релиз у ST, про какой-то SoC, с процессором и программируемой логикой (типо SRAM-FPGA), но нагуглить или в почте найти не получается. На сайте у СТ тоже, только протухший STW2100
Может быть помнит кто-то, как железка называлась, или как её искать?
У меня в переписке есть упоминание "СоК со встроеннй ПЛИС от СТ"
Я конечно не исключаю, что почудилось и я потом написал, но скорее я просто не знаю как искать.
Может СТ для кого-то выпостила этот СоК? Как в ХДД куча микрух от СТ которых на сайте и не было никогда.
Стандартный бутлоадер шифрование не поддерживает.
Есть два основных формата прошивки : ihex и bin.
Bin это память контроллера один в один.
Ihex это простой формат описывающий секции которые нужно записать. Формат легко гуглится.
Протокол поддерживает запись одной секции. В простейшем случае можно просто записать каждую секцию отдельной командой и все будет работать. Я так делал, но через UART.
А типа есть готовые? Круто.
А как это происходит? Типа в бутлоадер встраиваешь ключ шифрования, а прошивку шифруешь этим ключом?
кто-нибудь сталкивался, как правильно настроить дебагер? выбираю openocd
лог
Open On-Chip Debugger 0.10.0 (2020-12-28) [https://github.com/sysprogs/openocd]
Licensed under GNU GPL v2
libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
WARNING: interface/stlink-v2-1.cfg is deprecated, please switch to interface/stlink.cfg
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : clock speed 1000 kHz
Error: open failed
Попробуй сделать то, что тебя просит warning, то етсть заменить строку
>source [find interface/stlink-v2-1.cfg]
на
>source [find interface/stlink.cfg]
в конфиг файле openocd. Если ты не на винде (боюсь, что ты на ней), то лежит он в /usr/local/share/openocd/scripts/board/stm32....cfg
Какой именно у тебя используется по логам не видно, ищи похожий на твой чип (stm32f0discovery.cfg может).
Как вариант, если st-link настоящий, там же можно ещё закомментировать строку
>transport select hla_swds
Мне один раз помогло, когда с китайской подделки пересел на настоящий, но не помню уже, что именно за ошибка там была, но что-то свящанное с транспортом, так на твой случай не очень похоже.
>visualgdb
Я это не трогал, но по моему оно не обязательно. Это только для специфичных микроконтроллерных штук, типа посмотреть регистры, ассемблерный код и подобное, без чего можно обойтись.
>выбираю openocd
Возьми другой GDB сервер, если не идет openocd. Сейчас вроде как ST вместе с кубом поставляет сервер. Также можно перешить в J-Link, у которого с gdb и вовсе не должно быть проблем, по крайней мере у меня всегда работало "из коробки". А еще у segger-а есть ozone, с которым можно вовсе не разбираться с настройкой IDE.
да, пробовал различные конфиги, там просто другие ошибки выдает
>Как вариант, если st-link настоящий, там же можно ещё закомментировать строку
>transport select hla_swds
попробую
>>471457
>Также можно перешить в J-Link, у которого с gdb и вовсе не должно быть проблем, по крайней мере у меня всегда работало "из коробки". А еще у segger-а есть ozone, с которым можно вовсе не разбираться с настройкой IDE.
сяпки, буду вечером ставить пробовать
Я нихуя не знаю, вкатился с AVR еще и с ассемблера, теперь просто охуеваю, сколько нужно мучать жопу, что бы просто пошагать по программе вручную.
Короче, как обойти эту хуйню?
Плата может быть нормальной, но на клоне сам ст-линк. Я не встречал рнализацию openocd для толика, видимо тебе придется переползать на cubeide официальный или же 6а другие редакторы и там плагинами напердоливать.
>>471764
>>471763
Поставил CubeIDE, переключил дебаггер на openocd и все заработало! На счет плат - хз, у меня есть очень старая таблетка на f030 - так вот она дебажится толиком без проблем.
Правда я не очень понял на счет CubeIDE, он разве поддерживается? - зачем они держат двух близнецов с толиком?
>>471766
Я параллельно осваиваю и stm32 и Си, программирую на регистрах, мне пока легче с дебаггером, пошаговой отладкой, подсмотреть, что в регистре творится и тд.
CubeIDE это просто отконфигурированный эклипс. До нее мы также настраивали эклипс, но это требовало много телодвижений с плагинами и поиском совместимого gdb
AtollicTrueStudio не STM, а сторонней компании, с которотой STM заключила договор, впрочем он тоже эклипс
CubeIDE интегрирован с CubeMX
Обычно делаешь так:
открываешь CubeMX, выбираешь свой контроллер, натыкиваешь нужное тактирование и периферию в нем, жмешь сгенерить и оно тебе генерит проект уже в редактор CubeIDE, если чо можно потом снова в CubeMX открыть поменять че нибудь и CubeMX допишет новое в проект автоматом, главное не писать свой код в те блоки, которые помечено не трогать.
Ну и если дебажить, то дебаж при -Оо оптимизации, а не то может пропускать строки т.к. сочтет их не нужными, и четко не проследишь что он делает по шагам.
Однако меня бесит при сборке и прошивании он рандомно какую-то хуйню выводит, иногда не выводит, непонятно вообще что за хуйня.
Анонче, подскажи, где на пикрелейтед-залупе SWD?
Ну или как минимум, первый вывод это ёбаного 20-пинового разъёма?
Пытался подцепить bluepill по инструкциям из инета - нихуя не видит плату.
Спасибо, анон!
Анончик, подскажи, я купил stm32f103c8t6, худо бедно запрограммировал, что то считает, лампочками мигает, на дисплей выводит, хочу теперь к своей семерочке по обд подключиться, с парсингом кан я допустим разберусь, а ведь там уровни надо согласовывать, в машине то поди 12 вольт, да помехи многокиловольтные по проводке гуляют. Как мне это всё подключить к стм и не сжечь её, а то цены на них кусачие? Оптопары там или что, дайте схему, будьте добры.
Всё ясно, спасибо!
49,12 руб. 5%СКИДКА | Бесплатная доставка TJA1050 может Модуль интерфейса контроллера Модуль интерфейса драйвера шины
https://a.aliexpress.com/_ANsFIQ
Там на плате rx tx написано. Значит ли это, что подключив её к ком порту я смогу читать и отправлять с и в кан шину? Там есть платы с спи и дороже раза в три.
>Значит ли это, что подключив её к ком порту
Нет, ни в коем случае. rx tx - это вход/выход для подключения к микроконтроллеру, там тот же CAN, только уровни другие.
>платы с спи
Не нужно, это только если нет CAN в самом микроконтроллере.
Ещё понятнее, спасибо.
Пиздос. Целый день пытаюсь сконпелировать проект на кейл. Смог снизить кол-во егоров с 338 до 308
Там вообще реально дебажить код не подключая физически отладочные платы, программаторы, конверторы и прочую никому не нужную хуетень?
там емнип должен быть какой-то дефайн, определяющий чо у тебя за проц, обычно он передается компилятору из системы сборки или IDE. Он у тебя похожу проебался. Глянь на ifdef-ы в двух твоих хидерах, чо там должно передаваться, и шерсти конфиг сборки.
Вообщем порядок такой был:
- всбугуртнул и закрыл нахуй этот кейл
- поиграл в анрил турнамент
- открыл двач, прочитал твой коммент, в принципе все дефайны расскоментированы были, я хуй чего ему надо было, но решил еще раз попробывать с новым проектом
- попробывал, все подключил, пути прописал, расскоментачил все что делал предыдущий раз. И ахуеть 0 егоров и 0 варнингов. Ебать странная IDE.
там не надо все раскомменчивать. Просто передай нужный дефайн в вызове конпелятора, если хочешь руками это разгребать. Опция -D, чо именно туда надо - глянь у себя в stm32f4xx.h, выйдет нечто вроде -DSTM32F415x6
Я на 103 кан прерывания так и не завел. Коннектил к блоку Калины. Там какое-то наложение кана на что-то. 407 завелся с полпинка.
>там не надо все раскомменчивать.
На первых порах похую, лишь бы собрать.
>если хочешь руками это разгребать.
Ага, разгреб уже в первый раз, тупо начав удалять сишные файлы из которых вываливались error, считая их не нужными для выбранного мк, но когда дошел до gpio стало очень подозрительно.
>Хочу запилить на датчике температуры (с камерой) MLX90640 небольшой тепловизор с экранчиком 320х240
Сомнительная идея, лучше что-то более полезное попробуй сделать.
>какие характеристики процессора мне потребуются
Хватит любого STM32, ну кроме разве что таких малоножечных карликов как STM32G030J6M6.
Мне как петпроджект в портфолио хочется. Я делал отцу на диплом тепловизор на AMG8833, спиздив идею у этого чела https://cxem.net/izmer/izmer187.php. Переразвёл в альтиуме плату, поменял элементы, сделал корпус, спиздил прошивку, сдал кучу чертежей и рад. Хочу воспользоваться этим сам, раз уж у меня всё, кроме ПО, для портфолио есть. Покажу, что я мастер на все руки, это ценят.
внутри файла с типом .eww, .ewp нет, только .с, .h, пару .xlsx.
из того, что делал это создал новый проект, рабочее пространство, и в него закинул все файлы с исходного проекта, в main.c многое подтянулось, но ни одна папка со своими файлами (CMSIS, BACnet и т.д.)
Нормальные люди кладут все сторонние файлы в проект, и он компилится даже консольным вызовом gcc. Чего там у тебя не хватает - без исходников не сказать
хз когда цены нормализуются, в местных магазах либо нет в наличии либо цена х8-10, у китайцев цена х2-4 но все есть в наличии, правда с ходовыми камнями наебут на раз своими клонами у которых чаще всего тайминги перефирии не соответствуют оригиналам или с ацп проблемы (зато у них иногда памяти х2-3, потому что они в некоторых клонах тупо лепят кристал памяти на основной кристал чипа через прослойку говна лол, на сайте Richi's Lab есть фото скальпированых), известных клонов той же F103C8T6 аж 7 штук, и это те которые с их "фирменной" маркировкой (они их на отладочные платы пихают уже довольно давно), уверен там щас почти все такие даже с "оригинальной" маркировкой
про клоны можно почитать
тутhttps://habr.com/ru/company/ruvds/blog/525842/
пример клона с кристалом паяти прилепленным через говно прослойку:
https://www.richis-lab.de/STM32_06.htm
P.S. на их фирменные клоны даже есть свои даташити на китайском
>401, 407 и Н743
Но зачем, особенно последнее? Для каких задач то? По сравнению с F103 оно избыточно, а для чего-то большего оно еще слабовато.
Замена STM32F1 это скорее серии STM32L0 и STM32L1, которые посовременнее и у которых нет столь большой ерраты как у STM32F1.
А не проще заменить каким-нибудь nxp или rp2040? Или вся суть треда в дрочке куба и никто не осилил тот же платформио?
У стм как раз достаточно хорошие жирные МК f4,f7 и h7
Меня например у стм больше всего интнресует F0 серия (как 20-ножки, так и 48 с дохуя памяти для более сложных проектов), ну и относительно новые G0 охуенные, только их доступно еще меньше чем F серии. В F1 как-то не вижу смысла, потому что за лишними мегагерцами сразу к F4 пойду, а для каких-то сложных измерений где нужен сигма-дельта ацп, компараторы и супер быстрые таймеры - к F3. Бтв F407 очень жоский камешек если надо наботать с дисплеем 480х320 или 800х480 по паралельной шыне, пожалуй мой любимый для проектов со сложным графическим интерфейсом, да и цена не на много выше чем у F103V, у которого тоже есть FSMC, но мало частоты для таких разрешений.
Но разве у nxp и ti нет аналогов? Там же тоже здоровенные зоопарки самых разных мк
Та как-то хз, у меня за 7 лет скопилась уже куча наработок, примеров и библиотек на стм, учитывая как легко переносить код между сериями их камней, если понадобится, я могу взять любой кусок кода или алгоритма и за пару минут добавить в новый проект.
> Бтв F407 очень жоский камешек если надо наботать с дисплеем 480х320 или 800х480 по паралельной шыне, пожалуй мой любимый для проектов со сложным графическим интерфейсом, да и цена не на много выше чем у F103V, у которого тоже есть FSMC, но мало частоты для таких разрешений.
Зачем для такого использовать стм32, если можно взять одноплатник?
>>475708 >>475717
rp2040 может я не там смотрел, но где у этой штуки каналы сравнения/захвата таймера? Или вместо этого предполагается использовать что-то другое?
>заменить каким-нибудь nxp
>Но разве у nxp и ti нет аналогов?
С ними те же самые проблемы, причем как бы не хуже. И ладно бы если проблемы были только с микроконтроллерами.
401 стоит те же 250 рублей, ног столько же, шины те же. Кортекс М4, кан шины нет, но она один хуй в 103 через жопу. Если уж ПРЯМ КРИЗИС, и кан не нужен, лучше их брать.
>Зачем для такого использовать стм32, если можно взять одноплатник?
С нынишними ценами может и есть смысл для использования одноплатников, но если посмотреть цены крупных партий МК на сайте СТМ (именно по ним, а местами и дешевле, продавали китайцы до кризиса, а одноплатники особо в цене и не выросли), то те же F40x стоят в 4-5 раз дешевле самого дешманского одноплатника из китайского подвала, при этом если нужен АЦП это еще плюс к цене за внешний модуль, так же может не хватать и других интерфейсов, ну и отказоустойчивость при зависании, проблемах с питаанием у МК в разы выше.
Какую STM купить, чтобы потихоньку вкатиться в эту тему или хотя бы удовлетворить интерес? Фака не нашёл может искал хреново, в магазинах и на Али их 100500 видов разных. Какую покупать то?
на поиграть бери blue pill (F1) и black pill (F4), плюс программатор stlinkv2 дешевый, перешьешь его в jlink
Все с вами ясно. Конечно же тут все клепают какую-то хрень с дисплейчиками миллионными тиражами, а серии в сотни штук даже не рассматриваются.
>>475804
>умение работать с Ардуино
Может тогда займешься AVR? Должно быть в самый раз после ардуины. Да и вообще неплохо бы начать с какой-нибудь практической задачи, под которую уже выбирать микроконтроллер, а не мигать светодиодом на чем попало.
>>475806
Ага, только фальшивые. На счет F4 не знаю, но F1...
посмотреть куб/хал/лл/цмсис и помигать диодиком хватит.
F4 вроде еще массово не поддедывают.
Всегда есть nucleo..
> посмотреть куб/хал/лл/цмсис и помигать диодиком хватит.
Лол, на клонах может даже Blinky не завестись, если что. Поэтому проще взять МК другой фирмы, если нет доступных стм. Один хуй сейчас на арм все делают, так что можно хоть матлабом код генерировать
>>475807
> Может тогда займешься AVR? Должно быть в самый раз после ардуины
После ардуины можно заняться чем угодно, потому что ардуина максимально абстрагирует тебя от особенностей архитектуры.
Так как у тебя уже есть проекты с АВР, то ты мог бы выбрать не плату, но МК для какой-то задачки. СТМ бывают с встроенным USB и DFU загрузчиком, crystal less или как-там, когда не обязателен внешний частотный фильтр, с 20 пинами. АВР тоже есть что-то такое, но с 20 пинами вроде бы нет. Мог бы зафигачить свою плату и минимум всего, это же может быть шаблоном для будущих проектов. И для дипломной тебе же нужно будет проект который готов к сирийному производству, может готовые платки не прокатят.
>когда цены нормализуются
Это буржуйский менталитет. Мы то знаем. Когда-нибудь на что-нибудь цены падали после повышения в 2-3 раза? То-то. Зарплаты может подтянутся. Лет через 10.
Понял тебя. Как написал достопочтенный анон >>475833 - возьму F4 и F1 оба: если один оригинал, то чтобы познать суть настоящей СТМ, а если второе подделка - чтобы на собственной шкуре ощутить жопоболь от работы с китайской палью. Деньги небольшие, можно попробовать. Не жалко.
>>475807
А что AVR? Пока хватит и Arduino'вских, может потом вернусь к АВР и займусь этим серьёзнее, уже не на базе этих плат. Передрочил много разных адруинок: от самых мелких до Лео и Мег. Светодиодиками мигал, с дисплеем работал, датчики подключал, сервомашинки. Собрал одну прибуду специфическую в университете для анализа работы эл.движков - работает сомнительно, но был какой-никакой опыт. Робота на колесиках - собирал. Для выставки пиздюкам робота-гексапода тоже собирал. Руку-манипулятор для дрочки опять же для развлечения пиздюков. Пытался собрать CNC для резки пенопласта, но забросил. ESP брал исключительно из интереса работы с Ethernet и вайфаем. IoT, умные дома, ёпта бля. Хочется попробовать новенькое что-то. Вот на стм и выбор пал, давно на них смотрел. Я то еще студент во-первых, так что ничего серьезного не подразумевается. Во-вторых, это как хобби для души, по специальности я не сильно пересекаюсь с МК вообще, за исключениями. Обычно - ПЛК и ПР какие-то.
>>475848
Какие проекты, какие дипломы? Спок. Мой диплом будет автоматизация работы дробилок на обогатительной фабрике или что-то связанное с механизмом разлива стали на металлургическом комбинате. Это не 100%, но направление такое будет - такова уж моя специальность и ВУЗ, так что до серийных йоб на базе АРМ, АВР не дойдёт. Пока только личный интерес и жажда познать новые технологии древних пришельцев с Нибиру
>Лол, на клонах может даже Blinky не завестись
Usb работает, bootloader работает, а блинок не заработает? Васян, спок. Любой китайский чип надёжнее твоего софта.
У меня все работает на клоне, дальше что. Я ж говорю ты васян.
Вожусь сейчас с stm32h7, у которой на борту несколько fdcan'ов.
Вроде навострился настаивать через куб один классический кан с приемом по прерыванию и фильтрами.
Но! Когда я пытаюсь настроить один can с фильтром на один приемный fifo (fifo0), а другой can на другой приемный fifo (fifo1), вообще нихуя не работает, либо работает только один can. При том, что если настроить оба can с фильтрами на один приемный буфер, все нормально работает.
Пиздец, голову сломал, пока пытался понять в чем дело
поддерживается бОльшим количеством софта и как-то пошустрее работает, плюс может шит/отлаживать не только STM-ки. Единственный минус - теряется STM8.
Аноны где найти подробное описание регистров и назначение битов, чтоб в табичном виде и все сразу?
Как вы их запоминаете? AHB,APB,RCC_CFGR тут кровля протечет от таких сокращений.
Вот например:
Bit3 HSERDYF
Описание:
HSE ready interrupt flag
HSE - хуй с ним. hight speed external
RD - хуй с ним. ready
F - flag
Ну Y как у них ассоциируется с interrupt?
Дефайны там вообще наверно не запомнишь, постоянно надо будет обращаться к хидерам.
нафига их прям наизусть запоминать, для людей cmsis есть.
Y к прерываниям не относится, это часть RDY.
>Y к прерываниям не относится, это часть RDY.
Sоока, точно. А по какому принципу они эти сокращения делают, не вкурсе часом?
ну вот один пример ты же сам разобрал, так и остальное. Там нет строгой системы.
Ну просто делают. Поставь себя на их место и поймёшь. По оглавлению референс мануала ищешь, что тебе нужно, и там уже копаешься.
> По оглавлению референс мануала ищешь, что тебе нужно, и там уже копаешься.
Да нахуй. По тихой лучше в хидерах закоментить расшифровку.
Ясир Арафат
Ну да, все и говорят порт GPIO, ток тебе то это как суть меняет? Всё равно речь идёт про порт.
>ток тебе то это как суть меняет?
Восприятие это меняет, а не суть. Вот где им перешла дорогу аббревиатура PIO? Даже звучит - пиу, как тебе?
PIO бывают оче разные. А как видишь General Purpose IO - сразу яснопонятно, это для простого ногодрыга.
Ладно, пёс с ним.
Посоветуйте лучше для вката плату.
вот эта пойдет? https://aliexpress.ru/item/4000961371192.html?sku_id=10000012695587334&spm=a2g2w.productlist.0.0.8c6049f3pHZk6K
Stm32f103c8t6
Там st-link не надо ведь будет, или сверху еще и его взять?
Да мне просто пощупать сам стм. Тыщу только закинул, на 4 все равно не хватит.
А, что за шумиха вокруг них, подделки манделки, как не наебатся? Наткнулся уже на продавана f103c6t6, он аж в описание оправдания внес типа - аттеншн, это с6t6 различия в размере памяти! На самом деле подделки или просто криво пишут/читают описание?
>вот эта пойдет?
Ничем существенным не отличается от blue pill, только дополнительно ПЗУ припаяно.
>Там st-link не надо ведь будет
В этой плате нет встроенного st-link, а встроенный бутлоадер у этой серии не может грузить из USB.
Ну и про Stm32f103c8t6 выше страшилки писали, по моему стоит поостеречься. Возьми лучше https://www.electronshik.ru/item/ST/STM32L051C8T6 Если лень самому делать плату, то купи любой blue pill и перепаяй, они кажется по ногам совместимы.
>Ничем существенным не отличается от blue pill, только дополнительно ПЗУ припаяно.
Ебать я конечно победитель по-жизни, заказал эту плату что с пзу, теперь на ст линк не хватает, кек. А, DAPLink сильно отличается? Хватает только на него, или нахуй щекотать очко и завтра докинуть и купить st-link?
>>476360
>Возьми лучше https://www.electronshik.ru/item/ST/STM32L051C8T6
Там же меньше памяти?
https://www.youtube.com/watch?v=UvArprBmdFA
да хуй с ним дефицитом, за само использование таких высокоуровневых МК, датчиков и батареек для одноразовой медицинской хуйни, которую потом сжигают как биоотход, надо его изобретателей пиздить железными трубами и арматурами как в дарк-вебм с мексами и нигерами
Мне вот жалко аккумы мелкие из одноразовых вейпов. Я их собираю, но сколько же уходит в помойку их с одним циклом.
Ты походу в английский не можешь. Смак тут в другом.
Эта хрень - тот же самый домашний тест в виде полоски, вставленной в картонку, вся эта замороченная оптическая система и жирнючий МК с блютусом нужны лишь для того, чтобы считать, одна или две линии появились на полоске. Т.е. сделать это можно глазами. Затем эти данные передаются в приложение на смартфон, откуда передаются в облако. На смартфоне появится надпись позитив/негатив, а ID устройства будет занесено в облако как использованное, т.е. даже если ты сам заменишь тестовую полоску на новую, получить данные с этого чудо-девайса уже не получится, т.к. он уже был использован. Электронные тесты на беременность, кстати, по такому же принципу работают.
Но еще самый смак в том, что как тест в виде полоски с картонкой, так и этот чудо-девайс, оба выдали автору видео ложный положительный результат, оф. лаба же показала отрицательный тест на ковид.
>сжигают как биоотход
Это чисто домашняя хуйня от маркетологов с достоверностью результата, как у брошенной монеты, которая утилизируется с бытовым мусором. В медицинских учреждениях такие тесты не применяют.
Но, тем не менее, в ЕС и США штампуют такие тесты сотнями тысяч, если не миллионами, и люди их покупают. По сути это чистейший наёб и перевод дефицитных ресурсов в мусор. Производителям МК, впрочем, такое положение дел очень даже выгодно.
та это понятно было из видоса и коментов, но поебать, такого маркетингового говна полно во всех сферах, просто разбить бы в мясо ебасос тому, кто разработал этот девайс, за буквальный проеб полимеров
А при чем тут инженеры, если у людей есть спрос на такие "умные" одноразовые показометры, а маркетологи рады им это предложить? Инженеры сделали именно то, о чем их просили в ТЗ. Это рыночек, капитализм, счастье, заебись.
я даже думал покупать их у зумеров. почем эти пакетики выходят, если их так покупать? сколько там махов?
На алике 1-2$ за все аккумы до тысячи. Там нет четкой зависимости цены от ёмкости, можно 3000 банку купить дешевле чем какой-нибудь 250 мАч. Поэтому никогда не покупал их, а сейчас уже 10 штук вейпов хоть к каждой плате лепи автономку.
В вейпах от 270 до 800 мАч встречал пока, в зависимости от размера самого вейпа.
>>476614
>>476605
Вы чё, совсем ебанашки? Это говноаккумы с самой дешманской химией, типа самых дешевых нонеймов с али. У них с каждым циклом ESR растет чуть ли не на десятки процентов. Нахуй нужны такие аккумы? Это рили мусор с никаким ресурсом. Даже ушатанные банки из старых ноутовых аккумов лучше, чем это.
но там не аккумы, но и просто батареи могут быть,которые максимум один два раза заряжаются
>настоящий литий
А в литиевых батарейках фейковый литий? Что ты этим сказать-то хотел? Даже если брать чисто аккумы, ты хотя бы примерно представляешь, сколько вариантов разнообразной химии встречается в li-ion и li-po аккумах? И ведь эта инфа даже у дорогих брендовых аккумов далеко не всегда в даташите указана.
есть ли ли ион который только один раз заряжается? вообще пора делать литий тред
Очередная история успеха подкатила. Учился я как раз по этой специальности в начале 2000-х. Было около 90 человек только на одном потоке. Из всех наверное от силы 10-15 человек реально что-то понимали, остальные пробивали зачёт и не парилсь.
Как выпустился, прошёлся по заводам. И внезапно выяснил, что электроники никому не нужны. Прямо в отделе кадров говорили, что вас как говна, предприятия не могут обеспечить столько рабочих мест. В результате все 10-15 человек пошли кодить жабу/похапэ и рубить бабло.
К тому же начал выяснять по вакухам, что если требуется кодер с навыками паяния, то это сразу -30к к зарплате.Даже здесь и сейчас. В общем всё пришло к тому, что инженер-электроник это синоним бомжа. А если умеешь кодить и паять, то сразу минус к зарплате.
Народ не дебил и в текущее время по всем смежным специальностям жуткий недобор. И молодым, если спрашивают, всегда говорю, брось нахуй паяльник. Это же как параша на зоне. Один раз коснулся и всё, ты по жизни нищеброд. Потом хер отмоешься.
Все потому что эта сфера больше направлена на свой наебизнес, неважно продажа махараек через лохито или развод на бабки стартапом, в йоба компаниях обычно есть отдельно кодер, отдельно проектировщих печатных плат, и они делают/поддерживают не 1-2 махарайки а целый ряд нишевых продуктов. Но в целом, да ты будешь либо бомжом работающим за миску гречи, либо успешным кабанчиком стартапером, другого пути нет...
Хохол, залогинься.
Кластер это просто минимальный единица памяти в памяти. Если будешь писать мелкими пакетами, на карте будет занят один кластер, пока суммарная память не превысит размер этого кластера, потом занято будет уже два кластер и так далее
С ассемблером та же хрень. Я и на js пишу для себя, но продать это пока нереально.
А платят всегда за руьтну. Работа это рутина.
>Но в целом, да ты будешь либо бомжом работающим за миску гречи, либо успешным кабанчиком стартапером, другого пути нет...
а как же разработчик в йоба компании??
>если требуется кодер с навыками паяния
Там это 2 раздельные профессии и от "паяльщика" будут требовать знание всех подводных трассировки плат и вцелом знание радиотехники на порядок выше, чем от обычного васяна ардуинщика, а от программера уже как повезет, если там на каких-нибудь TI микрухах педалят, то гайдики как для AVR и STM32 уже не в таком большом количестве чтоб быстро подсмотреть реализацию работы какой-то периферии.
Как рыночек порешает столько и выйдет, хз нужны ли будут кому-то твои йоба инновационные разработки (махарайки) + смотря как ты будешь их вообще предлагать людям (реклама, ритейл, форумы, свой веб сайт и тд)
Не стоит того, любая кафешка или ларек с дешёвыми наушниками с АлиЭкспресс, х4 к цене быстрее окупится и принесёт прибыли больше.
Паять ради денег нет смысла. Паяйте ради славы, ради человечества, но жрать все равно будете борщи даже когда вас будут показывать по телевизору 24/7.
>Паяйте ради славы, ради человечества
А просто для удовольствия никак нельзя? Почему вообще считается, что хобби должно приносить доход? Ведь это тогда уже не хобби, а работа.
Просто ради удовольствия можно моргнуть светодиодом. Что-то большее будет либо спижжено кабанами, либо военными либо автору таки придется выйти за рамки "просто ради удовольствия".
Тут уже наверное от амбиций зависит, если б я сделал условно девайс за 5к рублей и продавал таких 3 в месяц - меня б это вполне устроило, тупо сидишь в стул пердишь 24/7 и тратишь несколько часов в месяц за 15к.
продвижение, техсуппорт, брак, вот это всё..
за износом флешки следит контроллер внутри нее, а то что ты пишешь 10 раз по 100 байт вместо 1 раза 1000 байт, не влияет на занимаемое место или износ
Всё ясно, спасибо! Буду писать по 60 байт.
Че скажете? Это оригинал или тоже говноклоны? Брать?
О, ну нихуя себе, буду знать
Ну 1500 штук это мало вообще. Но для штучных марахаек норм
что махараешь?
лучше подскажи где платы в рф лучше заказывать без кучи бумаг и договоров, чтоб как в у жлспсб, желательно с смд монтажом
Что будем делать?
Пытаться засунуть HAL в VSM Протеуса? Пытаться писать без хала?
>>477140
Ну я ж сказал, пиздец оверпрайс.
> Пытаться засунуть куб в VSM Протеуса? Пытаться писать без куба?
Фикс, тьфу блядь, язык заплетается уже
1. Не на совковый умирающий завод надо идти, а на нормальный
2. Так как заводов нормальных нет, но программистом-встройщиком быть хочется, то надо идти в профильные аутсорс-конторы и пидорасить прошивки для дядюшки Сэма. Он за это будет очень благодарен, естественно, не словесно. Хуй его раздупляет как в рашке с такими конторами, но в Киеве и Львове парочку есть.
3. Знания основ электроники могут хотеть, но это будет зачитываться тебе как плюс (я про те самые аутсорс-конторы), но ты все равно будешь только кодить.
И да, паяльник брать в руки не зашквар, это превосходное увлечение. Намного лучше, чем все свободное время тупить в мемы, аниме, политоту, выебываться арендованным майбахом в инстаграме.
Да это какой-то фантазёр мамкин насрал, неосиливший хоровица и хилла.
Пиздец, анон, спасибо за этот магаз
Я правильно понимаю, что у каждого таймера ТІМ1, ТІМ2 и тд только один счетный регистр? То есть, если я к примеру, на 3 и 4 канале TIM1 организовал какой-то ШИМ, то на 1 и 2 канале я уже не смогу организовать опрос энкодера, потому что счетный регистр уже занят?
>то на 1 и 2 канале я уже не смогу организовать опрос энкодера, потому что счетный регистр уже занят?
Да, конечно.
>энкодера
Учти наличие дребезга контактов. Если использовать таймер, то целесообразно использовать тот, у которого по входу есть фильтр, а такие в STM32 не все.
>в хидерах или reference manual
В референсе только "Address offset: 0x00" и т.д.
Там как-то с определенной области памяти они идут? яннп
Бля, еще в дебагере их нет, их там теперь только по адресам в окне памяти искать?
Вот это по началу пиздец бесит
Почему это неправильно: ADC1->CR2 |= ADC1_CR2_ADON;
А вот это правильно: ADC1->CR2 |= ADC_CR2_ADON;
Я пока привык к ебанутым записям, пережил немало хлопков в районе пятой точки.
Бесит, что в референс мануале не указывается последовательность настройки периферии. Что первое, включить АЦП или настроить его?
В итоге после попыток настроить самостоятельно, бросаешь все на 95% готовности и идешь как ребенок гуглить.
Уже 2 месяца ковыряю stm32, прироста не чувствуется нихуя, AVR показались какой-то детской игрушкой, а здесь... как будто стиральная машинка с приборкой от боинга.
Все понял, нашел в дебагере.
Хочу сделать с другом контроллер с кнопками хуёпками и открывать двери разные.
Я так понимаю чтобы это всё по человечески выглядело и можно было потом отдать в опенсорс(раздать всем желающим) , то надо в Cube32Ide создать проект, насторить build targets, сделать таргет для сборки тестов на unity и потом на это делать сделать экспорт Makefile?
Segger Embedded Studio поддержживает проект с Eclipse нормально, я его использовал с J link Pro, а так чтобы люди в случае чего в редакторах могли работать Makefile проект будет достаточно или чего еще прикрутить?
В Cmake не умею, написать проект на CMake с тулчейнами пойдет больше времени чем на сам проект.
Просто я скачивал разные библиотеки(lcd, 24hc память) и хотел бы также людям отдать по человечески, чтобы они могли хотя бы пример без проблем скомпилить и поиграться хорошим годным тестовым проектом.
Почему cmp когда доходит до заданного числа поднимает carry?
cmp это ведь вычитание, так? Если у меня сравниваемые константа и регистр равны, нахуя поднимать флаг переноса?
>cmp когда доходит до заданного числа
cmp не "доходит до заданного", это просто сравнение двух операндов.
>Если у меня сравниваемые константа и регистр равны, нахуя поднимать флаг переноса?
а если не равны? состояние флага C как раз может показать, какой больше.
>cmp не "доходит до заданного", это просто сравнение двух операндов.
Я имел ввиду, когда используешь ее в цикле. К тому же это не простое сравнение.
These instructions compare the value in a register with Operand2. They update the condition flags on the result, but do not place the result in any register.
The CMP instruction subtracts the value of Operand2 from the value in Rn. This is the same as a SUBS instruction, except that the result is discarded.
Причем сам SUBS при вычитании одинаковых чисел также поднимает флаг переноса.
>а если не равны? состояние флага C как раз может показать, какой больше.
Если не равны то как раз не поднимается флаг, поднимается только если в результате операции получается ноль, т.е. поднимается флаг нуля(ну это логично) и какого-то хуя флаг переноса.
Ладно оставлю пока это.
Это потому что для вычитания наоборот С=1 означает отсутствие переноса. А так оно происходит потому что логика работы дополнительного кода. Допустим вычитаем 1 из 1, это соответствует суммированию 1 и 0xFF, получаем 0x100, то есть перенос.
>означает отсутствие переноса
Это я как-то не совсем корректно изъяснился, но ты наверное понял что я имел в виду.
процессор вот в душе не ебет, что ты там цикл ваяешь. Для него вообще нет никаких циклов, только условные переходы.
глянь пикрил, какие флаги проверяются для каких условий
соус https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/condition-codes-1-condition-flags-and-codes
>>478298
>>478332
Бля у меня тут еще вопрос возник, а в кейле .inc - не работают штоле? Только в .s файлах объявлять процедуры, переменные и макросы?
И еще в 4-ом кейле можно было без экспорта __main и __Vectors, судя по ничтожной горстке примеров в интернете, обойтись. В пятой версии уже так не получится? Потому что ошибки вываливаются без них. Или я объебался с настройками где -то?
https://www.youtube.com/watch?v=fxAsY0S2Xa0&t=1640s&ab_channel=ElectronicsClub
Возник вопрос (я только собираюсь вкатываться в микроконтроллеры) - зачем автор использует CubeMX и CubeIDE, ведь CubeMX же это составная часть CubeIDE? или я что-то не так понял?
Это сейчас все сделано в одном ПО
Ещё пару лет назад это был отдельные программы. В кубе можно было сконфигурировать проект под необходимую ide (эклипс, кеил, и что-то ещё) а щупустит уже в чем необходимо после
Куб это генератор кода, а CubeIDE это собственно эклипс, к которому прихуярили куб. То есть можно пользоваться CubeIDE, но можно использовать CubeMX и любую другую IDE, которую тебе удобно.
А вообще stm32 можно программировать из-под ардуины! Шок контент для всего треда.
Та нахуй оно тебе надо, юзай регистры.
Научишься читать дш и рм. А время лучше потрать на изучение принципов работы ОС, на ФриРТОС и на основы электротехники.
П.С. Не слушай этих уебанов, нравится железо - иди. Тебе этим предстоит не один год заниматься, не хочешь вздернутьс - делай че по душе. Заработаешь и так, если не дебилиус.
> Та нахуй оно тебе надо, юзай регистры.
НЕ ЛЕЗЬ БЛЯДЬ ДЕБИЛ СУКА
Нет, серьёзно, придумали наиудобнейший HAL, LL, так не, надо дергать регистры. Ты заебешься их изучать, это все говно говна. Сложение двух чисел занимает три строчки, это ж ебануться.
>HAL
Это адское кривое говно, не трожь это. Оно кривое и громадное как доя использования, так и под капотом. Это писали какие-то джаваскриптеры или инстаграмодебилы.
LL еще куда ни шло.
Хотя, я хуй знает чем тебе неугодил CMSIS + дефайны на регистры.
Datasheet и reference manual все равно читать придется.
Какое сложения, не надо путать ассемблер и регистры настройки переферии. И лучше сразу не то чтобы уметь инициализировать переферию через регистры, так хотя бы иметь представление что и куда смотреть в них. Полезно будет как минимум для дебага.
Hal штука удобная, но если где то внутри закрадется багуля, разбираться в этих индусских кишках себе дороже.
Далеко даже ходить за примером не надо, мне сейчас надо было организовать общение по i²c с микрухой, а для этого необходимо сделать несколько условий старта без стопов, а в этой ебучей hal нет специального кода. А итоге пришлось писать на low level драйвере код и точно так же чекать регистр статуса и прерываний. Так что hal штука удобная, но в случае непоняток и багов может обернуться геммороем
Не смог в хал - объяви его говном. Ясно. Напиши на цмсис lwip стек или fatfs, уебок.
В hal и ребенок сможет, ничего не имею против, но если он не может сдеать то как именно тебе надо, придется лезть глубже в регистры.
По моему опыту, если хал не может сделать как тебе надо, то нужно его рефман посмотреть внимательнее.
Я тоже все время проверял запущен ли таймер сравнивая его регистры, а потом оказалось что в хал таки есть дефайн на этот случай.
Я тебе дам пизды, дрищь.
Ты сука дупля не отстреливаешь что lwip и fatfs никак нахуй не связаны с hal.
Охуеть теперь
Хал хуево документирован - смотри рм. Отлично блять, одним тупанимешником больше.
>Ну и программируй их на цмсис, хуесосина
Да как нехуй, висюлька.
Настоящие программисты это сделать могут, это только у хикканов вроде тебя проблемы возникают. Да че там говорить, вчера моя знакомая психологиня заебашила работу с uip на регистрах, а ты про fatfs ноешь тут как сучька.
>оказалось что в хал таки есть дефайн на этот случай.
Который оказался в LL?
>>478561
>Ну и программируй их на цмсис, хуесосина.
Я просто мимо проходил, но не надо тут такое писать. На счет lwip не знаю, но в fatfs всего лишь нужно дописать функции disk_read, disk_write и disk_ioctl. Это вообще ни о чем, даже если хоть на ассемблере писать.
>Хотя, я хуй знает чем тебе неугодил CMSIS + дефайны на регистры.
Тем что все гайды по миганию светодиодом на блюпилке все ж про HAL? Ну пара про LL находил, пару про ардуино иде. Но чтоб CMSIS - ни одного
>Теперь верю
Не злись, мужик. Релакс.
>>478567
Блять, будь мужиком, возьми в руки документацию, свои яйца и разберись! Вот, кстати, тебе в помощь: http://www.count-zero.ru/2018/stm32_start/. Не будешь мне тут хамить - скину еще.
Я не ебанутый чтоб на цмсис что-то писать. Свое говно оставь себе. Сиди один в пустой комнате и дрочи на свои маленькие (как и все у тебя) программки.
Я с АСУ ТП думал перекатиться в ИТ через embedded. Но что-то кажется, что шило на мыло меняю..
Из под питона тоже можно.
Сделал свой аналог куба. Мышкой настраиваю регистры, генерируется код инициализации в сжатом виде, который обрабатывает процедура на ассемблере.
Максимально просто, коротко, гибко и без всякого си.
Вообще-то тот анон не прав. Первый это программатор-отладчик, а второй преобразователь, с помощью которого можно прошивать.
А у некоторых микроконтроллеров бутлоадер может и вовсе по USB грузить.
он спрашивает в теме стм32, очевидно что ему нужен программатор для стм32, скорей всего с функцией отладки, а то что кто-то шьет юартом другие микрухи не делает тот преобразователь программатором
>а то что кто-то шьет юартом другие микрухи не делает тот преобразователь программатором
Какие другие? Бутлоадер у всех стм32 может работать с UART. Хоть обперешивайся через UART.
> Блять, будь мужиком, возьми в руки документацию, свои яйца и разберись!
Но я ардуинщик. Работает и так и заебись
> Какие другие? Бутлоадер у всех стм32 может работать с UART. Хоть обперешивайся через UART.
Что? Разве для этого не нужно залить свой бутлоадер, как это сделано в ардуине?
Из коробки через uart только есп шьются и то там упоротая схема
можно и свой залить, если хочется чего-то продвинутого, но там и изкоробочный есть простенький. Он в системном ROM-e, запороть его как на ардуйне не выйдет.
Как уже написал анон, там оно встроенное. Добавлю только что такое встречается часто, например почти во всех микроконтроллерных кортексах такое есть.
Ну не работает в хале, возьму твой цмцис, что нельзя смешивать что ли? В параметрах сборки -O3 и насрать вообще
SOOQA, У меня бугурт высшей степени. Как подключаются сторонние
.s файлы get хует чет не работает нихуя. В справке написано вы долбаеб get разворачивает нутря файла в том месте где я его прописал, ну чото нихуя. Компилятор(или транслятор хуй его маму знает) пишет ундифайнед симбол. Но бля, я же прописываю get c именем файла, чо за хуйня?
Конечно, можно.
Смотри, короче, я только в интернете выебываться умею бы usb вряд ли стал бы через cmsis дергать. Но вот uart, i2c, spi - вряд ли через хал. Потому что мне так удобнее. И вряд ли бы стал строить проект на хал, так только откуда-то подергивать его и все, не более.
Я помню спорил с одним хером с ютубов, он мне доказывал что цмсис это супер, это скрепно и все профессионалы пишут только на нем. Я его спросил зачем хоббисту байтоебить если в махарайке счёт не идёт на байты или микросекунды. Второй вопрос - если вместо быстрого скелета программы на хал/лл он заказчика будет кормить сроками в полгода, в какой канаве он окажется? Ведь профессионал тем и отличается, что в состоянии использовать весь инструментарий и должен понимать когда что использовать, за это ему и платят. Через минуту я улетел в бан. Вот такой уровень аргументации у любителей цмсис. Нравится вам очко щекотать в обнимку с рефманом - ваше дело, но с фанатичной преданностью доказывать что ничего лучше нету это полное ебанатство.
Рефман в любом случае придется читать. Даже если используешь HAL. И даташит тоже придется читать. Если не хочешь читать документацию - значит, иди в джаваскрипт, педон, мобайл, в микрокамнях - это эссеншл навык. Такова специфика, мать ее.
Смотри, я не против HAL как такового. Я против того, как сделан хал в stm32: есть стойкое ощущение, что его писали двачеры, из-за чего он вышел крайне отвратительного качества. LL - хорошая весчь, отличная, но хал с кубом - это пиздец.
Зачастую, да, МК используют в задачах, где счет на микросекунды и менее. Опять же, в вебе этого нет - иди рисуй себе кнопки, тоже нужное дело.
И да, инструментарий обычно выбирают под задачу. Будь-то цмсис или лл.
Какого хуя вообще в тред набежали тупые двачевые пидор-хипстеры?!?!?? Это, блять, потому что кремний сука подорожал?!?!?!?
В миллиард раз лучше, чем любимое говно местных hal-говноедов.
>>478741
Ебать ты обиженка. Десяток предложений не можешь написать без проекций. Посылание в веб, ещё куда-то, и все из-за нежелания байтоёбить как диды. Прославление мертворождённой библиотеки из древних свитков, опять же.
Вот чем конкретно тебе не нравится хал? Давай только без мноха места на флеше и там много проверок. Примем что я не собираюсь делать проект на миллионы копий и системы связанные с жизнью и здоровьем человека.
А он не сможет объяснить, потому что не пользуется им, только слышал что где-то кто-то хуесосил баги в какой-нибудь древней версии хал в 2015 году. Я в связке куб+кейл на stm32f030f4p6 делал залупень для стабилизации напряжение через угол открытия симистора и надо было чтоб она максимально эффективно реагировала на помехи в сети, потому что они применялись на производстве с кучей мощных тэнов и реле, которые отдельно отключали некоторые нагревательные блоки. В итоге на 48МГц удалось выжать 800 измерений за полупериод в кольцевом буфере и еще в фоне пара алгоритмов и интерфейс крутились - у челиков производственный брак упал с 7% до 2%.
>я не против HAL как такового. Я против того, как сделан хал в stm32: есть стойкое ощущение, что его писали двачеры
удобряю. Стопицот развесистых колбэков на каждый чих, таскание жирных структур туда-сюда, вот это вот все. LL куда пизже.
Ну я вот смотрю разные каналы на Ютубе, большинство юзает хал. Кармин Новиелло и самая известная книга про стм32 описывает хал. Говорят хотите ниже абстракцию возьмите лл. Цмсис там просто как объяснение что внутри хала происходит или "ля как могу". Один тип просто без дефайнов цмсиса, тупо на адресах светодиодом моргал, другой на ассемблере поморгал ради примера.
И только ру комьюнити орет "ррря, хал говно", а пояснить почему говно никто не может. Васян какой-то сказал что говно, а цмсис для элиты - значит так и есть.
Куда туда? Куда сюда? У тебя там сервер и тонкий клиент? Разные контексты в куче? Что он там таскает?
>Стопицот развесистых колбэков на каждый чих
пиздеж про то что они развесистые, там либо weak функции с выпадением в ошибку либо сброс регистров
>таскание жирных структур туда-сюда
еще больший пиздеж, абсолютно все что больше uint32 передается через указатели
>проекций
Иди в соц с такими терминами, психолух. Тут электронщики сидят.
>Посылание в веб
Потому что тебе там место. Хотя сомневаюсь - там тоже нужно уметь читать документацию.
>диды
Старших надо уважать.
>Давай только без мноха места на флеше и там много проверок.
Этим и не нравится, сука. Это бля моя флешка, это бля мои такты! А не ебучего непонятно чего!
Кубом не нравится. Я хочу использовать свою иде, а не это эклипсоподобное говно. Подружат куб с силайном - ок, нет - железобетонно идут нахуй (как и ты). Непонятно нахуя куча запутанного кода со старта просто. Такие как ты начинают мазать поверх всего этого своим «кодом» и получается адский пиздец, нечитаемое дермище. С ЛЛ вы тоже наговнокодите, но это хоть за год прочитать можно будет.
Кеил!? ДА ИДИ ТЫ НАХУЙ, БЛЯТЬ! Я ЭТУ ВИНДУ НА ХУЮ ВИДАЛ!
>>478749
Семен, пожалуйста…
>>478756
>каналы на Ютубе
Так иди видеоблоги снимай, чего ты в инженерии забыл?
Расплодилось вас ютуб-программистов как пиздеца. Правильно, не умеете читать документацию, шаг в сторону - все, пиздец, нихуя не можете. Такое дерьмо потом в пулл-реквестах, что я в рот его ебу.
> отличная, но хал с кубом - это пиздец.
Может и пиздец, зато ничего удобнее куба я не видел. Это намного интуитивнее и понятнее чем писать PinMode(хуй,жопа)
>>478813
> >Посылание в веб
> Потому что тебе там место. Хотя сомневаюсь - там тоже нужно уметь читать документацию.
> >диды
> Старших надо уважать.
Давай лучше поставим espruino на какой-нибудь f4 и вместе пойдем нахуй?
> Кубом не нравится. Я хочу использовать свою иде, а не это эклипсоподобное говно. Подружат куб с силайном - ок, нет - железобетонно идут нахуй
Пчел... Куб может генерировать код для любого IDE. А CubeIDE это относительно новая штука, которая просто представляет из себя куб вместе с эклипсом. А так куб это отдельная программа и всеода была.
Вот, пожалуйста, куб с цъЛионом твоим.
https://www.jetbrains.com/help/clion/embedded-development.html
> Расплодилось вас ютуб-программистов как пиздеца. Правильно, не умеете читать документацию, шаг в сторону - все, пиздец, нихуя не можете.
Никто в здравом уме не будет учиться читая документацию. Сначала ты идёшь слушать лекции и уже поняв в общем идешь в учебники/документацию. Ну а если все лекции про хал, то зачем новичкам лезть вдруг в цмис после этого?
>Давай лучше поставим espruino на какой-нибудь f4 и вместе пойдем нахуй?
Чоуштам. Встраиваемая x86 материнка с десктопным линуксом (без рт патча, конечно же, ты чего) что для брелка от сигналки годится, что для систем жизнеобеспечения. С js. И питончиком.
>Никто в здравом уме не будет учиться читая документацию. Сначала ты идёшь слушать лекции и уже поняв в общем идешь в учебники/документацию. Ну а если все лекции про хал, то зачем новичкам лезть вдруг в цмис после этого?
При чем тут цмсис? Даже если ты пишешь на хал, все равно надо документацию читать. В любом случае. Да, даже после прикосновения к швитубу. Если ты не хочешь шим потом тупым циклом хуярить.
Ля, байтоеб-линуксоид начал боевые картиночки метать. Видимо совсем мозг перенапряг от недельной порции усваиваемого текста.
И мнение вот этого жалкого существа должно кого-то волновать?
Серьезно? Капча увлекательнее твоих потуг. Ты ж только с регистрами и сборкой ядра ебешься, больше времени ни на что нет. Себя хоть не обманывай.
Все ещё жду чем плох хал. Ожидаемо, ты обосрался.
Бля, два раза написал жизни. Буду считать что цмсиснику нужно повторять для понимания.
Очевидно все халоебы клепают говнокод в говноконторе, и кроме бабла их ничего не волнует. Так что спорить с ними по существу нет смысла. Все сводится к баблу.
УСБ разумеется, как писал анон выше, проще взять из хал готовый, потому что там стек протоколов, а не просто передача байтов.
Вся суть цмсис любителей. Там где нужно записать больше двух регистров использовать хал.
>Чтобы включить уарт нужно записать 2 регистра - флаги и бодрейт. Хал здесь пятое колесо.
Какая нахуй разница, если у нас M4F? Я сомневаюсь, что тебе постоянно нужно использовать 100% МК оптимально всегда. (К тому же компилятор всегда делает достаточно оптимально, тоже какая нахуй разница?)
По факту, любители hal ничем не лучше любителей cmsis)))
Только агрессивнее. Справедливости ради, сторонники cmsis хотя бы признают hal.
>По факту, любители hal ничем не лучше любителей cmsis)))
Мне больше всего вот это подозрительным показалось:
>скелета программы на хал/лл
Вот про этот скелет, причем с обеих сторон.
Кстати, тут еще стоит напомнить LL это (по большей части) когда вместо того чтобы распихивать битики руками по разным регистрам с помощью CMSIS, сначала эти битики запихиваются в структуру, а потом функция LL распихивает из структуры по регистрам. Это удобно и снижается вероятность ошибок. Вот только CMSIS и LL требуют от пользователя одних и тех же знаний.
>Так зачем учить абстрактную хуйню, если есть вполне конкретные регистры?
Затем, что я уже знаю, что такое digitalWrite(1, HIGH); и SPI.transfer(0x00), а что за регистры - не ебу.
Я уж не говорю про то, что код на хале ты сможешь переносить хоть с l0 на f7 и обратно, только перегенерируй кубом код. А с регистрами - ой
>с l0 на f7 и обратно, только перегенерируй кубом код
В мечтах. Все равно придется все отлаживать и проверять. Поймите уже наконец: не существует серебянной пули одной и для всего. Никакой инструмент тебе не поможет, если ты не хочешь ничего ни делать.
Кстати, если ты ардуинщик, то какая тебе вообще разница? Тут хоть на асме пиши, хоть на микропитоне - это все равно дальше твоего свободного времени не уйдет.
О, чувак, даже не пытайся гуглить сколько девайсов используют софт ардуино, тебя инфаркт хватит. Среди промышленных и медицинских то наверняка почти ни одно, зато среди потребительских, уууу
Я больше интересуюсь всякой промышленной херней, но было бы классно если ты бы скинул либо пример, либо подсказал куда гуглить. Серьезно, интересно ж пздц.
Заранее спасибо.
Не могу настроить прерывание на f103c8t6
В основном цикле 44780 индицирует значение АЦП, в прерывании по TIM4 с периодом 2 сек должен моргать светодиод.
Но при включении таймера4 и прерывания программа сразу прыгает в прерывание (светодиод загорается) и виснет полностью.
В режиме дебага все работает до момента включения либо таймера4 либо прерывания. Если закомментить любую из этих строк:
NVIC_EnableIRQ(TIM4_IRQn); // включить прерывание
TIM4->CR1 |= TIM_CR1_CEN; // включаем счётчик
то все остальное работает, в прерывание естественно не заходит:
Говнокод инициализации таймера.
// Инициализация таймера TIM4
RCC->APB1ENR |= RCC_APB1ENR_TIM4EN; // затактировать таймер4
TIM4->CR1 &= ~TIM_CR1_DIR; //считаем вверх
TIM4->DIER |= TIM_DIER_CC4IE; // Capture/Compare
TIM4->PSC |= 2250; // где-то 2 секунды
TIM4->ARR |= 64000;
NVIC_SetPriority(TIM4_IRQn,0x08);// приоритет прерывания
NVIC_EnableIRQ(TIM4_IRQn); // включить прерывание
TIM4->CR1 |= TIM_CR1_CEN; // включаем счётчик
void TIM4_IRQHandler(void)
{
led_on;
TIM4->SR &=(~TIM_SR_UIF);
}
Разумеется нет, зачем мне вообще что-то писать на асме, кроме пары десятков строчек вставок при работе с DSP или графикой чтоб выжать дополнительные такты?
>Разумеется нет, зачем мне вообще что-то писать на асме, кроме пары десятков строчек вставок при работе с DSP или графикой чтоб выжать дополнительные такты?
Код немного поменьше сделать.
Лучше скажи, какие есть инструкции для работы с битами? Кроме BIC ничего не вижу в справке.
через маску и офсеты
>А, как с битбандингом работать?
Я не он, но как-то так можно:
грузим в r2 базовый адрес
mov r1, 1
str r1, [r2, смещение]
Только объем кода вероятнее всего наоборот увеличится, потому что как правило требуется не один бит изменить, а много подряд. Это скорее для всякой атомарной фигни нужно.
Спасибо братишка.
Только я не догоняю как его рассчитать.
bit_word_offset = (byte_offset x 32) + (bit_number x 4)
bit_word_addr = bit_band_base + bit_word_offset
byte_offset- это я так понимаю начало области интересующей меня памяти(скажем gpioD для stm32f103c8),
но почему он умножается на 32?
bit_number - это номер бита регистра который я хочу изменить, но почему он умножается на 4?
На пикче полагаю я не правильно все делаю, да?
Вот примерно так нужно, директивы для гнутого ассемблера, у тебя может чуть иначе будет записываться. Картинку лучше смотреть https://developer.arm.com/documentation/dui0552/a/the-cortex-m3-processor/memory-model
Берем базовый адрес из даташита
.equ GPIOC_BASE, 0x40011000
Далее получаем смещение этого адреса относительно начала адресов периферии путем вычитания 0x40000000. Далее, поскольку на 1 бит тут приходится по одному слову из 4-х байт, в каждом из которых по восемь бит, умножаем на 32=8х4, ну и прибавляем адрес 0x42000000, где начинается bit-banding.
.equ GPIOC_BB_BASE, ((GPIOC_BASE - 0x40000000) х 32) + 0x42000000
А далее вычисляем смещение нужного бита с регистром. 4 - потому что на один бит приходится по 4 байта, а про 32 уже писал.
.equ GPIOC_BB_ODR13_OFFSET, 32 х 0x0C + 13 х 4
Ну и далее зажигаем светодиодик на bluepill
movw r2, #:lower16:GPIOC_BB_BASE
movt r2, #:upper16:GPIOC_BB_BASE
mov r1, 1
mov r0, 0
str r1, [r2, GPIOC_BB_ODR13_OFFSET]
Но конечно не обязательно делать именно так, можно и как-нибудь по другому.
>.equ GPIOC_BASE, 0x40011000
>Далее получаем смещение этого адреса относительно начала адресов периферии путем вычитания 0x40000000. Далее, поскольку на 1 бит тут приходится по одному слову из 4-х байт, в каждом из которых по восемь бит, умножаем на 32=8х4, ну и прибавляем адрес 0x42000000, где начинается bit-banding.
>.equ GPIOC_BB_BASE, ((GPIOC_BASE - 0x40000000) х 32) + 0x42000000
>А далее вычисляем смещение нужного бита с регистром. 4 - потому что на один бит приходится по 4 байта, а про 32 уже писал.
>.equ GPIOC_BB_ODR13_OFFSET, 32 х 0x0C + 13 х 4
Вроде где то че то приходит понимание.
Смотрел у Джозефа Ю? Там подробно разрисовано.
Но я бы не советовал излишне углубляться, изучи в общих чертах и хватит, все равно на ассемблере бессмысленно писать под такие микроконтроллеры. И от бит бандинга заметной пользы не наблюдается.
>Смотрел у Джозефа Ю? Там подробно разрисовано.
Неа. Вроде по твоему посту разобрался, спасибо братюнь. По крайней мере бит вроде поставил.
>Но я бы не советовал излишне углубляться, изучи в общих чертах и хватит, все равно на ассемблере бессмысленно писать под такие микроконтроллеры. И от бит бандинга заметной пользы не наблюдается.
Посмотрим, может и забью на него. Пока вроде доставляет. В любом случае на лоулевел сначала покочеряжусь перед си.
Возьми лучше гнутые инструменты вместо пробной или крякнутой версии кейла. Не то чтобы я был каким-то фанатиком всего опенсурсного, но зачем крякать, если есть вариант ничуть не хуже.
прям щас с этим ебусь. первый раз псоле атмег попался проект на стм. тупо пишу каждый пин «vdda design или capacitor»
>Реквестирую гайд
Если настойчиво копать их говносайт, то можно нарыть всякий эппликейшн нот, типа этой AN2867
Application note
Oscillator design guide for STM8AF/AL/S
and STM32 microcontrollers
Где будут подробно расписаны варианты трассировки плат, используемые компоненты и прочее..
Это конечно хорошо, но для марахаек читать application notes как-то нууу такое. Хотелось бы кратко типа как тут:
https://wreckage.ru/move-from-arduino-to-the-serial-model-minimum-periphery-atmega328/
Так вроде же не китайцы, а толи хацкеры PS3 толи няша которая эксплойт в штеуде нашла, не? В любом случае это какой модчип то ли для взлома соснулей то ли для взлома пекарни и он точно был создан руками англосаксонских протестантских белых людей (возможно даже чулочных пидоров), но китайцы тут точно не при делах.
ты сюда теперь пришел срать, шиз?
Пчел...
Отладочная плата, которая вообще ничего не имеет общего с ps3
> Trivia: This board got its name from a forum post at the STM32duino forums and is a reference to the movie The Matrix
https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill.html
Еще если ставляю галочку на "Run after programming" выскакивает уведомление "Warning: The core is locked up"
Что не так?!
Двачая этому.
В принципе, сам сижу на гнутом тулчейне - полет нормальный. + cmake по приколу можешь на все это натянуть, как набалдашник для письки
Да, GNU. Там не сильно дохуя линуксоебства. Можно сказать, там его нет. Хз, каким будет процесс настройки всего этого на винде, но думаю еще проще чем в линуксах. Скорее, тут надо будет отстреливать чо, куда, как собирается и линкуется - у меня с этим была развлекуха.
https://www.st.com/resource/en/programming_manual/pm0059-stm32f205215-stm32f207217-flash-programming-manual-stmicroelectronics.pdf
Обрати внимание на RDP, если стоит Level 2, то все.
У меня SWD ток. Где это смотреть в st-link utility?
Падажии, с RDP lvl 2 чип всё ещё можно писать, но при этом потеряв прошивку, которая была
Разве? JTAG/SWD уже отключается при этом, встроенный бутлоадер тоже. Писать способна только программа в самом микроконтроллере.
Ну или я не тем местом читаю документацию.
А, действительно, это только с первого уровня можно снизиться. Ну, тогда разве что рентгеновской лампой, лол
Что взять на замену COSMIC ? Эти черти на сайте пишут "STM8 free" и при этом требуют лицензию.
Как в STM8CubeMX сгенерировать код?
>при этом требуют лицензию.
Бывает. Я им писал раз в лютом гневе и высказал за их кривое поделие. Они спокойно попросили выполнить пару команд в CMD, выслать им скрины и через 15 минут прислали валидную лицензию. Мне стало стыдно и я даже извинился отдельным письмом за свою несдержанность
>>484076
>Как в STM8CubeMX сгенерировать код?
Никак.
> Никак.
А нахер он тогда нужен?
С COSMIC разобрался. В конце установки выскакивает окошко. Заполняешь поля, давишь кнопочку и отпечаток ануса отсылается на их сайт. Вводишь капчу и на мыло приходит лицензия.
В итоге после этого всё перестало работать. Удаётся "подключиться" только при зажатой RESET и горячем подключении одновременно. Тогда он якобы считывает нули и всё. Если отжимаю кнопку RESET, то всё пропадает с ошибками.
Пробовал и через Cube programmer и через st link utility
Работало без него, кварц hc-49sm 8 мгц. Во всех схемах, которые я видел - тупа кварц и две емкости.
На всякий случай посмотри рекомендуемые емкости в даташите на кварц.
Тут это, снес богопротивный и проприетатный Keil и поставил швитую CubeIDE, а она молча падает при открытии проекта. Где посмотреть, что этой твари нужно?
По моему да. У меня так вовсе STM32L011 с чистой флешкой без резета не программировались, что странно, потому что значения AFRL/AFRH и MODER после сброса должны все это включать как надо. Наверное я не тем местом смотрел документацию.
И еще разумеется в настройках того через что ты прошивать собрался нужно включить "connect under reset".
А легально ли взять герберы с сайта ST, заказать у китайцы печатки и самому спаять модуль которого нигде нет в продаже в РФ, а за буграми стоит неправильных денег?
Для себя - вообще никаких проблем. Тем более, если герберы лежат, то зачем, если не для того чтоб самому заказать плату?
там должна быть лицензия вместе с герберами лежать или по крайней мере указана. Почитай ее.
>там должна
Нету. Один хер у меня не получится сэкономить. Комплектующие либо сотнями, либо за дикий прайс. Выгоднее таки заказать даже из-за бугра.
Чому на сайте ST настолько полудохлое комьюнити? И где есть бодрое и жывое?
>Откуда
Есть вход для внешнего тактирования. Для входной частоты есть предделитель от 1 до 65535. Т.е. можешь 72 маха делить на 65536 и таймер будет работать на частоте 1098Гц
>А как их тактовать от ABP1 или ABP2?
Чувак! Ну открой уже RM на твой камень!! Disabled наверное при использовании таймера в режиме захвата/сравнения, для квадратурного энкодера и т.п. Я, если честно, сам только внедряться начал. Купил два года назад 746-дискавери и смотрю на нее, боясь чего-нибудь с ней делать.
Хрюше на собесе важно, чтобы ты сказал те слова, которые написаны в вакансии, да умение работать в коллективе. Железками ты никого не впечатлишь, проверено
я сам работаю в hw rnd и обслуживании за 500$
Настраиваю тактирование (к железки своей не подходил давно). Вроде не делаю ничего незамысловатого, на последней строке, я не могу выйти из функции, стек ломается как будто.
В Keil ошибка:
Cannot access Memory
вчера была эта:
Error while accessing a target resource. Resource perhaps not available or a wrong access was attempted.
В диассемблере все строки заЭФаются:
0x08000270 FFFFFFFF DCD 0xFFFFFFFF
Я думал отладчик глючит, и сбивается у него тактирование, но нет. Все равно железо и без него не придает признаков жизни.
Если ставлю множитель RCC_PLLMul_6, то все нормально и клоки сбиваются, и косится USB, но все работает.
void ClockInit(void) {
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON); //HSE 8Mhz on
while (RCC_WaitForHSEStartUp() != SUCCESS);
RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB = SYSCLK/1 = 72Mhz
RCC_PCLK1Config(RCC_HCLK_Div2); //APB1 = AHB/2 = 36Mhz
RCC_PCLK2Config(RCC_HCLK_Div1); //APB2 = AHB/1 = 72Mhz
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //SYSCLK = 12Mhz / (1 x 9) = 72Mhz
RCC_PLLCmd(ENABLE);
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
RCC_SYSCLKConfig( RCC_SYSCLKSource_PLLCLK);
while (RCC_GetSYSCLKSource() != RCC_CFGR_SWS_PLL);
}
Настраиваю тактирование (к железки своей не подходил давно). Вроде не делаю ничего незамысловатого, на последней строке, я не могу выйти из функции, стек ломается как будто.
В Keil ошибка:
Cannot access Memory
вчера была эта:
Error while accessing a target resource. Resource perhaps not available or a wrong access was attempted.
В диассемблере все строки заЭФаются:
0x08000270 FFFFFFFF DCD 0xFFFFFFFF
Я думал отладчик глючит, и сбивается у него тактирование, но нет. Все равно железо и без него не придает признаков жизни.
Если ставлю множитель RCC_PLLMul_6, то все нормально и клоки сбиваются, и косится USB, но все работает.
void ClockInit(void) {
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON); //HSE 8Mhz on
while (RCC_WaitForHSEStartUp() != SUCCESS);
RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB = SYSCLK/1 = 72Mhz
RCC_PCLK1Config(RCC_HCLK_Div2); //APB1 = AHB/2 = 36Mhz
RCC_PCLK2Config(RCC_HCLK_Div1); //APB2 = AHB/1 = 72Mhz
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //SYSCLK = 12Mhz / (1 x 9) = 72Mhz
RCC_PLLCmd(ENABLE);
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
RCC_SYSCLKConfig( RCC_SYSCLKSource_PLLCLK);
while (RCC_GetSYSCLKSource() != RCC_CFGR_SWS_PLL);
}
А, да забыл STM32F103RB
По симптомам похоже на то что ты не переключил битики LATENCY в регистре FLASH_ACR. Но могу и ошибаться, давно этого не касался.
Но еще ты мог задействовать код из system_stm32f10x.c, который у тебя и так должен использоваться. Нужно только дефайны некоторые задать и будут тебе 72 МГц без написания дополнительного кода.
Плохо то что используешь SPL. Какой смысл, если оно самими ST не рекомендуется, а на замену есть аналогичный LL, который ничем не хуже?
>STM32F103RB
Тоже не здорово. Потыкать конечно сойдет, но если что-то новое делать, то хотя бы F0 возьми, оно существенно поновее будет, многих ошибок уже нет.
>Keil
Как-то не очень. Конечно во многом это дело вкуса, но не стоит касаться всяких кейлов и подобного, когда есть gcc.
Почему этот МК такой дорогой? Около 300$ в розницу. Чем обусловлен такой ценник?
За эти деньги можно камень+мат. плату+озу для ПК купить, пусть и офисного уровня.
>Чем обусловлен такой ценник?
По сути ничем. Просто сейчас дефицит некоторых серий микросхем. Цены на некоторые микросхемы выросли раз в 15 и больше, купить их тоже сложно. Если тебе нужно что-то по типу STM32F4, то стоит поискать аналоги.
>то стоит поискать аналоги.
Дискавери на 429 камне за 4к пусть купит. Сразу куча обвязки, экранчик, тач...
>По симптомам похоже на то что ты не переключил битики LATENCY в регистре FLASH_ACR.
В этом проблема, спасибо.
>LL
Да, вот все собирался, но ты дал мне последний толчок в сторону LL, так что спасибо за это. Действительно намного удобнее, переписал и подключил за вечер. А тут и в репозитории git есть, подключил к проекту как внешний репозиторий - круто.
>STM32F103RB
>хотя бы F0 возьми, оно существенно поновее будет, многих ошибок уже нет.
Это точно. Мне лично нравятся что-то вроде f2, f4, там хоть можно 2 ЮСБишника запустить. А этот просто для тестов.
>Keil
Согласен, уже сейчас модно-молодежно использовать открытые платформы. Но вот едиственное что меня останавливает - Симулятор и визуализация периферии там хорошая уж очень.
>Но вот едиственное что меня останавливает - Симулятор и визуализация периферии там хорошая уж очень.
https://www.segger.com/products/development-tools/ozone-j-link-debugger/
Вот это можно использовать. Это только отладчик без симулятора и оно не открытое-опенсурсное, но можно использовать совместно с любыми elf-файлами и всю периферию там удобно рассматривать.
>>494870
>экранчик, тач...
Если так нравятся экранчики, то не целесообразнее ли для такого взять одноплатник с линуксом за те же деньги? Например на чем-нибудь таком как Allwinner V3s в удобном для самоделок QFP корпусе.490
Спасибо, посмотрю. Не знал.
Тут обещают что можно работать с 720p и на частоте 60Hz, а не знаете есть ли реальные проекты, на которых запускали HD видео?
>Тут обещают что можно работать с 720p и на частоте 60Hz
Очевидно что эти 60 Гц - частота с которой картинки выдаются из памяти.
>а не знаете есть ли реальные проекты, на которых запускали HD видео?
Может и есть, только возникает вопрос что именно выдавалось на дисплейчик. Наверняка оно даже джипеги декодировать с такой скоростью не сможет без аппаратного декодера, но он есть у некоторых микроконтроллеров. С каким-нибудь H.264 не лучше, только в отличие от джипега аппаратных декодеров внутри у этих микроконтроллеров нету, если я не ошибаюсь. Ну и зачем тогда оно в таком виде нужно? Конечно оно где-то и как-то применимо, но явно ограниченно.
>60 Hz
Ну да, я и расчитываю на частоту 60 Hz обновления экрана.
Ну суть, в общем, сделать устройство с LVDS экраном, просто делал на Raspberry, так он к LVDS не коннектится, ему надо аппаратный переходник T-Con или подобное. Это крайне неудобное и некрасивое решение с кучей лишних проводов.
А хотел бы разработать самостоятельную плату, ну и удешевить.
настроил таймер на 3072Гц, но так же нужно реагировать на каждый 192-й тик и 3-й.
Можно конечно условий в прерывание напихать, или таймеров размножить, но нет ли элегантного решения?
>видео
Ничего такого на микроконтроллерах не делал, но очевидно что если не сжимать, то памяти слишком много потребуется. По соображениям выше сжимать можно наверное только джипегом и только для микроконтроллеров где оно есть. Ну, такое может и будет работать, только это минимум STM32F7x7. Даже упомянутый чуть выше Allwinner V3s выглядит лучше, тем более что-то с LVDS он похоже может и память у него внутри, в отличии от стм.
>делал на Raspberry, так он к LVDS не коннектится
Может стоит поискать другой подходящий одноплатник?
>Allwinner V3s
Присматривался, кстати, но показался каким-то староватым и разрешение мало. Вот смотрел еще V5 и V40, более подходящие.
Переезжай на китайцев, например arterytek
>>476588
Гуглить "копрономика".
Это результат действий вот этих вот счастливых кудрявых хипстеров с картинок про STM32 и этих Youtub'чиков. Продукт расчитан на время пандемии, дескать, от испуга схавают.
Микроконтроллер тут достаточен какой-нибудь Holtek за $0.05. Но ведь по-хипстерски обосрацца как надо чтобы была связь со смартфоном, а на смартфоне было приложеньице... Самый, блядь, писк инновации...
Самое смешное, как и во всех копрономических высерах, что микроконтроллер тут вообще нахуй не нужен.
Нужна просто бумажка для сравнения глазами, причем это может быть еще и достовернее/точнее.
> А при чем тут инженеры, если у людей есть спрос на такие "умные" одноразовые ...
Мань, открою тебе секрет. Если завернуть любое говно в красивую упаковку, у "людей" всегда будет "спрос".
А если, блядь, вокруг пандемия/пожар/голод/болезнь{впиши_сюда_сам} то хватать будут не глядя.
Т-с-с-с, только никому, это секрет копрономики.
>Гуглить "копрономика".
Не совсем. Копрономика это про то как впарить говно подороже. Здесь же мы имеем в принципе рабочий продукт с логичной нишей (причем во времени тоже), однако переинженеренный настолько, что это пиздец.
Со стороны адекватных людей - это расточительство
Со стороны леваков - пиздец как не эко френдли
Но всем похуй
>Самое смешное, как и во всех копрономических высерах, что микроконтроллер тут вообще нахуй не нужен.
Самое странное, что такую же цифровую хуйню можно вполне сделать на, внезапно, аналоговой схемотехнике. Не, я конечно поинмаю, что в производителям мк это выгодно, но в условиях дефицита отдавать приоритет поставок вот такой хуйне, когда автопроизводители, извините, скупают СТИРАЛЬНЫЕ МАШИНКИ и ВЫПАИВАЮТ оттуда чипы... тут глупостью это как-то не объяснишь уже
1. На плате имеется USB гнездо, можно ли через него программировать? Просто не знаю нужно ли покупать для программирования ST-Link или достаточно программировать через USB.
2. Например у STM32F401 макс. частота 84 МГц, но на плате, скорее всего, установлен 8 Мгц, на пикриле не смог определить частоту установленного резонатора. Если мне понадобится поменять резонатор, то просто достаточно выпаять старый и припаять необходимый резонатор?
> нужно ли покупать для программирования ST-Link или достаточно программировать через USB
1. Без ST-Link (или еще лучше Segger J-Link, он же стыреный и продающийся как JetLink) никак, дебаг-зонд обязателен, потому что только через него можно отлаживаться. А в чем проблема, у тебя столь "низкий старт", что 215 рублей это огромная сумма?
https://aliexpress.ru/item/32792513237.html
2. Можешь и перепаять, но не вижу проблем получить из 8Mhz 84. См. пик.
>215 рублей это огромная сумма
Нет, просто не хотелось бы покупать просто так. С ST-Link же можно спокойно дебажить плату STM? 1.5к за оверфункционал для "поиграть с платой" все же пока много.
>>496058
Это что то типа умножителя частоты? Есть какие то нюансы при его использовании или все же настоящий 84Мгц кварц лучше?
>Нет, просто не хотелось бы покупать просто так.
Даже если не потребуется отладка, что вполне возможно, то как минимум через ST-Link будет удобнее прошивать. Потому что если использовать встроенный загрузчик, то придется постоянно перетыкать перемычки BOOT0, BOOT1 или кнопку туда постоянно тыкать или еще как.
>С ST-Link же можно спокойно дебажить плату STM?
Да, конечно. Однако соглашусь с аноном выше, J-Link лучше будет, оно универсальнее и может (по крайней мере оригинал) работать с разными напряжениями питания. Хотя не факт что потребуется отладка, я крайне редко этим пользуюсь.
>Это что то типа умножителя частоты?
Это синтезатор частоты PLL (ФАПЧ), так-то умножители разные бывают.
>Есть какие то нюансы при его использовании или все же настоящий 84Мгц кварц лучше?
Туда кварц (не генератор) максимум на 26 МГц можно подключать. А на 84 МГц ты попробуй еще найти кварц, а потом завести на нужной гармонике.
А вот полным новичкам я бы очень посоветовал не отклоняться от майнстрима:
1. STM32F103C8T6 (STM32F103CBT6)
2. STM32F407VGT6
3. STM32F429ZIT6
И приобретать борды с такими камнями:
BluePill (103й камень),
STM32F4DISCOVERY (она же более новая STM32F407G-DISC1),
либо 32F429IDISCOVERY.
Либо более дешевые косоглазые платы, но именно с этими камнями.
Самый минималистично-нищебродский вариант это Bluepill с загрузчиком (зашитый под ардуину), даже без дебаггера. Но это совем такое. К вкатываюнию в STM32 отношения не имеет.
Затем следующий уровень нищебродства это BluePill + ST-Link'ом, они на али даже продаются комплектами.
Я бы посоветовал все-таки STM32F4DISCOVERY она же STM32F407G-DISC1
П-а-ч-и-м-у?
1. Потому что именно под эти перечисленные выше камни, статей, примеров, уроков и проч в интернете хоть жопой ешь, каждая собака их наклепала. Связано это с тем что "Discovery" борды в отличии от всех других борд продаются по особой специальной цене, и на буржуйских сборищах когда-то их раздавали даже даром.
2. Преимущество родных Discovery борд в том что они идут сразу со встроенным ST-Link.
3. Под эти борды есть сотни родных ST примеров из поставки ST32CubeMX а также дополнительного Firmware софта. А вот что делать с китайской самопальной noname бордой на которой косоглазый сэкономил поставить даже пару светодиодов или кнопок - я не знаю. Стоит ли оно того? Окупится ли экономия этой, страшно сказать, одной-двух тысяч рублей? Нет, не окупится, вы только добавите себе палок в колеса там где уже могли бы компилять родные примеры и уже бы давно всё работало из коробки.
4. Некоторые родные ST-шные борды ардуино compatible, что позволяет взять в некоторых случаях плату для ардуины (тот же Ethernet шилд например). А также к ним (к Nucleo) идут множественые дочерние платы от ST. Например, встала задача управления ШД. Приобретается дополнительная борда X-NUCLEO-IHM14A1 и просто надевается на штыри на Nucleo/Discovery плату. Под это уже написан код (иногда даже с отдельной управляющей программой см. STSPIN Studio).
С самопалками с али конечно все можно преодолеть, адаптировать примеры, напаять (подключить дюпонами) левые борды итд. Потом так и надо двигаться. Но только потом, когда ты уже опаленный канифолью профи и все свистелки и перделки тебе на плате уже не нужны, нужен только сам камень. Для новичка же смотреть надо в сторону чего я написал и не заниматься дурной экономией целой аж страшно сказать полутора тыщ рублей.
А вот полным новичкам я бы очень посоветовал не отклоняться от майнстрима:
1. STM32F103C8T6 (STM32F103CBT6)
2. STM32F407VGT6
3. STM32F429ZIT6
И приобретать борды с такими камнями:
BluePill (103й камень),
STM32F4DISCOVERY (она же более новая STM32F407G-DISC1),
либо 32F429IDISCOVERY.
Либо более дешевые косоглазые платы, но именно с этими камнями.
Самый минималистично-нищебродский вариант это Bluepill с загрузчиком (зашитый под ардуину), даже без дебаггера. Но это совем такое. К вкатываюнию в STM32 отношения не имеет.
Затем следующий уровень нищебродства это BluePill + ST-Link'ом, они на али даже продаются комплектами.
Я бы посоветовал все-таки STM32F4DISCOVERY она же STM32F407G-DISC1
П-а-ч-и-м-у?
1. Потому что именно под эти перечисленные выше камни, статей, примеров, уроков и проч в интернете хоть жопой ешь, каждая собака их наклепала. Связано это с тем что "Discovery" борды в отличии от всех других борд продаются по особой специальной цене, и на буржуйских сборищах когда-то их раздавали даже даром.
2. Преимущество родных Discovery борд в том что они идут сразу со встроенным ST-Link.
3. Под эти борды есть сотни родных ST примеров из поставки ST32CubeMX а также дополнительного Firmware софта. А вот что делать с китайской самопальной noname бордой на которой косоглазый сэкономил поставить даже пару светодиодов или кнопок - я не знаю. Стоит ли оно того? Окупится ли экономия этой, страшно сказать, одной-двух тысяч рублей? Нет, не окупится, вы только добавите себе палок в колеса там где уже могли бы компилять родные примеры и уже бы давно всё работало из коробки.
4. Некоторые родные ST-шные борды ардуино compatible, что позволяет взять в некоторых случаях плату для ардуины (тот же Ethernet шилд например). А также к ним (к Nucleo) идут множественые дочерние платы от ST. Например, встала задача управления ШД. Приобретается дополнительная борда X-NUCLEO-IHM14A1 и просто надевается на штыри на Nucleo/Discovery плату. Под это уже написан код (иногда даже с отдельной управляющей программой см. STSPIN Studio).
С самопалками с али конечно все можно преодолеть, адаптировать примеры, напаять (подключить дюпонами) левые борды итд. Потом так и надо двигаться. Но только потом, когда ты уже опаленный канифолью профи и все свистелки и перделки тебе на плате уже не нужны, нужен только сам камень. Для новичка же смотреть надо в сторону чего я написал и не заниматься дурной экономией целой аж страшно сказать полутора тыщ рублей.
Понял, спасибо всем за помощь!
>1. STM32F103C8T6 (STM32F103CBT6)
>BluePill (103й камень),
Как там сейчас с подделками? По крайней мере год назад китайцы активно продавали перемаркированные CS32 и прочую хрень.
>статей, примеров, уроков и проч
Не так оно и необходимо, если был опыт с другими микроконтроллерами.
Нет, не надо быть наивным дурачком и верить надписи "original". Они всегда и везде пишут "Original".
Приобрести BluePill с оригинальным камнем ST можно ТОЛЬКО там где косоглазый продает на выбор две борды, одну с китайским камнем, другую (естественно, дороже!) с оригинальным камнем от ST.
Подделка серии F4 на широкую ногу еще не поставлена.
ST-Link надо брать по возможности с выводом SWO, иначе потом придется колхозить проводок.
ST-Link/V2 похожий на родной белый ST-Link/V2 от ST - чистое наебалово, смысла брать на ALi его никакого нет, это подделка похожая чисто внешне. Более того, сам фирменный ST-Link/V2 от ST (в белом корпусе) оказался говном еще тем, несмотря на то что на него заводится лапа "Sense" (по нему судит отладчик судит о логическом уровне). Как же я был удивлен, когда изучил его оригинальную схемотехнику и обнаружил что фирменный ST-Link абсолютно небуферизован, не защищен и успешно у меня сдох. Переплачивать за него явно не стоило, хотя по линейке выводов и по подключению через USB Mini кабель он гораздо удобнее чем китайский "свисток" в USB.
Берите китайский "свисток", но только с SWO выводом. Если есть возможность взять оптоизолированный, еще лучше. Если взяли STLink в металлическом или металлизованном корпусе - необходимо разобрать и заизолировать выводы, иначе коротнет и STLink подохнет.
>А вот полным новичкам я бы очень посоветовал не отклоняться от майнстрима:
>1. STM32F103C8T6 (STM32F103CBT6)
>2. STM32F407VGT6
>3. STM32F429ZIT6
Слышь, black pill f401 или f411. Всего за 200 ебаных рублей ты получаешь Coretex M4F! STM32F401CCU6 есть в ПРОТЕУСЕ, так что пока платка едет с али, ты можешь мигать светодиодом в симуляции, хей мен! Их не особо подделывают (пока что), зато на али можно купить дохуя. Минус один - сам запаивать qfn заебешься. Сами чипы тоже можно купить как поштучно так и по 5-10 штук в ленте, стоят тоже 200-300 рублей за штуку
>смысла брать на ALi его никакого нет
Ясен хуй, если есть уже нет в свободной продаже в этой стране STLINK-V3MINI
>Да и еще. Совсем забыл сказать. Шанс на то, что вы купите с Али подделку STM32F103CBT6 (не оригинальный ST камень, а косоглазый CK и прочий шмурдяк) - стремится к 100%. Китайцы в последнее время совсем охуели.
Собственно, а чем это чревато?
Играюсь сейчас с F103C6T6 с алика, шью по USB-UART через ArduinoIDE да, говноед, но внутреннюю периферию так проще изучать, шатая регистры по чуть-чуть при необходимости. На шмурдяке типа CH32F103 что будет, он прошьётся?
В интернетах разное пишут. У кого-то оригинальный ST-Link не коннектится и не шьётся нихуя, у кого-то всё работает. Есть даже какие-то GD32F103, которые на самом деле чиплет, и они аж 108МГц выжимают.
>Собственно, а чем это чревато?
Повторяемостью.
>и они аж 108МГц выжимают.
Вот. Оригинал при этом ведет себя иначе. Не обязательно это будет тактовая частота ядра, а допустим факт того что программа на GD32 вроде как из ОЗУ выполняется, а значит будет работать с другой скоростью. Или, как многим известно, в STM32F103C8T6 на деле 128 кб флешка, что иногда используют в самоделках, а в клонах бывает по разному. Даже отличия в лог. уровнях и нагрузочной способности могут оказать влияние. И таких мелких отличий там наверняка множество, а все вместе может привести к тому что на одном клоне будет работать, а на другом может и нет.
F4 почти не подделывают, бери у любого с отзывами
Ну, это наименьшая из проблем. Отладочный пердолинг с периферией, разрядностью ацп и прочей хуйнёй - норма для самодельщика. Я даже без осциллографа с мультитестером незнакомое железо не трогаю, мало ли что там. Повторяемость из коробки актуальна там, где ты что-то тиражное гонишь, и на тестирование-отладку каждой хуитки ресурса нет.
Гораздо страшнее эзотерические проблемы, когда плата тупо не шьётся, потому что китаец реализовал совместимость с IDE как-то через жопу, и надо качать китайский драйвер с китайского сайта, читая всё это на иероглифах.
>>496107
http://we.easyelectronics.ru/part/winner-micro-w806---kratkiy-obzor.html
https://www.youtube.com/watch?v=rx7GzuA42hA
Это вообще не стм, а особая китайская архитектура. Примерно как есп32 в первый год появления - мощщи много, инфы мало. Надо где-то годик подождать, пока ардуинщики не расковыряют.
>Ну, это наименьшая из проблем.
А потом решаешь повторить то что было сделано ранее еще в одном экземпляре, может быть с минимальными изменениями, а оно не работает. Или пробуешь повторить какую-нибудь не свою самоделку, а оно не шьется из-за тех 128 килобайт.
Это не считая того что errata у них не совпадает, если вообще для китайца найдешь.
>IDE
Надо все же понимать что откуда берется без всяких IDE. Еще лучше симейком пользоваться.
>А потом решаешь повторить то что было сделано ранее еще в одном экземпляре, может быть с минимальными изменениями, а оно не работает. Или пробуешь повторить какую-нибудь не свою самоделку, а оно не шьется из-за тех 128 килобайт.
Оно и на оригинальном чипе может не прошиться.
Младшие чипы делаются по маске старших, только берутся из отбраковки, с краю пластины и.т.п. Поэтому работоспособность этих недокументированных килобайт не гарантируется.
>только берутся из отбраковки
Не похоже, возможно всего лишь не прогоняют все тесты в полном объеме, чтобы быстрее было.
>Поэтому работоспособность этих недокументированных килобайт не гарантируется.
Так-то да, но кто находил такие где это не работает?
Ну и в целом я не только про это, а про все отличия в совокупности.
CH32F (wch),
CS32F030 (chipsea),
MM32F (mindmotion),
AT32F4xx (artery),
HC32F (hdsc),
LKS32 (linko),
ZT32 (zetta),
и что-то от geehy.
Плюс gigadevice, но их уже выгребли.
Кто-нибудь работал с чем то из перечисленного? Тут есть адекватные клоны stm?
Я в рот ебал брать оригиналы втридорога с риском наткнуться на рандомный клон, лучше сразу на адекватный китай переехать.
На хабре писали, что CH32F103 очень точная копия со всеми теми же регистрами и всей хуйнёй.
Наверное это в засмеялся-отпаялся пошло бы
И с чего ты так уверен что они дают герберы? Это тебе не Atmel. Но так-то никто не мешает самому развести по фото.
Какая тут нахуй легальность? Ты о чем? Проебал события с 24 февраля 2022?
P.S.
Буржуи спокойно хачат ST-шные ST-Link'и и клепают под них платы.
Ты как себе вообще представляешь legal penalty, если что ? Чисто интересно..
>Я к тому
Я таки прикинул хуй к носу, на предмет стоимости заказа печаток, покупки пропавших из магазинов комплектующих, самостоятельной кривой пайки и купил у китайцы за 5к готовую. Где-то едет ко мне.
The Open Platform License Agreement (“Agreement”) is a binding legal contract between you ("You")
and STMicroelectronics International N.V. (“ST”), a company incorporated under the laws of the
Netherlands acting for the purpose of this Agreement through its Swiss branch 39, Chemin du
Champ des Filles, 1228 Plan-les-Ouates, Geneva, Switzerland.
By using the enclosed reference designs, schematics, PC board layouts, and documentation, in hardcopy
or CAD tool file format (collectively, the “Reference Material”), You are agreeing to be bound by
the terms and conditions of this Agreement. Do not use the Reference Material until You have read
and agreed to this Agreement terms and conditions. The use of the Reference Material automatically
implies the acceptance of the Agreement terms and conditions.
The complete Open Platform License Agreement can be found on www.st.com/opla.
Эти да, лежат.
А вот эти не лежат.
https://www.st.com/en/development-tools/stlink-v3mini.html#cad-resources
https://www.st.com/en/development-tools/b-stlink-volt.html
> Ты у мамы не очень умный? Ты не можешь понять, что за циферки в дате сообщения?
Ну слоупочу, да...
Ебал я разглядывать циферки при ответе. Хуярю не глядя :-)
> самостоятельной кривой пайки
Это не паяется паялом. Это априори паяется пастой.
> и купил у китайцы за 5к готовую
Где нашел по итогу.
А так да. Сюда надо добавить еще стоимость своего рабочего часа.
Пытаемся. Самый приличный GD32
Это называется копия на уровне регистров. Новичкам ок.
В остальном как и со всем китаем. С ВИДУ норм. Если не присматриваться. В ардуинах дрыгать GPIO ногами всё это будет работать. Но как только речь заходит о жестких времянках, работе АЦП и USB - всё с треском наёбывается. Впрочем, студентоте/школоте и калокубщикам это не грозит.
Китайские копии это не копия кристалла. Это полностью самостоятельные Verilog разработки совместимые на уровне регистров периферийных устройств. Ну как если бы студентота читала бы Datasheet/RefMan и писала бы в качестве диплома собственный Verilog "эмулятор" на FPGA, руководствуясь собственными представлениями как они вычитали datasheet/refman. За кадром осталось бы много нюансов работы оригинальной системы просто потому что они не упомянуты. На большинство разработок нет ни Errat'ы, ни документации.
> На хабре писали, что CH32F103 очень точная копия со всеми теми же регистрами и всей хуйнёй.
https://mecrisp-stellaris-folkdoc.sourceforge.io/bluepill-diagnostics-v1.6.html
https://github.com/keirf/Greaseweazle/wiki/STM32-Fakes
https://www.richis-lab.de/STM32.htm
Расчет косоглазых на то что все лохи, не способные присмотреться дольше 10 секунд. Там у немца есть хорошее, четкое фото оригинального 103-го. Такой же у меня испустил дым в оргинальном STLink'е, так что алилуйя, не надо фотать вспучившийся чип. Если присмотреться - то обнаруживам что оригинальный чип от ST в серии F10X (STM32F103CBT6 например) имеет обозначение на корпусе лазерным гравером, пластик выжжен лазером. Видать не просто так, мера защиты. Потому что кстати оригинальные STM32F40x / STM32F42x имеют обозначение краской, да еще и хер разберешь (я много партий видел).
А теперь идем на алиэкспресс и смотрим фото у китайцев. Если еще это фото есть, ха-ха, не рисунок, не рендер и не спижжены друг у друга. Все они имеют обозначение краской.... Особенно доставляет косоглазый, налепивший себе на страницу фото коробок от ST и торгующий откровенным наебаловом - выпайкой и проч.
Пытаемся. Самый приличный GD32
Это называется копия на уровне регистров. Новичкам ок.
В остальном как и со всем китаем. С ВИДУ норм. Если не присматриваться. В ардуинах дрыгать GPIO ногами всё это будет работать. Но как только речь заходит о жестких времянках, работе АЦП и USB - всё с треском наёбывается. Впрочем, студентоте/школоте и калокубщикам это не грозит.
Китайские копии это не копия кристалла. Это полностью самостоятельные Verilog разработки совместимые на уровне регистров периферийных устройств. Ну как если бы студентота читала бы Datasheet/RefMan и писала бы в качестве диплома собственный Verilog "эмулятор" на FPGA, руководствуясь собственными представлениями как они вычитали datasheet/refman. За кадром осталось бы много нюансов работы оригинальной системы просто потому что они не упомянуты. На большинство разработок нет ни Errat'ы, ни документации.
> На хабре писали, что CH32F103 очень точная копия со всеми теми же регистрами и всей хуйнёй.
https://mecrisp-stellaris-folkdoc.sourceforge.io/bluepill-diagnostics-v1.6.html
https://github.com/keirf/Greaseweazle/wiki/STM32-Fakes
https://www.richis-lab.de/STM32.htm
Расчет косоглазых на то что все лохи, не способные присмотреться дольше 10 секунд. Там у немца есть хорошее, четкое фото оригинального 103-го. Такой же у меня испустил дым в оргинальном STLink'е, так что алилуйя, не надо фотать вспучившийся чип. Если присмотреться - то обнаруживам что оригинальный чип от ST в серии F10X (STM32F103CBT6 например) имеет обозначение на корпусе лазерным гравером, пластик выжжен лазером. Видать не просто так, мера защиты. Потому что кстати оригинальные STM32F40x / STM32F42x имеют обозначение краской, да еще и хер разберешь (я много партий видел).
А теперь идем на алиэкспресс и смотрим фото у китайцев. Если еще это фото есть, ха-ха, не рисунок, не рендер и не спижжены друг у друга. Все они имеют обозначение краской.... Особенно доставляет косоглазый, налепивший себе на страницу фото коробок от ST и торгующий откровенным наебаловом - выпайкой и проч.
>Косоглазые пидоры комменты редактируют или удаляют.
Надо завуалированно писать же, чтоб китаец с гуглтранслейтом идиомы не понял. Типа:
"Чип полностью оригинальный как белорусские креветки."
"Настоящий доппельгангер stm32 кошка-жена в восторге."
"Чтоб я так жил, как хорошо работает ксерокс из поднебесной."
"Ширмушник качественно лепит горбатого словно одесский артист."
И.т.п.
Китайцы триггерятся на простые негативные слова типа "ПОДДЕЛКА" и "ОБМАН". Сложные литературные конструкции им не распарсить, особенно если они замаскированы под одобрение.
Спасибо, анон.
Ситуация со скачком цен на оригиналы и выпуском кучи подделок - это кромешный пиздец.
Стм и барыги получают сверхприбыли, китайцы вместо нормального выхода на рынок наебывают людей перемаркировкой.
Надо будет посмотреть, выпускает ли кто-нибудь адекватные библиотеки или IDE, допиленные под клон.
Есть же кучи китайских серийных девайсов на этих контроллерах, вряд ли они пердолятся со стоковым тулчейном.
>адекватные библиотеки
Какой толк от библиотек, если не будет документации?
>или IDE, допиленные под клон.
Как ты себе это представляешь? Что там допиливать, если ядро у всех одинаковое армовское? Обыкновенного Qt Creator-а или чего угодно еще аналогичного хватит для любых микроконтроллеров.
> Стм и барыги получают сверхприбыли,
> китайцы вместо нормального выхода на рынок наебывают людей перемаркировкой.
Про "выход на рынки".
Ситуация с кромешным наебаловом относится исключительно к барахолке Aliexpess.
Китайцам-разработчикам STM-подобных чипов глубоко похуй на проблемы белых северных индейцев, которые им устроило их собственное "правительство". Китайцы все чипы разрабатывают на свой внутренний внутренний рынок и никуда выходить вообще не собирались. Есть, конечно, исключения, типа Alwinner, Huawei но там тоже всё на уровне "если не получилось, то не очень-то и надо было". Они понимают что незачем снабжать конкурентов собственной же микроэлектроникой там, где из них можно больше выжимать готовыми продуктами. Китайцам собственных 1,5 млрд населения хватает. Северная Нигерия с её на барабан натянутыми якобы 145 млн их реально мало интересует (Это еще по "оценке" достоверности которой можно доверять примерно также как результам выборов), со всеми республиками вместе взятыми.
Про сверхприбыли.
"Скачок цен" вызван тем, что американская жидовня пригрозила китаю заблокировать доступ к электронике. Тихо пошла ответочка. У Китая бабла скопилось как у дурака махорки и они сделали предложение Итало-Французско-Швейцарским проституткам (ST) от которого те не смогли отказаться. Контракт сроком на год. В результате всё ST-шное производство едет прямиком в Китай, остальное как объедки по остаточному принципу. "Предприниматели"-наебатели с алика либо сидят и тупо перепродают с таобао, либо как я подозреваю ходят на местные китайские барахолки и скупают там самое дешевое горстями. Иначе происхождение такого лютого пиздеца как выпайка объяснить невозможно.
Также,
мало кто тут в рашке одупляет, что всю ебалу с курсом, с накрученным и поломанным к хуям поиском и проч. на Алиэкспрессе устроили даже не китайцы, а местный московский Aliexpress.
> Надо будет посмотреть, выпускает ли кто-нибудь адекватные библиотеки или IDE, допиленные под клон.
Бесполезное занятие.
Расчет на то что все эти клоны встанут заместо ST-шных камней. В этом-то и заключается смысл создания клона. В некоторых случаях китайцы (или энтузиасты) клепают либы но это клон ST HAL.
Какие в пизду библиотеки, если сострогав чипец, китайцы уже не осиливают даже написать документацию и/или провести реальное исследование электрических параметров продукта чтобы отобразить в даташите.
Про тестирование можно даже не заикаться. Оно там вряд ли вообще было и есть.
> Стм и барыги получают сверхприбыли,
> китайцы вместо нормального выхода на рынок наебывают людей перемаркировкой.
Про "выход на рынки".
Ситуация с кромешным наебаловом относится исключительно к барахолке Aliexpess.
Китайцам-разработчикам STM-подобных чипов глубоко похуй на проблемы белых северных индейцев, которые им устроило их собственное "правительство". Китайцы все чипы разрабатывают на свой внутренний внутренний рынок и никуда выходить вообще не собирались. Есть, конечно, исключения, типа Alwinner, Huawei но там тоже всё на уровне "если не получилось, то не очень-то и надо было". Они понимают что незачем снабжать конкурентов собственной же микроэлектроникой там, где из них можно больше выжимать готовыми продуктами. Китайцам собственных 1,5 млрд населения хватает. Северная Нигерия с её на барабан натянутыми якобы 145 млн их реально мало интересует (Это еще по "оценке" достоверности которой можно доверять примерно также как результам выборов), со всеми республиками вместе взятыми.
Про сверхприбыли.
"Скачок цен" вызван тем, что американская жидовня пригрозила китаю заблокировать доступ к электронике. Тихо пошла ответочка. У Китая бабла скопилось как у дурака махорки и они сделали предложение Итало-Французско-Швейцарским проституткам (ST) от которого те не смогли отказаться. Контракт сроком на год. В результате всё ST-шное производство едет прямиком в Китай, остальное как объедки по остаточному принципу. "Предприниматели"-наебатели с алика либо сидят и тупо перепродают с таобао, либо как я подозреваю ходят на местные китайские барахолки и скупают там самое дешевое горстями. Иначе происхождение такого лютого пиздеца как выпайка объяснить невозможно.
Также,
мало кто тут в рашке одупляет, что всю ебалу с курсом, с накрученным и поломанным к хуям поиском и проч. на Алиэкспрессе устроили даже не китайцы, а местный московский Aliexpress.
> Надо будет посмотреть, выпускает ли кто-нибудь адекватные библиотеки или IDE, допиленные под клон.
Бесполезное занятие.
Расчет на то что все эти клоны встанут заместо ST-шных камней. В этом-то и заключается смысл создания клона. В некоторых случаях китайцы (или энтузиасты) клепают либы но это клон ST HAL.
Какие в пизду библиотеки, если сострогав чипец, китайцы уже не осиливают даже написать документацию и/или провести реальное исследование электрических параметров продукта чтобы отобразить в даташите.
Про тестирование можно даже не заикаться. Оно там вряд ли вообще было и есть.
>Китайцам собственных 1,5 млрд населения хватает. Северная Нигерия с её на барабан натянутыми якобы 145 млн их реально мало интересует
В Китае из этих 1.5млрд более-менее городского населения 500млн. Остальной миллиард - дремучее село чуть-чуть получше Африки: https://www.youtube.com/watch?v=6cdJfAUIr2w
Так что реальная разница по потребителям в разы, но не на порядок. Среднестатистический китаец всё ещё беднее среднестатистического россиянина, просто нам показывают зажиточных шанхайцев и гонконгцев, а ебеня не показывают.
>Расчет на то что все эти клоны встанут заместо ST-шных камней. В этом-то и заключается смысл создания клона. В некоторых случаях китайцы (или энтузиасты) клепают либы но это клон ST HAL.
>Какие в пизду библиотеки, если сострогав чипец, китайцы уже не осиливают даже написать документацию и/или провести реальное исследование электрических параметров продукта чтобы отобразить в даташите.
Это же не кофемолка. Это достаточно хайтековое устройство с конечным целеполаганием импортозамещения швейцарских поделий. Требующее для разработки и клепания серии нихуёвых финансовых вложений. Как такое можно через жопу делать без тестирования и даташитов?
А почему тогда в РФ условный челябинский дилдакостроительный завод не может выпустить ПТН32F103 чтобы свою долю с алика откусить? Или хотя бы аутсорснуть тестирования для китайской рандомшараги, склепавшей GD32?
Зачем тебе клон STM32F103C8T6? Существует множество других микроконтроллеров которые ничем не хуже. Смысл может быть только если ты уже когда-то разработал какую-то самоделку и сейчас хочешь изготовить еще несколько штук как минимум, при этом не изменяя печатной платы.
Сомневаюсь что тебе действительно это необходимо. Так в чем проблема выкинуть стм32, особенно такое старье как STM32F1, и взять любой другой подходящий микроконтроллер?
Затем, что всё на свете стремится к унификации, и всякий зоопарк стремится к расслоению на несколько типовых универсальных решений: Ne555, атмега328, stm32F103c8t6 и.т.п, каждое из которых может быть само по себе архаичным, но хорошо изученным, ко всему адаптированным и требующим минимума пердолинга. И всегда имеющимся в наличии. И даже если выходит что-то новое - оно как правило стремится этим нишам хотя бы подражать.
Безусловно, можно гоняться за топовыми новинками с запредельными ТТХ и непредсказуемыми эффектами типа W806. Или можно быть ультимативным нерд-бомжом, который что на помойке нашёл, то и выпаял, подверг обратной разработке и дописал все либы сразу на ассемблере. Или быть доктором наук, держащим в голове пиздиллион архитектур. Но всё это пути, скажем так, с издержками. Микроконтроллер это не собака, которую похуй какую с улицы подобрал, и она гавкает.
>Ne555
У меня дома в бытовой технике этого нет.
>атмега328
Аналогично, зато есть 8051.
>stm32F103c8t6
Есть в модном паяльнике и все.
>И всегда имеющимся в наличии.
Даже в лучшие годы на каком-нибудь диджикее STM32F103C8T6 были в меньшем количестве чем какие-нибудь ATSAM. Тебе наверное все это кажется из-за того что алиэкспресс был завален блюпилами.
>каждое из которых может быть само по себе архаичным, но хорошо изученным, ко всему адаптированным и требующим минимума пердолинга.
Это высказывание странно само по себе. А в контексте адаптированных под клоны библиотек выглядит совсем странно.
Так что бери любой арм, компилятор менять не нужно, IDE тем более, при наличии документации "пердолинга" никакого, прошиваются и отлаживаются все сеггером одинаково.
А вы изучали "уроки" этого деятеля?
Это же охуеть, наука для обезьян:
Берем отладку, берем проводки. Соединяем отладку проводками с платкой. Берем калокуб. Нашаманиваем в калокубе ВОТ ТАК.
???
Ну охуеть, "уроки". Чистый обезьянизм.
Без объясниния как, что, почему, зачем....
> Could not verify ST device
А вот вам и подъехала жертва поддельных STM32F103 в BluePill'ах...
> Зачем тебе клон STM32F103C8T6?
Тут непонимание, потому что ты судишь о моих потребностях по себе. Мне клоны не нужны.
> Так в чем проблема выкинуть стм32, особенно такое старье как STM32F1, и взять любой другой подходящий микроконтроллер?
1. Проблемы © "выкинуть STM" нет только у любителя, который не завязан на архитектуру в течение 10 лет на предприятии с рядом проектов.
2. Объясняю с другой стороны.
И так-то был кризис, а тут после 24.02.2022 для России кое-что изменилось. И речь идет не про aliexpress, где еще можно покупать единичные образцы (выше речь шла о том, что из-за ебаных косоглазых обезьян и их-то нельзя купить не наебавшись). Закупать МК все труднее и труднее с приближением скорее к невозможности. (Да, на складах еще есть остатки всякой разной экзотической хуеты, но ходовой STM32 давным-давно выгребен подчистую).
Советую плавно забывать о NXP, ST, Microchip, и даже тайваньском Nuvoton'е и начинать потихоньку присматриваться к Китаю. И то, если еще звёзды сложатся и сюда будут поступать малые контрабандные партии.
Будущий удел - единичные закупки "на понюхать" разнообразной китайской хуеты.
Есть плата с микроконтроллером STM32F4O5, гнездом под SD карту и USB тип б порт на ней. На сд карту пишутся данные с АЦП. При первой попытке подключения USB к плате всё инициализируется, и компьютер определяет карту. Но стоит вытащить и снова воткнуть USB в порт я сразу получаю уведомление о неопределённом устройстве USB. Посмотрел в режиме отладки, увидел что при первом подключении структура hUsbDeviceHS.request заполняется следующими значениями : bm.Request = 0x80; bRequest = 0x06; wValue = 0x303; wIndex = 0x409; wLenght = 0x00FF. А при ошибке останавливается, видимо, на отправке дескриптора устройства и имеет значения- bm.Request = 0x80; bRequest = 0x06; wValue = 0x100; wIndex = 0x000; wLenght = 0x0040 а затем переходит в SUSPENDED состояние. Возможно кто-то сталкивался с данной проблемой и может помочь "разбудить" устройство, буду рад помощи. Проект генерировал в CUBEmx, подкинул драйвер для USB3320, поменял MSC_MEDIA_PACKET на 4096 для более быстрого чтения/записи, записал HAL_SD_Read/Write_Blocks в соответствующие функции в usbd_storage_if.c.
Третий китайский купец, таки отправил мне 32L152CDISCOVERY спустя два продления срока обработки. Предыдущие слились типа, - Большой Руzzке Брат, поставщики подорожали ваш заказ, заместо 28 дорраров до 30 дорраров!! Добавьте 11 дорраров и мы вам отправим ( но не точно)
Скоро прильну к стм32-братии!! Готовьтесь!!
не подходящее время ты выбрал
оригинальные stm32 стоят от 1500 руб
а с этой палью отладка в кубике иде не работает
Покупал пять блу пиллов пару лет назад. Выбирал что подешевле, но от продавца с рейтингом. Цену сейчас уже не вспомню, но что-то очень близкое к ардуине или даже дешевле её. Оттуда же ст-линк ещё дешевле. Кубом шьётся и отлаживается, чяднт?
Да не, тогда тоже визг стоял, что ориг не найти. Даже итт. Обсуждали, какая из подделок не самая хуёвая. Либо мне пиздец как повезло, либо китайские подделки не настолько плохи.
Обнови прошивку st-linka
Кто же тебе запретит? Прошивай.
Тупа сейм, блю пилл за 100 руб, по статьям с описанием отличий маркировки клонов - оригинальный стм, шьется и дебажится без проблем. Еще брал чипы с али, тоже оригиналы.
Сейчас наоборот возьму chipsea и посмотрю, как их плагин для VSCode работает.
Надо CH32 и CW32 проверить, их даже в электронщик завезли.
В 2023 жду К1946ВК035, обещают недорогой M4F.
И нахуй не нужна ебля с альтернативными программаторами с дорогущими переходниками к ним, если можно развести на плате разъём и прошить-перепрошить МК сраным ст-линком, без дрочева вприсядку.
остались оверпрайснутые остатки у барыг
да китайская паль ебаная. можно финализировать тред
Я трассировал прерывание уарта в хале, и понял, что ЭТИМ я пользоваться не хочу. Теперь пытаюсь LL использовать, но среда не даёт LL-драйвера. ЧЯДНТ?
Прямая ебля регистров в CMSIS для USB и CAN меня пугает.
Отправляю в USART по DMA и хочу получить прерывание от DMA по передаче всех байтов от DMA. Код тут https://pastebin.com/kaBQX3VH .
Байты уходят, в терминале "Transmitted_by_DMA\n", но прерывания нет. Приэтом бит в ISER0 стоит, в ISPR0 стоит, флаг события в ISR самого DMA стоит, но прерывания не происходит. ЧЯДНТ?
Только надо понимать что L серия это батарейные устройства работающие по много месяцев от одной батарейки. В этом их фишка. На мой взгляд так это странный выбор для первичного знакомства. Настоящие низкопотребляющие устройства это непростая сфера с которой не каждый еще типовой эмбеддед программист справится.
Самое главное это не надо пытаться выжать из L серии Performance, она не для этого. Недаром даже установили ЖКИ.
Нормальным инжереным решением было бы сделать ST всё так:
сделать ОТДЕЛЬНЫЕ ФАЙЛЫ, куда и вынести всю инициализацию, а из main.c и void main() всего лишь позвать эти функции.
Но так как такое решение не было принято, то сейчас ничего не остается как отдать целиком весь main.c под код калокуба и ничего своего туда не писать кроме вызова твоей собственной mymain() Всё писать своем собственном файле, в своей собственной отдельной функции.
Но если сильно ручки чешутся, то правь *.ftl файлы темплейтов из которых всё генерится, они находятся в \STM32CubeMX\db\templates
Он просто завис в 90-х начале 2000х и не втыкает как сейчас программируются современные МК.
Спойлер:
В 2022 году большинтво МК программируются (и отлаживаются) внутрисхемно, через одну-две ножки
внешним приборчиком, который включается обычно через USB к компьютеру. Приборчик называется "дебаг зонд", "дебаг эмулятор" или просто - отладчик, дебаггер.
Да всё там просто, уловить просто надо было. Но я думаю что с 05/07/22 к 01/10/22 ты уже разобрался.
Да всё там просто, уловить просто надо было. Но я думаю что с 05/07/22 к 01/10/22 ты уже разобрался.
Ну и что там так могло испугать? Код детский, такое ощущение что совсем даунами написан.
> ЧЯДНТ
Ты думаешь я буду смотреть и разбираться Что Ты ДНТ?
Я тебе напишу как сделать.
HAL/куб конечно же умеет переслать в UART через DMA,
это можно получить в своем собственном коде, если в кубе включить канал DMA и восползоваться соответствующей HAL-функцией HAL_UART_Transmit_DMA()
Соответственно, тебе надо либо самому создать проект с нуля. Либо открыть куб или стм32кубиде, выбрать вкладку демо-проектов и сгенерить демо проект пересылки в UART через DMA. Найти нужный demo-проект можно либо отмечая галками, либо вводя ключевые слова.
Проектов возможно два типа - под HAL и под LL.
У тебя будут два проекта.
100% рабочий (демо-проект) и твоя недоделка, которую ты запостил на pastebin. Сравнивая как инициализированы регистры и сравнивая как работает реальный рабочий код, ты минут за 20 поймешь где ты был юн, наивен и глуп и конечно же нихуя не вычитал Reference Manual.
Всё понятно?
> Прямая ебля регистров в CMSIS для USB и CAN меня пугает.
Оставь надежду всяк сюда входящий. Ты просто не представляешь себе насколько сложен USB стек.
Раньше затаривался в электронщике, потом в связи с "кризис полупроводников" цены неприятно подскочили и я забил на время.
А щас смотрю - вообще шаром покати. Тогда выбор всех "сортов и расцветок" за копейки, а щас все? СТМ в рахе помер?
С подключением
На али ещё f4 не подделки, и цена адекватная, можешь там брать (если осилишь пайку lqfp)
Купил Стивена Прату, вроде неплохо написано, но все получается в отрыве от железа, половина книги - ебля с символьным и строковым вводом, нихуя не обкатать на железе, не порадоваться.
Че анон посоветует, жевать дальше прату в консоли, или мне хватит if-else ?
учи без отрыва от железа - читай исходники чужих проектов на гитхабе
030 в чипдипе есть, f4-h7 на али.
Осваивай китайские аналоги, у них есть либо свои сборки ide, либо библиотеки под keil/iar/etc.
>все получается в отрыве от железа
ты в курсе вообще, что в этом и смысл всех не-ассемблеров?
Stm32 проще чем avr на уровне регистров.
Вопрос: как это сделать в Micropython? Есть ли участок ОЗУ, который гарантированно не трогает на старте интерпретатор?
F411 чип.
st не даёт скачать софт с российских айпишников. Да ёбаныврот
Горите в аду мрази свинорылые.
Безотносительно микропитона такое целесообразно делать добавлением в скрипт линкера дополнительной секции. Микропитона я не касался, но очевидно что ничего принципиально отличающегося не будет, так что влепить секцию и пересобрать.
https://github.com/micropython/micropython/blob/master/ports/stm32/boards/stm32f411.ld
>Это можно использовать, чтобы переключать что-нибудь кнопкой сброса.
Но зачем?
>Хохлы ебаные...
Лол. А причем тут каклы? Сименс уже давно не дает. Кочай через ВПН пока не запретили.
Ахах, если бы я мог прошивать свободно контроллер, я бы не лез в питон. Я могу только по усб кинуть ему скрипт на флешку 4 МБ.
Видимо я разделю озу пополам и там сделаю переменную равноудаленную от стека и начала кучи. В micropython есть методы прямого доступа к адресному пространству.
На вопрос "зачем" есть универсальный ответ: чтобы иметь такую возможность, как вариант. Просто вспомнил как на денди некоторые катриджи без меню были, и игры переключались по сбросу циклично. По сути это максимально универсальный способ сделать мультипрошивку, не нужно ни дисплея ни клавиатуры, ни бутлоадера сложного (подразумеваю grub). Почему я должен отказываться от такой возможности?
Я понимаю, что это кажется дичью со стороны, но для меня это давно дело принципа. Мне надоело таскать комп для прошивки, надоело что комп ломается, надоело что он стоит 300$ в лучшем случае, что он тяжелый и хрупкий и не держит батарею.
Надоело что мобила венец технологий, а в него даже светодиодом моргнуть геморой, ну и батарея двое суток держит в лучшем случае.
Одноплатник требует обязательно hdmi монитор. И стоит как бу мобила сейчас.
А мне нужно то просто файл прошить, то есть скопировать из флешки в контроллер, это же не рокет саенс, это должно быть тривиально, это должно быть доступно на коленке без ничего. Любой контроллер может прочитать microsd и прошить своего собрата, так в чем проблема?
Поэтому я ступил на скользкую дорожку скриптов, не ради скриптов, а потому что micropython это готовый компьютер уровня 80х годов, там уарт и усб консоль, можно и свою добавить на экранчик, там файловая система 4 МБ (ну или сколько впаяешь) с возможностью монтировать любую другую память, доступом по усб и все это без необходимости таскать за собой компилятор и адаптер с кабелями и на коленке соединять штыри. Просто кинул текстовый файл по усб и готово. Я сделал программатор stm32 через usart bootloader прямо на скриптах. Какой кайф, я закидываю файл на внутреннюю флешку, запускаю скрипт и F411 прошивает другой Stm32 контроллер.
Недавно узнал, что китайцы продают свои клоны stm2 уже с прошивкой daplink, не один я получается думаю,в эту сторону. Daplink это drag and drop программатор через swd.
Ну вот, теперь я хочу чтобы скрипты запускались без уарт, с помощью кнопки, которая есть в любой плате. И будет у меня программатор всего и вся, переходник усб уарт, ацп, термометр и нескучные обои все в одном контроллере, который потребляет 20 ма при полной вычислительной загрузке. Экранчик уже впаял 128х64 ч/б жк.
Буду теперь устанавливать туда все игры. То есть шпиговать функциями под завязку.
Ахах, если бы я мог прошивать свободно контроллер, я бы не лез в питон. Я могу только по усб кинуть ему скрипт на флешку 4 МБ.
Видимо я разделю озу пополам и там сделаю переменную равноудаленную от стека и начала кучи. В micropython есть методы прямого доступа к адресному пространству.
На вопрос "зачем" есть универсальный ответ: чтобы иметь такую возможность, как вариант. Просто вспомнил как на денди некоторые катриджи без меню были, и игры переключались по сбросу циклично. По сути это максимально универсальный способ сделать мультипрошивку, не нужно ни дисплея ни клавиатуры, ни бутлоадера сложного (подразумеваю grub). Почему я должен отказываться от такой возможности?
Я понимаю, что это кажется дичью со стороны, но для меня это давно дело принципа. Мне надоело таскать комп для прошивки, надоело что комп ломается, надоело что он стоит 300$ в лучшем случае, что он тяжелый и хрупкий и не держит батарею.
Надоело что мобила венец технологий, а в него даже светодиодом моргнуть геморой, ну и батарея двое суток держит в лучшем случае.
Одноплатник требует обязательно hdmi монитор. И стоит как бу мобила сейчас.
А мне нужно то просто файл прошить, то есть скопировать из флешки в контроллер, это же не рокет саенс, это должно быть тривиально, это должно быть доступно на коленке без ничего. Любой контроллер может прочитать microsd и прошить своего собрата, так в чем проблема?
Поэтому я ступил на скользкую дорожку скриптов, не ради скриптов, а потому что micropython это готовый компьютер уровня 80х годов, там уарт и усб консоль, можно и свою добавить на экранчик, там файловая система 4 МБ (ну или сколько впаяешь) с возможностью монтировать любую другую память, доступом по усб и все это без необходимости таскать за собой компилятор и адаптер с кабелями и на коленке соединять штыри. Просто кинул текстовый файл по усб и готово. Я сделал программатор stm32 через usart bootloader прямо на скриптах. Какой кайф, я закидываю файл на внутреннюю флешку, запускаю скрипт и F411 прошивает другой Stm32 контроллер.
Недавно узнал, что китайцы продают свои клоны stm2 уже с прошивкой daplink, не один я получается думаю,в эту сторону. Daplink это drag and drop программатор через swd.
Ну вот, теперь я хочу чтобы скрипты запускались без уарт, с помощью кнопки, которая есть в любой плате. И будет у меня программатор всего и вся, переходник усб уарт, ацп, термометр и нескучные обои все в одном контроллере, который потребляет 20 ма при полной вычислительной загрузке. Экранчик уже впаял 128х64 ч/б жк.
Буду теперь устанавливать туда все игры. То есть шпиговать функциями под завязку.
>Горите в аду мрази свинорылые.
Лол, это только цветочки, вас ждет такой пиздец, которого вы даже в первый день своего рождения не видели. Скачать не дают заечке, утютю.
>Ахах, если бы я мог прошивать свободно контроллер, я бы не лез в питон. Я могу только по усб кинуть ему скрипт на флешку 4 МБ.
В чем проблема скинуть скрипт, перепрошивающий контроллер? Мне очевидно что ни в чем, ну кроме написания такого скрипта. А это должно быть очень просто.
>Мне надоело таскать комп для прошивки
Опять что-то странное. Что значит прошивки? Подправить код и залить прошивку? Или только залить прошивку? Если только залить прошивку, то можно и автономное устройство соорудить. Причем не обязательно SWD, можно через бутлоадер.
>надоело что комп ломается
У меня не ломается.
>надоело что он стоит 300$ в лучшем случае
Оно стоит от нуля.
>что он тяжелый и хрупкий и не держит батарею.
Возьми планшет.
Бред какой-то, весь твой текст. И сам микропитон малополезная ерунда.
Обожаю такие ответы. Спасибо.
>Ахах, если бы я мог прошивать свободно контроллер, я бы не лез в питон. Я могу только по усб кинуть ему скрипт на флешку 4 МБ.
Чиво блядь? Ты хочешь сказать что там стоит интерпретатор/среда и ты не можешь шить по SWD?
>По сути это максимально универсальный способ сделать мультипрошивку
>На вопрос "зачем" есть универсальный ответ: чтобы иметь такую возможность, как вариант. Просто вспомнил как на денди некоторые катриджи без меню были, и игры переключались по сбросу циклично
Берешь какой-нибудь адрес во флеше, берешь инт, при старте читаешь его и пишешь туда это число + 1. В зависимости от того что прочитал на старте - исполняешь разный код. В чем вопрос то? Можешь повыебываться и залить несколько прошивок, читая код с разных мест, хоть с внешней флешки если это можно на стмках.
>Я понимаю, что это кажется дичью со стороны, но для меня это давно дело принципа. Мне надоело таскать комп для прошивки, надоело что комп ломается, надоело что он стоит 300$ в лучшем случае, что он тяжелый и хрупкий и не держит батарею.
А как возможность загрузки разных прошивок циклично тебе поможет? Тебе же надо писать код для каждой, а софта на мобилы нету! Если у тебя есть готовые прошивки, то шей по юарту с мобилы, я наверняка уверен что такое есть, ардуиноиде ж есть под ведро
>А мне нужно то просто файл прошить, то есть скопировать из флешки в контроллер, это же не рокет саенс, это должно быть тривиально, это должно быть доступно на коленке без ничего. Любой контроллер может прочитать microsd и прошить своего собрата, так в чем проблема?
Ты сначала выбери, какой вариант прошивки тебе нужен блядь, наколенник сука.
Если у тебя готовые HEX файлы, то берешь, без задней мысли исходники ST Link и допиливаешь туда флешку. Чтоб вставил флешку и она прошила подключенный МК
>а потому что micropython это готовый компьютер уровня 80х годов
>без необходимости таскать за собой компилятор и адаптер с кабелями и на коленке соединять штыри
>Просто кинул текстовый файл по усб и готово
Ээээ, че? А отлаживать кто будет? А где писать этот сам текстовый файл? И как тебя это избавит всё от необходимости собственно добавлять всю там обвязку и т.д., для чего и нужны МК. Что за вундервафлю ты там собрался делать? МК нужны для автоматизации, применения в устройствах, сферически в вакууме никто их не использует.
>Ахах, если бы я мог прошивать свободно контроллер, я бы не лез в питон. Я могу только по усб кинуть ему скрипт на флешку 4 МБ.
Чиво блядь? Ты хочешь сказать что там стоит интерпретатор/среда и ты не можешь шить по SWD?
>По сути это максимально универсальный способ сделать мультипрошивку
>На вопрос "зачем" есть универсальный ответ: чтобы иметь такую возможность, как вариант. Просто вспомнил как на денди некоторые катриджи без меню были, и игры переключались по сбросу циклично
Берешь какой-нибудь адрес во флеше, берешь инт, при старте читаешь его и пишешь туда это число + 1. В зависимости от того что прочитал на старте - исполняешь разный код. В чем вопрос то? Можешь повыебываться и залить несколько прошивок, читая код с разных мест, хоть с внешней флешки если это можно на стмках.
>Я понимаю, что это кажется дичью со стороны, но для меня это давно дело принципа. Мне надоело таскать комп для прошивки, надоело что комп ломается, надоело что он стоит 300$ в лучшем случае, что он тяжелый и хрупкий и не держит батарею.
А как возможность загрузки разных прошивок циклично тебе поможет? Тебе же надо писать код для каждой, а софта на мобилы нету! Если у тебя есть готовые прошивки, то шей по юарту с мобилы, я наверняка уверен что такое есть, ардуиноиде ж есть под ведро
>А мне нужно то просто файл прошить, то есть скопировать из флешки в контроллер, это же не рокет саенс, это должно быть тривиально, это должно быть доступно на коленке без ничего. Любой контроллер может прочитать microsd и прошить своего собрата, так в чем проблема?
Ты сначала выбери, какой вариант прошивки тебе нужен блядь, наколенник сука.
Если у тебя готовые HEX файлы, то берешь, без задней мысли исходники ST Link и допиливаешь туда флешку. Чтоб вставил флешку и она прошила подключенный МК
>а потому что micropython это готовый компьютер уровня 80х годов
>без необходимости таскать за собой компилятор и адаптер с кабелями и на коленке соединять штыри
>Просто кинул текстовый файл по усб и готово
Ээээ, че? А отлаживать кто будет? А где писать этот сам текстовый файл? И как тебя это избавит всё от необходимости собственно добавлять всю там обвязку и т.д., для чего и нужны МК. Что за вундервафлю ты там собрался делать? МК нужны для автоматизации, применения в устройствах, сферически в вакууме никто их не использует.
Что за нация такая я не могу.
Сказано блдь по техзаданию моему выдуманному из бошки, что все программаторы дешевое ломающейся говно или дорогое неудобное говно.
Поэтому когда последний программатор у меня сломался я из принципа поставил условие, что теперь я шью только кустарными средствами.
Это и означает фраза: не могу свободно шить.
У меня есть один прошитый контроллер с питоном. Есть два f103 китайских от стлинков. И есть около 60 stm8 купленных в докризисные времена. Все это нужно шить без компа, с мобилы, лучше без usb otg , они ломаются, но пока что есть один рабочий, и то там только mass storage. И теперь я решаю задачу как это все применить без профессиональных решений типа "просто купи комп и программатор".
Решений проблемы связи с мобилой я наметил 3: писать скрипты для прошивки на питоне, шить через 3.5 аудио выход по протоколу uart, переставлять micro sd с прошивкой из мобилы в кастомный программатор. Прямо сейчас первый вариант использую, но питона не добиться нормальных таймингов, поэтому пока только stm32 работает.
>Берешь какой-нибудь адрес во флеше
Ну это крайний вариант, жечь флеш при каждом сбросе решение непрофессиональное. Лучше бы через ОЗУ.
>Тебе же надо писать код для каждой, а софта на мобилы нету!
Компилятор с 7 Андроида с появлением termux железно есть.
Но даже без него есть куча вариантов, онлайн.
А мне и подавно много не нужно, ассемблер thumb2 я и на js писал, сравнивая выхлоп с онлайн дизассемблером.
>Если у тебя есть готовые прошивки, то шей по юарту с мобилы, я наверняка уверен что такое есть, ардуиноиде ж есть под ведро
Шил пока не сломались свистки.
Ардуино имеет большие ограничения, не мне вам рассказывать.
Готовые прошивки не интересуют как таковые пока что.
>Ты сначала выбери, какой вариант прошивки тебе нужен блядь, наколенник сука.
Варианты нужны разные, кустарные.
Слово шлюха это для тебя комплемент.
>Если у тебя готовые HEX файлы, то берешь, без задней мысли исходники ST Link и допиливаешь туда флешку. Чтоб вставил флешку и она прошила подключенный МК
Не знал что ст линк имеет открытые исходники. Поискать готовые варианты можно попробовать.
>Ээээ, че? А отлаживать кто будет?
>А где писать этот сам текстовый файл?
Детсад, ты сам знаешь ответы. Отладка через тесты, логи, писать текстовый файл никто не мешает тебе в Андроиде. Но у меня своя среда с другим циклом разработки, где тексты писать нужно в ограниченных случаях. Да и вообще, пока нет прозрачности в процессе прошивки, это все вопросы второстепенные, но когда у меня работал стлинк через отг, я что то делал понемногу путем экспорта в hex.
Потом отвалился стлинк.
Тогда я экспортировал в специальный двоичный формат, где прошивка была перемешана с командами бутлоадера, что позволяло прошиться без спец софта обычной отправкой файла через уарт.
Когда отвалился usb-uart свисток я написал скрипт для Micropython.
Потом отвалилась мобила. На новой мобиле с барахолки не было ни отг, ни даже 7 Андроида, пришлось вкатиться в разработку на Андроиде, чтобы перенести из termux свою ide. До этого она была на связке python+ js, в виде веб приложения. Поскольку java статический язык, а у меня была опора на встроенные в проект скрипты, многие функции отвалились. Поэтому сейчас починю экспорт в hex. В качестве конечной точки эта ide будет перенесена на thumb ассемблер, потом на несколько разных и реализована в контроллерах.
Но толку тебе все это знать, ты же все равно не настроен на решение чужих проблем, ты скорее пустишься в крики и визги.
>И как тебя это избавит всё от необходимости собственно добавлять всю там обвязку и т.д., для чего и нужны МК.
Паяльником.
>Что за вундервафлю ты там собрался делать?
Что то вроде кпк.
>МК нужны для автоматизации, применения в устройствах, сферически в вакууме никто их не использует.
Ну это тебе нужны, а мне они нужны для ввода и отображения произвольной информации.
Я конечно трудно живу, создаю себе лишние ограничения по сравнению с дефолтными ембеддерами на галерах, но зато интересно и в этом смысл, в преодолении ограничений своими силами. Наличие подобных возможностей прошивки не мешает никому, все любят читать описание таких проектов на Хабре и ржать, а галерщики как всегда крутят носом и кричат ненужно на все новое пока не дашь им готовенькое бесплатно с гитхаба.
Что за нация такая я не могу.
Сказано блдь по техзаданию моему выдуманному из бошки, что все программаторы дешевое ломающейся говно или дорогое неудобное говно.
Поэтому когда последний программатор у меня сломался я из принципа поставил условие, что теперь я шью только кустарными средствами.
Это и означает фраза: не могу свободно шить.
У меня есть один прошитый контроллер с питоном. Есть два f103 китайских от стлинков. И есть около 60 stm8 купленных в докризисные времена. Все это нужно шить без компа, с мобилы, лучше без usb otg , они ломаются, но пока что есть один рабочий, и то там только mass storage. И теперь я решаю задачу как это все применить без профессиональных решений типа "просто купи комп и программатор".
Решений проблемы связи с мобилой я наметил 3: писать скрипты для прошивки на питоне, шить через 3.5 аудио выход по протоколу uart, переставлять micro sd с прошивкой из мобилы в кастомный программатор. Прямо сейчас первый вариант использую, но питона не добиться нормальных таймингов, поэтому пока только stm32 работает.
>Берешь какой-нибудь адрес во флеше
Ну это крайний вариант, жечь флеш при каждом сбросе решение непрофессиональное. Лучше бы через ОЗУ.
>Тебе же надо писать код для каждой, а софта на мобилы нету!
Компилятор с 7 Андроида с появлением termux железно есть.
Но даже без него есть куча вариантов, онлайн.
А мне и подавно много не нужно, ассемблер thumb2 я и на js писал, сравнивая выхлоп с онлайн дизассемблером.
>Если у тебя есть готовые прошивки, то шей по юарту с мобилы, я наверняка уверен что такое есть, ардуиноиде ж есть под ведро
Шил пока не сломались свистки.
Ардуино имеет большие ограничения, не мне вам рассказывать.
Готовые прошивки не интересуют как таковые пока что.
>Ты сначала выбери, какой вариант прошивки тебе нужен блядь, наколенник сука.
Варианты нужны разные, кустарные.
Слово шлюха это для тебя комплемент.
>Если у тебя готовые HEX файлы, то берешь, без задней мысли исходники ST Link и допиливаешь туда флешку. Чтоб вставил флешку и она прошила подключенный МК
Не знал что ст линк имеет открытые исходники. Поискать готовые варианты можно попробовать.
>Ээээ, че? А отлаживать кто будет?
>А где писать этот сам текстовый файл?
Детсад, ты сам знаешь ответы. Отладка через тесты, логи, писать текстовый файл никто не мешает тебе в Андроиде. Но у меня своя среда с другим циклом разработки, где тексты писать нужно в ограниченных случаях. Да и вообще, пока нет прозрачности в процессе прошивки, это все вопросы второстепенные, но когда у меня работал стлинк через отг, я что то делал понемногу путем экспорта в hex.
Потом отвалился стлинк.
Тогда я экспортировал в специальный двоичный формат, где прошивка была перемешана с командами бутлоадера, что позволяло прошиться без спец софта обычной отправкой файла через уарт.
Когда отвалился usb-uart свисток я написал скрипт для Micropython.
Потом отвалилась мобила. На новой мобиле с барахолки не было ни отг, ни даже 7 Андроида, пришлось вкатиться в разработку на Андроиде, чтобы перенести из termux свою ide. До этого она была на связке python+ js, в виде веб приложения. Поскольку java статический язык, а у меня была опора на встроенные в проект скрипты, многие функции отвалились. Поэтому сейчас починю экспорт в hex. В качестве конечной точки эта ide будет перенесена на thumb ассемблер, потом на несколько разных и реализована в контроллерах.
Но толку тебе все это знать, ты же все равно не настроен на решение чужих проблем, ты скорее пустишься в крики и визги.
>И как тебя это избавит всё от необходимости собственно добавлять всю там обвязку и т.д., для чего и нужны МК.
Паяльником.
>Что за вундервафлю ты там собрался делать?
Что то вроде кпк.
>МК нужны для автоматизации, применения в устройствах, сферически в вакууме никто их не использует.
Ну это тебе нужны, а мне они нужны для ввода и отображения произвольной информации.
Я конечно трудно живу, создаю себе лишние ограничения по сравнению с дефолтными ембеддерами на галерах, но зато интересно и в этом смысл, в преодолении ограничений своими силами. Наличие подобных возможностей прошивки не мешает никому, все любят читать описание таких проектов на Хабре и ржать, а галерщики как всегда крутят носом и кричат ненужно на все новое пока не дашь им готовенькое бесплатно с гитхаба.
>Что за нация такая я не могу.
>Сказано блдь по техзаданию моему выдуманному из бошки, что все программаторы дешевое ломающейся говно или дорогое неудобное говно.
Тебе наверное невдоёмк, что техзадание надо проверять на адекватность и понятность. У тебя нет ни того ни другого в том что ты написал
>Поэтому когда последний программатор у меня сломался я из принципа поставил условие, что теперь я шью только кустарными средствами.
>Это и означает фраза: не могу свободно шить.
Че ты с ними такое делаешь? Ни у кого не ломаются, у тебя ломаются. Плюс даже если ломаются, то стоят 2 бакса
>У меня есть один прошитый контроллер с питоном. Есть два f103 китайских от стлинков. И есть около 60 stm8 купленных в докризисные времена. Все это нужно шить без компа, с мобилы, лучше без usb otg , они ломаются, но пока что есть один рабочий, и то там только mass storage. И теперь я решаю задачу как это все применить без профессиональных решений типа "просто купи комп и программатор".
Блядь. КАК ОНИ ЛОМАЮТСЯ НАХУЙ. Ты их сжигаешь или что? У тебя ровно 2 варианта прошивки стм32 из коробки:
- SWD
- UART
Для первого нужен программатор, для второго достаточно ком порта. Где у он будет - уже неважно, главное что на устройстве с которого ты собрался шить был софт, умеющий взаимодействовать с ком портом. Ардуина была примером, так как к ведру МОЖНО подключать usb ttl. Искаропки нигде нету в СОВРЕМЕННЫХ устройствах COM порта НЕТУ. А по usb МК ИЗ КОРОБКИ не шьются. Никому это нахуй не надо, в бутлоадер добавлять прошивку по usb. У тебя такое займет МНОГО памяти и удорожает контроллер, а usb нужен очень далеко не всем в проектах на МК
>Ну это крайний вариант, жечь флеш при каждом сбросе решение непрофессиональное. Лучше бы через ОЗУ.
EEPROM
>Решений проблемы связи с мобилой я наметил 3: писать скрипты для прошивки на питоне, шить через 3.5 аудио выход по протоколу uart, переставлять micro sd с прошивкой из мобилы в кастомный программатор.
Давай мы сначала определимся, что ты хочешь шить. Ты хочешь прошивать отладочные платы типа блюпилок? Тебе надо шить готовые устройства на базе stm32, которые не являются средствами разработки? Или другое?
И да, скрипты для прошивки на питоне исполняются на мобиле или на целевом контроллере? Или же скрипт заливается на контроллер с микропитоном и превращает этот МК в программатор?
>Компилятор с 7 Андроида с появлением termux железно есть.
Пиздец ты инвалид. Мало того что это медленно, так ещё и писать код на экранной клавиатуре... Ладно, ок, значит у тебя есть на андроиде тулчейн из библиотек под МК, там всякие HAL, LL, есть компилятор GCC и загрузчик, который может загружать бинарные файлы в МК по SWD либо по UART. Вот это надо четко написать в техзадании.
>Варианты нужны разные, кустарные.
Я написал, их ровно два в общем случае: SWD и UART. Больше ты никак не зальёшь, разве что отшлифуешь кристалл и электронной пушкой зарядишь битики там где надо.
> Поискать готовые варианты можно попробовать.
https://github.com/cederom/LibSWD
>Тогда я экспортировал в специальный двоичный формат, где прошивка была перемешана с командами бутлоадера, что позволяло прошиться без спец софта обычной отправкой файла через уарт.
Сука, для прошивки по UART нужно только поменять джамперы на плате и нажать ресет чтобы бутлоадер запустился в режиме прошивки по UART, там, вроде, даже не нужны никакие специальные настройки компилятора для этого. Ты можешь с помощью того же st link utility залить один хекс файл или по uart или по swd, разницы никакой с точки зрения этого хекс файла.
>пришлось вкатиться в разработку на Андроиде, чтобы перенести из termux свою ide. До этого она была на связке python+ js, в виде веб приложения. Поскольку java статический язык, а у меня была опора на встроенные в проект скрипты, многие функции отвалились. Поэтому сейчас починю экспорт в hex. В качестве конечной точки эта ide будет перенесена на thumb ассемблер, потом на несколько разных и реализована в контроллерах.
Ничерта не понял. Буду просто считать, будто так же ничерта не видел. Для нормального человека процесс разработки софта под МК выглядит так. Вид тулчейна на пикрилейтед. Обычно, если тебе хочется другой язык, то у тебя два варианта: или ты делаешь кодогенерацию твоего языка в Си (matlab/simulink) или ты СНАЧАЛА прошиваешь в МК некую среду для твоего языка (microython, espruino, java ME), а потом уже заливаешь в свой МК скрипты на этом языке. Тут можно "шить" уже любыми способами, которые поддерживает среда. Термин шить, правда, некорректен уже, потому что тут ты только заливаешь код во внутреннюю память для программ СРЕДЫ, а не меняешь прошивку микроконтроллера целиком.
>Что то вроде кпк.
Т.е. ты собрался сделать какой-то кпк/телефон/микрокомпьютер, на micropython, на котором будет некий интерфейс, некий текстовый редактор и возможность запуска кода, написаного на этом же кпк? Тогда получается что ты хочешь что-то вроде малины, но на stm32, так? Тогда тебе точно не в этот тред, потому что это вопросы к реализации микропитона. Я подразумеваю что внутри есть какая-то RTOS и ты можешь вполне по ходу работы твоей вундервафли создавать новые таски в том числе условно сделав eval кода из созданного текстовика. Но с таким тебе точно не сюда, ищи людей, которые занимаются микропитоном и конкретно им, в треде ж все ебутся на сишечке или ассемблере. Максимум можно подсказать по кодогенерации из матлаба.
Альтернативно при разработке флиппера хотели засунуть gcc прямо в stm32, но впоследствии отказались от этой идеи.
>Что за нация такая я не могу.
>Сказано блдь по техзаданию моему выдуманному из бошки, что все программаторы дешевое ломающейся говно или дорогое неудобное говно.
Тебе наверное невдоёмк, что техзадание надо проверять на адекватность и понятность. У тебя нет ни того ни другого в том что ты написал
>Поэтому когда последний программатор у меня сломался я из принципа поставил условие, что теперь я шью только кустарными средствами.
>Это и означает фраза: не могу свободно шить.
Че ты с ними такое делаешь? Ни у кого не ломаются, у тебя ломаются. Плюс даже если ломаются, то стоят 2 бакса
>У меня есть один прошитый контроллер с питоном. Есть два f103 китайских от стлинков. И есть около 60 stm8 купленных в докризисные времена. Все это нужно шить без компа, с мобилы, лучше без usb otg , они ломаются, но пока что есть один рабочий, и то там только mass storage. И теперь я решаю задачу как это все применить без профессиональных решений типа "просто купи комп и программатор".
Блядь. КАК ОНИ ЛОМАЮТСЯ НАХУЙ. Ты их сжигаешь или что? У тебя ровно 2 варианта прошивки стм32 из коробки:
- SWD
- UART
Для первого нужен программатор, для второго достаточно ком порта. Где у он будет - уже неважно, главное что на устройстве с которого ты собрался шить был софт, умеющий взаимодействовать с ком портом. Ардуина была примером, так как к ведру МОЖНО подключать usb ttl. Искаропки нигде нету в СОВРЕМЕННЫХ устройствах COM порта НЕТУ. А по usb МК ИЗ КОРОБКИ не шьются. Никому это нахуй не надо, в бутлоадер добавлять прошивку по usb. У тебя такое займет МНОГО памяти и удорожает контроллер, а usb нужен очень далеко не всем в проектах на МК
>Ну это крайний вариант, жечь флеш при каждом сбросе решение непрофессиональное. Лучше бы через ОЗУ.
EEPROM
>Решений проблемы связи с мобилой я наметил 3: писать скрипты для прошивки на питоне, шить через 3.5 аудио выход по протоколу uart, переставлять micro sd с прошивкой из мобилы в кастомный программатор.
Давай мы сначала определимся, что ты хочешь шить. Ты хочешь прошивать отладочные платы типа блюпилок? Тебе надо шить готовые устройства на базе stm32, которые не являются средствами разработки? Или другое?
И да, скрипты для прошивки на питоне исполняются на мобиле или на целевом контроллере? Или же скрипт заливается на контроллер с микропитоном и превращает этот МК в программатор?
>Компилятор с 7 Андроида с появлением termux железно есть.
Пиздец ты инвалид. Мало того что это медленно, так ещё и писать код на экранной клавиатуре... Ладно, ок, значит у тебя есть на андроиде тулчейн из библиотек под МК, там всякие HAL, LL, есть компилятор GCC и загрузчик, который может загружать бинарные файлы в МК по SWD либо по UART. Вот это надо четко написать в техзадании.
>Варианты нужны разные, кустарные.
Я написал, их ровно два в общем случае: SWD и UART. Больше ты никак не зальёшь, разве что отшлифуешь кристалл и электронной пушкой зарядишь битики там где надо.
> Поискать готовые варианты можно попробовать.
https://github.com/cederom/LibSWD
>Тогда я экспортировал в специальный двоичный формат, где прошивка была перемешана с командами бутлоадера, что позволяло прошиться без спец софта обычной отправкой файла через уарт.
Сука, для прошивки по UART нужно только поменять джамперы на плате и нажать ресет чтобы бутлоадер запустился в режиме прошивки по UART, там, вроде, даже не нужны никакие специальные настройки компилятора для этого. Ты можешь с помощью того же st link utility залить один хекс файл или по uart или по swd, разницы никакой с точки зрения этого хекс файла.
>пришлось вкатиться в разработку на Андроиде, чтобы перенести из termux свою ide. До этого она была на связке python+ js, в виде веб приложения. Поскольку java статический язык, а у меня была опора на встроенные в проект скрипты, многие функции отвалились. Поэтому сейчас починю экспорт в hex. В качестве конечной точки эта ide будет перенесена на thumb ассемблер, потом на несколько разных и реализована в контроллерах.
Ничерта не понял. Буду просто считать, будто так же ничерта не видел. Для нормального человека процесс разработки софта под МК выглядит так. Вид тулчейна на пикрилейтед. Обычно, если тебе хочется другой язык, то у тебя два варианта: или ты делаешь кодогенерацию твоего языка в Си (matlab/simulink) или ты СНАЧАЛА прошиваешь в МК некую среду для твоего языка (microython, espruino, java ME), а потом уже заливаешь в свой МК скрипты на этом языке. Тут можно "шить" уже любыми способами, которые поддерживает среда. Термин шить, правда, некорректен уже, потому что тут ты только заливаешь код во внутреннюю память для программ СРЕДЫ, а не меняешь прошивку микроконтроллера целиком.
>Что то вроде кпк.
Т.е. ты собрался сделать какой-то кпк/телефон/микрокомпьютер, на micropython, на котором будет некий интерфейс, некий текстовый редактор и возможность запуска кода, написаного на этом же кпк? Тогда получается что ты хочешь что-то вроде малины, но на stm32, так? Тогда тебе точно не в этот тред, потому что это вопросы к реализации микропитона. Я подразумеваю что внутри есть какая-то RTOS и ты можешь вполне по ходу работы твоей вундервафли создавать новые таски в том числе условно сделав eval кода из созданного текстовика. Но с таким тебе точно не сюда, ищи людей, которые занимаются микропитоном и конкретно им, в треде ж все ебутся на сишечке или ассемблере. Максимум можно подсказать по кодогенерации из матлаба.
Альтернативно при разработке флиппера хотели засунуть gcc прямо в stm32, но впоследствии отказались от этой идеи.
>Все это нужно шить без компа, с мобилы,
Шей через бутлоадер по UART-у. Или зашей разово свой бутлоадер, как зашил питон и прошивай вовсе через любой интерфейс.
И лучше возьми комп, тут хоть четвертого пня из помойки хватит.
>дешевое ломающейся говно
Сдуру можно и хуй сломать.
>но зато интересно и в этом смысл, в преодолении ограничений своими силами.
Нечего тут перемотать. Какие проблемы шить через бутлоадер?
Купи USB-UART за 200 рублей, подключи к компу, залей в одну плату с f103 прошивку стлинка/жлинка и шей на здоровье.
Или через бутлоадер, как анон советует.
Тебе все равно этот usb-uart еще сто раз пригодится.
У меня тоже горели, сейчас подключаю через развязку usb, все нормально.
>А по usb МК ИЗ КОРОБКИ не шьются. Никому это нахуй не надо, в бутлоадер добавлять прошивку по usb. У тебя такое займет МНОГО памяти и удорожает контроллер, а usb нужен очень далеко не всем в проектах на МК
На алике есть два варика: air32 копия блюпил с прошивкой daplink, то есть готовый программатор отладчик, ком порт с поддержкой прошивки по swd при перетаскивании на диск в проводнике. Это уже вразы круче чем стлинк покупать, с одним недостатком - нет stm8. Берем две такие платы и шьем друг друга свободно.
Ну и rp2040, с прошивкой перетаскиванием. Но это нерелейтед тема.
>что ты хочешь шить.
Я хочу на питоне переключаться кнопкой ресет, остальное ваши любопытные агрессивные вопросы и мои любезные ответы.
Планирую реализовать stm8 swim и stm32 uart. Второе на скриптах уже сделал. Первое на скриптах никак не получается, думаю из за таймингов.
Avr шил раньше, но сейчас неактуально.
В качестве первого устройства на будущее выбрал выше два варианта
>скрипты для прошивки на питоне исполняются на мобиле или на целевом контроллере? Или же скрипт заливается на контроллер с микропитоном и превращает этот МК в программатор?
Второе, первый способ возможен, но в термуксе usb требует костыли, которые я не понимаю. Микропитон имеет обычный для питона repl через uart или wifi если он есть. Поэтому там можно просто запустить любой скрипт с spi флешки, или любой другой памяти если она есть. В самом контроллере только интерпретатор прошит и туда ничего записывать нельзя без программатора.
>техзадание надо проверять на адекватность и понятность. У тебя нет ни того ни другого в том что ты написал
Ладно, тогда нет вопросов. Просто не люблю когда васяны включают менторский тон и начинают рассказывать свою базу, о которой никто их не спрашивает, при этом сам не шарит нихуя и требует обучить его теме. Неадекватно, значит иди мимо, не для тебя значит задача. Или смени тон.
>как ломаются
Влага, отвал штырьков, отвал разьемов
>>506778
>Пиздец ты инвалид.
Ну зато ты узнал что ведро имеет компиляторы, а не только твой любимый геншин импакт. А еще познакомился с фреймворком micropython. Видишь как полезно ПОМОГАТЬ инвалидам тупым.
>>506778
>написал, их ровно два в общем случае:
это интерфейсы, спасибо кэп, я читал даташиты. Я решения перечислил, как эти интерфейсы использовать с мобилой.
>>506778
>Сука, для прошивки по UART нужно только поменять джамперы на плате
Зачем ты пишешь очевидные вещи? Ты думаешь я реализовал протокол и не знаю как стартануть бутлоадер? А, сука?
>>506778
>Ничерта не понял
ты и не пытался
Вопрос изначально был только о переключении кнопкой сброса. Остальное не твоего ума дело, очевидно.
>А по usb МК ИЗ КОРОБКИ не шьются. Никому это нахуй не надо, в бутлоадер добавлять прошивку по usb. У тебя такое займет МНОГО памяти и удорожает контроллер, а usb нужен очень далеко не всем в проектах на МК
На алике есть два варика: air32 копия блюпил с прошивкой daplink, то есть готовый программатор отладчик, ком порт с поддержкой прошивки по swd при перетаскивании на диск в проводнике. Это уже вразы круче чем стлинк покупать, с одним недостатком - нет stm8. Берем две такие платы и шьем друг друга свободно.
Ну и rp2040, с прошивкой перетаскиванием. Но это нерелейтед тема.
>что ты хочешь шить.
Я хочу на питоне переключаться кнопкой ресет, остальное ваши любопытные агрессивные вопросы и мои любезные ответы.
Планирую реализовать stm8 swim и stm32 uart. Второе на скриптах уже сделал. Первое на скриптах никак не получается, думаю из за таймингов.
Avr шил раньше, но сейчас неактуально.
В качестве первого устройства на будущее выбрал выше два варианта
>скрипты для прошивки на питоне исполняются на мобиле или на целевом контроллере? Или же скрипт заливается на контроллер с микропитоном и превращает этот МК в программатор?
Второе, первый способ возможен, но в термуксе usb требует костыли, которые я не понимаю. Микропитон имеет обычный для питона repl через uart или wifi если он есть. Поэтому там можно просто запустить любой скрипт с spi флешки, или любой другой памяти если она есть. В самом контроллере только интерпретатор прошит и туда ничего записывать нельзя без программатора.
>техзадание надо проверять на адекватность и понятность. У тебя нет ни того ни другого в том что ты написал
Ладно, тогда нет вопросов. Просто не люблю когда васяны включают менторский тон и начинают рассказывать свою базу, о которой никто их не спрашивает, при этом сам не шарит нихуя и требует обучить его теме. Неадекватно, значит иди мимо, не для тебя значит задача. Или смени тон.
>как ломаются
Влага, отвал штырьков, отвал разьемов
>>506778
>Пиздец ты инвалид.
Ну зато ты узнал что ведро имеет компиляторы, а не только твой любимый геншин импакт. А еще познакомился с фреймворком micropython. Видишь как полезно ПОМОГАТЬ инвалидам тупым.
>>506778
>написал, их ровно два в общем случае:
это интерфейсы, спасибо кэп, я читал даташиты. Я решения перечислил, как эти интерфейсы использовать с мобилой.
>>506778
>Сука, для прошивки по UART нужно только поменять джамперы на плате
Зачем ты пишешь очевидные вещи? Ты думаешь я реализовал протокол и не знаю как стартануть бутлоадер? А, сука?
>>506778
>Ничерта не понял
ты и не пытался
Вопрос изначально был только о переключении кнопкой сброса. Остальное не твоего ума дело, очевидно.
>Какие проблемы шить через бутлоадер?
Я и шью пока что. Просто интересны другие варианты, свои так сказать, самописные.
Тоже варик.
>air32 копия блюпил с прошивкой daplink, то есть готовый программатор отладчик, ком порт с поддержкой прошивки по swd при перетаскивании на диск в проводнике.
По этому запросу ни одного результата на русском, на английском только один, остальное - иероглифы. А даплинк это просто универсальный программатор/отладчик для ARM и принципиально ничем не отличается от STLink по функциональности. Какое это имеет отношение к удобству программирования - я не понял, это всего лишь ПО для программаторов и отладчиков, ты можешь поставить его на тот же стлинк. К теме STM32 это относится всё слабо
>Я хочу на питоне переключаться кнопкой ресет, остальное ваши любопытные агрессивные вопросы и мои любезные ответы.
Почему именно ресет? Я тебе описал способ, если тебе не нравится писать во флеш, то ты можешь писать в ОЗУ которая не перезапишется при ресете. Тогда при первом включении у тебя будет первая прошивка, а далее по ресету циклично. Но это требует написания своего бутлоадера. Микропитон не поддерживает сам такое. Если у тебя вопрос как написать свой загрузчик, то так и спрашивай, а не вокруг да около.
>Поэтому там можно просто запустить любой скрипт с spi флешки, или любой другой памяти если она есть. В самом контроллере только интерпретатор прошит и туда ничего записывать нельзя без программатора.
Ну вообще часть внутреннего флеша превращается в этакую ФС, куда и можно тоже кидать скрипты, а внешняя флешка не обязательна. Ну и то что ты описал это уже что-то близкое к esp32 по принципу работы
>это интерфейсы, спасибо кэп, я читал даташиты
Нет, это именно способы прошивки. Бутлоадер, который железно вшит в МК, поддерживает только их для загрузки прошивки. Любое другое требует кастомного бутлоадера и это отдельный разговор.
>ты узнал что ведро имеет компиляторы
Да хуйня вопрос, ведро это линукс, там что угодно может быть. Никто не программирует на ведре по слегка другой причине.
>Вопрос изначально был только о переключении кнопкой сброса. Остальное не твоего ума дело, очевидно.
>при этом сам не шарит нихуя и требует обучить его теме. Неадекватно, значит иди мимо, не для тебя значит задача
Ты смени тон, блядь. Твой тон обсуждения примерно такой, как если б ты спросил прохожего, как пройти туда-то, а потом начал доказывать что это то-то находится вообще не там и прохожий пидорас тупой.
Тебе сука потребовалось высрать три шизопростыни чтобы просто спросить - а как написать кастомный бутлоадер на микропитоне. И задача всё равно непонятная. Зачем тебе две отдельных прошивки? Почему нельзя написать одну прошивку, которая будет работать условно вот так:
void main() {
bool activeFW = 0;
attachInterrupt(button, interrupt);
entry_pint: ;
if(activeFW){
fw1();
} else {
fw2();
}
}
void fw1(){
/govnocode
while(1){
/govnocode
} }
void fw2(){
/govnocode
while(1){
/govnocode
} }
void interrupt(){
activeFW = !activeFW;
goto entry_point;
}
>air32 копия блюпил с прошивкой daplink, то есть готовый программатор отладчик, ком порт с поддержкой прошивки по swd при перетаскивании на диск в проводнике.
По этому запросу ни одного результата на русском, на английском только один, остальное - иероглифы. А даплинк это просто универсальный программатор/отладчик для ARM и принципиально ничем не отличается от STLink по функциональности. Какое это имеет отношение к удобству программирования - я не понял, это всего лишь ПО для программаторов и отладчиков, ты можешь поставить его на тот же стлинк. К теме STM32 это относится всё слабо
>Я хочу на питоне переключаться кнопкой ресет, остальное ваши любопытные агрессивные вопросы и мои любезные ответы.
Почему именно ресет? Я тебе описал способ, если тебе не нравится писать во флеш, то ты можешь писать в ОЗУ которая не перезапишется при ресете. Тогда при первом включении у тебя будет первая прошивка, а далее по ресету циклично. Но это требует написания своего бутлоадера. Микропитон не поддерживает сам такое. Если у тебя вопрос как написать свой загрузчик, то так и спрашивай, а не вокруг да около.
>Поэтому там можно просто запустить любой скрипт с spi флешки, или любой другой памяти если она есть. В самом контроллере только интерпретатор прошит и туда ничего записывать нельзя без программатора.
Ну вообще часть внутреннего флеша превращается в этакую ФС, куда и можно тоже кидать скрипты, а внешняя флешка не обязательна. Ну и то что ты описал это уже что-то близкое к esp32 по принципу работы
>это интерфейсы, спасибо кэп, я читал даташиты
Нет, это именно способы прошивки. Бутлоадер, который железно вшит в МК, поддерживает только их для загрузки прошивки. Любое другое требует кастомного бутлоадера и это отдельный разговор.
>ты узнал что ведро имеет компиляторы
Да хуйня вопрос, ведро это линукс, там что угодно может быть. Никто не программирует на ведре по слегка другой причине.
>Вопрос изначально был только о переключении кнопкой сброса. Остальное не твоего ума дело, очевидно.
>при этом сам не шарит нихуя и требует обучить его теме. Неадекватно, значит иди мимо, не для тебя значит задача
Ты смени тон, блядь. Твой тон обсуждения примерно такой, как если б ты спросил прохожего, как пройти туда-то, а потом начал доказывать что это то-то находится вообще не там и прохожий пидорас тупой.
Тебе сука потребовалось высрать три шизопростыни чтобы просто спросить - а как написать кастомный бутлоадер на микропитоне. И задача всё равно непонятная. Зачем тебе две отдельных прошивки? Почему нельзя написать одну прошивку, которая будет работать условно вот так:
void main() {
bool activeFW = 0;
attachInterrupt(button, interrupt);
entry_pint: ;
if(activeFW){
fw1();
} else {
fw2();
}
}
void fw1(){
/govnocode
while(1){
/govnocode
} }
void fw2(){
/govnocode
while(1){
/govnocode
} }
void interrupt(){
activeFW = !activeFW;
goto entry_point;
}
Так, у меня тут вопрос пиздец на какой миллион. В слове два байта или четыре? Вообще аббревиатура DCD как расшифровывается, последнее D - это дворд же, да? Получается в двойном слове четыре байта. В слове получается два байта, а в полуслове один байт? Че блять за нахуй?
>Да всё там просто, уловить просто надо было.
Все просто было бы, еслиб вы вкатывающихся в арм людей не пинали
всем инетом за то, что они начинают с асма. Потом бы все тихо мирно переобулись в ваш обоссаный си
и никакого багета по пустякам.
Зависит от архитекутры, в х86 2 байта, в армах 4 байта, в других не знаю точно.
Абревиатуру первый раз слышу.
>>506854
>этому запросу ни одного
То секретная ссылка, я сам поиском ее не смог найти.
Для меня это пример того что можно использовать без отдельного программатора. Там кстати спеки хорошие но я пока не заказывал, держу в корзине с кучей других идей.
Поскольку это клон стм32, к теме оно относится непосредственно.
>>506854
>вообще часть внутреннего флеша превращается в этакую ФС, куда и можно тоже кидать скрипты, а внешняя флешка не обязательна. Ну и то что ты описал это уже что-то близкое к esp32 по принципу работы
Не, в blackpill на f411 внутренняя флеш занята вся, а в esp нет внутренней флеш вообще, там же внешняя spi флешка делится на разделы для кода и данных.
>Почему именно ресет?
Чтобы иметь такую возможность.
>требует написания своего бутлоадера.
Ты называешь питон бутлоадером? Он так то всю память занимает.
Ладно, твой ответ: не поддерживает. Я понял, попробую что нибудь накостылить.
Мне вот идея пришла очевидная, что как минимум две программы можно переключать, просто проверяя источник сброса. Воткнул питание запустилась одна подпрограмма, нажал сброс - другая.
Это уже неплохая возможность. А дальше можно найти переменную которая в питоне сохраняется между повторными сбросами, понятно что пользовательский скрипт любую память затрет, но сама среда же только часть памяти инициализирует.
>>506854
>смени
Ты долбоеб, эти три простыни нужны были чтобы ты понял, что ради кнопки ебаной никто не будет писать кастомный бутлоадер и копаться в дебрях питона и перекомпилировать, покупать сто питсот программаторов и адаптеров и даже один.
ты начал выебваться какой я тупой валенок не понял гениальных открытий что для прошивки нужен программатор, когда речь вообще о другом и программатор у меня есть сейчас по сути, питон поддерживает УСБ полностью, речь о другой вообще проблеме как в заданном устройстве использовать некоторую фичу под названием кнопка сброса.
Для тебя ещё раз вопрос: >>506377
Твой ответ: чтобы кнопку запустить, купи программатор, скомпилируй прошивку, я умный, питон не нужен, поменяй фреймворк, поменяй плату, поменяй небо, поменяй Аллаxа, купи комп, в телефоне нельзя прогать я сказал, контроллеры нужны для автоматизации и в устройствах (ну да, кэп, без устройств контроллеры не нужны, потому что контроллер это и есть устройство и следовательно его комбинацияс другими деталями тоже устройство, что ты этим хотел сказать, умник хренов?).
Зависит от архитекутры, в х86 2 байта, в армах 4 байта, в других не знаю точно.
Абревиатуру первый раз слышу.
>>506854
>этому запросу ни одного
То секретная ссылка, я сам поиском ее не смог найти.
Для меня это пример того что можно использовать без отдельного программатора. Там кстати спеки хорошие но я пока не заказывал, держу в корзине с кучей других идей.
Поскольку это клон стм32, к теме оно относится непосредственно.
>>506854
>вообще часть внутреннего флеша превращается в этакую ФС, куда и можно тоже кидать скрипты, а внешняя флешка не обязательна. Ну и то что ты описал это уже что-то близкое к esp32 по принципу работы
Не, в blackpill на f411 внутренняя флеш занята вся, а в esp нет внутренней флеш вообще, там же внешняя spi флешка делится на разделы для кода и данных.
>Почему именно ресет?
Чтобы иметь такую возможность.
>требует написания своего бутлоадера.
Ты называешь питон бутлоадером? Он так то всю память занимает.
Ладно, твой ответ: не поддерживает. Я понял, попробую что нибудь накостылить.
Мне вот идея пришла очевидная, что как минимум две программы можно переключать, просто проверяя источник сброса. Воткнул питание запустилась одна подпрограмма, нажал сброс - другая.
Это уже неплохая возможность. А дальше можно найти переменную которая в питоне сохраняется между повторными сбросами, понятно что пользовательский скрипт любую память затрет, но сама среда же только часть памяти инициализирует.
>>506854
>смени
Ты долбоеб, эти три простыни нужны были чтобы ты понял, что ради кнопки ебаной никто не будет писать кастомный бутлоадер и копаться в дебрях питона и перекомпилировать, покупать сто питсот программаторов и адаптеров и даже один.
ты начал выебваться какой я тупой валенок не понял гениальных открытий что для прошивки нужен программатор, когда речь вообще о другом и программатор у меня есть сейчас по сути, питон поддерживает УСБ полностью, речь о другой вообще проблеме как в заданном устройстве использовать некоторую фичу под названием кнопка сброса.
Для тебя ещё раз вопрос: >>506377
Твой ответ: чтобы кнопку запустить, купи программатор, скомпилируй прошивку, я умный, питон не нужен, поменяй фреймворк, поменяй плату, поменяй небо, поменяй Аллаxа, купи комп, в телефоне нельзя прогать я сказал, контроллеры нужны для автоматизации и в устройствах (ну да, кэп, без устройств контроллеры не нужны, потому что контроллер это и есть устройство и следовательно его комбинацияс другими деталями тоже устройство, что ты этим хотел сказать, умник хренов?).
Ссылку обезьяна запретила,ищи по магазину если хочешь или вводи адрес руками.
>Есть ли участок ОЗУ, который гарантированно не трогает на старте интерпретатор?
>F411 чип.
Backup registers попробуй
Спасибо добрый человек!
На али разумеется ссылку я нашёл. Вот только там ни даташита ни сравнения с оригинальным ни как напердолить куб для совместимости нет
Я прекрасно знаю что без танцев с бубном клоны не заводятся, а для некоторых вообще надо патчить IDE. В каких-то даже дефолтный Blinky не работает. Поэтому и спросил.
>спросил
Послушай, дорогой, если бы ты не понтовался с самого начала, а честно анализировал вопросы, то тебе бы не пришлось сейчас искать возможность сохранить лицо такими тупыми маневрами.
Давай останемся друзьями и не будем устраивать срач, а вместо этого ты просто учтешь ошибки и справишься со своими национальными понтами самостоятельно, по взрослому.
И в следующий раз мне поможешь, и мне не придется писать благодарности самому себе.
Потому что иного подтекста у твоих придирок я не вижу.
>Потому что иного подтекста у твоих придирок я не вижу.
Я могу просто подключить эту парашу к стлинку и зашить туда код, скомпилированный под stm32f103, как с cs32f103?
Или там все ж потребуется ебаться с конфигами как с какой-нибудь парашей типа CH32? Если второе то нахуй ты принёс это в тред stm32? А то вот такая выдача как-то не очень обнадеживает наличием поддержки сообщества
>оригиналов все равно больше не будет
А если покупать на eStore на поддельный адрес Почты РФ и потом доставлять с помощью Почта Глобал? Всего 15 баков за доставку и в твоих цепких лапках ориджинал STM
>STM уровня алиэкспресса?
Нет. eStore самого STM. Можно на Маузере попробовать купить на поддельный адрес Почты-Глобал. У меня просто дохуя купленных стм-ок и поэтому пока не буду тренироваться.
>Если второе то нахуй ты принёс это в тред stm32
Ебать ты потешный, пахан стм32 треда, ёпта!
Чтобы узнать, зачем я упомянул чип, попытайся прочитать пост, в котором я упомянул чип. Understand?
>У меня просто дохуя купленных стм-ок и поэтому пока не буду тренироваться.
Тебе уже писали тут о том что ты шизик?
Толку от всего этого, когда для почти любого реального устройства нужно ещё кучу разных деталей, которые ещё дефицитнее стм-ок часто бывают. Или вот в соседнем треде был пример простейшей камеры с USB - на стм фиг ты сделаешь такое нормально, если вообще сделаешь.
Не завидуй!
>камеры с USB
В нормальных камерах и usb и mjpeg встроены и не нужны никакие процессоры.
И вообще stm32 не dsp, а обычный arm общего назначения, зачем ты свои ебаные потоки суешь сюда?
>mjpeg
В нормальных камерах для машинного зрения и прочего такого, нет и не может быть сжатия с потерями.
>usb
Так-то нормальная камера это законченное изделие и уже в корпусе. А на картинке у тебя бесполезный хлам.
>И вообще stm32 не dsp, а обычный arm общего назначения, зачем ты свои ебаные потоки суешь сюда?
Вот и я о том же. Не обязательно на примере камеры, можно что-то другое взять. Толку то от этих стм в таком количестве, если ничего кроме них не будет?
Для простой замены логики у меня 60 stm8, которые я покупал 25 центов за штуку, а сейчас они 50 центов. Не велика потеря.
Да и stm32 в принципе доступны, если брать не мейнстрим, а те же чипы с меньшим флешем, которые и сейчас никому не нужны.
А ты как я понимаю барыжишь чем-то и на форумах газлайтишь анонов чтобы тебе дали хуйню на продажу. твое место в анналах двача.
>А ты как я понимаю барыжишь чем-то и на форумах газлайтишь анонов чтобы тебе дали хуйню на продажу. твое место в анналах двача.
Это ты к тому, что я упомянул о том как пытался продать кучу микросхем 133 и подобных серий? Тогда мимо. Мне это досталось на работе, причем выбор был или отдать сотруднику, который отнес бы это добытчикам золота (он и так отнес кучу всего), либо складировать у себя. Ничего такого с целью наживы даже не пытался перепродавать.
>Для простой замены логики
Какая-то странная логика у тебя, хотя всякое может быть, либо я не так тебя понял. Но если речь о 155 и других сериях, то по большей части фиг заменишь это микроконтроллером, по крайней мере то чего я касаюсь.
>у меня 60 stm8
Вот я и пишу о том что шизик. Толку то с этого барахла в таком количестве.
Тон у тебя такой, который выдает барыгу, который барыжит платками с форумов самодельщиков.
Сейчас я накидаю тебе схем, ты начнёшь всем своим видом показывать что я должен скинуть проекты, потом опять доебешься и так по кругу.
Короче нахуй, вон.
Софт говно, архитектура закрытая, потребление ебическое, цена огромная, лутов мало.
Процессор берет один сумматор условно и подключает к чему угодно использует его многократно, жертвуя временем. Один единственный сумматор. Охуенно же, и дешево. Время почти ничего не стоит на таких частотах, в миллион раз быстрее чем человеческая реакция, так зачем же стесняться его использовать.
>Софт говно, архитектура закрытая
Ты же сам себе пишешь нужную логику, какая тебе архитектура?
Закрытый формат прошивки, это полная зависимость от софта.
Меня их софт выбечисил ещё на работе,когда среда выдает "неизвестная ошибка" после 10 минут синтеза, хочется кинуть об стену все.
Cpld не использовал, только virtex, kintex на работе и циклон 2 дома немного.
Хотя на питоне было нормально, на нем хоть можно структурировать большой проект, и непонятные ошибки не возникали, потому что использовалось стабильное подмножество verilog для экспорта.
Короче Плис ненародная технология пока что.
>ненародная технология пока что
Твои стм8 - тоже "ненародная" технология, пока поддержку средой для ардуины не запилят.
>Закрытый формат прошивки
Не у всех. У Lattice для iCE40 вроде как все это открыто в полном объеме. Еще у Gowin тоже.
Но на деле с теми же стм8 что тебе остается из опенсурсного? Кривой sdcc? Ну и еще ассемблеры, но это не серьезно. Да, конечно ты всегда можешь сказать что можешь посмотреть ассемблерный выхлоп, но как-то сомнительно это все.
>только virtex, kintex на работе и циклон 2 дома немного.
У меня не ничего подобного, всегда было понятно в чем причина.
Это бинарщина, stm8 гораздо народнее чем cpld огрызок плис.
>>507540
>У Lattice для iCE40 вроде как все это открыто в полном объеме.
Это реверс инжиниринг, а не открытость. Но да, если и вернусь к Плис, то только в этот.
>Ну и еще ассемблеры, но это не серьезно
Для бизнеса несерьёзно, для исследования вычислений и оптимизации самое то.
stm8-шиз, гляди, чё нашёл:
https://tenbaht.github.io/sduino/
Раз у тебя их мешок - можешь потестить, насколько эти библиотеки для дурино-иде юзабельны?
Отзывов как-то маловато. Может, и закуплюсь этими стм8 для проектов выходного дня.
>stm8-шиз
Я не он, но у тебя по ссылке перемога какая-то. А именно перемога заключается в использовании сишечки вместо цпп, в результате получается лишь подобие ардуиновский фигни. Можно было отказаться от свободного sdcc и была бы совместимость с ардуйней.
Только не нужна эта ваша ардуина. Настроить ноги через SPL даже для инвалидов не должно представлять особой сложности.
>Твои стм8 - тоже "ненародная" технология, пока поддержку средой для ардуины не запилят.
Так есть жеж. Правда, особых преимуществ перед атмегами ни по частоте, ни по памяти, ни по цене нет, поэтому непопулярны.
С хуя ли перемога? Эти либы не хохлы писали.
Какой-то всратый меандр
while (1)
{
/ USER CODE END WHILE /
/ USER CODE BEGIN 3 /
//HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, pstate);
pstate = !pstate;
if (pstate) {
GPIOA ->BSRR = DS_Pin;
} else {
GPIOA ->BSRR = (DS_Pin<<16);
}
}
Да и всего 10 МГц. Хочу хотя бы 20. Это возможно? По даташиту output speed там до 50 МГц
>>507762
А разве ПДП в порт писать не может?
В любом случае лучше возьми FPGA, так оно проще будет и по стоимости максимум как F7, вероятно даже сопоставимо с F4.
>случайная последовательность в памяти.
Можешь уточнить задачу? Так-то есть разные способы генерирования псевдослучайных последовательностей на логике. Например М-последовательность можно организовать на одном сдвиговом регистре и нескольких XOR, вполне нормальный вариант для генератора шума, спектр получается ровненький.
Я в душе не ебу, что ты там и как измеряешь.
Нагрузи вывод нагрузкой 100-500 ом, выводы делай максимально короткими, повтори измерение ослоскопом.
>Нагрузи вывод нагрузкой 100-500 ом
Окей, попробую.
>Я в душе не ебу, что ты там и как измеряешь.
Это stm32f401 которая blackpill
>>507769
>А разве ПДП в порт писать не может?
Не знаю
>В любом случае лучше возьми FPGA
А например?
>Можешь уточнить задачу?
DSSS, ну соответственно ПСП тут для расширения спектра и CDMA. Наверное М-последовательность, пока что хуй знает какую лучше взять
>Не знаю
И я не знаю. Есть еще Raspberry Pi Pico с их контроллером RP2040, в котором есть PIO, представляющим специальный конечный автомат для подобных вещей. Можно всякие такие штуки реализовывать типа разных интерфейсов или просто как у тебя.
>А например?
Четвертый циклон самый мелкий, хотя сейчас может что-то еще более доступно стало. Еще на алиэкспрессе появились недорогие платки tang nano 4k, только у Gowin САПР не столь развиты как у интела и прочих. Это если тебе нужно автономное устройство. А если тебе нужно просто с компа выдавать, то есть варианты еще дешевле и может даже проще (если не было опыта с FPGA).
>DSSS
Делал как-то давно такое. А принимать на что собрался? В любом случае, на стм ты явно делаешь что-то не то, однозначно ерунда получится. Ведь кроме выдачи из памяти еще что-то потребуется? А как тогда обеспечишь стабильность частоты считывания-выдачи с таким кодом как у тебя?
>CDMA
>Наверное М-последовательность
Если для CDMA, то М-последовательностей не столь много, тут уже на коды Голда наверное стоит смотреть.
>М-последовательность, пока что хуй знает какую лучше взять
Так они одинаковы по свойствам АКФ и соответственно спектру, тут только длину выбирать.
>И я не знаю.
Пишут что можно, но непонятно, будет ли выигрыш в скорости
>сть еще Raspberry Pi Pico с их контроллером RP2040, в котором есть PIO, представляющим специальный конечный автомат для подобных вещей.
О, кстати хорошая идея, плюс пико сам быстрее, 133 МГц (пох что M0, у нас тяжелых вычислений нет)
>Четвертый циклон самый мелкий, хотя сейчас может что-то еще более доступно стало
Подскажешь какую-нибудь конкретную девборду?
>А принимать на что собрался?
Это курсач так что ни на что. Принимать пока или на SDR или на навигационные приёмники, но это вне темы. Длину кадра данных пока не определили, как и его содержимое
>Ведь кроме выдачи из памяти еще что-то потребуется?
Ну да, понадобится формировать кадр данных и его перемножать с ПСП. В кадре точно будет как минимум время, ну аналогично ГНСС и координаты. Все это будет получаться, с жпс. В принципе ничего не мешает использовать 2 МК, один будет формировать данные, второй чисто расширять спектр, если одного не хватит. Ну или использовать МК+ПЛИС. В общем то сейчас только формируется техзадание вот я и исследую, на чем можно делать такое
>Если для CDMA, то М-последовательностей не столь много, тут уже на коды Голда наверное стоит смотреть.
Да и Касами можно, пока не принципиально.
>Подскажешь какую-нибудь конкретную девборду?
Да, конечно FPGA для такого вероятно единственный адекватный вариант, если нужно именно автономное устройство.
К сожалению тех простеньких и дешевых плат с 4 циклонами на али больше нет, но можно использовать любые другие, лишь бы схема была в наличии или хотя бы выводы подписаны.
Из самого дешевого нашел https://aliexpress.com/item/1005004691760798.html там еще и программатор встроен.
А так я бы посоветовал https://aliexpress.ru/item/1005004065727282.html вместе с https://aliexpress.ru/item/1005004444066358.html
Если это слишком дорого, то я упоминал gowin, у них https://aliexpress.ru/item/1005003152104886.html Сам я брал вариант 9к, проверял с простейшим счетчиком - работает, до чего-то посерьезнее пока руки не дошли.
>Это курсач так что ни на что.
>Ну да, понадобится формировать кадр данных и его перемножать с ПСП.
С одной стороны это ерунда, на верилоге ничего не стоит написать такую ерунду. Но с другой стороны для курсового и реальную железку покупать да на свои деньги?
Ну как-то 2к дохуя, а вот gowin можно попробовать
>Но с другой стороны для курсового и реальную железку покупать да на свои деньги?
А чего бы и нет если я всё равно изучаю это?
>а вот gowin можно попробовать
Да, вполне. Только у них в отличии от альтеры/интела нет такой мощной штуки как TimeQuest, впрочем, с такой постановкой задачи как у тебя и не потребуется ничего такого.
>А чего бы и нет если я всё равно изучаю это?
Похвальное рвение конечно, но как-то необычно. В свое время я один со всего потока купил CPLD поиграть и то без всякой связи с курсовыми. Если не секрет, то в каком вузике учишься?
Ну будет у тебя такая скорость на SPI, а промежуток между словами какой? У тебя от этого вся ПСП безнадежно уедет.
Чоа? Какой промежуток между словами? Мы же на самой стмке будем и формировать кадр и ПСП, а на SPI уже пойдет перемноженная ПСП на кадр
Обыкновенный промежуток. Вот передается N-разрядное слово, от младшего бита к старшему. Передали старший бит, дальше по идее начали передавать младший бит следующего слова и так далее. Но какой интервал пройдет между? Там хватит одного дополнительного такта чтобы ПСП заметно поломалась. Где гарантии что там все непрерывно будет? Или тебе пофиг и ты не думаешь что будет на приеме?
Из текущих размышлений препода я понял что у нас будет не непрерывный сигнал, а импульсный. Одиночные или пачка - хз. Ну соответственно у нас у каждого чипа будет код сначала начинаться, не? Для примера ПСП длиной 512 бит и кадр длиной 64 бита. Соответственно перемножили выдали результат, дальше молчим какое-то время и по новой, но с другим кадром. Где тут промежуток то?
Как и на чём бы вы сделали GPSDO, имея на руках простой GNSS-модуль с 1 PPS выходом?
Аноны, объясните почему нельзя взять 3 бита с cr_2 и пихнуть в cr_1, тем самым добить байт в первом, и сократить к хуям козлячьим 2-й контролл регистр? И особенность архитектуры или что? Или это действительно экономит процессорное время. Бит бандинг тоже пиздец, в стм -ах реально выделенная память для обращения к каждому биту, или это в самом камне как то логически, без памяти все зашито?
>АВР обоссаный
Кстати, глянул - теперь не только стм, но и авр появились по приемлемой цене. В начале года по 10+$ за штуку были. Так что дэфыссыт спадает.
Это не али, спок
Кстати, некоторые китайские подделки под авр определяются как ATMEGA328PB, то есть у них должно быть два юарта, как и у оригинала, никто не проверял это случаем?
Потому что в tim1 все эти пустоты заполнены, а все остальные таймеры это tim1 с урезанным функционалом и частичной совместимостью с tim1 того что осталось.
Бит бандинг не понял чем тебе не нравится. Есть bsr регистр, который только устанавливает биты, и есть регистр который только сбрасывает. Это позволяет маскировать отдельные биты без чтения их значения.
>Есть bsr регистр, который только устанавливает биты, и есть регистр который только сбрасывает
Не понял что за регистр bsr и как он относится к битбанду?
>Бит бандинг не понял чем тебе не нравится.
Я не понимаю как он работает, т.е. есть физическая память для всего этого атомарного доступа к каждому биту, или все происходит через некий регистр bsr, да что блять сука за регистр такой?
>>508030
>Потому что в tim1 все эти пустоты заполнены, а все остальные таймеры это tim1 с урезанным функционалом и частичной совместимостью с tim1 того что осталось.
Ясненько. Тогда можно расслабить булки.
Ага, я загуглил. Я думал ты ногодрыг имеешь в виду. А тут что-то интересное. Судя по тому что я прочитал на хабре, действие происходит логически. Процессор транслирует адреса, делает чтение модификацию, запись и маскирует сам биты, а память работает как всегда.
> Процессор транслирует адреса, делает чтение модификацию, запись и маскирует сам биты, а память работает как всегда.
А, понятно. 200 галонов добра тебе.
Если ссылка не утонула у тебя, может поделишься?
Нужно считать импульсы с частотой в пределах 10-20 МГц. Есть ли такой режим работы? Именно аппаратный счет, а не программное ++дрочилово по прерыванию. Т.е. сконфигурировать таймер так, чтобы он сам инкрементировал значение своего счетчика по нарастающему или спадающему фронту сигнала. В нужный момент просто считать регистр(ы) счётчика.
МК - пусть будет F401 или F103, они вроде бы самые популярные.
А как с этим делом у АВР, типа атмег 48/88/168/328? Чет нихуя на эту тему в даташите не вижу.
Вообще то твоя картинка не про это, хотя могу и ошибаться. У тебя про тактовый сигнал самого модуля таймера, который из того же источника от которого тактируется ядро и прочее. А внешний вход счета это другое. В большинстве микроконтроллеров при счёте по внешнему входу во избежание образования асинхронщины (со всякими нехорошими последствиями) детектируется фронт входного сигнала (все по внутреннему тактированию) и уже это считается. Соответственно максимальная частота по этому входу должна быть в несколько раз меньше тактовой.
Иначе было у pic16/pic18, а у авр та же фигня как и у стм, если я не ошибаюсь.
Кто-нибудь подключал параллельные АЦП через GPIO или DCMI?
Видел статью на хабре https://habr.com/ru/post/482506/, на первый взгляд отличная возможность сэкономить на плисине.
Все так, асинхронные таймеры только в pic. В остальных случаях тактовая должна быть в два и более раз выше чем входной сигнал.
Пиздос, а нахуя так сделано? Хотел вкатываться в стм после авр, а теперь походу придётся вкатываться в дедовские шпики точёные.
Так. Аутист врывается в тред. Где найти входа/выхода каналов таймеров? Ни в референсе ни в даташите, ни даже нахуй в кубе, нигде не увидел.
Pic16 это урезок, там нет даже стека настоящего. Можно взять их в качестве таймера внешнего, но тогда уже проще обычный счётчик в режиме делителя поставить.
Я их юзал когда писал курсач, потому что по ним читали курс и был pickit в лаборатории. Я ещё себе собрал копию pickit на pic18 и прошил там, удивительно что нигде не ошибся.
Их же нельзя прошить без 12в. По любому нужно городить программатор.
Это все мое знакомство с пиками.
Ну и даже с асинхронным счётом там около 70 МГц предел. Проще взять stm32 старший какой-нибудь, и синхронно получить 25Мгц, d триггером 74ac74 поделить частоту на 4. Они от 100 МГц держат если оригинал конечно.
Короче, без крайней необходимости смысла в них не вижу. Один хуй там ядро хуже чем avr и обработать быстро эти 70мгц не выйдет.
>>508583
В pinout на конкретный корпус (пик 2)
Ну или брать pic18, 24, dsPic если денег не жалко.
>ни даже нахуй в кубе
Тыркай по ногам, там вылазиит список возможного использования данной ноги
Аноны, чтобы скачать с st.com какую-нибудь санкционную хуйню, это делается так.
1. На странице загрузки дождаться отображения кнопок для загрузки.
Переопределить функцию getsw_logical используя консоль браузера, например, вот так:
getsw_logical = function () {
$(function () {
var c = function () {
$('.getsw_modal_temp').remove();
$('.getsw_scrollbutton_temp').remove();
$('[class*=\'getsw_button_temp_\']').remove();
$('.js-get-software-restricted-check').css('display', 'block');
$('.table-sample-and-buy').find('tbody tr.parent .modal').each(function (e, c) {
var g = $(c).closest('.gscontent').attr('gs-modal-closest-gscontent-index');
g ? $(c).attr('gs-moved-modal-index', g) : ($(c).closest('.gscontent').attr('gs-modal-closest-gscontent-index', e), $(c).attr('gs-moved-modal-index', e));
$(c).appendTo('body')
})
};
$('.table-sample-and-buy.dt-responsive').click(function () {
c()
});
c()
})
}
Дальше пользуемся кнопками для скачивания как обычно.
Проверка хоть и происходит при помощи GeoIP, но финальная логика по отфутболиванию отрабатывает на стороне клиента, я просто убрал её оставив только полезную часть функции.
Спасибо zezic c ЛОРа.
Аноны, чтобы скачать с st.com какую-нибудь санкционную хуйню, это делается так.
1. На странице загрузки дождаться отображения кнопок для загрузки.
Переопределить функцию getsw_logical используя консоль браузера, например, вот так:
getsw_logical = function () {
$(function () {
var c = function () {
$('.getsw_modal_temp').remove();
$('.getsw_scrollbutton_temp').remove();
$('[class*=\'getsw_button_temp_\']').remove();
$('.js-get-software-restricted-check').css('display', 'block');
$('.table-sample-and-buy').find('tbody tr.parent .modal').each(function (e, c) {
var g = $(c).closest('.gscontent').attr('gs-modal-closest-gscontent-index');
g ? $(c).attr('gs-moved-modal-index', g) : ($(c).closest('.gscontent').attr('gs-modal-closest-gscontent-index', e), $(c).attr('gs-moved-modal-index', e));
$(c).appendTo('body')
})
};
$('.table-sample-and-buy.dt-responsive').click(function () {
c()
});
c()
})
}
Дальше пользуемся кнопками для скачивания как обычно.
Проверка хоть и происходит при помощи GeoIP, но финальная логика по отфутболиванию отрабатывает на стороне клиента, я просто убрал её оставив только полезную часть функции.
Спасибо zezic c ЛОРа.
Короче, пытаюсь на китайской F4-Discovery запустить пример USB-Host. Ну и собственно, с полпинка - нихуя.
Раньше на F205 - делал. Все норм было, но давно. Тактирование - ок.
Если в кратце говоря, есть стейт-машина, в которой при подключении OTG должно податься напряжение на usb и включиться девайс. Но ничего, как всегда не происходит. Пример с Device - работает, компьютер видит CDC-Simple-device.
Может есть у кого примеры, поделитесь.
Как я понимаю устройство должно зайти в нижестоящий if.
switch (phost->gState)
{
case HOST_IDLE :
if (phost->device.is_connected)
{... }
Тыкался-мыкался, нога работает. Может деталька STMPS2141STR на пикрил дохлая?
Использовал туториал этот. https://controllerstech.com/usb-cdc-device-and-host-in-stm32/
Официальные примеры тоже нихуя.
Я хочу попробовать запилить свой gpsdo. Там суть в том, чтобы измерять частоту 10 МГц с OCXO, усредняя, и корректировать ее напряжением (прямо с МК с помощью ШИМ через пару-тройку RC-цепочек). Я так понимаю, что сам МК в идеале надо тактировать от того же OCXO, чтобы всё было синхронно. Считаем импульсы, по приходу 1 Гц сигнала с гпс-модуля читаем показание счетчика. Но не особо понятно как быть с долями Гц для действительно высокой точности. Ну, и параллельно надо обновлять ЖК-дисплей и делать кой-чего ещё, типа опроса клавиатуры и конфигурирования периферии (хочу совместить с функционалом простенького ВЧ-генератора на si5351, а заодно, может, и частотомера). Для меня это был бы мега-проект.
И это был бы мой первый опыт с стм32. Я пока вообще не отдупляю даже, скажем, что из себя представляет DMA и как им правильно пользоваться. Многое придётся освоить. Опыт у меня - только аврки от тини13 до меги328 (в основном меги88), в ардуино иде. Но приноровился для экономии флеш писать собственный говнокод, вместо использования жирных готовых ардуино-библиотек.
Буду рад мудрым советам. Не бейте, лучше обоссыте!
Альфонсы, ни у кого нет желания переводить референс для f103, через гугль транслит?
Имею ввиду кто вкатывается. Хотя бы значения бит пока. Можно скооперироваться, а то в одно жало больно заебисто.
Нет смысла.
Тем более уже есть перевод где-то в сети.
Ну вот хорошо, переведем, а дальше как? Как китайцы на каждый микроконтроллер будем переводить?
Я вот сейчас читаю книгу про RTOS на английском и мне заебись.
>Тем более уже есть перевод где-то в сети.
Я только огрызок нашел, там автор часть перевел, а на остальной зис субскрайбе ис нот авелибел нау.
>Ну вот хорошо, переведем, а дальше как?
Продолжим жить своей скучной и унылой жизнью.
> Как китайцы на каждый микроконтроллер будем переводить?
Зачем каждый мк переводить. Я предлагаю переводить то к чему часто обращаемся, к битам, описанию регистров, то что понятно на уровне интуиции - нахуй. Название регистров, акронимы к ним не трогать для лучшего мнемонического восприятия.
>Я вот сейчас читаю книгу про RTOS на английском и мне заебись.
Ну и поцелуй мою залупу.
Я обращался к тем кто вкатывается, и к тем у кого с английским не все заебись.
До этого момента:
>Ну и поцелуй мою залупу.
действительно, думал, чем помочь тебе. Но раз ты такой токсичный пидор, заводящийся с полоборота, то пошел нахуй тогда.
Помоги себе сам.
И да, с английским у меня не все заебись. Просто берешь и делаешь.
>действительно, думал, чем помочь тебе.
Переводом, дебич, чем еще там можно помочь. И не только мне, а всем кому надо. А, надо это в первую очередь не сильным в английском и тем кто только начинает изучать стм. Тебе это нахуй не надо, а мне и за так нахуй не нужны твои понты.
>И да, с английским у меня не все заебись.
Давай досвидания.
>И не только мне, а всем кому надо. А, надо это в первую очередь не сильным в английском и тем кто только начинает изучать стм
Понимаешь, качественные учебники по цифре в принципе на русском языке закончились где-то в 80х. По программированию их даже не было. Тебе в любом случае нужен язык чтобы освоить стм32, особенно при том что куча разных терминов не имеет устоявшихся названий в русском языке. Я уж не говорю о том что все IDE на английском, равно как и компиляторы и вообще все элементы тулчейнов. Даже если ты знаешь английский всего то на А2, то понять RM не так то и трудно, с обилием картинок, схем и диаграмм и банально гугля неизвестные слова, это тебе не Лавкрафт в оригинале.
Мимо
Голову не еби, друг. Я спросил кто хочет, кому надо. Нет, и нет. Есть у меня учебник, нахуй он мне не нужен. Я просто перевожу описание битов регистров, чтоб проще потом было в регистрах самому же и ориентироваться. Потому что в референсе далеко не все очевидно что какая аббревиатура обозначает, в одной - Channel Configuration есть в названии в другой Capture Compare в третьей - Controll и хуй тут в бошке когда чего всплывет, а тут еще и в стандартных библах по нахуярили букв я ебу.
>Понимаешь, качественные учебники по цифре в принципе на русском языке закончились где-то в 80х. По программированию их даже не было.
Вот не надо пафосу наводить.
>все IDE на английском, равно как и компиляторы и вообще все элементы тулчейнов.
Как то странно, что ты особо выделил IDE, но не упомянул разные мейки. Настораживает немного, особенно после предыдущего пафоса.
Маня, мне 1с как должен помочь ориентироваться в регистрах и настройки этих регистров стм?
>Простых путей нет. И не ищи. Выискиваешь себе индульгенцию, чтобы нихуя не делать.
Ты ведь петушок копипастишь код, не так ли? С одного проекта таскаешь на другой, я прав? И имена переменных в коде наделяешь особым смыслом вроде "gg15PuZA"?
>Лучше сразу бросай программирование, я серъезно.
Только потому что твое козыряние владения английским достаточным для того чтобы прочитать документацию по RTOS я счел понтами? Ты еблан, я серьезно?
Ну не поможет в стм, но там по крайней мере английский не надо. Это ж у тебя ВОРОГ ВХОЖДЕНИЯ.
А регистры, кстати там есть. Но не процессорные.
Шутник хуев, ты на алике описание товаров на китайском смотришь наверно, да?
Да я код таскаю из одного проекта в другой, а как надо?
И вообще что для тебя "код"? Инициализация? Поднятие интерфейса?
Вот задача - написать арбитр (устройство А), который организует очередь, в которой данные с шины I2S, будут и паковаться в шину CAN, для передачи в устройство B.
В очередь от устройства А могут быть отправлены данные состояния устройств I2C на скорости 400Гц с 4х устройств. Также присутствуют посылки управления и синхронизации по шине CAN с наивысшим приоритетом
На принимающей стороне (устройство В) сделать арбитр который принимает по шине CAN данные. Посылки звука обратно конвертирует из CAN в I2S и отправляет на микросхему воспроизведения звука. При необходимости посылки I2S могут быть отправлены обратно.
Задержка звука не более 1секунда
Длина шины CAN до 80 метров.
Иными словами - у тебя расставлено 20 устройств, соединённых шиной CAN, и централизованный пульт управления. Задача - сделать чтобы ты мог из любой точки поговорить с оператором лично, а оператор мог поговорить одновременно со всеми.
Какие могут быть проблемы в этой задаче?
Нет, я иду на двач и прошу всех сделать полный перевод Алика и написать русский даташит к нему.
Вроде как китайцы там обычно на английском заполняют описания, это же площадка для международной торговли. Поэтому особые эстеты раньше ругались на ссылки на русскоязычную версию. Но по мне, в большинстве случаев там одинаковая ерунда на любом языке.
мимо
>не особо понятно как быть с долями Гц
Как я понимаю, у тебя будет 10 миллионов тактов на период, это же нормальная точность, миллионные доли герц? Точнее только аналоговый фапч.
Если 10 МГц умножить через внутренний фапч в несколько раз и считать на более высокой частоте, то точность немного улучшится.
>>508756
Правильно, тут просто фапч нужно для начала. Сравнивать на таймерах частоту это явно ерунда полнейшая. Возможно есть какой-то смысл поставить нормальный частотно-фазовый детектор, а после цифровать и дополнительно что-то фильтровать в цифре, после чего выдавать на цпп. По крайней мере можно будет сделать память для ускорения подстройки после выулючения-включения.
Ну и ещё многие приемники могут выдавать не только 1 Гц, но и больше, вероятно имеет смысл поднять частоту сравнения в фапч.
>>508756
Я уже сам нашёл ардиуно проект на стм32, где подглядел, как делают для получения точности 1Е-11 - 1Е-12.
https://github.com/AndrewBCN/STM32-GPSDO
https://github.com/AndrewBCN/STM32-GPSDO/blob/main/software/GPSDO.ino
Тут куча лишнего, какие-то датчики-хуятчики, всё это надо просто игнорировать.
Суть: сначала делают грубую калибровку до 1Е-8 - 1Е-9, которые гпс модули выдают практически сразу, "из коробки".
Затем импульсы считают периодами 10/100/1000/10000 секунд, получая среднее (с 1-4 знаками после запятой) и производя точную калибровку. Макс. точность набирается за несколько часов. На самом большом диапазоне по переполнению счетчика таймера используют программный костыль для превращения его в 64-битный.
Не понял только, какой источник тактирования мк использует автор: ocxo или кварц, встроенный в блэкпил? Алсо, оправданно ли автор использует F411? Разве F401 тут не хватит?
Ну, и я так понял, что DMA и подобные фичи стм32 здесь не никак задействуются (поправьте, если в каких-то из используемых библиотек их таки используют).
В принципе, насколько могу судить с наскоку, можно относительно легко адаптировать этот проект под себя, даже особо не вникая во богатый внутренний мир стм32 и референс мануал. Только все лишнее нужно выкинуть.
У тебя несколько странные числа. И сравнивать логичнее девиации Аллана.
Лучше ознакомься с http://www.ra3apw.ru/ublox-neo-7m-ocxo-gpsdo/
Есть ещё вариант на модуле LEA-M8F, в котором встроено все необходимое, только снаружи сам OCXO приделать.
Я просто привёл конкретный проект, который, кстати, хорошо обсосали на eevblog.
>LEA-M8F
Вот только он нифига не дешёвый и редкий. А простой модуль с 1 PPS выходом можно за 200 руб купить.
>Да я код таскаю из одного проекта в другой, а как надо?
Так и надо, тут у себя скопипастил, там у брата по языку англичанину на форуме пизданул код, хуяк хуяк и в продакшн. Главное скорость.
Непонятно почему ко мне претензии, цель моего перевода - скорость запоминания регистров и их настройки.
>Вот задача - написать арбитр (устройство А), который организует очередь, в которой данные с шины I2S, будут и паковаться в шину CAN, для передачи в устройство B....
Опять сука понтуешься.
>>508753
>Нет, я иду на двач и прошу всех сделать полный перевод Алика и написать русский даташит к нему.
Что несет? Какой даташит, нажал кнопку у тебя появился перевод, это блять сайт, а не спецификация на микроконтроллер. Вопрос в другом, ты принципиально читаешь на китайском описание и название товаров, или все таки чтобы не тратить время на изучение китайского ты просто переводишь его на русский, или как в твоем наверное случае на английский?
>>508754
> Поэтому особые эстеты раньше ругались на ссылки на русскоязычную версию. Но по мне, в большинстве случаев там одинаковая ерунда на любом языке
Да, потому что там получается ломаный перевод, как через гугл транслит. Я вот и не понимаю почему "особые эстеты" бугуртящие с русского перевода, не займутся изучением оригинального китайского языка.
>Вот только он нифига не дешёвый и редкий.
Так это всего лишь второй вариант, если хочешь большего. А так я дал ссылку на вариант с просто фапч, без странной и сомнительной возни с ардуйней.
>модуль с 1 PPS выходом можно за 200 руб купить.
Эти модули в большинстве своем могут и намного больше выдавать, учитывай это.
>Опять сука понтуешься.
Нет, не понтуюсь.
Типовая задача, задачи разные и "надергать" можно разве что только инициализацию.
Кстати, была статья "почему нельзя брать бездумно код со stack overflow и даже копировать правильный ответ"
>или как в твоем наверное случае на английский?
Причины, почему я читаю книгу на английском.
1. Потому что на русском нет или она пиздец старая. Именно про фриртос книг нормальных на русском нет. Есть только редкие куски документации, которые не складывают общее понимание.
2. Другая причина - если издание на русском старше 5-6 лет это для физики и математики не страшно я её принципиально уже не читаю, это старая книга, особенно если книга про ОС или технологию. Исключения - нужна именно старая технология, или читаю для саморазвития в истории.
3. Ещё одна из причин - книги по информатике редко переводят в то же время когда она выходит, в основном отставание пару лет.
Если тебе не хочется ебать себе мозг и ты наконец от меня отстанешь со своими глупыми предъявами за понты - лови годноту, есть на русском, но старый релиз.
Не занимайся байтоебством, которым ты собрался заниматься. Изучай продукт и технологию.
>Эти модули в большинстве своем могут и намного больше выдавать, учитывай это.
Так, а какие профиты от более высокой частоты? У ВСЕХ обычных (экзотику со встроенным gpsdo-функционалом не рассматриваем) GPS-модулей с тактовыми выходами - одинаково высокий джиттер, и точность более 1Е-8 напрямую ты никак не получишь.
Или полагаешь, что gpsdo с гпс модулем с более высокочастотным выходом позволит быстрее набрать точность до 1Е-12? Это бред, потому что во всех гпс модулях генератор с фапч завязан на всё тот же 1 Гц сигнал, будь у тебя на выходе частота килогерцы или мегагерцы. Т.е. это повышение частоты не даёт абсолютно никакого профита, точность будет набираться так же долго - от нескольких часов и более.
А в чем смысол таких генераторов?
Даже термостатированные быстрее на режим выходят.
мимо другой анон
Это такой костыль к термостатированному генератору, позволяющий за три копейки получить точность и стабильность практически как у атомных часов.
>горжусь тобой.
Спасибо.
Ну и подправлю, для тех кто столкнется может быть.
Вот этого контакта (пик 1), который стрелочкой указан, нет. Площадка ноги микросхемы никуда не ведет, просто стоит на месте. Вот я и ляпнул жирную соплю как на пике 2.
Ты можешь в main.c добавить свой метод из какого-либо стороннего файла, например как на пике, и там уже работать
Причин может быть много, но вообще рекомендую смотреть официальные примеры. Дело не в задержках.
Посмотри официальный пример в STM32Cube\Repository\STM32Cube_FW_F4_V1.27.1\Projects\STM32F411E-Discovery\Examples\UART\
Мне кажется дело в настройке прерываний. Ты генерировал проект или сам конфигурировал?
Для передачи по DMA нужно :
1. Настроить UART.
2. Настроить DMA для заданного UART.
3. Настроить прерывания TC(transfer complete) для заданного UART. Настроить прерывания DMA
4. Написать все обработчики прерываний. В обработчиках прерываний нужен флаг, который мы будем поднимать когда мы получили или отравили данные.Перед отправкой его обнуляем. Это вместо твоих задержек.
/##-4- Configure the NVIC for DMA #########################################/
/ NVIC configuration for DMA transfer complete interrupt (USARTx_TX) /
HAL_NVIC_SetPriority(USARTx_DMA_TX_IRQn, 0, 1);
HAL_NVIC_EnableIRQ(USARTx_DMA_TX_IRQn);
/ NVIC configuration for DMA transfer complete interrupt (USARTx_RX) /
HAL_NVIC_SetPriority(USARTx_DMA_RX_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USARTx_DMA_RX_IRQn);
/ NVIC configuration for USART TC interrupt /
HAL_NVIC_SetPriority(USARTx_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USARTx_IRQn);
Вообще есть также интересная хуйня, которая работает без прерываний
HAL_DMA_PollForTransfer
Книжка mastering stm32, вот репозиторий.
https://github.com/cnoviello/mastering-stm32/blob/master/nucleo-f411RE/src/ch9/main-ex1.c
Модератор извини, но я нашел еще немного для анона на ходу, чтобы объяснить как работают вызовы прерываний.
>Ты генерировал проект или сам конфигурировал?
Проект сгенерирован кубом.
>Настроить UART.
Это же делает калокуб сам, да? Я просто включил уарт и задал параметры.
>Настроить DMA для заданного UART.
Настроил вроде как.
>Настроить прерывания TC(transfer complete) для заданного UART. >Настроить прерывания DMA
Вроде тоже настроено автоматом все.
>>519048
На 3 пике все правильно?
Ну функция же
Выяснилось, что если я сначала делаю DMA Receive, а потом только DMA Transmite, то почему-то с первого раза работает. Может я не так понял принцип работы с DMA?
В main.c торчит только точка входа в основную программу.
Каков мой диагноз? Как на самом деле разработчиками хала задумано это делать? Deinit(), потом переписать Init структуру и вызвать Init()? Ебанизм какой-то.
В настройках проекта попробуй сгенерировать с опцией "каждая периферия в одном файле". Так легче будет и тебе и анону сразу увидеть всю конфигурацию. Должно быть еще в конфиге UART:
/ NVIC configuration for USART TC interrupt /
HAL_NVIC_SetPriority(USARTx_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USARTx_IRQn);
Есть странный баг генерации HAL, я тоже на нём попался, который, возможно, еще не пофиксили. Суть в том, что нужно настроить DMA перед UART, ибо если настроить раньше. Посмотри, если у тебя вызывается uart_init() перед dma. Кубоговно не генерит коректно.
Вот тред с фиксом https://community.st.com/s/question/0D50X0000BbKaA5SQK/haluarttransmitdma-doesnt
Я из-за такой хуйни только сам пишу весь код без генерации, разве что если лень переферию настроить, то генерю конкретный конфиг, а оттуда вручную копирую.
Давно перешел на LL и регистры по reference manual. Калокуб умеет генерить вменяемую инициализацию на LL, а большего от него и не нужно. HAL жрет ресурсы как не в себя, с ним трудно сделать конкурентоспособное устройство.
>Посмотри, если у тебя вызывается uart_init() перед dma. Кубоговно не генерит коректно.
Вроде корректно (пик 1).
С помощью HAL_DMA_PollForTransfer (пик 2) получается сделать. Хоть от этого немного теряется смысл в DMA, но в моментах где нужно чтобы эти операции были последовательны сойдет. Насколько понял из-за низкой скорости UART(9600) он тупо не успевает к этому моменту получить данные.
Но если я делаю собственную задержку в 1000 мс (пик 3), то все равно ничего не получается, пока не понимаю почему.
Ну тяжело сказать, в чём тут проблема тогда.
Возьми дебаггер и посмотри, попадаешь ли ты после HAL_UART_TRANSMIT_DMA в функцию прерывания, также посмотри регистры UART и DMA в отладчике, может что тебе подскажут.
Хорошо, спасибо
Может я сильно туплю, но че делать, если я хочу по uart что-то передать или периферией воспользоваться?
hadc1 undeclared, htim1 undeclared...
Они же конфигуратором объявляются в основном файле и хуй че сделаешь
Объявляешь глобальную внешнюю переменную в тех файлах, где они нужны и используешь.
Например, extern ADC_HandleTypeDef hadc1.
Хм, у меня такие же ошибки были, вылечилось этим тем, что переименовал в имя_файла.h
Все, я нашел. В main файле надо переменные без extern сделать
вот как я понял самое более менее аля али цена качество, блакпилл STM32F401.
На нее нужен ST-LINK как на блюпилл не могу понять?
Да.
>Написать прототип девайса быстро - HAL, много периферии - HAL
> Долгий цикл разработки - CMSIS, мало девайсов
Часто переписывают только части HAL кода на CMSIS.
Хочу написать Linux на ASM для ARM. Какие подводные, кроме дичайшего быстродействия?
LL -> automotive.
STM делает плагины для VECTOR и Elektrobit EB Tresos Studio.
Я работал в этим, дело в том, что на нём пишут разные готовые драйвера для девайсов, тот же CAN драйвер, который проходит стандарты безопасности.
В целом LL крайне хорош, но и понимания нужно намного больше.
> как вы не сходите с ума от примеров идущих с кубом к вашему контроллеру?
Принял своего внутреннего пидараса и перешёл на есп32. К счастью у меня из задач только iot без сильной завязки на тайминги
>Зачем стм-погроммисты хуярят настолько трудный для понимания код
Он реально трудный? Не работал с STM, просто заглянул в примеры, там тупо обычный си. После ардуиновского С++ может сложнее выглядит, но вроде не принципиально. В чем сложность-то?
Ну вроде как есть фундаментальный предел по числу сэмплов (прогонов через регистр последовательных приближений) в секунду, который упирается в тактовую частоту. Число шагов (разрядность АЦП) регулируется. Число сэмплов в одном измерении тоже может быть разным, чем больше - тем точнее.
я не совсем это имел в виду. что-то, что может мешать запустить в таком режиме
ЧЯДНТ ?
Почему SPI не передаёт значение в массив data ?
https://pastebin.com/xkKfu7uJ
на пичке 6 канал это выход уарта
Считываю данные с max6675
Если сегодня не смогу это решить, попробую в cubeide сгенерить и через отладку посмотрю.
Подсмотрел настройку регистров в SPI. В самом CUBEIDE ничего не заработало, зато у меня дело пошло
Отладочная плата на stm32f411CEU6
>Что я сделал не так?
1) Используешь кейл.
2) Инклюдишь что-то со странным именем. В текущей библиотеке сейчас название stm32f1xx.h
https://github.com/STMicroelectronics/STM32CubeF1/blob/master/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h
3) Тут я могу ошибаться, но ты вообще перепутал регистры. Тебе нужен APB2ENR и дефайн соответственно RCC_APB2ENR_IOPCEN
Точно сказать не могу, компа сейчас под рукой нет, а с телефона очень неудобно листать документацию.
Но в любом случае для начала необходимо разобраться со вторым пунктом, да и с первым тоже.
>чем плох кейл?
Хотя бы тем что там паки. Да, можно поставить legacy pack, но ты то как сделал?
>что использовать вместо кейла?
Qt creator или ещё что аналогичное по вкусу.
>Хотя бы тем что там паки. Да, можно поставить legacy pack, но ты то как сделал?
Поставил пак для своего микроконтроллера STM32F100RB.
Вот, я как раз об этом.
Ты уверен что в этом паке актуальные файлы от ST? Я не уверен, с большой вероятностью это может быть либо старье, либо что-то вовсе изменённое непонятно кем и зачем.
Либо ты можешь взять с гитхаба (по ссылке которую я приводил), либо взять из куба все это и быть уверенным что там все последнее и непосредственно от производителя. На наличие проблемы уже указывает существование файла который ты заинклюдил, его нет в том репозитории на гитхабе ну или я в глаза долблюсь.
>Qt creator или ещё что аналогичное по вкусу.
А что почитать про создание и сборку проектов для stm32 в QtCreator?
F411RE, F303RE. Смотря для чего, но обе имеют все примеры HAL,LL в CubeFW.
Должно хватить введения в cmake и https://github.com/ObKo/stm32-cmake
Отдельно можно написать симейковский скриптик для прошивки этого дела сразу мейком без всяких IDE. Я так уже сделал, но только для j-link.
Ну и если cmake покажется сложным, то можно поставить в кейл legacy pack и добавлять библиотечные файлы из куба вручную. Таким образом ты сможешь не только быть уверенным в том что используешь библиотеку именно от st и определённой версии, но и при необходимости таскать библиотеку определенной версии вместе с проектом, вместо того чтобы думать о соответствии версии пака.
Прльзуясь случаем, спрошу. Где вообще подучить этот симейк хотябы до среднего уровня?
Пытался учить по книге "Профессиональный Cmake" Скота Крейга, но там после базового примера создания простейшего проекта начинается какая-то неразбериха и ничего не понятно становится. А хотелось бы какой-то пошаговой подачи материала от простого к сложному.
Не знаю, я даже свой уровень оценить не могу. Но без проблем написал все необходимое для миландра.
Начинал с каких-то сомнительных статеек на хабре кажется. А дальше разбирал примеры сверяясь с документацией и понемногу писал свое для всякого разного. Но это все для старых версий симейка, в новых добавили много всякого. Однако для себя решил пока не использовать новые (относительно) возможности, т.к. не везде есть новые версии.
Хуя, я тоже под миландр пишу К1986ВЕ1QI, только всё делаю в Кейле, у них же свои паки есть.
А какая у тебя сборка? Чем отлаживаешь?
Пытался недавно эклипс настроить по инструкции, но у меня почему-то выходной hex файл для прошивки получался плохой, так и не разобрался.
Не знаю, cmake хоть и уродливый, зато распространенный.
>>522089
Теперь уже для миландра ничего не делаю, они же сдулись.
>А какая у тебя сборка? Чем отлаживаешь?
Все просто, поскольку для gcc официальная spl не подходит, использовал https://github.com/eldarkg/emdr1986x-std-per-lib Флаги компилятору там же в ридми написаны, не ошибёшься.
Также для симейка делал вариант сборки с кейловским armcc, но до armclang руки не дошли. Прошивал через j-link, как писал выше. Было очень удобно, оно просто как отдельная цель сборки работало, для других микроконтроллеров тоже подойдёт. А если вдруг требовалась отладка, что было крайне редко, использовал сеггеровский ozone.
В качестве IDE использовал clion и qt creator. Настраивать в самих IDE ничего не надо, только аргументы симейку прописать и все. Эклипс конечно такое себе, не советовал бы.
Эх, прочитал бы я твой пост месяцев 8 назад, когда ещё что-то делал под миландр...
Эклипс пытался настроить потому что четкая инструкция была, а как у тебя у меня так и не получалось всё настроить, ибо нихрена не понятно для нюфага, гитхаб этот видел.
>>522105
Не знаю. Я делал все совсем иначе и с симейком, а у тебя qbs похоже. Все что требовалось это прописать в параметры сборки симейка нужные параметры, те же самые что при сборке без ide. Все, как минимум с симейком не нужно там ничего натыкивать, выбор компилятора и установка флагов происходит за счёт симейковского тулчейн-скрипта.
https://medium.com/@csrohit/stm32-startup-script-in-c-b01e47c55179
Что имеешь ввиду?
Если генерить код в кубе у тебя будет .s стартап скрипт, котоый линкуется в бинарник.
Блядь пацаны, я купил F429-DISCO. Начал изучать дисплеи и LVGL.
Какая же сука это боль этот ваш графический дизайн, суууукаа.
На работе легко МК погромировать вместе, каждый получает task FreerTOS или EmbOS и погнали.
А тут всё самому нахуй, хуй с ним, уже более менее разобрался, но например не хочу тачскрин, который криво работает со стандартным драйвером порта. Это конча на ебало.
Хочу через кнопки, теперь сука каждую кнопку прописывать.
Кроме этого еще понять, каким хуем сделать.
В стартап файле прописывается таблица векторов прерываний NVIC, которая физически должна лежать в начале флешки. И начальное значение указателя стека прописывается. И там же прописывается адрес с которого микроконтроллер начинает выполнять команды. Соответственно без этой таблицы никак не обойтись. Сам же стартап это часть CMSIS, безотносительно куба и прочего кала.
Однако содержимое этого сиартапа можно переписать на си и сделать чтобы весь код мигалки был одним сишным файлом.
JS макака спустя годы перекладывания джейсонов наконец-то стала настоящим программистам и решила вернуться к истокам.
Как мне найти адреса этих регистров в своем референс мануале, чтобы поправить код под свою STM32F100RB?
#define GPIO_DIR_REG 0x50018000 / GPIO1DIR задает направление для блока GPIO 1 /
#define GPIO_REG_VAL 0x50013FFC / GPIO1DATA задает значение для блока GPIO 1 /
#define GPIO_PIN_NO (1<<8) / 8-й бит отвечает за 8-й пин /
Скомпилировал листинг при помощи arm-none-eabi-as, получил .o-файл. Выполняю arm-none-eabi-gdb add.o, ставлю бряку на _start, делаю run и вываливается сообщение Dont know how to run. Что делать? Как выполнить код?
.o файл это файл скомпилированной программы, а не бинарный файл исполнения.
Чтобы его получить, нужно еще линковать нужные библиотеки(необязательно), и вывести в бинарник.
arm-none-eabi-objcopy -O ihex add.elf add.hex
https://spivey.oriel.ox.ac.uk/digisys/Lecture_2_%E2%80%93_Building_a_program
F103 в даташите есть таблица регистров, где у них начальные адреса. Поищи свой начиная с 0x5, там указан сдвиг
>arm-none-eabi-objcopy -O ihex add.elf add.hex
В .hex нет таблицы символов и отладчих gdb не может пошагово выполнять этот файл. Что еще можно сделать, чтобы потрассировать программу в gdb?
Неделю пытаюсь завести дисплей 2,8
240x320 на драйвере ST7789V.
Я уже копировал код инициализации из адафруитской библиотеки, дисплею вообще ПАХУЮ. Работает с ардуино отлично, с моей копией на стм32 не работает никак
https://pastebin.com/UT6aYKnC
https://dropmefiles.com/SpdG4
Хуйня, переписывай. Хуй пойми какое время ты там ждешь
void delay(){
int i = 1000;
while(i >= 0){
--i;
}
GPIOA->BSRR |= GPIO_BSRR_BS2; //CS 1
i = 10000;
while(i >= 0){
--i;
}
GPIOA->BSRR |= GPIO_BSRR_BR2; //CS 1
}
Смотри примеры, чтобы не быть баттхёртом.
STM32Cube\Repository\STM32Cube_FW_F4_V1.27.1\Drivers\BSP\Components\st7789h2
Хуй его знает. Ты файлы .SAL смотрел ?
Отвечу на февральский пост. На этой борде не зазорно.
В сообщении дважды прослеживается ненормальная мания использовать библиотеки.
Из-за этого все страдания.
Embedding & STM-минг это не про заёбистую скачку заёбистых библиотек которые всё что делают это оборачивают
HAL_I2C_Master_Transmit() и HAL_I2C_Master_Receive()
причем если сходить в исходники функций и посмотреть на них, то они тоже обертка весьма простых действий (записей и чтений в регистры i2c перефирала).
Так что ты, надо признать, жертва собственных заблуждений, непонимания "как можно и нужно сделать просто и быстро".
> Я о том, что стиль кода в примерах, сразу отбивает желание изучать этот контроллер,
> ибо написан ебанутыми на всю голову, помешанных на указателях индусах.
Ты наверное не одупляешь одну простую вещь.
Дело в том что всё что делает HAL и код примеров по своей сути это обращается к регистрам перифералов.
Вообще конечно можно было написать код так, что смэппить фейковую struct-переменную на адрес. Именно так написана библиотека для Atmel AT91SAM7S* там повсюду будет обращение через . точку.
Также у ардуинщиков как правило где-то в либе лежит переменная типа какого-то объекта и всё обращение к ней идет тоже через . точку.
ST-шники же до такого фокуса как смэпить переменную на адрес не додумались и к перифералу они обращаются прямо по адресу (по указателю) ну и везде у них наебашено через -> (стрелочка, коорткое обращение к указателю).
И про индусов.
Кто пишет вообще-то можешь посмотреть.
https://github.com/STMicroelectronics/stm32f4xx_hal_driver/commits/master
обрати внимание на RJMSTM....
Переписал все отправки на функции, поправил тайминги посмотрев на лог. анализатор и наконец инициализировал дисплей.
Фрагмента нет. Пример с куба не нашёл, сделал большую задержку после 0x1(SWRESET), везде раставил задержки перед и после поднятия CS и D/CX .
Просто если делать задержку не через SysTick, а через for, то там задержка ничем не гарантирована.
А почему? Если в цикл засунуть операцию nop, то задержка будет гарантирована количеством итераций, умноженным на длительность выполнения операции nop, приблизительно. Или компилятор оптимизирует это всё и убирает лишние итерации из цикла? А если выключить оптимизацию?
Поэтому я и спросил. Так-то они и без содержимого будут работать, потому что там инструкции итераций и переходов много раз выполняются.
Но, возможно, компилятор видит эти пустые циклы и оптимизирует их или вообще скипает, хз.
Ну у меня в коммерческих проектах это software wait, его может прервать прерывание если будет RTOS или просто любая периферия будет иметь выше приоритет, будет context switch и уже цикл может быть сколько угодно. delay как у HAL или LL работает через настройку SysTick не может біть прерван, у него наивысший приоритет плюс __disable_irq. Ну и анон заметил, если i в цикле for не volatile, то если потом поменять флаги компилятора или будет другая его версия, то цикл может быть просто пропущен. Мне бы такое не приняли на ревью.
Я не доебаться, если работает, то ладно.
{
__IO uint32_t tmp = SysTick->CTRL; / Clear the COUNTFLAG first /
uint32_t tmpDelay = Delay;
/ Add this code to indicate that local variable is not used /
((void)tmp);
/ Add a period to guaranty minimum wait /
if(tmpDelay < LL_MAX_DELAY)
{
tmpDelay++;
}
while (tmpDelay != 0U)
{
if((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) != 0U)
{
tmpDelay--;
}
}
}
The time source is configured to have 1ms time base with a dedicated
Tick interrupt priority.
@note This function is called automatically at the beginning of program after
reset by HAL_Init() or at any time when clock is reconfigured by HAL_RCC_ClockConfig().
@note In the default implementation, SysTick timer is the source of time base.
It is used to generate interrupts at regular time intervals.
Care must be taken if HAL_Delay() is called from a peripheral ISR process,
The the SysTick interrupt must have higher priority (numerically lower)
than the peripheral interrupt. Otherwise the caller ISR process will be blocked.
The function is declared as __weak to be overwritten in case of other
implementation in user file.
Эх, у вас даже ревью есть. А как это выглядит?
Думал, что ревью только на высоком уровне проводят, но все равно плохо представляю что это.
Ну я за всю жизнь написал наверное пару програм без ревью, когда был в универе.
Если на примере github/gerrit то почти всегда было так:
1. Создал ветку своих изменений, git branch -b feature_adc.
2. Написал свой код, посмотрел не валятся ли тесты, покрыл тестами весь свой код unity/google test или python тесты для бенча через uart/jtag/virtualcom для верификации результата.
3. git push origin feature_adc, выдает ссылку на создание Pull Request.
4. Появляется журнал изменений(коментарии, описание изменений), diff, где на каждую строчку может любой ревьювер поставить свои заметки, попросить исправить, дополнить, когда поправил всё или заметок не найдено, жмешь merge и оно пошло на main/develop/release или куда вам надо.
5. Потом если твои изменения внесли проблемы, ибо так бывает, то можно упоминать такой pull request, что он создал проблему и просить сделать revert(отменить изменения) следующими комитами.
Мда, даже не верится, что это всё на стм. На моей госпараше даже системы контроля версий нету, по крайней мере для микрух. А как тесты писать вообще не могу представить, я будто упустил огромный пласт знаний, хотя я всего лишь годовалый вкатыш.
Очень хочу вкатиться, чтобы хотя бы приблизиться к примерно такому уровню как у тебя, анон. Мб можешь посоветовать литературу, или как ты вкатывался?
До сих пор не могу нормально разобраться как гитхаб юзать, умею только в коммит сделать и прочие простейшие действия. Как в это нормально вкатиться?
Я вкатился в 2008, я скуф, при чём сразу в Ericsson в швеции на барина, в мк вкатился давно. Но дело не в том.
1. Git - достаточно git game. https://learngitbranching.js.org/ Тут вообще все случаи реальной разработки. Для себя просто сделай себе аакаунт на github/gitlab или аналоге, сделай себе ветку main и свои, напрмер develop и свою собственную для, например, изменения файла. Попробуй слияние ветки от персональной ветки к develop, оттуда в main. Можешь пихнуть проект с STM32CubeIde прямо туда, только просто не забуть прописать в .gitignore генерированный мусор, примеры тоже есть в интернете. Часов 6-7, не более.
2. Если проект на C, то пишут тест с помощью https://www.throwtheswitch.org/unity, там подробная инструкция с примерами плюс там пишет как себе их запихнуть в IDE/emacs. В тесте есть своя функция main(), которая запускает тест и говорит результат. Если пишется тест так, чтобы он запускался на МК, то просто копируется main.c МК и туда вставляют код запуска тестов с фреймворка.
Например, надо протестировать, что функция регистр PA15 настроен на вывод, подтяжка вверх, скорость 50 мгц. В тесте ты вместо реального регистра в функцию, которая меняет регистр вставишь число uint32_t и проверишь, стало ли оно таким, как надо. Именно если уделить 3-5 часов в неделю, то за два месяца сразу станет ясно.
Есть такая штука как Ceedling, который работает как генератор тестов и их запускает, дает тест репорт, сильно упрощает жизнь, хотя на практике просто через make делают еще один таргет на сборку только тестов.
Для C++ намного проще, потому что каждая IDE имеет плагины или умеет генерировать шаблоны тестов и запускать, но лучше начать с оф. документации. https://google.github.io/googletest/quickstart-cmake.html
Вообще придётся читать официальную документацию, и потом уже гуглить то, что непонятно.
Если именно тестирование, то сейчас рынок таков
C - Unity/Ctest/CMock или fff.h.
C++ - 90% Google Test, 5% CppUnit
Очень хороший пример юнит теста на железе, F411RE, но можно спокойно поменять на свой : https://docs.platformio.org/en/latest/tutorials/ststm32/stm32cube_debugging_unit_testing.html
Я вкатился в 2008, я скуф, при чём сразу в Ericsson в швеции на барина, в мк вкатился давно. Но дело не в том.
1. Git - достаточно git game. https://learngitbranching.js.org/ Тут вообще все случаи реальной разработки. Для себя просто сделай себе аакаунт на github/gitlab или аналоге, сделай себе ветку main и свои, напрмер develop и свою собственную для, например, изменения файла. Попробуй слияние ветки от персональной ветки к develop, оттуда в main. Можешь пихнуть проект с STM32CubeIde прямо туда, только просто не забуть прописать в .gitignore генерированный мусор, примеры тоже есть в интернете. Часов 6-7, не более.
2. Если проект на C, то пишут тест с помощью https://www.throwtheswitch.org/unity, там подробная инструкция с примерами плюс там пишет как себе их запихнуть в IDE/emacs. В тесте есть своя функция main(), которая запускает тест и говорит результат. Если пишется тест так, чтобы он запускался на МК, то просто копируется main.c МК и туда вставляют код запуска тестов с фреймворка.
Например, надо протестировать, что функция регистр PA15 настроен на вывод, подтяжка вверх, скорость 50 мгц. В тесте ты вместо реального регистра в функцию, которая меняет регистр вставишь число uint32_t и проверишь, стало ли оно таким, как надо. Именно если уделить 3-5 часов в неделю, то за два месяца сразу станет ясно.
Есть такая штука как Ceedling, который работает как генератор тестов и их запускает, дает тест репорт, сильно упрощает жизнь, хотя на практике просто через make делают еще один таргет на сборку только тестов.
Для C++ намного проще, потому что каждая IDE имеет плагины или умеет генерировать шаблоны тестов и запускать, но лучше начать с оф. документации. https://google.github.io/googletest/quickstart-cmake.html
Вообще придётся читать официальную документацию, и потом уже гуглить то, что непонятно.
Если именно тестирование, то сейчас рынок таков
C - Unity/Ctest/CMock или fff.h.
C++ - 90% Google Test, 5% CppUnit
Очень хороший пример юнит теста на железе, F411RE, но можно спокойно поменять на свой : https://docs.platformio.org/en/latest/tutorials/ststm32/stm32cube_debugging_unit_testing.html
https://vandervoord.net/blog/2015/5/24/unit-test-how-faking-changing-registers
Тяжело объяснить как начать. Можешь с теории на ютубчике или взять любую книгу где есть google test/unity, ищи в гугле, а потом на libgen.is, а можешь просто с официальной документации пробовать, гуглить, посмотреть на ютубе.
Я старый пердун, и читаю только книги или документацию, хотя на ютубе много хорошего материала. Есть тот мединцев, narodstream, не говоря о материалах на английском
Спасибо за подробный ответ, анончик. Думаю, за выходные вкачусь в гит и наконец наведу порядок в своём заброшенном профиле.
Мединцев неплохо по верхам проходится, но для углубленного изучения его недостаточно. У narodstream я только отдельные уроки по стм32 смотрел, надо бы завести нормальную отладочную плату, потому что всё что у меня было до этого — на отечественных контроллерах, из-за того что на них начинал что-то делать сейчас есть непонятные моменты в нормальных стм.
Я их просто упомянул потому, что я не знаю ваш уровень английского, а там большинство материала.
Например урок наиболее приближенный к реальности от DigiKey:
https://www.youtube.com/watch?v=lZWFmEhIhpY
Ну если более-менее понимаю в теме, то спокойно смотрю или читаю что-то на английском. Если тема новая, то уже тяжелее но осилить можно, просто больше времени займёт.
Но поверь, рано или позно всегда настаёт тот момент, когда релиз близко и ВСЕМ похуй на тесты, начинают просто хуярить комиты, потому что сроки горят, главная ветка падает на бок, оттуда берут пару комитов, которые работают и релизят.
Проверено сотни раз.
Реально интересно в LaserWar с Воронежа, у них связка лазертаг ESP32 повязка + stm32F103 оружие.
Крайне много работы с дисплеями, PID, ADC, управлением, лифты и так далее, датчики, да даже не знаю, почти всё делают.
Единственный конкурент это MicroChip. Я живу за бугром уже давно, но в своё время почти все хотели STM32F103 или F4.
Много проектов с радио, SDR.
В этом году ЭБУ на infineon aurix TC397, в прошлом году порт GNSS для STM32F767 с дисплеем на LVGL.
Воистину харкая оплот талантливых людей, в очередной раз в этом убеждаюсь
Наверное человек 200 реальных двачеров увезли после начала СВО интела новгород в гермашку, московский интел в орегон США, много кого увезли.
Посоветуй хороших.
Только голый есть. И если обязывать его. То ничего кроме паяльника и мультиметра в голову не приходит .
А он такой же продвинутый, как эклипс? Как там с навигацией, анализом и рефакторингом? А на макоси уже работает? А под винду он все так же а-ля вс60 выглядит?
Я никаким анализом и рефакторингом не пользуюсь. Состояние регистров, флагов и переменных показывает, мне хватает.
Я пробовал кучу всего :
1. Создать проект в stm32cube - експорт в Segger Embedded Studio.
Очень нравится, это тупо бесплатный KEIL.
2. То же самое, но Keil.
3. То же самое, но Eclipse.
4. В Visual Studio Code есть плагин, уже выкатили.
5. PlatformIO.
6. VisualGDB для Visual Studio.
На работе давно вкатились в Keil. Много народу сидит в Segger.
>Создать проект в stm32cube
В этом и есть проблема. STM32CubeIDE - это тупо эклипс с кривыми плагинами от стм. Редактор кода там и так нормальный, нужен фреймворк, который позволил бы те же настройки легко прописывать в коде в пару строчек (а-ля ардуино, ага, а не структуры эти ебаные заполнять). И без тонны сгенерированного говна в исходных файлах (я умею, конечно, изолировать все это говно, но нахуй оно вообще нужно мне в проекте?)
>>527218
С++
В пару строчек это ARM Mbed, есть уже порты на Rust и нормально работают.
C++ есть тоже, но на нём пишут TouchGfx от STM,
>И без тонны сгенерированного говна в исходных файлах (я умею, конечно, изолировать все это говно, но нахуй оно вообще нужно мне в проекте?)
К сожалению у других всё еще хуже и менее абстрактно и менее переносимо. От microchip или nordic у меня разрыв жопы.
ESP32 наверное лучшее, что есть для разрабов, но бля на этой хуйне писать промышленные вещи никак.
>Segger Embedded Studio
Спасибо, посмотрю, не пробовал.
Радует, что есть билд под М1.
>Keil
блокнот
>Eclipse
есть уже и так эклипс
>Visual Studio Code
>PlatformIO
боже упаси! тупо куча говна
>VisualGDB для Visual Studio
интеллисенс говно
Я просто предложил и то что видел.
Знаю людей, которые прям обмазываются VisualGDB.
Кстати, видел одного человека с CLion.
https://www.jetbrains.com/help/clion/embedded-development.html#build
>CLion
Не советовал бы такое как по твоей ссылке. Есть же https://github.com/ObKo/stm32-cmake Больше ничего не требуется, в иде только аргументы для cmake прописать останется. И все, будет собираться одинаково везде где есть поддержка cmake, например qt creator. А для отладки у segger есть ozone, оно более заточено под микроконтроллеры.
Собственно в clion нажатием на кнопочку "build" можно собрать любой симейковский проект с произвольными языками и компиляторами, единственное что если там не gcc или clang и язык не си или цпп, то оно в блокнотик без подсветки синтаксиса превратиться.
А анализ и рефакторинг там с этой хуйней работает? К тому же есть эклипс, не понимаю, чем он сильно хуже платного силиона для микрококонтроллеров, где кода едва ли так же много, как в десктопных хромиумах всяких.
При чем тут подорвался?
Просто указали что есть, дальше только работу делать. Оно кривое, но слезать некуда
>с этой хуйней
А с какой? CLion работает на симейковских скриптах, оно там для сборки используется, причем без вариантов. Там вообще, просто открываешь каталог с исходниками, где лежит CMakeLists.txt и все работает, остаётся только аргументы задать.
И вот это >>527247 всего навсего копирует свои симейковские скрипты, ну и ещё что-то по шаблону подставляет. Я же предлагаю сделать это самому руками, вот и вся разница. Зато оно универсальные будет, можно и без IDE или с другой IDE создавать проект тогда. Опять же разеые цели сборки понятнее будет как прописывать.
И самое главное, а что если возьмёшь что-то отличное от стм32, все, приплыли что ли?
>А что мешает собственно?
DMA кривое сука и еще куча всего, плюс ни AUTOSAR ни ISO 26262 не проходит.
На базе Xtensa много вендоров, конкретно Espressif тупо понос недопиленный.
> DMA кривое сука и еще куча всего,
Ну там да, приколов хватает, их надо учитывать
> плюс ни AUTOSAR ни ISO 26262 не проходит.
Это ж все только для транспорта, а для других промышленных хуевин попроще и постационарнее чем оно не подходит?
Я ищу надстройку, которая бы еще и в иде нормально интегрировалась.
>Прям как ты хочешь будет.
У мбед какая-то ебаная хипстерячка в терминальной стадии. Блять, ембеддед фреймворк с какими-то упоротыми ОНЛАЙН КЛАУД ВЕБ блять тулзами для разработки, серьезно что ли, ебать? Да пошли они нахуй сразу. Как на эту поебень вообще можно опираться при разработке чего-то сложнее мигалки светодиодом? Стм32дуино ничего (ну кроме того, что это пердуино), я как-то давно пользовался по мелочи, но там глючный компилятор, высирающий хуйню, если ему оптимизацию нахуй не отключить. Может быть, с тех пор что-то изменилось.
>там глючный компилятор
Там же обычный gcc.
>высирающий хуйню, если ему оптимизацию нахуй не отключить.
Это как? Ты нашел в gcc ошибки?
>Там же обычный gcc.
Хуй его знает, я не ковырял, что там конкретно за гцц и откуда он берется.
>Ты нашел в gcc ошибки
А ты никогда не встречался с багами в компиляторах? Ты намекаешь, что это кое-кто наплодил уб кривыми ручонками? А вот и хуй ты угадал. Эти три строчки в 64k F103 не помещаются:
struct s { s() {} };
void setup() {static s v;}
void loop() {}
Если статическую переменную вынести из функции, или убрать конструктор, прошивка будет занимать 22% флеша (чего и следовало ожидать, это минимум).
Это я еще про рантаймовые глюки молчу, их я даже не пытался воспроизвести, они обходились отключением оптимизации ("вроде обходились", конечно же).
Это называется хуево прописанные мейкфайлы. Да, это известная хуйня что в проект могут тащиться неиспользуемые вообще ни при каких условиях файлы и прочие приколы
Возможно это не в них дело, но это точно проблема настроек компилятора. Если в папку с проектом кинуть пару .c и .h файлов, которые заведомо содержат ошибки, но при этом никуда их не включить, то при попытке сборки комплилятор выдаст ошибку. Скорее всего тут проблема такого же толка
Где ты видишь ошибку в приведенном мною коде?
Там нет ошибок никаких вообще. Это валидный код абсолютно. Ни в варианте со статической переменной, ни в варианте с глобальной.
То, о чем ты говоришь, это не некорректная работа тулчейна. Ты в правилах мейкфайла паттерн на все файлы прописал, он тебе так и построил, как написано.
Чем отличается pull-up от pull-down?
Я же говорил про промышленное, или заводы, автоиндустрия и так далее это не промышленность?
>А для чего
Чтобы подтягивать же! Например:
У тебя полезный сигнал высокого уровня. На свободно висящий в воздухе вход, может наводится и он будет ложно срабатывать. Ты его подтягиваешь к земле и он срабатывает только при наличии на входе реальной единицы, а не наводки с микротоками.
AUTOSAR это именно про сами машины. Я имел в виду что почему не использовать ESP32 в чем-то другом? Сборочные линии, всякие IIoT, контроллеры температуры, станки и т.д.?
Как вы пишете на крестах под контроллеры?
Как, например, выглядит инициализация какой-нибудь периферии на С++, вы создаёте класс spi, например, и пишете для него методы инициализации?
Какими средствами языка чаще всего пользуетесь?
Буду благодарен, если покажете на примерах.
Я тебя прошу, купи себе F411RE Nucleo или F303RE, скачай Arm Mbed, это тебе реальный пример использования. Можешь еще щупать Arduino - это C++. Читай книги Springer-Packt-O'reily media с libgen, ёбана, в основном C++ для embedded это C++ без Heap(кучи), потому темплейты и const, constexpr и фактически весь C++17 про это.
>>528387
Еще раз, ISO 26262 не единственный ISO, говно от Espressif никто не стандартизирует. Сама Tensillica(xtensa) как платформа имеет нормальные МК. Проехали.
>Решил недавно вкатиться в кресты
>стремно ошибиться в серьезном проекте
А уроки ты уже сделал?
А что не так то? Я ардуин почти не касался, но в них очень многое на цпп завязано. Хотя бы класс String, на сишечке без ++ такое никак. Между прочим по этой причине ардуин на 8051 не будет, максимум можно только что-то отдаленно похожее сделать.
И что? Можешь объяснить, как средствами си, а не С++, можно сделать такую штуку как класс String, чтобы перегрузка операторов была и т.д., как в ардуине?
Он меня реально затролел
Бля, только что хотел написать об этом. 12 версия IDE пока еще работает без логина.
Ну что, переходим тогда на стм32дуино...
>Ну что, переходим тогда на стм32дуино...
Зачем? Можно же взять все отсюда https://github.com/STMicroelectronics/STM32Cube_MCU_Overall_Offer
а код писать почти в любой ide которая нравится, хоть в эклипсе, хоть в qt creator.
Ну можно, конечно, но это ж надо мейкфайлы писать, настраивать среду, и т.п. Для ардуино уже есть куча библиотек, которые будет легко адаптировать к стм32. А под это (так же как и под куб иде) нужно все своими ручонками писать, тестировать и отлаживать, на это не всегда есть время. Про графический маняконфигуратор, высирающий тонну говнокода, я и вовсе молчу. Уж лучше пердуина.
>надо мейкфайлы писать
Уже написаны. https://github.com/ObKo/stm32-cmake
>настраивать среду
Qt creator настраивать не требуется можно сказать, там только путь к gcc нужно задать, а то он из cmake сам почему-то не может взять. С другими IDE аналогично.
тонну говнокода
Кто бы говорил в контексте ардуйни.
Если в том же эклипсе работаешь, то с мейком работать не надо, изредка подправить только иногда что-то.
Уж лучше сразу настроить под себя опенсурсные среды разработки и в хуй не дуть, когда разрабы типа куба захотят анально отгородиться.
Недавно как раз листал Кармин Новиелло - Освоение STM32 2018 года издания, и он там достаточно подробно показывал как все настроить в эклипсе. А в последнем издании от 21-22 года он переписал все главы с эклипсом и укатился в куб иде.
>ардуйни
А чем она тебе не угодила, объективно? Инфантильные "аргументы" в духе РРЯЯ ШКОЛЬНЕКИ не принимаются. Код там обычно высокоабстрактный (digitalWrite, Wire, SPI и т.д.), можно легко адаптировать под любую плату. Или ты предпочитаешь на каждый пук типа экранов лисапеды писать или такой же примерно говнокод на гитхабах выискивать? По сравнению с байтоебием, васянскими программаторами из говна и палок, и тем поносом, который куб генерирует, это охуенный шаг вперед к чему-то более-менее человеческому. Хотя я про любительские поделки говорю, если тебе для работы, то мимо, конечно. Блокнотик говно, это ясно, но для такой мелочи сойдет.
>>533755
Да, я уже примерно в конце 2018 настраивал себе эклипс под стм32, но потом на куб переметнулся (был долгий перерыв). А теперь хочу обратно в чистый эклипс, ибо куб мне и раньше не нравился, а теперь и вовсе анально огороженный.
>пока еще работает без логина
Кстати, ST-шные еврогеи, удалили мою учетку, которая просуществовала с 2013 года. Пришлось регать через впн новую.
Стшники тебе скорее лазейку с впн оставили (сам инсталлятор по ссылке можно и вовсе без впн качать). А ты не ценишь.
> Да, я уже примерно в конце 2018 настраивал себе эклипс под стм32, но потом на куб переметнулся
Закатывайся обратно, не пожалеешь. Уже запилили отдельный клиент для эмбедеда. Ещё и официальные гайды и тулзы типа икспака подвезли.
>легко адаптировать под любую плату.
Что приводит к портянке из дефайнов, если сохранять совместимость с предыдущими платами. И затруднит портирование на платы для которых ардуйню не сделали.
>типа экранов лисапеды писать
Офигеть какие огромнейшие лисапеды... В десяток строк примерно.
Ладно, все с тобой ясно.
>если тебе для работы
Однако да, я в основном по плисам и мне в основном для работы.
>А теперь хочу обратно в чистый эклипс
Бери лучше qt creator, тем более в нем ничего настраивать не нужно.
>приводит к портянке из дефайнов
Да, "тру" байтоебы обычно так и делают. Но в пердуине эти портянки из дефайнов в board definition располагаются, а не в каждой либе отдельно.
>лисапеды... В десяток строк примерно
Ты этот десяток строк будешь матерясь полдня из даташита выковыривать. Ардуинщики по крайней мере уже сделали это за тебя, можно у них подсмотреть.
>не в каждой либе отдельно.
Да неужели? Как сделаешь - так и будет. Ну и в ардуйне у тебя начнется всякое, когда потребуется сделать что-то не самое тривиальное с всего лишь таймерами, хотя бы частоту ШИМ поменять.
Твои рассказы смешно выглядят на фоне того как обстоят дела с FPGA. Нет, там тоже ничего сложного, но несколько иначе.
Хочу сделать плату-замену ардуино уно/мега, чтобы она была совместима с шилдами для этих ардуин (коих у меня дохуя, не хочу терять, да и формат радиоконструктора прикольный).
Думаю поставить преобразователи уровня TXS0108E для совместимости по 5В (а для АЦП будут опциональные делители напряжения).
Какие подводные?
>Хочу сделать плату-замену ардуино
Есть же всякие Nucleo/Discovery с выводами под Ардуино-шилды? Зойчем изобретаешь велосипед?
Нет, не хватит. Да и габариты у нуклео другие.
А какие фреймворки и либы там доступны? Все те же HAL и CMSIS, или уже запилили что-то получше? (Ну онлайн-парашу мбед не учитываем)
>>533849
>Как сделаешь - так и будет
Так-то оно так, только вот это же делать надо. А ни времени, ни желания все переписывать у меня нет. Так что альтернатив по сути две. Про таймера и т.д. ты прав, но это проистекает не из ошибочности самого подхода, а из привычки байтоебов пердолить регистры, а на абстракции хуй ложить, просто ниасилили обернуть (вероятно, есть сторонние библиотеки для этого). Я-то думал, что ардуино это кривой пиздец который как будто школота писала - а оказалось, что это кривой пиздец который как будто школота писала и большой шаг вперед к человеческой разработке одновременно!
> А какие фреймворки и либы там доступны? Все те же HAL и CMSIS, или уже запилили что-то получше? (Ну онлайн-парашу мбед не учитываем)
Вроде тоже самое что и было, только теперь из коробки. Из доп плагинов мне очень понравился FreeRTOS Task Aware Debugger, можно в реал тайме посмотреть на загруженность памяти.
Выяснил, что при питании от аккумулятора с напряжением 3,3 вольт проблем нет, а при питании с аккумулятором с напряжением >3.35 вольт начинаются шумы. Что-то с встроенным регулятором напряжения, да?
Повторный запуск генератора кода создаёт файл main.c при существующем main.cpp. Так и не нашёл, как это исправить.
Там есть pre build hook? впиши туда удаление main.cpp
Отсутствие блоата, производительность выше в десятки раз (именно в десятки, да).
Bloatware
Хаха, НИКАК
Тебе нужно сгенерированную си-парашу держать в загоне отдельно от основного С++ кода. Вызываешь в маин.с какую-нибудь функцию типа appmain(), которая объявлена в С++ части твоего кода в отдельной папочке. Ну и остальные точки входа выделяешь таким же образом.
И зачем такое может пригодиться?
Оно ни туда, ни сюда. Может там там и относительно много памяти, да только для линукса 8мб как-то слишком слабовато. Для openwrt пишут 32мб минимум нужно.
Какой-нибудь старый Allwinner V3s и то интереснее выглядит.
Они даже на сайте это сравнивают с ESP32, зачем это в этом треде? Ну и да, всё как обычно упрется в отсутствие нормального SDK, хотя по спекам и цене вещь очень сочная
Благодарствую
Протокол заводского бутлоадера на сайте ST, вестимо (AN3155), а исходники только у ST.
Ебусь с протоколом ведомого устройства - у прерываний не хватает быстродействия, кольцевой DMA сбивается, если от ведущего пришло неправильное количество байт.
>у прерываний не хватает быстродействия
попробуй не использовать функции, а писать напрямую в регистры. Возможно я тебя не правильно понял, но если не хватает быстродействия, то увеличивай тактовую частоту и откажись от оберток - пиши сразу в регистры, без функций. На выполнение каждой функции уходит какое то процессорное время.
Конечно пробовал.
>. Прошивка есть, можно ли этот китайский клон STMки шить st-link'ом?
Да
>И ещё вопрос как он прошивался с sd-карты? Просто перезаписывал себе флешку, с помощью проги в оперативке, или у RCT6 есть какой-нибудь хитрый бут мод?
Нет, с sd карты прошивается через ПРОГРАММНЫЙ бутлоадер. Его тоже надо поставить будет
Точно, бутлоадер. А как он слетел тогда, прошивка ведь не должна его перезаписывать? А он точно слетел, потому что плата никак не реагирует на вставленную карту с прошивкой, только стартовый экран показывает. Ну и хрен с ним, я его нашёл.
Осталось найти st-link, который с CubeProgrammer'ом работает. Это вообще нормальная ситуация, что один китайский линк не работает в программере, но через него работает отладка, а другой работет в программере, но в ide не работает отладки?
Где теперь брать эти ваши туллчейны и прочую хуету которой в дстрибутиве нету?
> символы в бинарнике есть для плавающей точки
В смысле инструкции для работы с флоатом? Так их не должно быть, ты же софт-флоат хочешь.
Stm32cube же
>В смысле инструкции для работы с флоатом?
Не инструкции, а функции вот эти __aeabi_fsub __aeabi_fadd и их друзья из библиотеки софт-флоата gcc. Я слошил, mcpu=cortex-m3 линкеру не передал, и он линковал какую-то левую версию lgcc для другой архитектуры, которая и висла на этих функциях. Поправил, и заработало все.
Старую версию использовать. А перед этим ее нужно найти. А чтобы ее найти, нужно попробовать несколько. А чтобы попробовать несколько, нужно их скачать... Поздравляю, анончик!
>Как я нахуй залогинюсь, если мне китайцы ебаные пароль не дают?
Через любой VPN можно зарегистрироваться.
>Короче, стм32пердуино - единственный более-менее надежный вариант теперь.
В любом линукс дистре есть абсолютно свободные arm-none-eabi и libopencm3.
сап, решил вкатиться в эти ваши stm без опыта микроконтроллеров, адруинов и всего такого (но есть поверхностные знания в cs в общем, в том числе сишку трогал, но больше по высокоуровневым яп). Надеюсь, что аноны примут и помогут разобраться. Заказал stm32f401 и ст-линк, пока едет решил поизучать что тут к чему, чтоб быть чуть подготовленным когда оно приедет из стран восходящего солнца.
Итак, есть вопросы:
1) я могу подключаться сразу к usb или надо шаманить с ст-линком? То есть: когда мне надо подключаться через ст-линк, а когда можно через юсб?
2) что такое бутлоадер? (сильно подозреваю, что связано с первым вопросом, поэтом поставил вместе)
3) что такое HAL, LL? Кто это написал, кто поддерживает? Чем помогают, в чем разница? Дополняют или взаимозаменяют друг друга? Можно без этого? Если можно, то как? Асм?
"4) Я так понимаю, можно писать в кубе, что ближе к контроллеру, а можно через arduinoide со всеми их стандартными api, верно? Типа есть какой-то адаптер с arduino api к... К чему? К халу? Или может сразу на асм? Кто пишет и поддерживает этот адаптер "arduino-stm api"?
5) какой нативный интерфейс у stm? ну то есть: я понимаю, что там arm-ядро, значит самый нативный - это асм . Но вряд ли же все шэкерятся в асм. Да, есть с-компилятор, который переводит в асм, но это обычный компилятор или какой-то допиленный? Есть какие-то функции дергать ногами, управлять какими-то еще контроллерами входящими в состав mcu?
6) Как я понял, при старте просто ебошим main, который по стандарту имеет настройку и бесконечный луп. А если исключение? а есть тут вообще исключения? а что будет, если каким-то хером выйдем из лупа и мейна: контроллер выключится или что?
7) Процессор все время шкерится на заданной частоте? нет такого, что на делэях он скидывает сам или какое-то управление есть?
8) Потоки. Как я понимаю - такого нет, верно? А как тогда живет в этой системе двухядерные esp? как их вторым ядром управлять?
9) RTOS. Что такое, для чего, как начать пользоваться?
Фух, вопросы постарался сгруппировать от низкого уровня к верхнему, с возможной близкой связью друг к другу
Если вопросы звучат аутически, то повторюсь: есть опыт в высокоуровневых яп, захотелось потрогать мк и весь опыт: неделя безсистемного чтения случайных статей, тыкания в рекомендации ютуба
Понимаю, что не моя личная армия, а объем вопросов большой, но верю в силу коллективного анона! Заранее спасибо
сап, решил вкатиться в эти ваши stm без опыта микроконтроллеров, адруинов и всего такого (но есть поверхностные знания в cs в общем, в том числе сишку трогал, но больше по высокоуровневым яп). Надеюсь, что аноны примут и помогут разобраться. Заказал stm32f401 и ст-линк, пока едет решил поизучать что тут к чему, чтоб быть чуть подготовленным когда оно приедет из стран восходящего солнца.
Итак, есть вопросы:
1) я могу подключаться сразу к usb или надо шаманить с ст-линком? То есть: когда мне надо подключаться через ст-линк, а когда можно через юсб?
2) что такое бутлоадер? (сильно подозреваю, что связано с первым вопросом, поэтом поставил вместе)
3) что такое HAL, LL? Кто это написал, кто поддерживает? Чем помогают, в чем разница? Дополняют или взаимозаменяют друг друга? Можно без этого? Если можно, то как? Асм?
"4) Я так понимаю, можно писать в кубе, что ближе к контроллеру, а можно через arduinoide со всеми их стандартными api, верно? Типа есть какой-то адаптер с arduino api к... К чему? К халу? Или может сразу на асм? Кто пишет и поддерживает этот адаптер "arduino-stm api"?
5) какой нативный интерфейс у stm? ну то есть: я понимаю, что там arm-ядро, значит самый нативный - это асм . Но вряд ли же все шэкерятся в асм. Да, есть с-компилятор, который переводит в асм, но это обычный компилятор или какой-то допиленный? Есть какие-то функции дергать ногами, управлять какими-то еще контроллерами входящими в состав mcu?
6) Как я понял, при старте просто ебошим main, который по стандарту имеет настройку и бесконечный луп. А если исключение? а есть тут вообще исключения? а что будет, если каким-то хером выйдем из лупа и мейна: контроллер выключится или что?
7) Процессор все время шкерится на заданной частоте? нет такого, что на делэях он скидывает сам или какое-то управление есть?
8) Потоки. Как я понимаю - такого нет, верно? А как тогда живет в этой системе двухядерные esp? как их вторым ядром управлять?
9) RTOS. Что такое, для чего, как начать пользоваться?
Фух, вопросы постарался сгруппировать от низкого уровня к верхнему, с возможной близкой связью друг к другу
Если вопросы звучат аутически, то повторюсь: есть опыт в высокоуровневых яп, захотелось потрогать мк и весь опыт: неделя безсистемного чтения случайных статей, тыкания в рекомендации ютуба
Понимаю, что не моя личная армия, а объем вопросов большой, но верю в силу коллективного анона! Заранее спасибо
А не много ли ебли с ними для хобби-проектов?
А в продакшене поди все куб юзают.
Ну и, насколько я понял, это базовая обвязка на С, а хотелось бы чего-то более высокоуровневого. Тут у пердуины есть большой плюс - зачастую код без изменений компилируется под разные платформы, даже с avr на esp32/stm32.
Какие варианты либ лучше? picolibc норм?
не сильно разбираюсь, но есть еще экстеншн для vscode под stm. Даже целых два, они как? Можно в них найдется достойная замена?
>когда мне надо подключаться через ст-линк, а когда можно через юсб?
через стлинк - когда хочешь использовать внутрисхемную отладку (пошаговое исполнение на контроллере, брейкпоинты там же, логирование в дебажную консоль етц) или шить в обход бутлоадера.
>что такое бутлоадер
кусочек прошивки, который может так или иначе добывать основнуб прошивку откуда-нибудь снаружи.
>что такое HAL, LL? Кто это написал, кто поддерживает? Чем помогают, в чем разница? Дополняют или взаимозаменяют друг друга? Можно без этого? Если можно, то как? Асм?
библиотеки/фреймворки для управления периферией и ядром контроллера. Разработаны и поддерживаются ST. HAL заметно более ебанутый, LL легче и имхо удобнее. Совмещать в принципе можно, но в целом они друг друга заменяют. Без них можно байтоебить вручную. Асм не обязательно, можешь на C/крестах.
>Типа есть какой-то адаптер с arduino api к... К чему? К халу? Или может сразу на асм?
я не лез в кишки, но вроде там ручное байтоебствовнутри.
>Кто пишет и поддерживает этот адаптер "arduino-stm api"?
опенсорц сообщество(с).
>какой нативный интерфейс у stm?
бинарный, лул. Что ты называешь "интерфейс"?
>есть с-компилятор, который переводит в асм, но это обычный компилятор или какой-то допиленный?
что значит "обычный"? Есть пригоршня компиляторов, которые умеют собирать бинарники в том числе под ту архитектуру, которая внутри твоей стм-ки. Вполне себе обычные gcc/clang, например.
>Есть какие-то функции дергать ногами, управлять какими-то еще контроллерами входящими в состав mcu?
их как раз предоставляют HAL/LL/arduino/platformio/mbed/етц.
>А если исключение? а есть тут вообще исключения?
вылезет прерывание (которое сможешь обработать) или все повиснет нахой.
> что будет, если каким-то хером выйдем из лупа и мейна
что значит "выйдем"?
>нет такого, что на делэях он скидывает сам
нет
>или какое-то управление есть?
это
>Потоки. Как я понимаю - такого нет, верно?
аппаратно у твоей стм-ки нет. Треды, между которыми переключается ядро и исполняет их по очереди, дают RTOS-ы.
>когда мне надо подключаться через ст-линк, а когда можно через юсб?
через стлинк - когда хочешь использовать внутрисхемную отладку (пошаговое исполнение на контроллере, брейкпоинты там же, логирование в дебажную консоль етц) или шить в обход бутлоадера.
>что такое бутлоадер
кусочек прошивки, который может так или иначе добывать основнуб прошивку откуда-нибудь снаружи.
>что такое HAL, LL? Кто это написал, кто поддерживает? Чем помогают, в чем разница? Дополняют или взаимозаменяют друг друга? Можно без этого? Если можно, то как? Асм?
библиотеки/фреймворки для управления периферией и ядром контроллера. Разработаны и поддерживаются ST. HAL заметно более ебанутый, LL легче и имхо удобнее. Совмещать в принципе можно, но в целом они друг друга заменяют. Без них можно байтоебить вручную. Асм не обязательно, можешь на C/крестах.
>Типа есть какой-то адаптер с arduino api к... К чему? К халу? Или может сразу на асм?
я не лез в кишки, но вроде там ручное байтоебствовнутри.
>Кто пишет и поддерживает этот адаптер "arduino-stm api"?
опенсорц сообщество(с).
>какой нативный интерфейс у stm?
бинарный, лул. Что ты называешь "интерфейс"?
>есть с-компилятор, который переводит в асм, но это обычный компилятор или какой-то допиленный?
что значит "обычный"? Есть пригоршня компиляторов, которые умеют собирать бинарники в том числе под ту архитектуру, которая внутри твоей стм-ки. Вполне себе обычные gcc/clang, например.
>Есть какие-то функции дергать ногами, управлять какими-то еще контроллерами входящими в состав mcu?
их как раз предоставляют HAL/LL/arduino/platformio/mbed/етц.
>А если исключение? а есть тут вообще исключения?
вылезет прерывание (которое сможешь обработать) или все повиснет нахой.
> что будет, если каким-то хером выйдем из лупа и мейна
что значит "выйдем"?
>нет такого, что на делэях он скидывает сам
нет
>или какое-то управление есть?
это
>Потоки. Как я понимаю - такого нет, верно?
аппаратно у твоей стм-ки нет. Треды, между которыми переключается ядро и исполняет их по очереди, дают RTOS-ы.
это просто плагины к IDE для более разработистой разработки. Каких-то своих либ там нет.
И что? А мейкфайлы кто будет делать, тоже эти экстеншены? А управлять зависимостями (либами) как? А либ-то и нет!
>кусочек прошивки, который может так или иначе добывать основнуб прошивку откуда-нибудь снаружи
Где их брать, их много, чем различаются, как записывать, кто их создает и поддерживает? Могу потом в кубеиде подключать через усб без стлинка и заливать проекты?
>>543536
>Без них можно байтоебить вручную. Асм не обязательно, можешь на C/крестах.
Вот, а как выглядит это байтоебство? то есть я хочу подать напряжение на ножку, что мне делать на уровне байтоебства? Функции вызывать? так это, как я уже понял, всякие халы, лл. Или все решается регистрами? Я просто никогда не писал в регистры на крестах, вроде из типовой ОС такое вообще нельзя. Если писать в регистры, то где их брать? Можно где-нибудь примерчик кода с пояснениями, чтоб я глазами увидел?
И вдогонку: какой минимальный сет мне нужен, чтоб помигать светодиодом? Не хочу халы, лл, все по минимуму. Что мне нужно? Голый gcc/clang пойдет? как мне в голом, без всяких библиотек дергать ногой? а как делать дэлей? что будет результатом компиляции? файл? как потом его задеплоить на мк? Именно минимальный набор, чтоб понять как это работает, чтоб понять чем оперируют всякие либы и платформы
Просто мне это непривычно, под ос все функции грубо говоря тебе предоставляет ос, ты можешь работать только с ним, ниже не опустишься, а тут такого нет, у меня непонятки с этим
>>543536
>их как раз предоставляют HAL/LL/arduino/platformio/mbed/етц
правильно ли я понимаю, что если мы говорим про arduino/platformio/mbed/етц, то у них общий API для разных мк, приведденный под общий знаменатель. А значит, что некоторые узкие возможности конкретной мк они использовать уже не могут?
>>543536
>что значит "выйдем"?
вызовем break в цикле. Или просто, что будем если напишем так void main(){}; Что будет с мк?
>>543536
>RTOS
Можно подробнее? Это типа ос для мк? их много бывает? кто созадет, кто поддерживает? она предоставляет апи для работы с потоками? есть особенности написания под ртос? как она ставится на мк? надо теперь компилить под ртос или как? не панимаю!
>кусочек прошивки, который может так или иначе добывать основнуб прошивку откуда-нибудь снаружи
Где их брать, их много, чем различаются, как записывать, кто их создает и поддерживает? Могу потом в кубеиде подключать через усб без стлинка и заливать проекты?
>>543536
>Без них можно байтоебить вручную. Асм не обязательно, можешь на C/крестах.
Вот, а как выглядит это байтоебство? то есть я хочу подать напряжение на ножку, что мне делать на уровне байтоебства? Функции вызывать? так это, как я уже понял, всякие халы, лл. Или все решается регистрами? Я просто никогда не писал в регистры на крестах, вроде из типовой ОС такое вообще нельзя. Если писать в регистры, то где их брать? Можно где-нибудь примерчик кода с пояснениями, чтоб я глазами увидел?
И вдогонку: какой минимальный сет мне нужен, чтоб помигать светодиодом? Не хочу халы, лл, все по минимуму. Что мне нужно? Голый gcc/clang пойдет? как мне в голом, без всяких библиотек дергать ногой? а как делать дэлей? что будет результатом компиляции? файл? как потом его задеплоить на мк? Именно минимальный набор, чтоб понять как это работает, чтоб понять чем оперируют всякие либы и платформы
Просто мне это непривычно, под ос все функции грубо говоря тебе предоставляет ос, ты можешь работать только с ним, ниже не опустишься, а тут такого нет, у меня непонятки с этим
>>543536
>их как раз предоставляют HAL/LL/arduino/platformio/mbed/етц
правильно ли я понимаю, что если мы говорим про arduino/platformio/mbed/етц, то у них общий API для разных мк, приведденный под общий знаменатель. А значит, что некоторые узкие возможности конкретной мк они использовать уже не могут?
>>543536
>что значит "выйдем"?
вызовем break в цикле. Или просто, что будем если напишем так void main(){}; Что будет с мк?
>>543536
>RTOS
Можно подробнее? Это типа ос для мк? их много бывает? кто созадет, кто поддерживает? она предоставляет апи для работы с потоками? есть особенности написания под ртос? как она ставится на мк? надо теперь компилить под ртос или как? не панимаю!
>Где их брать, их много, чем различаются, как записывать, кто их создает и поддерживает? Могу потом в кубеиде подключать через усб без стлинка и заливать проекты?
ты даже не пробовал ну свовсем чуть-чуть погуглить, правда?
>а как выглядит это байтоебство?
берешь и пишешь значение в регистр. Какое, в какой регистр и куда именно в нем - написано в даташите и референс мануале, там под две тыщи страниц описания чево каво.
>Или все решается регистрами?
это.
>Если писать в регистры, то где их брать?
1) в даташите
2) из CMSIS - это простой набор хидеров типа https://github.com/xpacks/stm32f4-cmsis/blob/xpack/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xc.h
регистры периферии - это не регистры процессора, а некоторые адресуемые области памяти. У stm32 они прозрачно мапятся в общее адресное пространство, просто присваиваешь указателю адрес из даташита и ебошишь.
>как мне в голом, без всяких библиотек дергать ногой? а как делать дэлей? что будет результатом компиляции? файл? как потом его задеплоить на мк?
пчел, если настолько все плохо, то возьми чонить попроще для начала. Или хотя бы почитай про чонить попроще, принципы везде одинаковые. Вон, у дихалта набор нубских статей про avr вполне норм, http://easyelectronics.ru/category/avr-uchebnyj-kurs/page/5.
>А значит, что некоторые узкие возможности конкретной мк они использовать уже не могут?
это значит, что они могут не предоставлять собственных функций для работы с этими "узкими возможностями". Тебе ничо не мешает в ардуинском проекте байтоебить регистры кровавыми ручищами, если чего нужного нет.
>что будем если напишем так void main(){}; Что будет с мк?
вот бы я помнил, что там будет конкретно. Вроде вылетит в HardFault, но это не точно. Обозреваемый результат - он перестанет делать вообще что-либо, ибо делать ему нечего.
>их много бывает?
да.
>кто созадет, кто поддерживает?
ответ на каждый такой твой вопрос - их авторы блять. /то тебе не винда с линуксом, там все проще. Например, одна из довольно годных rtos-ей - БугуртОС от школьник-куна. Срсли, https://github.com/shkolnick-kun/bugurtos
>как она ставится на мк? надо теперь компилить под ртос или как? не панимаю!
используется как библиотека. Как конкретно - читай документацию на собственно конкретную ось.
>Где их брать, их много, чем различаются, как записывать, кто их создает и поддерживает? Могу потом в кубеиде подключать через усб без стлинка и заливать проекты?
ты даже не пробовал ну свовсем чуть-чуть погуглить, правда?
>а как выглядит это байтоебство?
берешь и пишешь значение в регистр. Какое, в какой регистр и куда именно в нем - написано в даташите и референс мануале, там под две тыщи страниц описания чево каво.
>Или все решается регистрами?
это.
>Если писать в регистры, то где их брать?
1) в даташите
2) из CMSIS - это простой набор хидеров типа https://github.com/xpacks/stm32f4-cmsis/blob/xpack/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xc.h
регистры периферии - это не регистры процессора, а некоторые адресуемые области памяти. У stm32 они прозрачно мапятся в общее адресное пространство, просто присваиваешь указателю адрес из даташита и ебошишь.
>как мне в голом, без всяких библиотек дергать ногой? а как делать дэлей? что будет результатом компиляции? файл? как потом его задеплоить на мк?
пчел, если настолько все плохо, то возьми чонить попроще для начала. Или хотя бы почитай про чонить попроще, принципы везде одинаковые. Вон, у дихалта набор нубских статей про avr вполне норм, http://easyelectronics.ru/category/avr-uchebnyj-kurs/page/5.
>А значит, что некоторые узкие возможности конкретной мк они использовать уже не могут?
это значит, что они могут не предоставлять собственных функций для работы с этими "узкими возможностями". Тебе ничо не мешает в ардуинском проекте байтоебить регистры кровавыми ручищами, если чего нужного нет.
>что будем если напишем так void main(){}; Что будет с мк?
вот бы я помнил, что там будет конкретно. Вроде вылетит в HardFault, но это не точно. Обозреваемый результат - он перестанет делать вообще что-либо, ибо делать ему нечего.
>их много бывает?
да.
>кто созадет, кто поддерживает?
ответ на каждый такой твой вопрос - их авторы блять. /то тебе не винда с линуксом, там все проще. Например, одна из довольно годных rtos-ей - БугуртОС от школьник-куна. Срсли, https://github.com/shkolnick-kun/bugurtos
>как она ставится на мк? надо теперь компилить под ртос или как? не панимаю!
используется как библиотека. Как конкретно - читай документацию на собственно конкретную ось.
карочи смотри сюда по части ботинка
раньше было как? у контроллера на кристале... нет даже не так раньше была отдельная "флешка" микросхема для памяти программ ультраффиолетового стирания - тое чтобы ее перезаписать надо было отклеить изаленту положить эту микрушку на ультрафилетовую лампу подержать ее там с минутку и можно заливать прошивку и для этого нужен был полноценный прогроматор тип такого https://www.phyton.ru/programmers/chipprog-40 и тупую школоту на пушечный выстрел не подпускали к контроллерам - ога ога дороговастое удовольствие помигать диодами не находиш?
потом атмега прилепила не ультрафиолетовую флеш - еепром - електрикал ерайзе прямиком на кристал но все равно еще был необходим большой програматор и подача на камень +12в при рабочем 5в - но народ уже начал высирать собственые поделки - прогроматоры которые работали с одним единственым камнем - например мой - выше сцылка - может.. да чего он сцука только не может - идет регулярное обновление списка поддерживаемых мелкосхем - а самопальные погроматоры работали с одним камнем ну может двумя тремя
а потом потом ...
ПОТОМ ЕБАНАЯ ШКОЛОТА ВЫСЕТАКИ БЛЯДЬ ЗАЛЕЗЛА
точнее ее допустили
карочи потом начали выпускать камни с маркировкой х2 тое на камне 2 флешки для памяти програм нахуя это надо? камень теперь сам себя может зашивать тое из под одной флешки доступна другая естественно чтобы она стала доступна необходима прошивка - так называемый загрузчик его заливают на большом прогроматоре или на какимонить стлинке не важно там последовательное пограмирование
карочи смысл вот в чем в этом загрузчике практически нету нихуя - там только интерфейс который сращивает контроллер с каким нибуть портом большой машины не важно усб это ком там или лпт и пиздец
и уже большая машина дергает пинами и заливает основную прошивку
вообще эту первую флешку можно использовать как душе угодно это такаяже полноценная память программ просто из под нее "видна" вторая флешка а вот из под второй первая не видна но основное ее использование это загрузчик
где брать и тд и тп ктото пишет сам ктото уже написал хз мне с завода приходили вместе с основными прошивками - никогда не заморачивался этим вопросом да и не пользуюсь - у меня есть полноценный погроматор
>Если писать в регистры, то где их брать?
карочи пиздуй в интернеты и гугли какой нибуть учебник для вузов по програмированию канкретной архитектуры у тебя стм32 еще есть хуева гора пик мсs51 я на ней сижу это древние 8 битные авр - это все тюньки атмеги фирменая атмеловская архитектура и прочее в них как раз и реализовали в полном объеме внутрисхемное програмирование - тое контроллер уже распаян и нет надобности его выпаивать и пихать в прогроматор а раньше он стоял на колодке - тое этот ботинок он в основном и предназначен чтобы не выдирать из платы микрушку да и уменьшение размеров корпусов все дела -плцц особо то и не попихаеш...
карочи регистры хуистры
это железо посему здесь програмирование несколько иного вида нежели под канкретную ось - посему и называют байтоебство
здесь ты работаеш напрямую с апартными блоками - на большой машине тожет так можно но мы сейчас не про большую машину
что такое апаратный блок? это конечное по функциональности устройство присутствующее на канкретном камне и делающее свою строго отведенную работу ну например таймер счетчик сматри пик - это процедура обработки его прекрывания
переменные TH0 TL0 TR0 TF0 P1_1 это и есть эти пресловутые регистры - проще говоря оперативная память контроллера организована несколько по другому нежели память большой машины у нее есть несколько участков так вот в одном из них как правило с самого начала доступном пользователю и расположены эти регистры по канкретным адресам всегда по одним и темже как правило пишут заголовочный файл - они есть в интернетах под канкретный камень канкретный заголовчник в нем буквеной абривеатуре соответствует канкретный адрес - фактиически ты работаеш с адресами в оперативе
вообще програмирование контроллера это отлавливание обработка а затем высирание строго определнных по времени импульсов так вот таймер счетчик и занимается именно этим - это отдельный блок который вот тупо считает может инкрементировать можнет декрементировать может считать внешние импульсы - у него для этого есть своя нога может считать тики кварца - машинные такты может небо может аллаха он считает и пиздец это его сцука работа а вот что и как он будет считать ты уже сам ему говариш - настраиваеш его через регистры которые в оперативе по канкретным адресам его можно в любой момент перенастроить остановить запустить карочи максимально унифицированая хуета -потом поймеш нахуя так сделано
та к вот например вот это TH0 TL0 это 2 8 битных регистра в которых отображаеца счет - результат работы таймера Н верхний L нижний как только они оба станут FF тое 255 происходит событие именуемое переполнение таймера счетчика - происходит прерывание и вызывавеца процедура обработки этого прерывания - пик где происходит... хм чегонибуть да происходит карочи то что нужно тебе то и происходит
но помимо этого тамже надо привести таймер в чувство закинуть ему новые данные или наоборот считать скинуть или установить флаги его работы - вот эти TR0 TF0 это биты которые находяца в регистре состояния таймера да да по вполне канкретному адресу в оперативе контроллера ну а поскольку надо чето сделать у меня как очевидно на одной ноге устанавливаеца еденица +5вольт - вот это P1_1=1 -это уже бит регистра порта - порт это 8 ног у некоторых контроллеров 4 порта у некоторых 2 у некоторых вообще один и тот обрезаный - таже тюнька13 у нее всего 8 ног у некоторых хуева гора портов
кстати у меня на 51 архитектуре есть доступ к каждому биту порта а на тойже авр необходимо перезаписывать весь регистр целиком - карочи везде свои особености
и вообще мой хороший не с того ты начал стм32 это не та архитектура с которого надо начинать
тебе бы в авр сначала научица ардуину поклацать
а да по части ардуины - беги от нее беги она сажрет тебя - да с одной стороны там все просто функции хуюнкции которые для тебя написали вроде как знающие люди НО они там не работают с железом на прямую что являеца пиздец какой ошибкой нубье там не видит этих регистров фактически все блядь через функции
да с одной стороны это удобно нуб не теряеца в обилии этого пиздеца НО контроллер чрезвычайно ограничен в ресурсах и все эти функции порой так отжирают память программ что ее и остаеца что только помигать светодиодами - тое серьезного девайса ты не сделаеш да и хз кто вообще писал эти функции...
карочи как выше писал пиздуй в интернеты ищи там учебник по канкретно своей стм32 читай его зубри основное как порты работают как таймеры как ацп цапы и прочие приемопередатчики и будект тебе счастье
по части ИДЕ - среда разработки есть кеил хз может он в стм32 или нет не знаю есть от производителя есть сторонние ИДЕ у каждой тот или другой функционал но везде примерно одно и тоже
карочи смотри сюда по части ботинка
раньше было как? у контроллера на кристале... нет даже не так раньше была отдельная "флешка" микросхема для памяти программ ультраффиолетового стирания - тое чтобы ее перезаписать надо было отклеить изаленту положить эту микрушку на ультрафилетовую лампу подержать ее там с минутку и можно заливать прошивку и для этого нужен был полноценный прогроматор тип такого https://www.phyton.ru/programmers/chipprog-40 и тупую школоту на пушечный выстрел не подпускали к контроллерам - ога ога дороговастое удовольствие помигать диодами не находиш?
потом атмега прилепила не ультрафиолетовую флеш - еепром - електрикал ерайзе прямиком на кристал но все равно еще был необходим большой програматор и подача на камень +12в при рабочем 5в - но народ уже начал высирать собственые поделки - прогроматоры которые работали с одним единственым камнем - например мой - выше сцылка - может.. да чего он сцука только не может - идет регулярное обновление списка поддерживаемых мелкосхем - а самопальные погроматоры работали с одним камнем ну может двумя тремя
а потом потом ...
ПОТОМ ЕБАНАЯ ШКОЛОТА ВЫСЕТАКИ БЛЯДЬ ЗАЛЕЗЛА
точнее ее допустили
карочи потом начали выпускать камни с маркировкой х2 тое на камне 2 флешки для памяти програм нахуя это надо? камень теперь сам себя может зашивать тое из под одной флешки доступна другая естественно чтобы она стала доступна необходима прошивка - так называемый загрузчик его заливают на большом прогроматоре или на какимонить стлинке не важно там последовательное пограмирование
карочи смысл вот в чем в этом загрузчике практически нету нихуя - там только интерфейс который сращивает контроллер с каким нибуть портом большой машины не важно усб это ком там или лпт и пиздец
и уже большая машина дергает пинами и заливает основную прошивку
вообще эту первую флешку можно использовать как душе угодно это такаяже полноценная память программ просто из под нее "видна" вторая флешка а вот из под второй первая не видна но основное ее использование это загрузчик
где брать и тд и тп ктото пишет сам ктото уже написал хз мне с завода приходили вместе с основными прошивками - никогда не заморачивался этим вопросом да и не пользуюсь - у меня есть полноценный погроматор
>Если писать в регистры, то где их брать?
карочи пиздуй в интернеты и гугли какой нибуть учебник для вузов по програмированию канкретной архитектуры у тебя стм32 еще есть хуева гора пик мсs51 я на ней сижу это древние 8 битные авр - это все тюньки атмеги фирменая атмеловская архитектура и прочее в них как раз и реализовали в полном объеме внутрисхемное програмирование - тое контроллер уже распаян и нет надобности его выпаивать и пихать в прогроматор а раньше он стоял на колодке - тое этот ботинок он в основном и предназначен чтобы не выдирать из платы микрушку да и уменьшение размеров корпусов все дела -плцц особо то и не попихаеш...
карочи регистры хуистры
это железо посему здесь програмирование несколько иного вида нежели под канкретную ось - посему и называют байтоебство
здесь ты работаеш напрямую с апартными блоками - на большой машине тожет так можно но мы сейчас не про большую машину
что такое апаратный блок? это конечное по функциональности устройство присутствующее на канкретном камне и делающее свою строго отведенную работу ну например таймер счетчик сматри пик - это процедура обработки его прекрывания
переменные TH0 TL0 TR0 TF0 P1_1 это и есть эти пресловутые регистры - проще говоря оперативная память контроллера организована несколько по другому нежели память большой машины у нее есть несколько участков так вот в одном из них как правило с самого начала доступном пользователю и расположены эти регистры по канкретным адресам всегда по одним и темже как правило пишут заголовочный файл - они есть в интернетах под канкретный камень канкретный заголовчник в нем буквеной абривеатуре соответствует канкретный адрес - фактиически ты работаеш с адресами в оперативе
вообще програмирование контроллера это отлавливание обработка а затем высирание строго определнных по времени импульсов так вот таймер счетчик и занимается именно этим - это отдельный блок который вот тупо считает может инкрементировать можнет декрементировать может считать внешние импульсы - у него для этого есть своя нога может считать тики кварца - машинные такты может небо может аллаха он считает и пиздец это его сцука работа а вот что и как он будет считать ты уже сам ему говариш - настраиваеш его через регистры которые в оперативе по канкретным адресам его можно в любой момент перенастроить остановить запустить карочи максимально унифицированая хуета -потом поймеш нахуя так сделано
та к вот например вот это TH0 TL0 это 2 8 битных регистра в которых отображаеца счет - результат работы таймера Н верхний L нижний как только они оба станут FF тое 255 происходит событие именуемое переполнение таймера счетчика - происходит прерывание и вызывавеца процедура обработки этого прерывания - пик где происходит... хм чегонибуть да происходит карочи то что нужно тебе то и происходит
но помимо этого тамже надо привести таймер в чувство закинуть ему новые данные или наоборот считать скинуть или установить флаги его работы - вот эти TR0 TF0 это биты которые находяца в регистре состояния таймера да да по вполне канкретному адресу в оперативе контроллера ну а поскольку надо чето сделать у меня как очевидно на одной ноге устанавливаеца еденица +5вольт - вот это P1_1=1 -это уже бит регистра порта - порт это 8 ног у некоторых контроллеров 4 порта у некоторых 2 у некоторых вообще один и тот обрезаный - таже тюнька13 у нее всего 8 ног у некоторых хуева гора портов
кстати у меня на 51 архитектуре есть доступ к каждому биту порта а на тойже авр необходимо перезаписывать весь регистр целиком - карочи везде свои особености
и вообще мой хороший не с того ты начал стм32 это не та архитектура с которого надо начинать
тебе бы в авр сначала научица ардуину поклацать
а да по части ардуины - беги от нее беги она сажрет тебя - да с одной стороны там все просто функции хуюнкции которые для тебя написали вроде как знающие люди НО они там не работают с железом на прямую что являеца пиздец какой ошибкой нубье там не видит этих регистров фактически все блядь через функции
да с одной стороны это удобно нуб не теряеца в обилии этого пиздеца НО контроллер чрезвычайно ограничен в ресурсах и все эти функции порой так отжирают память программ что ее и остаеца что только помигать светодиодами - тое серьезного девайса ты не сделаеш да и хз кто вообще писал эти функции...
карочи как выше писал пиздуй в интернеты ищи там учебник по канкретно своей стм32 читай его зубри основное как порты работают как таймеры как ацп цапы и прочие приемопередатчики и будект тебе счастье
по части ИДЕ - среда разработки есть кеил хз может он в стм32 или нет не знаю есть от производителя есть сторонние ИДЕ у каждой тот или другой функционал но везде примерно одно и тоже
дiд скiлькi тобi рокiв?
>школота
>школота
>школота
А ты не пробовал сначала по-русски грамотно писать научиться, другалек?
>НО они там не работают с железом на прямую что являеца пиздец какой ошибкой нубье там не видит этих регистров фактически все блядь через функции
>эти функции порой так отжирают память программ что ее и остаеца что только помигать светодиодами - тое серьезного девайса ты не сделаеш
>у меня на 51
Дедуль...
В ардуине мега 256кб флеша и 8кб рамки.
В BlackPill (F411CEU6) 512кб флеша и 128кб рамки.
Стока кода высирать можно жопу надорвать.
Я себе весь набор инсталляторов выкачал через бесплатный впн, под ВСЕ операционки (десятки гигабайт). И ничо.
Вообще, раньше там был лайфхак такой: начинаешь загрузку из-под впн, а потом впн можно отрубить и по той же ссылке заново загрузку начать, и тебя пустят. Но в последний раз оно обрывалось в 9 случаях из 10 на середине, так что приходилось полностью качать из-под впн.
632x352, 0:09
>А ты не пробовал
а ты не пробовал нахуй улетать?
>жопу надорвать.
судя по тому сколько я тебя раз уже послал у тебя она разработана так что не надорвешся
а говнокод высирать не такая уж и сверх задача
сначала они удивлялись почему игори лагают теперь удивляюца почему лагают стиралки микровалновыки и чайники
ЧАЙНИКИ КАРЛ ЧАЙНИКИ - они даже чайник лагать научили
>мега 256кб флеша и 8кб рамки.
твая пердуина сосала сосет и будент сосать а я могу подключить хоть хихабайт оперативы и хихабайт памяти программ к своей божественой mcs51
>И что? А мейкфайлы кто будет делать, тоже эти экстеншены? А управлять зависимостями (либами) как? А либ-то и нет!
Программист будет делать. Ты программист или макака, если не можешь сам мейкфайл написать или либу в 200 строк портировать?
тотому что ты рукажоп
Внутри обработка в реалтайме не влезет скорее всего, в этом и проблема. Отдельный АЦП с например usb, а где такой взять то? Плюс тут суть именно в том что у нас сразу несколько ацп с синфазным тактованием, а если отдельные использовать - надо ебаться ещё и с их тактованием будет
>с например usb
А в начале был SPI. Ты как-нибудь определись что именно тебе нужно. Ты на комп что ли все это в итоге хочешь передать?
>надо ебаться ещё и с их тактованием будет
Не вижу никаких проблем, бери с параллельным выходом и тактовые входы просто соедини вместе.
>выходит с одного 48 Мегабит/с.
А как же qspi? Там в 4 раза быстрее должно быть. Или это уже для qspi скорость?
QSPI во первых не везде есть, во вторых там всего 110 МГц максимальная частота для g474, маловато
>>545980
>Ты как-нибудь определись что именно тебе нужно.
Не принципиально, сойдет любой
>Ты на комп что ли все это в итоге хочешь передать?
Вообще в ПЛИС, но может и на комп. Я пока только оцениваю где обработка сигналов будет выгоднее делаться и куда она вообще влезет. Если конечно получится засунуть какой-нибудь Fast Orthogonal Search прямо в стмку, то может и не понадобится выдавать во вне все 240 мегабит, но че-то я не уверен что он там в реалтайме заработает
Столкнулся с тем, что в функции:
uint8_t FATFS_LinkDriverEx(const Diskio_drvTypeDef drv, char path, uint8_t lun)
{
uint8_t ret = 1;
uint8_t DiskNum = 0;
if(disk.nbr < _VOLUMES)
{
disk.is_initialized[disk.nbr] = 0;
disk.drv[disk.nbr] = drv;
disk.lun[disk.nbr] = lun;
DiskNum = disk.nbr++;
path[0] = DiskNum + '0';
path[1] = ':';
path[2] = '/';
path[3] = 0;
ret = 0;
}
return ret;
}
получаю disk.nbr = 1 < _VOLUMES
Если в конфигурации FatFs VOLUMES установить 2, то далее
f_mount(&SDFatFs, (TCHAR const*)SDPath, 1) возвращает FR_NOT_READY
main.c https://pastebin.com/ZYD2xBmw
Столкнулся с тем, что в функции:
uint8_t FATFS_LinkDriverEx(const Diskio_drvTypeDef drv, char path, uint8_t lun)
{
uint8_t ret = 1;
uint8_t DiskNum = 0;
if(disk.nbr < _VOLUMES)
{
disk.is_initialized[disk.nbr] = 0;
disk.drv[disk.nbr] = drv;
disk.lun[disk.nbr] = lun;
DiskNum = disk.nbr++;
path[0] = DiskNum + '0';
path[1] = ':';
path[2] = '/';
path[3] = 0;
ret = 0;
}
return ret;
}
получаю disk.nbr = 1 < _VOLUMES
Если в конфигурации FatFs VOLUMES установить 2, то далее
f_mount(&SDFatFs, (TCHAR const*)SDPath, 1) возвращает FR_NOT_READY
main.c https://pastebin.com/ZYD2xBmw
1) Нахуя нужен Dual Mode? Кроме Interleaved mode, с ним понятно
2) Где находится регистр ADC_CR? Это внутренний регистр АЦП или он в общей памяти?
Собственно к чему вопросы, я не понимаю, можно ли заставить в старших стмках, типа g474, все пять АЦП семплировать синхронно в Continuous conversion режиме и только по одному каналу? То есть так чтобы они засемплировали синхронно, по одному фронту, а затем через DMA поочередно выплюнуть данные в память.
1 МК и периферия спят с минимально возможным потреблением энергии
2 Один из аналоговых сенсоров при изменении среды дергает МК, пробуждая его.
3 МК инициализирует всю периферию, делает серию замеров при помощи АЦП в течении нескольких секунд - допустим, оценка уровня сигнала поступающего с аналогового входа в течении 5 секунд с частотой 10 кГц.
4 С полученными данными выполняются преобразования, формируется "итоговый пакет данных"
5 Итоговый пакет данных передается через ЛоРа, МК засыпает и спит до тех пор, пока сенсор из п2 не дернет его снова.
Почему не Атмега:
1 разрядность ацп, не желание городить внешний модуль ацп
2 энергоэффективность
3 эрзац-РТЦ, я не хочу городить еще один модуль
4 я хочу развиваться дальше атмеги (на атмеге+лора делал сеть датчиков высокой автономности для аграриев, по принципу забил в землю и забыл на годы)
Так вот, мне к вам или в есп32?
По первому впечатлению в есп32-треде творится лютая дичь уровня /б/, а само есп32 рандомно зависает и перезагружается.
> есп или к вам
Да хуй его знает. В теории esp32 умеет использовать АЦП в дип слипе. На практике ты охуеешь программировать это ulp, но это возможно.
С stm32 твоя задача в целом тоже выполнима и скорее всего будет потреблять меньше чем на esp32, бонусом у стмок ацп намного лучше чем у еспшек
esp32 имеют всратые АЦП, их лучше не использовать (даже атмеги лучше по этой части).
если тебе не нужен wifi / bleutooth - то смысла в esp32 нет.
stm32 - дорогие и много подделок, лучше бери китайские МК на RISCV.
Компиляторы давно есть, тот же gcc. stdlib, c libs, етц - всё давно есть и оно стабильное. Гугл и Ко скоро будут делать андроиды на РИСК-5. Так что вперёд, к освоению новых горизонтов.
Глюки и "особености" есть в любых МК и процессорах, если посмотришь, к примеру, исходники ядра линукса и кофнигурацию ворк-эраундов для ARM Errata - ужаснёшься, с МК, в т.ч. с СТМ32, всё сильно хуже. Но это не мешает ими пользоваться.
99% любительских поделок (особенно на ардуино-фреймворке) используют порядка 10% очень примитивного функционала МК, тут что РИСК-5, что АРМы, пофигу.
Ну и зачему, что многие МК с ядром РИСК-5 имеют ту же самую перефирию, что и МК на АРМ-ах. Разница только в том, что за выпуск контроллеров на АРМ-ах не платится ройалти для арма.
>stm32 - дорогие и много подделок, лучше бери китайские МК на RISCV.
Ты просто не умеешь выбирать. Для его задач пойдет какой-нибудь G431 который стоит ~130 рублей за штуку или вообще G030, которые есть от 60 рублей. На али брал в магазе Your Cee, вроде у них оригиналы
> Для его задач пойдет какой-нибудь G431 который стоит ~130 рублей за штуку
Он раз в пять дороже, если брать оф. источники. То, что на Али, сегодня есть, завтра нет, либо сегодня и завтра будут приходить нормальные и рабочие чипы, пусть и не оригинал, а потом будет хлам.
Завязываться на единственный магазин на Али по части ценообразования - плохой, негодный вариант. Фу так делать.
> или вообще G030, которые есть от 60 рублей.
https://www.lcsc.com/product-detail/Microcontroller-Units-MCUs-MPUs-SOCs_WCH-Jiangsu-Qin-Heng-CH32V203C8T6_C3001172.html
CH32V203 - те же условные 60рублей, только потроха куда солиднее.
Нужно начинать смотреть на альтернативные решения из поднебесной, просто так быть фанбоем стм32, конечно, хорошо, но это недальновидно.
Завтра трампыня ебанет торговую войну китаю и решения из поднебесной тоже пойдут нахуй. А стм никуда не денется, одна из ведущих западных компаний
Завтра Нетаньяху ебанёт по Израилю, потом Зе подорвёт АЭС и все ведущие компании из европы пойдут нахуй. Они умрут, а мы будем использовать ортодоксальный К1948ВК018.
Потому что в самой прекрасной стране есть RISC-V микроконтроллер MIK32 АМУР К1948ВК018 от АО "Микрон".
MIK32 АМУР - первый полностью отечественный микроконтроллер с ядром на открытой архитектуре RISC-V.
>Завтра трампыня ебанет торговую войну китаю и решения из поднебесной тоже пойдут нахуй. А стм никуда не денется,
Знаешь, почему любимые в этом треде СТМ-ки такие дешевые на алиэкспрессе из китая? Может быть потому, что СТМикроэлектроникс в т.ч. использует китайские мощности для производства своего барахла? Может поэтому там три буквы CHN на корпусе внизу?
>CHN
Да вроде не вижу таких... И я Алиэкспресс не беру во внимание, мне удобнее c маусера https://eu.mouser.com/ProductDetail/STMicroelectronics/STM32F103C8T6?qs=bhCVus9SdFtq6kqxsU5%2FDA%3D%3D
>>553997
> мне удобнее c маусера
Ну а мне он года три как не доставляет, к сожалению
>>553985
>Он раз в пять дороже, если брать оф. источники
Офф источники говорят что 3 бакса за штуку. Просто китайцы и электронщик не платят упаковщикам своим в отличии от диджикея и маузера
>>553986
>Нужно начинать смотреть на альтернативные решения из поднебесной, просто так быть фанбоем стм32, конечно, хорошо, но это недальновидно.
Если тебе на одну поделку - да похуй совершенно. Быть фанбоем стм32 проще с точки зрения разработки потому что у тебя одна среда и один сдк на все случаи жизни, а выбор мк от ультра энергоэффективных до йоб которые вообще имеют аппаратные кодеки жпега, эзернеты, usb hs и прочее. А с китайскими тебе оййй бляяя, нужно дешево - один производитель, нужно хай перфоманс - другой производитель, у всех разные сдк, разные требования, разное все, короче заёбно.
>Потому что в самой прекрасной стране есть RISC-V микроконтроллер MIK32 АМУР К1948ВК018 от АО "Микрон".
С ним всё хорошо кроме одного момента, пикрил. Стой он хотя бы 500 рублей - да, смысл был бы его применять, за 300 рублей это был бы оглушительный коммерческий успех. Но за такую цену можно купить 5 STM32H723VGT6 с cortex m7 на 550 МГЦ. Можно купить 10 esp32. А тут блядь даже нету FPU!
>Да вроде не вижу таких..
Ну, значит, таких не бывает, раз ты видишь - значит их и нет. Крупные международные компании никогда ничего в Китае не делают. Даже айфоны целиком и полностью не китайские.
>С ним всё хорошо кроме одного момента, пикрил
Так большой пиздец не наступил, "трампуша не объявил торговую войну с китаем", или как-там выше по постам было.
В РФ и МК на кортексах разных делали, но цимес МК на риск5 - в РФ есть не только IP, а все исходники его.
>>554002
>Да вроде не вижу таких.
> Даже айфоны целиком и полностью не китайские.
Сборкой занимается вся южная азия, а не только китай. Тайвань, Малазия, вроде Индия начала тоже
>но цимес МК на риск5 - в РФ есть не только IP, а все исходники его.
Да, чтобы взять первое поделие школьника с гитхаба на верилоге и выдать за уникальные разработки. Блядь, мк за 3 тысячи без FPU, они там в край охуели? Сложно было написать ещё пару сотен строчек на верилоге? Китайцы почему-то без проблем сделали FPU что в кендритах что в еспшках новых
>Сборкой
Вопрос за производство комплектующих, а не про сборку.
>>554005
>Быть фанбоем стм32 проще с точки зрения разработки потому что у тебя одна среда и один сдк на все случаи жизни, а выбор мк от ультра энергоэффективных до йоб которые вообще имеют аппаратные кодеки жпега, эзернеты, usb hs и прочее.
что там у STm есть с аппаратным WiFi 6 & NPU?
Давно не слежу за ними. Есть аналоги https://cnx-software.ru/2022/12/30/mikrokontroller-bouffalo-lab-bl616-bl618-risc-v-podderzhivaet-wifi-6-bluetooth-5-2-i-zigbee/ за те же копейки?
>Быть фанбоем стм32 проще с точки зрения разработки потому что у тебя одна среда и один сдк на все случаи жизни, а выбор мк от ультра энергоэффективных до йоб которые вообще имеют аппаратные кодеки жпега, эзернеты, usb hs и прочее. А с китайскими тебе оййй бляяя, нужно дешево
И вот аналог от СТмайкро вот этого плиз: https://milkv.io/chips/sg2002
>И вот аналог от СТмайкро
Но это SoC, а не микроконтроллер. В остальном одобряю, вот эта хуйня для линуксов с 64-128 мбайт очень интересная и дешевая, но это немного другая весовая категория уже
>>554017
>Вопрос за производство комплектующих
Ну юридически то Тайвань конечно Китай но ты понял. Кремний в китае никто не заказывает, SMIC работает исключительно на внутренний рынок
>что там у STm есть с аппаратным WiFi 6 & NPU?
Ну WiFi-6 у нас вроде пока только Espressif осилили
>bouffalo-lab
Хоть бы один из этих пидорасов догадался сделать высокоскоростной параллельный интерфейс, а то их поделия можно использовать только в комбинации с FPGA, притворяясь SPI памятью, если твои задачи сложнее умной лампочки или пылесоса
>Ну юридически то Тайвань конечно Китай но ты понял. Кремний в китае никто не заказывает,
Где юридически находится "STMicroelectronics Shenzhen Manufacturing Co Ltd" и не кремнием ли они занимаются? СТМайкроэлектроникс - глобальная компания, они в т.ч. используют мощности китайских компаний, что видно по маркировкам на их STM32 линейке. То, что в китае делают - идёт с тремя буквами CHN, то, что из тайваня - с тремя буквами TWN.
>>554021
>Ну WiFi-6 у нас вроде пока только Espressif осилили
Ссылка выше на буфало лабс с wifi 6 не считается? На есп32 свет клином не сошёлся, есть разные альтернативы.
>>554021
>Хоть бы один из этих пидорасов догадался сделать высокоскоростной параллельный интерфейс,
Зачем? Для камер есть поддержка, для дисплеев есть. Советую покинуть норку с стм32, те же китайцы массово используют память на последовательной шине (считай SPI) с тактовыми частотами в гигарцы. Зачем параллельный интерфейс? Это размеры корпуса, размеры платы, а это лишние деньги.
> Где юридически находится "STMicroelectronics Shenzhen Manufacturing Co Ltd" и не кремнием ли они занимаются?
Я че то очень сильно сомневаюсь что им позволили в китае расположить что-то тоньше 180 нм, а последние МК по-мому 40 нм. Но хуй знает, проверять влом
> Ссылка выше на буфало лабс с wifi 6 не считается? На есп32 свет клином не сошёлся, есть разные альтернативы.
Это не МК, это устройства уже другого класса
> Зачем? Для камер есть поддержка, для дисплеев есть.
Ну так а я что сказал
> а то их поделия можно использовать только в комбинации с FPGA, притворяясь SPI памятью, если твои задачи сложнее умной лампочки или пылесоса
Когерентная обработка, сбор данных с нескольких АЦП, всякие роборуки с туевой хуйчей датчиков, вон там тебе параллельный интерфейс очень сильно понадобится. Все что легко делается на мк уровня H7 на китайцах потребует дохуя внешней периферии или вообще ПЛИС
>им позволили в китае расположить что-то тоньше 180 нм
очнись маня пиндосы развив пиздоглазов в надежде что те разъебут советы-рфию выпустили джина из бутылки который их же и пожрет
в пиздоглазии все давно уже ЕСТЬ просто хехемону об этом не говорят или ты наивно пологаеш что они такие тупые?
> это устройства уже другого класса
это называеца интеграция
>что легко делается на мк уровня H7 на китайцах потребуе
еще раз это все твои маня фантазии - думаеш они такие тупые что уебав по дереву топором и обнаружив что топор тупой не догадаюца его заточить? или вообще придумать бензопилу?
ты рассуждаеш как шкальниг дрочащий амуде или штеуд - пиздоглазы это совершенно другая нация и мировозрение так называемая мягкая сила притом они помнят ВСЕ и опиумные войны и прочую хуйню ты просто не понимаеш насколько эти мураши ...
>Когерентная обработка, сбор данных с нескольких АЦП, всякие роборуки с туевой хуйчей датчиков
Для этих вещей есть чипы с бОльшим количеством вводов-выводов.
Альзо описания необходимости параллельного ввода-вывода.
>>554050
>Это не МК, это устройства уже другого класса
А что же это? И как быть фанбоям СТМ, если нужно WiFi/Bluetooth/ZigBee/etc? Прикручивать по SDIO wifi и интегрять WiFi + TCIP/IP стэк?
Ой-вей, но это будет цена космос, плата будет сильно больше. А это ещё дороже.
>>554050
>Ну так а я что сказал
Вот это?
>>553979
>Ты просто не умеешь выбирать. Для его задач пойдет какой-нибудь G431 который стоит ~130 рублей за штуку или вообще G030, которые есть от 60 рублей.
Стм-ки как не выбирай, но ниша у них маленькая и ниша скукоживается с появлением на рыночке весьма достойных предложеий от китайских товарищей. Повторюсь, нежелание учить что-то новое - подход так себе.
> Все что легко делается на мк уровня H7 на китайцах потребует дохуя внешней периферии или вообще ПЛИС
Зачем сравнивать мелкий контроллер в QFN32 за копейки с контроллерами в 64-240 выводных корпусах, которые раз этак в 10 дороже?
Ну, возьми китайское решение за те же деньге в похожем корпусе, получишь больше памяти внутри и выше частоты.
>Ну, возьми китайское решение за те же деньге в похожем корпусе, получишь больше памяти внутри и выше частоты.
Например? Кстати, раз уж зашла речь про китай, где есть надёжный поставщик всяких аллвинеров, причем серии V, который работает с физиками? На али есть лоты по вкусной цене, но там их мало так что могут в любой момент исчезнуть
> И как быть фанбоям СТМ, если нужно WiFi/Bluetooth/ZigBee/etc?
Блютуз, зигби и лора есть в серии STM32WB
> Прикручивать по SDIO wifi и интегрять WiFi + TCIP/IP стэк?
Ну если прям вайфай очень нужен, то еспшки добавят тебе 2 бакса к себестоимости, да
>WiFi на первом месте, это самое популярное и самое нужное.
Бляяяя, всем в облако, в треде реально делатель умных лампочек
>Зойчем тогда STM32, если можно взять что-то с WiFi сразу?
Целиком зависит от задач. Где-то так выгоднее
>Бляяяя, всем в облако,
Какой ты замкнутый и ограниченный.
в данный момент wearables aka motion capture, проще WiFi нет ничего. Облаками не пахнет.
>bluetooth low energy
Это сразу отметает винду из-за её всратаго стэка плюс есть ограничения на поллинг интервал.
Сразу видно, что месье не в теме, но советовать горазд
Я чё то нихуя не понял. При любом описании плат с этим чипом пишут, что 702 поддерживает бле и зигби, но в сдк только на 616 есть драйвера и все остальное. На гитхабе к сдк тоже пишут, что бле и зигби supported только на 616.
Типа для 702 надо самому все драйвера высирать, или забить и ждать пока в сдк не добавят?
мимо студентота
https://pine64.github.io/bl602-docs/Examples/demo_wifi/wifi.html
Да вроде всё есть. А вот для линукса этих дров скорее всего и не будет, как они и с bl808 сделали
Это же для 602, плюс форк старый. Он будет работать с 702?
У них раньше нужно было подписывать NDA для доступа к SDK/BSP, как сейчас не знаю
STM32F030F4P6, плата как на видео у этого индуса.
https://www.youtube.com/watch?v=Vld0xUj48J4
Не могу разобраться с тем как в Keil проект сделать. А ближайший пример, который нашел, для STM Discovery, полторашку на которую жаба душит тратить.
Китайский STLink и STLink Utility с оффсайта видят и контроллер и адреса памяти в нём. А вот удобной IDE чтоб всё из коробки работало как Pycharm не нашел. CubeMX скачал, но ещё не ставил, а примеры по сборке тулчейна сделаны для более дорогой Discovеry или вообще под линукс. Под свою дешевую плату для Keil ничего не нашел. Самому разобраться не получается. Можете показать как мигалку прошить? Дальше уже разберусь.
Ну вот какого хуя? Как с этим ебаным софтом работать то? Уже 2 недели проёбано. За это время даже на ассемблере можно было бы мигалку прописать и ШИМ ебаный.
Я пользуюсь openоcd + gdb + скрипты.
И vim. Естественно - всё под линуксом.
переходи на тёмную сторону
На Debian совсем недавно байтили, но тогда придётся:
1. Настраивать VM для работы линукса через хотспот.
2. Искать лёгкую сборку, ведь у меня лишь 7ГБ свободной ОЗУ.
3. Как-то ставить весь перечисленный тобой софт.
У треда есть конфа в ТГ или дисе?
>2. Искать лёгкую сборку, ведь у меня лишь 7ГБ свободной ОЗУ.
ЭЭэээ, это шутка такая? Гонять винду на таком чахлом компе? Ещё и девелопить пытаться в новодных IDE?
>>556723
>На Debian совсем недавно байтили
У меня гента давно. Но и дебиан норм. В целом я ради интереса пробовал ковырять старый одноплатник на арме, там реально девелопить, но опять же, после зачистки барахла и некоторых оптимизаций (и багов).
>>556723
>3. Как-то ставить весь перечисленный тобой софт.
В линуксовых дистрах openocd, gdb и остальное кросс-барахло ставится из-коробки. Для особо ленивых есть pio
Но я не рекомендую начинать с разных IDE, лучше в любом линуксе освоить базовые процессы сборки когда под разные платформы, чтоб было понимание про тулчейны, библиотеки, энвайронмент и переменные окружения, а так же про мейк-симейк и т.п.
>>556723
>У треда есть конфа в ТГ или дисе?
Зачем?
>Гонять винду на таком чахлом компе
7ГБ из 12. Остальное винда и жрёт. Начинал вообще с 4, вот там было душно.
>пикрил
Я так понимаю, содержимое памяти на пике это просто результат ресета памяти. Верно? Не понимаю пока только суть колонок между адресной и содержимым.
>. Начинал вообще с 4, вот там было душно.
Покупал себе ноут, где-то в конце 2006. Сразу воткнул 4 гига.
Не знаю, память дешевая нынче. Сейчас самый минимум это 32 имхо. Лучше 64.
>>556729
> Верно?
Это должен быть флэш, если правильно помню address map. Стертый флэш по дефолту 0xffff_ffff. При записи установленные биты в 1 сбрасываются в 0.
STLink по-умолчанию вроде как заточен только под оригинальные стм-вские контроллеры и другие не хочет шить. Но через OpenOCD можно.
Осваивай линукс дуалбутом. Дебиан, убунту, арч, генту, не важно что. Если интересна разработка софта, особенно ембеддед, то обязательно нужно осваивать линкс. Консоль, скрипты, файл утилс, текст утилс, вим, мейк, симейк, етц.
Без этого только атрофия мозга и вебдевелопмент с ардуинством.
>Если интересна разработка софта, особенно ембеддед, то обязательно нужно осваивать линкс.
Если это разработка под линукс, железки с линуксом, то конечно нужно. А иначе разницы нет.
>Консоль, скрипты, файл утилс, текст утилс, вим, мейк, симейк, етц.
Это все у меня работает под виндой точно так же как и под линуксом, а если что и не работает, то можно использовать msys2. Конкретно для STM32 и других cortex-m по минимуму нужен только симейк и гцц, а оно практически где угодно работает одинаково.
>Если интересна разработка софта, особенно ембеддед, то обязательно нужно осваивать линкс
>большинство тулз ориентированы на винду
Фанатик прыщеговна не палится. Странно, что ты зашкварное словечко "вендекапец" не употребил, лолка.
STM32CubeIDE без танцев с бубном на новый дебиан не устанавливался. Atmel Studio - это вижлстудия майкрософтовская, только под винду. Ну и т.д.
А если ты опенврт и билдрут имел в виду, это другое.
И вообще прыщеось для дела и школопердолинг с нвидиями - это разные вещи. Для не-ембеддед разработки лучше уж мак взять.
>вим емахс
Это говно дедам оставь.
>просто что-то не работает,
Так под линуксом ещё больше необходимого не работает, например альтиум. Собственно практически все коммерческие САПР только для винды.
И самое главное, то что касается stm32, а именно cmake и gcc, под виндой работает ничем не хуже чем под линуксом.
Программирование, QA и КАД-ы для EE - совсем-совсем разные вещи. Работал в конторе, порядка 300 сотрудников. Разрабатывали консьюмерские девайсы на разных SoC, отдел из EE-шников был меньше 10 человек, программистов + QA + RM и остальных порядка 250.
>>556755
> а именно
Это чистой воды уровень ардунщика. Разработка ембеддед - это не только написание кода для отдельного взятого МК или SoC, но и тестирование, и создание разных тест-бенчей, и автоматизация в т.ч. прошивки, в т.ч. различного роды тестов.
Автоматизация и скриптование всего и вся под линуксами приблизительно в сто тыщ раз проще, чем под виндой.
Саморазвитие требует изучения и освоение широго спектра инструментов. Окукливание себя любимого в винде + мсис - это средний уровень ардуинщика из индии. Для хоббиста и засирателя двачей и форумов - ОК.
>альтиум
Ты прав, конечно, про это все даже и вспоминать нечего, ибо вывод очевиден.
Но ведь наверняка есть какой-нибудь ОпенЧМОНИКС, который "бистплатный!!111 в репках лежит" и конечно же "в нем все можно то же самое делать и все работает не падает яйцеголовые пхд писали кодели чисто консольный интерфейс openchmonix --ejh -rktlYio3fdgu -ertu retuo.pro | kdhkgfdg -wRreE /dev/ttyUSB0 вот видишь все элементарно можно батнички писать автоматизировать что я делаю не так???7" донаты идут на феминизм и сознательное вылизывание анусов бродячих собак... ну так то юзаю кикад ибо под маком альтиум тоже не работает, но профессиональной эту хуитку не назвать никак
Но для сборки опенвртов линукс нужен, конечно.
В виде витруалки, контейнера или чего-то подобного.
>EE-шников был меньше 10 человек, программистов + QA + RM и остальных порядка 250
Вот видишь - у 10 винда скорей всего. А у вас бесплатные прыщи. На вас сэкономили...
>Работал
Ой все, эксперд по всем вопросам. Кроме тебя никто нигде не работал.
>тестирование, и создание разных тест-бенчей, и автоматизация в т.ч. прошивки, в т.ч. различного роды тестов
Ну берешь и хуяришь тестовый стенд под прыщами (я так и делаю). А кодишь под нормальной осью (я так и делаю). И хуйню нам тут не неси про "разные инструменты" и прочее - тебя за язык не тянул никто, когда ты проповедь свою красноглазую завел. Ни о каком тестировании или пусконаладочных работах речь там не шла, чисто о разработке, где прыщи нахуй не нужны.
>но и тестирование, и создание разных тест-бенчей, и автоматизация в т.ч. прошивки, в т.ч. различного роды тестов.
Почему тогда мои скрипты на симейке, питоне и тикле для всей этой автоматизации совершенно одинаково работают и под линуксом и под виндой? Может быть потому что я код пишу нормально?
>А у вас
> Давай я расскажу про тебя, твою контору и твои скиллы, ведь я всезнающий, всеумещий и мысли читающий, мой опыт самый опытный, а ты нихуя не знаешь, симэйк с мсис у меня работает, значет и у всех остальных будет работать и для 640кб хватит всем
У "нас" были разные заказчики/партнёрские конторы. Одна из самых старых - это Motorola. Билды в начале моей карьеры делались на мотороловских билд серверах на Sun-технике + были линуксовые сервера. В качестве системы контроля версий - ClearCase.
Умиляюсь просто рассужденями об экономии и "о бесплатных прыщах". Если в голове пусто - то из жопы не занять.
>>556759
>Вот видишь
Ну естественно, если 5 инженерам из EE нужно гонять альтиум, то - то нужно заставить 250 инжереров программистов, QA и остальных работать полностью под виндой и MSYS2. Ибо нехуй, зачем использовать подходящие инструменты и окружение, ведь двачер надвечавал - все бохатые под виндой, все прыщи под линуксами, прыщи не нужны, только винда.
>>556783
И весь этот подрыв начался с того, что ты обязал сразу ставить прыщи анону, который всего лишь хотел пример мигалки скомпилировать... При том что эту мигалку под виндой можно скомпилировать теми же самыми инструментами что и под прыщами.
При этом ты ещё за анона решил что он не будет погружаться в схемотехнику и пойдет только в погромирлвание.
Что это если не лицемерие? Ладно бы там ещё тестирование с помощью дристни на баше, но тут человеку просто нужен пример кода.
>что ты обязал сразу ставить
У тебя атрофия головного мозга и не способность воспринимать написанное? Или ты просто долбоёб? Хотя одно другому не мешает.
Вот цитатки:
>Но я не рекомендую начинать с разных IDE, лучше в любом линуксе освоить базовые процессы сборки когда под разные платформы, чтоб было понимание про тулчейны, библиотеки, энвайронмент и переменные окружения, а так же про мейк-симейк и т.п.
>Осваивай линукс дуалбутом. Дебиан, убунту, арч, генту, не важно что. Если интересна разработка софта, особенно ембеддед, то обязательно нужно осваивать линкс. Консоль, скрипты, файл утилс, текст утилс, вим, мейк, симейк, етц.
Без этого только атрофия мозга и вебдевелопмент с ардуинством.
>>556784
>Что это если не лицемерие?
Лицемерие - это писать, что линукс не нужен, и что написание портабельного софта, пусть даже на питоне, это бесплатно и не сложнее поддержки одной ОС.
И тут же писать, что "я могу писать портабельные хелоуворлды под линукс и под винду, да да ты очень умный, а анону линуксы не нужны, зачем изучать новые инструменты, пусть сосёт на винде, потому что альтиум только под винду"
Вот так >>551752 → можно сделать. Под твой микроконтроллер нужно только номер ноги подправить и библиотеки взять другие, в остальном код должен быть идентичным. Ну и все это в CLion можно потом подпихнуть, если Pycharm нравится.
Тулчейн компилировать не нужно, есть готовый https://developer.arm.com/downloads/-/gnu-rm
Фанатика прыщей игнорируй.
>Sun-технике
>ClearCase
Дедуль! ты еще за DOSvsXENIX тут зумеркам бы пояснял
Год-то какой, айфон достань, посмотри на календаре? У STM STM32CubeIDE. Никаких мсисов и тулчейнов с репок уже не нужно, и работает все под любой осью (причем легче всего под виндой и маком заводится).
Кстати, оно говно в целом. Пердуйня получше, ибо без графического НАХУЯ БЛЯТЬ???!! суки маняконфигуратора, и недофреймворк Wiring всяко лучше откровенного сишного кала под названием HAL. Плюс куча готовых библиотек, которые в подавляющем большинстве случаев неплохи. Ебля с регистрами такое, не для хобби-проектов и не для новичков.
>>556783
>Автоматизация билда, тестирования ембеддед систем и конфигурации работает одинаково на винде и на линуксах?
С добрым утром!
>>556786
>написание портабельного софта, пусть даже на питоне, это бесплатно и не сложнее поддержки одной ОС.
Кто тебе сказал, что портабельного? Речь про ОДНУ винду шла.
>ЭЭэээ, это шутка такая? Гонять винду на таком чахлом компе? Ещё и девелопить пытаться в новодных IDE?
Ты сейчас наверное удивишься, но эклипс очень даже сносно работает на ЧЕТЫРЕХ БЛЯДЬ гигах оперативы на десятке. Попытка открыть вскод уже оборачивается болью, а единственное различие это то что у вскода интеллисенс чуть поумнее чем в эклипсе
>чтоб было понимание про тулчейны, библиотеки, энвайронмент и переменные окружения, а так же про мейк-симейк и т.п.
У тебя на выбор пердуина, cubeide, pio, keil. Во всех это просто:
пишешь код
@
build
@
run
Всё. Максимум зайти в настройки проекта и поставить -O3. Как инженеру по обработке сигналов тебе вся эта срань с тулчейнами не нужна. Всё что надо - делается по инструкциям коих до жопы.
>>556747
>Если интересна разработка софта, особенно ембеддед, то обязательно нужно осваивать линкс
Лол, только если ты превозмогатель импортозаместитель который работает с китайщиной, превращающейся в EOL и discontinued через полгода после выпуска. Под всё остальное все среды под винду
>>556756
>Программирование, QA и КАД-ы для EE - совсем-совсем разные вещи. Работал в конторе, порядка 300 сотрудников. Разрабатывали консьюмерские девайсы на разных SoC, отдел из EE-шников был меньше 10 человек, программистов + QA + RM и остальных порядка 250.
Сука содомит, работаю в конторе на 7к чел, разработкой железа занимается два человека: один разводит платы, тестирует их, пишет код для ПЛИС, пишет софт для ПК, взаимодействующий с железом, второй пишет драйвера для ПК. Это всё в рамках одного отдела на несколько десятков чел, но тем не менее
>для отдельного взятого МК или SoC
Ну ты опять палишься что нихуя не понимаешь в теме. Если ты че-то пишешь под SoC, то у тебя там в 99% будет линукс и тогда да, всё имеет смысл разрабатывать на нём, чтобы не плодить сущности. Но МК и ПЛИС это вообще не про это, там линукс с большой вероятностью вообще не нужен
>без графического НАХУЯ БЛЯТЬ???!! суки маняконфигуратора
Не используй. Никакой необходимости нет.
>недофреймворк Wiring всяко лучше откровенного сишного кала под названием HAL
И чем же? Один хуй периферию один раз конфигурируешь и больше хал не трогаешь.
>Никакой необходимости нет
Ты думаешь, я помню все эти ебаные поля и их значения?
>чем же
Тем, что ООП, инкапсуляция и унификация.
Один и тот же код будет работать на разных процах вообще без изменений. Буквально тот же. Ну вот есть у меня, скажем, дисплейчик на SPI, и несколько контроллеров (AVR, STM32, ESP), нахуя мне для него либу переписывать под каждый проц отдельно? Шина SPI одинаково в них работает в данном контексте.
Анон, я потерпел неудачу и не нашел решения на русском или английском для CubeIDE. Пробовал редактировать cfg чтоб он не проверял id контроллера но IDE уже похуй. Ставил и id = 0 и менял на ID который показывала сама IDE. Ничего не сработало, включая гайд на ютубе на испанском, где чел меняет 0x1 на 0x2 в строке проверки. На русскоязычных форумах рекомендуют выкинуть платку и купить новую, но я ебал такие советы ибо на таких денег не напасёшься. А у меня их ультра-мало
Это ещё молчу о том, что пришлось ручками заносить firmware package и ручками же его распаковывать и показывать IDE. 2 недели времени и нервов в пустую. Чуть не перегорел из-за этого дерьма, хотя много лет мечтал наконец вкатиться в embedded, но не имел навыков, возможности или денег.
Придётся осваивать линукс.
>>556747
Интересует Arch. Уже качаю ISO с офф сайта. Где или как можно найти список команд, которые мне необходимо знать чтоб запустить его из VM? Имеются в виду самые необходимые, вроде Win+R / Win+E / Win-I/ Alt+Tab / CTLR+SHIFT+ESC для винды знаю, хоткеи, но cmd и regedit с командами для power shell не так часто используются в сравнении с ними.
И какие гайды можешь посоветовать, для подключения ОС в виртуалке к сети, чтоб работал менеджер пакетов? А так-же какие гайды надо глянуть, чтоб настроить среду разработки для работы с STM32?
Сеть имеет вид: провайдер > ethernet > WR941 > Archer T2U > пека
По ходу дела наверно вопросов будет ещё больше, особенно в Сб-Вс на неделе. Ибо вся эта софтодроч на винде уже откровенно достала.
>У тебя на выбор пердуина, cubeide, pio, keil. Во всех это просто:
Если ты пишешь хелоу-ворлды - то да, всё просто. Если что-то сложнее - то простота начинает мешать.
Винда очень плохо подходить для разработки ембеддед софта. Для разработки виндовых приложений винда подходит лучше, но даже тут бывают нюансы - собирать разные опенсурсные кроссплатформенные приложения, вроде того же VLC, под линуксом оказалось проще (даже под винду).
В линуксе есть нормальный пакетный мэнеджер. В линуксе есть инструменты для отладки, те же ltrace/strace очень сильно упрощают жизнь даже во время отладки проблем сборки или билдов.
Всем виндузятникам - откройте notepad и попробуйте сохранить файл как aux.c или con.h
>>556827
>Ну ты опять палишься что нихуя не понимаешь в теме. Если ты че-то пишешь под SoC, то у тебя там в 99% будет линукс и тогда да,
Тебя можно использовать как эталон для иллюистрации эффекта Данинга-Крюгера.
Линукс это не RTOS, миллион разных устройств идёт на SoC и работает с RTOS разного пошиба. У тебя нет опыта работы в больших проектах с емббеддед, где куча отделов пилят консюмерские девайсы. Твои 7 калек из 7к в конторы это шедевр, но мимо.
>Интересует Arch. Уже качаю ISO с офф сайта. Где или как можно найти список команд, которые мне необходимо знать чтоб запустить его из VM?
Честно не знаю, анон. У арча есть хорошая вики и форумы годные.
Все линукса более-менее одинаковые, есть нюансы по конфигурации и по покетному мэнеджеры, а с точки зрения настройки сети и пользования - практически всё одинаково
>Придётся осваивать линукс.
Если ты рассчитываешь на то что в линупсе чудесным образом исправится проблема с несовпадением ид, то тебя ждёт разочарование.
Если ты под виндой не можешь с этим справиться, то линукс ничего существенно не изменит. И я знаю о чем пишу, я сам когда-то добавлял поддержку миландра в сеггеровское по.
Тут разговор был за микроконтроллеры, а ты перечисляешь всю хуйню для разработки под линух, которая к теме отношения не имеет.
Ещё и аргументы из золотого фонда красноглазых шизов уровня нельзя создать файл.
Сейчас вообще дохрена китайцев, которые поставляются со своей идешкой (эклипс с их плагинами), с гайдами и доками только под винду. Конечно, можно самому скачать/вытащить тулчейн и разобраться как самому все собрать на линухе, но в условиях ограниченных сроков/недостатка опыта не все готовы этим заниматься.
>В линуксе есть нормальный пакетный мэнеджер.
В винде тоже есть, ни разу не пользовался
>В линуксе есть инструменты для отладки, те же ltrace/strace очень сильно упрощают жизнь даже во время отладки проблем сборки или билдов.
strace — это утилита, отслеживающая системные вызовы, которые представляют собой механизм трансляции, обеспечивающий интерфейс между процессом и операционной системой (ядром). Эти вызовы могут быть перехвачены и прочитаны. Это позволяет лучше понять, что процесс пытается сделать в заданное время. Перехватывая эти вызовы, мы можем добиться лучшего понимания поведения процессов, особенно если что-то идет не так.
Ты собрался трейсить гцц? Ебанутый? Единственный инструмент для отладки который тебе нужен это gdb
>миллион разных устройств идёт на SoC и работает с RTOS разного пошиба
А ещё миллиону ртос нахуй не нужен и все делается на прерываниях
>У тебя нет опыта работы в больших проектах с емббеддед, где куча отделов пилят консюмерские девайсы
Если продажи твоего консьюмерского девайса позволяют содержать толпу смузихлебов, то да на здоровье. А вот с нормой прибыли 20% хуй ты такое организуешь
>>556958
>робовал редактировать cfg чтоб он не проверял id контроллера но IDE уже похуй. Ставил и id = 0 и менял на ID который показывала сама IDE. Ничего не сработало, включая гайд на ютубе на испанском, где чел меняет 0x1 на 0x2 в строке проверки.
Ты уверен что у тебя контроллер оригинальный?
>Это ещё молчу о том, что пришлось ручками заносить firmware package и ручками же его распаковывать и показывать IDE
Пользуюсь кубом лет 5, ни разу не встречал таких проблем
> пик 1
У тебя контроллер не шьется или не входит в дебаг? Или у тебя стлинк не оригинальный и иде ругается на него? Ты, мудила, проблему описать то можешь внятно? Показать скрин куба можно, описать что ты делаешь, а не срать пепами с одним скрином на котором вообще хуй пойми как ты вызвал эту ошибку.
Гайд по которому ставил софт и по которому пытался прошить МК. Делал шаг в шаг, кроме момента когда firmware не хотел качаться. Там пришлось качать с яндекс-облака пак STMа и тыкать ручками.
https://www.youtube.com/watch?v=Vld0xUj48J4
Изменение CFG файла №1.
https://www.youtube.com/watch?v=W2HNGEnf9vY
Изменение CFG файла №2.
https://programmersought.com/article/77554532152/
>Ты уверен что у тебя контроллер оригинальный?
Очевидно, он не оригинальный. Иначе бы уже завтра шел за допплеровским сенсором, а не ебался с софтом.
>Или у тебя стлинк не оригинальный
Да, не оригинальный, но на форумах в качестве проблемы контроллер указывали почти всегда, а вот программатор лишь 1 раз.
>Пользуюсь кубом лет 5, ни разу не встречал таких проблем
Думаю тебя и машина не сбивала более 5 лет, тем не менее это не опровергает, что машины есть и ДТП бывают.
>не входит в дебаг
>Ты, мудила
>пикрил
>нихуй не читай, сразу обсирай
Мы не на /b, так что поменяй тампон и держи себя в руках.
>на котором вообще хуй пойми как ты вызвал эту ошибку
Первая ссылка, 7:31 и далее. Повторял каждый клик.
>пик2
Скрин ST Link Utility после подключения к МК как в гайде индуса выше.
>пик3
Конфиг окна дебага. Внизу не видно только включенный чекбокс
Enable live expressions. После нажатия кноки Apply и Debug, как в гайде появляется 2 окна, из прошлого скрина. Но в отличии от гайда на испанском (ссылка в посте), нажать Switch ещё можно, а продолжить я не могу. Вкл/выкл live expressions, как и изменение SWD Clock частоты не на что не влияют. Ошибка сохраняется.
>а не срать пепами
Pepe 4 life
>>556966
>Если ты рассчитываешь на то что в линупсе чудесным образом исправится проблема с несовпадением ид, то тебя ждёт разочарование
На форумах указывали на то, что Cube вызывает эту ошибку потому что МК китайский или потому что объем (и адреса) памяти не совпадают. В моём случае объем памяти совпадает, так что думаю это уже проблема софта. Тем более она была описана и раньше, и в видео про китайские клоны STM проблему решали более старой версией куба (2019-2021 примерно).
1986ВЕ92Q1 прям очень хочется попробовать, но полторашка за один лишь чип это для меня пока много. А на озоне так вообще 15к хотят.
На чём вообще люди отечественные МК шьют и как?
>>556960
А как загуглить список важных команд? Думаю распечатать, да использовать с листа, пока "руками не запомню" как хоткеи или комбы в играх.
Гайд по которому ставил софт и по которому пытался прошить МК. Делал шаг в шаг, кроме момента когда firmware не хотел качаться. Там пришлось качать с яндекс-облака пак STMа и тыкать ручками.
https://www.youtube.com/watch?v=Vld0xUj48J4
Изменение CFG файла №1.
https://www.youtube.com/watch?v=W2HNGEnf9vY
Изменение CFG файла №2.
https://programmersought.com/article/77554532152/
>Ты уверен что у тебя контроллер оригинальный?
Очевидно, он не оригинальный. Иначе бы уже завтра шел за допплеровским сенсором, а не ебался с софтом.
>Или у тебя стлинк не оригинальный
Да, не оригинальный, но на форумах в качестве проблемы контроллер указывали почти всегда, а вот программатор лишь 1 раз.
>Пользуюсь кубом лет 5, ни разу не встречал таких проблем
Думаю тебя и машина не сбивала более 5 лет, тем не менее это не опровергает, что машины есть и ДТП бывают.
>не входит в дебаг
>Ты, мудила
>пикрил
>нихуй не читай, сразу обсирай
Мы не на /b, так что поменяй тампон и держи себя в руках.
>на котором вообще хуй пойми как ты вызвал эту ошибку
Первая ссылка, 7:31 и далее. Повторял каждый клик.
>пик2
Скрин ST Link Utility после подключения к МК как в гайде индуса выше.
>пик3
Конфиг окна дебага. Внизу не видно только включенный чекбокс
Enable live expressions. После нажатия кноки Apply и Debug, как в гайде появляется 2 окна, из прошлого скрина. Но в отличии от гайда на испанском (ссылка в посте), нажать Switch ещё можно, а продолжить я не могу. Вкл/выкл live expressions, как и изменение SWD Clock частоты не на что не влияют. Ошибка сохраняется.
>а не срать пепами
Pepe 4 life
>>556966
>Если ты рассчитываешь на то что в линупсе чудесным образом исправится проблема с несовпадением ид, то тебя ждёт разочарование
На форумах указывали на то, что Cube вызывает эту ошибку потому что МК китайский или потому что объем (и адреса) памяти не совпадают. В моём случае объем памяти совпадает, так что думаю это уже проблема софта. Тем более она была описана и раньше, и в видео про китайские клоны STM проблему решали более старой версией куба (2019-2021 примерно).
1986ВЕ92Q1 прям очень хочется попробовать, но полторашка за один лишь чип это для меня пока много. А на озоне так вообще 15к хотят.
На чём вообще люди отечественные МК шьют и как?
>>556960
А как загуглить список важных команд? Думаю распечатать, да использовать с листа, пока "руками не запомню" как хоткеи или комбы в играх.
Дичь какая-то. Линукс тебе не поможет никак.
>1986ВЕ92Q1
Во первых я касался микросхем в металлокерамических корпусах, а ты про пластик. А во вторых оно не нужно, совсем. Ну разве что на полочку для коллекции положить.
А шить можно практически чем угодно, лишь бы голова работала. Кстати, можно и через бутлоадер прошить. И все стм32 тоже можно через uart прошить.
>Очевидно, он не оригинальный.
А то что там помимо несовпадения ид будут ещё какие-то неизвестные отличия тебя не смущает? Если тебя такая мелочь поставила в затруднительное положение, то учти что вероятно дальше проблемы будут ещё серьезнее.
>Линукс тебе не поможет
Да мне и тред не помог firmware package в ручную установить в IDE, раз на то пошло. За 2 треда и ~15 постов ровным счётом тут ничего полезного нового не узнал, за вычетом может ключевых слов для поиска инфы по работе с МК под линуксом. Всё.
Складывается впечатление что лишь в глубинах интернета бывает что-то полезней чем: ыыы ну у меня всё работает, купи новый %объектнейм%. И это примерно 1-2 треда на форумах раз на 30-40 ссылок. Похоже тред по прошивке airpods или роутеров вообще придётся в соседней галактике искать.
>дальше проблемы будут ещё серьезнее
Не сомневаюсь, но пытаюсь работать с тем что есть. Хули ещё остаётся. Даже если куплю STM32F407VET6 завтра, не факт что Cube не будет выёбываться уже на неё.
>Делал шаг в шаг, кроме момента когда firmware не хотел качаться. Там пришлось качать с яндекс-облака пак STMа и тыкать ручками
Смотрите, человек без впна и без мозгов!
>Очевидно, он не оригинальный
>f030f4p6
Чувак, ты купил, ну САМЫЙ дешманский F0 из всех так ещё и палёный? Не еби мозги и бери
https://aliexpress.ru/item/1005005567553337.html
или
https://aliexpress.ru/item/1005001621944261.html f401
Их реже подделывают и у них нормальное количество памяти в отличие от твоего говна куда после хала не встанет ни одна либа
>Да, не оригинальный, но на форумах в качестве проблемы контроллер указывали почти всегда
Смотри, недавно ст сломали ВСЕ неоригинальные прошивальщики. Снимай со своего стлинка крышку и смотри маркировку контроллера. Если там GD32 или AT32 - поздравляю, у вас тыква
>Скрин ST Link Utility после подключения к МК как в гайде индуса выше.
Ты сделал erase chip? Ну если стлинк ютилити подключается, попробуй кубиде сгенерить .bin файл и залить через стлинк ютилити
>1986ВЕ92Q1 прям очень хочется попробовать, но полторашка за один лишь чип это для меня пока много
У тебя ошибка в предложении, полторашка за Cortex M3 с ХУЕВОЙ периферией это много
>Ты сделал erase chip? Ну если стлинк ютилити подключается, попробуй кубиде сгенерить .bin файл и залить через стлинк ютилити
Там надо делать .hex. но да, на этой мысли сегодня и остановился, когда решил посмотреть что может ютилити. Завтра поковыряюсь с кубе, на форуме нашел как делать экспорт в этом формате. Посплю - попробую.
А сейчас попробовал fill data в ютилити и она сработала. Только вот заполнила вообще все ячейки памяти. Хотя вроде можно и по адресу вносить, но сейчас слишком сонный для этого. Erase chip вернул всё к состоянию на скрине выше. где ASCII везде "я". Если это так, то ютилити это прям самый низкий уровень, через который можно заливать ассемблерный код. Но для этого нужно понимать как работает MCU со своей памятью. Типа порядка её об=хода и исполнения инструкций. >>556997-анон верно указал, что я читаю слишком мало мануалов.
>после хала не встанет ни одна либа
На него только ШИМ хотел всунуть и может ESP32 wifi модуль.
>смотри маркировку
её нет
>с ХУЕВОЙ периферией
А что есть хорошая? Для сравнения.
>поздравляю, у вас тыква
cope.webp
>Если это так, то ютилити это прям самый низкий уровень, через который можно заливать ассемблерный код.
Однако крепкая каша у тебя в голове. Открою тебе страшные тайны:
1) Исходники на ассемблере ты и так можешь использовать в своей студии, ничего дополнительно для этого делать не нужно. Более того в библиотеке у тебя и так используется один файлик на ассемблере.
2) Код на ассемблере точно так же компилируется в итоге в elf, а потом конвертируется в .hex при необходимости.
3) Когда ты нажимаешь в студии кнопку "прошить", то все исходники точно так же компилируется в .elf (или хекс, не важно) и потом прошивальщик из состава студии шьёт этот файл в микроконтроллер.
4) Если вдруг нужно отредактировать файл прошивки (а это вероятно потребуется в основном только если исходников не дали, а файл прошивки дали), то отредактировать можно далеко не только в ST-Link Utility. Более того вероятно придется начать с IDA Pro вместе с gdb или чего-то вроде того.
Таким образом ST-Link Utility ничем существенным не выделяется, за исключением графического интерфейса.
Я бы тебе посоветовал перед тем как хвататься за микроконтроллеры осилить какой-нибудь базовый курс по основам цифровых устройств. В вузиках раньше были всякие стенды на кр580, хорошая штука. После того как сделаешь для такого стенда что-то простенькое на машинных кодах (то есть сначала на листочке напишешь код на ассемблере и переведёшь в машинные коды руками по таблице), то явно такой глупости в голове, как у тебя, не будет уже.
А лучше возьми ардуину, так оно лучше для тебя будет.
>где ASCII везде "я"
>Если это так, то ютилити это прям самый низкий уровень, через который можно заливать ассемблерный код
>всунуть и может ESP32 wifi модуль.
>её нет
Просто иди нахуй отсюда тогда
Я полностью удваиваю анона >>557012 с советом почитать курс по цифровым устройствам и желательно по информатике
>fill data в ютилити и она сработала. Только вот заполнила вообще все ячейки памяти. Хотя вроде можно и по адресу вносить, но сейчас слишком сонный для этого. Erase chip вернул всё к состоянию на скрине выше
Поздравляю, ваш чип живой и программатор тоже
https://community.st.com/t5/stm32-mcus-boards-and-hardware/stlink-v2-clones-blocked-by-st-with-latest-fw-stmcubeide-1-10-1/td-p/134962
Вот та самая документация, о которой анон выше говорит. Вся поддержка тебе будет для, сюрприз, исключительно оригинальной продукции. Купил нонейм хуйню? Ну вот где купил, туда и обращайся, че ты доебался до интернета? Твои результаты ну, неудивительны. Stlink utility это старая штука и разумеется она будет работать с более старой прошивкой которая на твоем поделии китайского школьника из подвала, а вот новый cubeide уже тебя шлёт нахуй, в чём ты тут удивлен?
>её нет
Ещё раз. Ты хочешь сказать что вот ты как на прикрил снял крышку и у тебя на чипе ВООБЩЕ НИЧЕГО НЕ НАПИСАНО? Если так, то поздравляю, это можно выкинуть
>ESP32 wifi модуль.
Этот, сука, wifi модуль в ШЕСТНАДЦАТЬ раз быстрее твоей стмки, и это на одно ядро, а у него их два. И он прекрасно умеет сам делать весь твой шим, единственный крупный косяк там довольно кривой АЦП.
Проверь, что у тебя защита записи/чтения отключена в опциях чипа.
https://stackoverflow.com/a/63452828
По итогу:
1. Контроллер и чистится и шьется.
2. Программатор работает нормально. Не хватает только пина для обратной связи с МК. но я уже нашел видео где и как его припаивать.
3. Проблема была в софте (IDE) и видимо переход на всякий Open Source который не проверяет производителя МК и есть решением моей проблемы.
4. Хотя файл blink загрузился в память из hex, почему-то он не заработал. Возможно проблема в коде, возможно в настройках проекта. Возможно проёб в разметке памяти. Так или иначе, проблема с заливкой в память решена. Следовательно, если разберусь с кодом, то можно будет подключить светодиод к известному выводу, отмеченному на плате и проверить и правильность кода и правильность заливки.
текущий код https://pastebin.com/BzVuvcDv
5. Хоть это и костыль, но STUtility оказалась рабочим решением и документацию к ней есть резон изучить. В одном из видео говорилось, что если немного переделать cfg в STU то ей можно спокойно работать с разными МК и микросхемами памяти. Может это очень недооцененная программа.
>ST-Link Utility ничем существенным не выделяется-
Не ебёт мозг с лицензией, из-за которой мы тут и собрались. Думаю фурри-анон был прав и надо таки переходить на линукс.
>курс
Должен был у нас быть на 4 курсе универа, но читать его было некому, как и курс по антеннам. Через 2 года попробовал в группе универа спросить у студентов с кафедры литературу. но там все прилюдно хуй клали на книги в принципе. До мая вообще не надеялся что смогу вкатиться в цифру.
На ассемблере писал, даже МК61 программировал по книжечке, но это было давно. Сам ассемблер (для 8086) забросил потому что не понимал как его на практике применить, а писать калькуляторы или программу для передачи данных по RS232 надоело. Тем более у меня был лишь 1 ПК и программу было негде применять. Вот сейчас возвращаюсь к брошенным 10 лет назад делам. Так что за книги был бы признателен, а то ушел не дальше логических элементов и схем памяти.
В любом случае, спасибо поделился инфой. Хотя бы на шаг получилось продвинуться.
>>557047
Спасибо за мысль, но у меня даже чекбокс там не доступен. Видимо, такой функции у меня нет.
>>557027
>Просто иди нахуй отсюда тогда
Просто попробуй во что-то вкатиться полностью сам, имея минимальную базу и бюджет. Херу ли такая конченная реакция? да, мы на дваче, но не в /b же Не все же, блять, начинают с того, что у них есть друзья/знакомые/коллеги которые уже шарят и могут дать какую-то базу. Сам вкатывался в хобби, сам вкатывался в профессию, сам фиксил комплексы и вкатывался в отношения. Можешь попытаться вообразить, насколько мне похуй что кто-то в интернете мной не доволен.
>IDE жалуется что чип не оригинальный и не хочет его шить
>вся поддержка тебе будет для, сюрприз, исключительно оригинальной продукции
Бля, правда что-ли? Да ни за что бы не подумал... Даже тред на дваче не стал бы создавать, о том чем шить китайский клон.
>Этот, сука, wifi модуль
Документацию на который не читал, ибо В Н Е З А П Н О освоение STM было в приоритете и до его достижения меня не интересовал ни чип с гироскопом, ни платка с wifi.
> в ШЕСТНАДЦАТЬ раз быстрее
Да хоть в 144. Даже если так, можно STM использовать как его расширение на I/O. Причин для бугурта не вижу.
>в чём ты тут удивлен
В том что ты такой умный нихуя не читал, что я писал выше и не заметил, что весь акцент изначально был на проблему с IDE, а не с железом.
>че ты доебался до интернета?
Из нас двоих доебался тут только ты. Я бы понял если бы был инженером на 250к/мес в твоей конторе, но я блять ноунейм из интернета который пытается научиться работать с тем что есть в данный момент, а не где-то в прекрасном далёко. Ах ебать какая неожиданность получилась, когда вместо оригинального дискавери борда на блюдечке с голуюой каёмочкой мне удалось купить лишь дешевый мк и дешевый программатор. Кто-бы блять мог подумать, что аноны могут жить вне тепличных условий, без менторов, йоба-бюджета и шаблонных решений. Никто тебя блять не обязывает тут писать, ты сам пытаешься накормить свою гордыню и самоутвердится на буковках в сети. Не нравится - уёбывай, не трави нервы ни себе ни остальным.
По итогу:
1. Контроллер и чистится и шьется.
2. Программатор работает нормально. Не хватает только пина для обратной связи с МК. но я уже нашел видео где и как его припаивать.
3. Проблема была в софте (IDE) и видимо переход на всякий Open Source который не проверяет производителя МК и есть решением моей проблемы.
4. Хотя файл blink загрузился в память из hex, почему-то он не заработал. Возможно проблема в коде, возможно в настройках проекта. Возможно проёб в разметке памяти. Так или иначе, проблема с заливкой в память решена. Следовательно, если разберусь с кодом, то можно будет подключить светодиод к известному выводу, отмеченному на плате и проверить и правильность кода и правильность заливки.
текущий код https://pastebin.com/BzVuvcDv
5. Хоть это и костыль, но STUtility оказалась рабочим решением и документацию к ней есть резон изучить. В одном из видео говорилось, что если немного переделать cfg в STU то ей можно спокойно работать с разными МК и микросхемами памяти. Может это очень недооцененная программа.
>ST-Link Utility ничем существенным не выделяется-
Не ебёт мозг с лицензией, из-за которой мы тут и собрались. Думаю фурри-анон был прав и надо таки переходить на линукс.
>курс
Должен был у нас быть на 4 курсе универа, но читать его было некому, как и курс по антеннам. Через 2 года попробовал в группе универа спросить у студентов с кафедры литературу. но там все прилюдно хуй клали на книги в принципе. До мая вообще не надеялся что смогу вкатиться в цифру.
На ассемблере писал, даже МК61 программировал по книжечке, но это было давно. Сам ассемблер (для 8086) забросил потому что не понимал как его на практике применить, а писать калькуляторы или программу для передачи данных по RS232 надоело. Тем более у меня был лишь 1 ПК и программу было негде применять. Вот сейчас возвращаюсь к брошенным 10 лет назад делам. Так что за книги был бы признателен, а то ушел не дальше логических элементов и схем памяти.
В любом случае, спасибо поделился инфой. Хотя бы на шаг получилось продвинуться.
>>557047
Спасибо за мысль, но у меня даже чекбокс там не доступен. Видимо, такой функции у меня нет.
>>557027
>Просто иди нахуй отсюда тогда
Просто попробуй во что-то вкатиться полностью сам, имея минимальную базу и бюджет. Херу ли такая конченная реакция? да, мы на дваче, но не в /b же Не все же, блять, начинают с того, что у них есть друзья/знакомые/коллеги которые уже шарят и могут дать какую-то базу. Сам вкатывался в хобби, сам вкатывался в профессию, сам фиксил комплексы и вкатывался в отношения. Можешь попытаться вообразить, насколько мне похуй что кто-то в интернете мной не доволен.
>IDE жалуется что чип не оригинальный и не хочет его шить
>вся поддержка тебе будет для, сюрприз, исключительно оригинальной продукции
Бля, правда что-ли? Да ни за что бы не подумал... Даже тред на дваче не стал бы создавать, о том чем шить китайский клон.
>Этот, сука, wifi модуль
Документацию на который не читал, ибо В Н Е З А П Н О освоение STM было в приоритете и до его достижения меня не интересовал ни чип с гироскопом, ни платка с wifi.
> в ШЕСТНАДЦАТЬ раз быстрее
Да хоть в 144. Даже если так, можно STM использовать как его расширение на I/O. Причин для бугурта не вижу.
>в чём ты тут удивлен
В том что ты такой умный нихуя не читал, что я писал выше и не заметил, что весь акцент изначально был на проблему с IDE, а не с железом.
>че ты доебался до интернета?
Из нас двоих доебался тут только ты. Я бы понял если бы был инженером на 250к/мес в твоей конторе, но я блять ноунейм из интернета который пытается научиться работать с тем что есть в данный момент, а не где-то в прекрасном далёко. Ах ебать какая неожиданность получилась, когда вместо оригинального дискавери борда на блюдечке с голуюой каёмочкой мне удалось купить лишь дешевый мк и дешевый программатор. Кто-бы блять мог подумать, что аноны могут жить вне тепличных условий, без менторов, йоба-бюджета и шаблонных решений. Никто тебя блять не обязывает тут писать, ты сам пытаешься накормить свою гордыню и самоутвердится на буковках в сети. Не нравится - уёбывай, не трави нервы ни себе ни остальным.
P.S.
Перекинул джампер на BOOT-GND вместо BOOT-3V3 - всё заработало.
Вывод: похуй в чём писать, главное понять структуру кода и железку. Всё остальное вторично.
>Просто попробуй во что-то вкатиться полностью сам, имея минимальную базу и бюджет
Я тебе выше скинул минимальный бюджет здорового человека, покупай G431, 200 рублей это не деньги. А с этим f030 ты очень наебешься из-за малой памяти, я знаю о чем говорю я накупил их 5 штук пока они были по 80 рублей штука и теперь не знаю че с ними делать, потому что на HAL в них ниче не влезает
А минимальную базу - ну вам в ардуинотред
>В Н Е З А П Н О освоение STM было в приоритете и до его достижения меня не интересовал ни чип с гироскопом, ни платка с wifi
Че вы там собрались осваивать, вкатуны? Стм32 принципиально не отличается ничем от других контроллеров, да хоть в NXP, хоть в миландр вкатывайся, разницы никакой. Esp32 тебе знать очень полезно потому что это невъебенно жирный микроконтроллер для нереалтайма за ВСЕГО 200 рублей
>Проблема была в софте (IDE) и видимо переход на всякий Open Source который не проверяет производителя МК и есть решением моей проблемы.
>и дешевый программатор. Кто-бы блять мог подумать, что аноны могут жить вне тепличных условий, без менторов, йоба-бюджета и шаблонных решений
Примерно вся суть треда в тулзах от стм. Ты можешь ими не пользоваться, а пользоваться опенсорсом или чем-то другим, но тогда у тебя не будет вообще никакой разницы с мк любого другого производителя. Куб позволяет очень удобно планировать будущую плату, кубиде это более-менее удобное иде всё в одном, кубмонитор позволяет в реальном времени не просто читать переменные в дебаги а строить графики по ним, писать в переменные, использовать всякие разные формы ввода, почти как в LabVIEW... ну ты понял суть. И да, опенсорс с твоими не stm32 поможет тебе ровно до того момента как ты наткнешься на клоны у которых регистры не совпадут с оригиналом!
>>557102
А, ну всё ещё проще - у вас не работал програмный ресет
> из-за малой памяти
В крайнем случае можно использовать как эдакую плату расширения. А вообще, мне кажется это неплохая штука для носимых устройств. Тонометр там, пульсометр и прочее в таком духе. Плюс на cortex-m0 есть гайд по ассемблеру, а ещё вроде gcc может давать асм-код, после компиляции.
>А минимальную базу - ну вам в ардуинотред
В универе дали помигать дискавери, но с тех пор или не было денег или не было возможности её заказать. Только в этом году звёзды сошлись. В марте о таком даже не мечтал.
>но тогда у тебя не будет вообще никакой разницы с мк любого другого производителя.
Я только ЗА. Ещё бы не было ебли с IDE и программатаром - была бы почти сказка.
>регистры не совпадут с оригиналом
Даже если так, hex editor скачал, можно будет поковыряться в одном. С работающим МК такое было бы жалко делать.
>жирный микроконтроллер для нереалтайма за ВСЕГО 200 рублей
У нас он по 250, в магазинчике, но это всё равно очень доступно. как одна шавуха с сыром Я вообще его взял взамен wifi модуля который у них кончился. Жалеть не о чем. Но насчёт реалтайма вопрос. ESP WEMOS D1 mini ведь потянет БПФ с двух каналов АЦП? А сравнение фаз по N семплов за указанный промежуток.Частота звука в пределах 400-1600Гц.
>ну ты понял суть.
Да, но пока у меня не тот уровень навыка, чтоб оценить это в полной мере.
Теперь можно на месяц уходить в работу с документацией и тесты. А ещё с CMOS-TTL и IGBT и линуксом разбираться.
>В крайнем случае можно использовать как эдакую плату расширения. А вообще, мне кажется это неплохая штука для носимых устройств. Тонометр там, пульсометр и прочее в таком духе
Что ты там расширять собрался 9 свободными пинами, наркоман? Вот тебе результат единственного #include "vl53l0x_api.h" в этой хуйне и это с -O3, без него оно вообще не влезает. И корпус тут слишком большой для носимых устройств, для носимых тебе нужен как минимум QFN, а лучше BGA
>Я только ЗА. Ещё бы не было ебли с IDE и программатаром - была бы почти сказка.
Лол, это взаимоисключающие вещи
>ESP32 ведь потянет БПФ с двух каналов АЦП? А сравнение фаз по N семплов за указанный промежуток.Частота звука в пределах 400-1600Гц.
Как нехуй делать потянет, у тебя два ядра на 240 МГц, даже без ЦОС инструкций это будет работать ещё и времени останется. Cortex M4F для сравнения вообще тянет вместе бпф и обпф в реалтайме на 2.1 мвыб/с с частотой ядра в 220 МГц.
> WEMOS D1 mini
Нет, выкинь бяку. 8266 - неподдерживаемая хуйня с эрратой длиннее чем юзер мануал
>результат единственного #include "vl53l0x_api.h"
Судя по нише и SRAM - МК делался с упором на дешевизну и низкое энергопотребление. На ютубе есть видео, как он, пусть и медленно, но тянет экранчик мобильного телефона, на библиотеке HAL. Перед загрузкой автор видео эту библиотеку резал и убирал ненужное, которого там было много. Конечно хорошо, когда библиотека сама за тебя проверяет и перепроверяет железо, а то вдруг ты F407 с F030 перепутал, но при работе с минимальным объемом памяти - дис из нот да уэй.
Поэтому вопрос такой - какие ещё есть либы для STM32 кроме HAL, Low Level, CMSIS и Lipopencm. Wiki предлагает вот это:
Варианты с джавой и питоном оставим для тех, кому нужно 32Гб DDR5 чтоб посмотреть видосик на ютубе.
Ну или какая из этих либ самая легковесная?
Алсо, вроде можно вообще обойтись без HALа, если код напрямую будет работать с регистрами в памяти. Верно ли это утверждение? Если так, то можно часть кода написать на Си, часть на ассемблере.
>Как нехуй делать потянет
А как можно посмотреть или определить потянет ли? С БПФ имел дело только на бумажке и я ебал этот ебучий матан и как отвратно его у нас преподавали, биомусор вместо кафедры был
>ЦОС инструкций
Имеются ввиду какие-то вшитые возможности МК или импорт из библиотек?
>8266 - неподдерживаемая хуйня с эрратой длиннее чем юзер мануал
А теперь подробней, пожалуйста. Что не так с этим чипом? Я же не хочу на нём видюху собрать на LGBTDDR999.
Мне нужно сделать интерфейс между MPU-92 и ПК. Может не самый быстрый, но лишь бы работал. А новое железо будет по мере усложнения задачи.
Нашел видео где чел за 30 минут объясняет как работать с регистрами и мигать диодом без HAL. Он просто ебашит всё на Си и в самом начале удаляет из main весь ненужный мусор. По сути, это именно то, о чем я задумывался в прошлом посте. Референс мануал и даташит. Именно те два документа из которых я делал выписки последние дни. CyberБалдёж!
Но у него оригинальная плата или догайкозакрутный STM Cube, поэтому он может прям в Cube в режиме дебага задавать начальные параметры определенным регистрам, ещё до прошивки. А чем ещё можно такое делать? В линуксе или винде.
>Мне нужно сделать интерфейс между MPU-92 и ПК. Может не самый быстрый, но лишь бы работал.
Это ты про MPU-9250? В таком случае ты похоже изобретаешь велосипед.
Если бы там был UART на выходе, то ты точно так же делал бы все это на стм32? Вряд ли, надеюсь что ты взял бы что-то вроде cp2102.
Так и тут зачем нужно что-то принципиально другое? В линуксе вообще в ядре есть i2c и драйвера некоторые.
Собственно рекомендую https://github.com/harbaum/I2C-Tiny-USB драйвер этого в линукс включен уже очень давно. И по виндой оно тоже будет работать. Так нахрена изобретать велосипед, только ещё кривой?
>Так нахрена изобретать велосипед, только ещё кривой?
TrackIR дорогой пизда. Дешевле закрепить гирик на наушники и откалибровать.
И ещё преимущества i2c-tiny-usb в том что даже паять ничего не нужно, можно просто usbasp перепрошить. И ещё оно дешевле.
>Конечно хорошо, когда библиотека сама за тебя проверяет и перепроверяет железо, а то вдруг ты F407 с F030 перепутал, но при работе с минимальным объемом памяти - дис из нот да уэй
Это делает компилятор и на размер библиотеки не влияет
>Поэтому вопрос такой - какие ещё есть либы для STM32 кроме HAL, Low Level, CMSIS и Lipopencm
Arduino.h, азаза
>Ну или какая из этих либ самая легковесная?
Очевидно что LL. И да, эти либы, если что, не альтенративные. HAL и LL да, а CMSIS это другая вещь
>Алсо, вроде можно вообще обойтись без HALа, если код напрямую будет работать с регистрами в памяти
Блядь, очевидно что можно, разрешаю. Берешь, открываешь юзер мануал и читаешь 10к регистров. Пиши че влезет, че ты с такими идиотскими вопросами пришёл?
>А как можно посмотреть или определить потянет ли?
Ты берешь и гуглишь апноуты производителя. А ой, у нас есп, у нас там такого нет. Тогда ты определяешь это взяв сам алгоритм и посчитав сколько примерно какие инструкции тактов должны занять и их количество... а ой, у тебя нет документации на набор инструкций, вдобавок к этому всё зависит от того в какой памяти лежит код! Не найдя ответа мы снова проверям всё экспериментально
>Имеются ввиду какие-то вшитые возможности МК или импорт из библиотек?
С такими вопросами ты идешь учить основы цифровых устройств и микропроцессоров
>А теперь подробней, пожалуйста.
https://www.oreilly.com/catalog/errataunconfirmed.csp?isbn=0636920053033
Наслаждайся
>Мне нужно сделать интерфейс между MPU-92 и ПК. Может не самый быстрый, но лишь бы работал
А причем тут блядь ESP8266? Ты понимаешь что у тебя в ПК есть исключительно 3 интерфейса для подключения не специализированной периферии? USB, Ethernet и PCI-E. Ты видишь хоть одно из них в ESP8266?
>>557577
>Если бы там был UART на выходе
У него там SPI. В линуксе конечно есть i2c и spi, вот только они не выведены нигде почти. Рабочие есть точно на официальной малине и возможно на оранже. Так что тут вместо веслосипедов анону остается брать только FT232H, азаза
>Конечно хорошо, когда библиотека сама за тебя проверяет и перепроверяет железо, а то вдруг ты F407 с F030 перепутал, но при работе с минимальным объемом памяти - дис из нот да уэй
Это делает компилятор и на размер библиотеки не влияет
>Поэтому вопрос такой - какие ещё есть либы для STM32 кроме HAL, Low Level, CMSIS и Lipopencm
Arduino.h, азаза
>Ну или какая из этих либ самая легковесная?
Очевидно что LL. И да, эти либы, если что, не альтенративные. HAL и LL да, а CMSIS это другая вещь
>Алсо, вроде можно вообще обойтись без HALа, если код напрямую будет работать с регистрами в памяти
Блядь, очевидно что можно, разрешаю. Берешь, открываешь юзер мануал и читаешь 10к регистров. Пиши че влезет, че ты с такими идиотскими вопросами пришёл?
>А как можно посмотреть или определить потянет ли?
Ты берешь и гуглишь апноуты производителя. А ой, у нас есп, у нас там такого нет. Тогда ты определяешь это взяв сам алгоритм и посчитав сколько примерно какие инструкции тактов должны занять и их количество... а ой, у тебя нет документации на набор инструкций, вдобавок к этому всё зависит от того в какой памяти лежит код! Не найдя ответа мы снова проверям всё экспериментально
>Имеются ввиду какие-то вшитые возможности МК или импорт из библиотек?
С такими вопросами ты идешь учить основы цифровых устройств и микропроцессоров
>А теперь подробней, пожалуйста.
https://www.oreilly.com/catalog/errataunconfirmed.csp?isbn=0636920053033
Наслаждайся
>Мне нужно сделать интерфейс между MPU-92 и ПК. Может не самый быстрый, но лишь бы работал
А причем тут блядь ESP8266? Ты понимаешь что у тебя в ПК есть исключительно 3 интерфейса для подключения не специализированной периферии? USB, Ethernet и PCI-E. Ты видишь хоть одно из них в ESP8266?
>>557577
>Если бы там был UART на выходе
У него там SPI. В линуксе конечно есть i2c и spi, вот только они не выведены нигде почти. Рабочие есть точно на официальной малине и возможно на оранже. Так что тут вместо веслосипедов анону остается брать только FT232H, азаза
>https://www.oreilly.com/catalog/errataunconfirmed.csp?isbn=0636920053033
Бля, ваще не та ссылка, короче просто гугли баги у esp8266. Можешь погуглить тикеты на гитхабе у IDF и arduino core
>У него там SPI.
Оно что по i2c работает, что по spi.
>Так что тут вместо веслосипедов анону остается брать только FT232H, азаза
Может быть. Но похоже там есть некоторые сложности с использованием i2c в линуксе. Я же предлагаю использовать i2c-tiny-usb, которое хоть и велосипедное, но зато уже изобретено. Да ещё есть пример под винду.
На мой взгляд для подобных штук usbasp подходит очень хорошо, я на нем таким образом сделал открывание/закрывание заслонки с управлением от компа на игрушечном серводвигателе. А для задачи анона и вовсе есть готовая прошивка.
>>553974
Я пришёл рассказать про мк CH32V.
Это даже не клон STM, хотя позиционируется как клон STM32F103C8T6. Это ублюдок risc-v вместо ARM Cortex-M.
Но т.к. отдельного треда risc-v не нашёл, то пишу сюда.
На фото конкретно CH32V203C8T6 Blue Pill + от WCH (она же wch.cn, она же Nanjing Qinheng Microelectronics).
Но при попытке загуглить это вы нифига не найдёте. Вместо CH32V гугл выдаёт STM CH32F103C8T6 Blue Pill +.
На сайте WeAct Студия (промо сайт WCH) https://www.weact-tc.cn/2020/02/06/Products/ нет CH32V203 и как раз предлагается STM32F103C8 вместо БлюПилл+.
На гитхабе https://github.com/WeActStudio/BluePill-Plus тоже нет CH32V.
В какой-то момент у меня даже закралось подозрение, что это даже не клон, а клон клона из неизвестного китайского подвала.
Но в каталоге Nanjing Qinheng Microelectronics этот мк присутствует https://www.wch-ic.com/products/CH32V203.html и даже предлагается загрузка утилиты пршивки, драйвер и купить програматор.
Итак что не так с CH32V203C8T6 Blue Pill + ?
Да всё так. Пины практически совпадают с STM32F103C8T6.
Этот ублюдок прекрасно программируется в Arduino IDE (на гитхабе есть два варианта Arduino Core для этого мк), прошивается через USB без всяких программаторов утилитой WCHISPTool, мигает светодиодом.
А так же предлагаются программироваь в других IDE, например MounRiver и PlatformIO.
Особый повод для гордости: за полчаса разобрался как мигать светодиодом в отличие от этих пориджей https://github.com/openwch/arduino_core_ch32/issues/13 , у которых ушли недели на это.
А тебе прям принципиально надо на STM32?
Вот например LGT8F328P - толерантный к 5 вольт risc-v клон ардуины. На картинке LGT8F328P Pro Mini. Ещё есть варианты с USB, например Pro Nano.
Там же написано:
>Владение лабораторным оборудованием (осцилограф, тестер)
У тебя есть оцилограф и тестер?
Ну тогда осталось получить "аналогичный опыт от 2-х лет" и можно высылать резюме.
>А опыт откуда ?
На мой взгляд опыт не столь важен. При устройстве на работу основное решение принимает будущий непосредственный начальник, а тому как правило важно только то что ты умеешь. Ведь многие и с опытом работы на деле нихуя не умеют. Но резюме отбирают в отделе кадров (HR), а они там смотрят на ключевые слова, которые у тебя должны быть правильные.
>Вышки тоже нет кста
Это намного хуже отсутствия опыта работы, как на мой взгляд. А то бы даже ничего не умея мог пойти в НИИ проектировать хуи.
Ну короче с опытом напиздеть можно немного, да ?
После диплома с нептуаколледжа наверно не смогу сразу на вышку поступить, надо будет срочку отгулять.
Опыт, с т.з. отдела кадров, это стаж работы по такой или схожей специальности. Он измеряется в единицах времени. Данные об этом хранятся в трудовой книжке.
И что там у тебя с выполненными проектами?
Проектов готовых тоже нет. Чучут ацп по spi подключал, немного с uart приседал. В cmsis прикольно былодолгая мастурбация, но сейчас лучше в hal наверно
Угу, сижу дрочу как тупой задротский долбаеб на любимый михрокантролир на линухси )))))))))
Меня волнует только его периферия и ресурсы, чел.
Какая скорость у SPI, сколько памяти, есть ли i2s, какой ацп, мешает ли это все друг дружке. Расположение и количество пинов, чтобы можно было подогнать под пердуину.
И наличие готового пердуино-ядра, конечно. Пердолить самому желания нет (хотя некоторый опыт имеется).
Вон в новой пердуине ренесас вроде юзают, он тоже 5в-толерантный.
>TXS0108E
Бери RS0108YQ20 он дешевле раза в 4
>>560371
>Вон в новой пердуине ренесас вроде юзают, он тоже 5в-толерантный.
Нахуя тебе нужны там 5В? Если очень надо, то делаешь Open-Drain с толерантными к 5В пинами у стмки. В остальном я не помню ходовой периферии к ардуине которой требуется прям 5В логических уровней
Много слов в твоём ответе, а конкретика не ясна. Так чем тебя не устраивает этот LGBT клон ардуины?
Сап, STMач! Нужен Arduino с LCD в корпусе на DIN-рейку, типа как на пикриле. Как и где теперь такое приобрести с учётом сосанкций? Или остался один выход: колхозить самостоятельно?
Спасибо, анон! А куда там лучше мой вопрос задать: даунам с ЛГБТ подсветкой корпуса на фоне обоев, видевших СССР, или дегенератам, которые не могут отъебнувший по причине утечки хладагента кондиционер продиагностировать?
Создашь тред со своим вопросом. Потом сам же на него отвечаешь.
>даунам
>или дегенератам
Ты будешь — звездой, делающей шоу. Они массовкой.
Так задача не косплеить вниманиеблядь, а просто купить девайс за условные 30 евро для установки в щиток своего скотоблока. Девайса, которого теперь хуй купишь тут, потому что что-то случилось, а пиздоглазые похожего ещё не делают. Платить "соотечественникам" 250 долларов за подобное поделие не хочется, потому что они твари, скоты и пидарасы тиски нищеты
>А задачи-то какие?
Свет 4 реле
Вентиляция 1 реле
Контроллер замка (вроде, 1 реле, не помню уже)
Дверной звонок (вход с кнопки и выход на динамик)
Вход для резистивных кнопок-выключателей
Радиоприёмник 433MHz
Ну и на LCD вывод какой-нибудь нахуй ненужной информации, типа напряжения в сети, аптайм, состояние реле и т.д.
Короче, +- типовая хуйня для одноотсечного скотоблока
На твоих пикрилах просто печатные платы с крепежом DIN. У меня, примерно, щас так и есть, только разыми платами сделано и вокруг макароны проводов, причём силовых в перемешку со слаботочкой. Основная проблема в том, что хочется законченного устройства с корпусом, LCD и кнопащкаме, как на моём пикриле, потому щиток маленький по габаритам. Другая проблема в том, что один колхоз, который сейчас переделывать на другой колхоз не хочется. И не хочется что-то делать руками. кроме сборки на винтовые стойки и пайки проводов между готовыми палатами
Спасибо, анон! Посмотрел всё, что есть в разделе ESP32 HOME AUTOMATION, но к сожалению, почти всё без законченного корпуса и всё без LCD. Похожего модульного, как на пикрил нету...
>ПР200 от гОвен
Благодарю, анон! Тут да, но нет. Насколько я понял, оно закрыто и уже закончено в аппаратном плане, внутрь на оловянных соплях ничего не добавить, программный продукт закрытый и у него своя среда программирования. В стоке только 4 реле, т.е. в моём случае нужен будет модуль расширения. А вот, что у них есть ПР100 по 8 рублей, буду знать, возможно, что пригодится для более других проектов, когда сименсы и мицубиси отъебнут
Ну ты рассмотри эти платы, как основу электронной части, а корпус напечатай, например.
Те входы и выходы, которые ты перечислил, как раз там есть, в т.ч. опторазвязанные.
>а корпус напечатай, например
Нету принтера. Но хуже, что нет желания этой ебли с рисованием в Sketchup и печатью, особенно после прочтения "3D-принтеров и печати тред #27". Там некоторые посты для меня вообще шизофазия, где слова я по отдельности понимаю, а смысл сказанного - нет, наверное потому что максимум работы с пластиком - треснутый PP+E/P бампер запаять, а всё, что мельче - нахуй.
Я так и понял уже, что если нет возможности заказа этого готового куска говна из Гейропы, то в задаче не обойтись без колхоза, поэтому закажу одну такую плату и попробую её засунуть в типовой DIN корпус из Чип-и-Дипа, по габаритам, вроде, всё сходится. Ну а дальше приколхожу индикатор с кнопками в верхнюю часть. Ещё раз благодарю, за помощь, анон!
Ищу среду разработки с удобным интерфейсом и возможностью настройки. Ардуино и Мбед не подходят.
Тебе говорят не про среду разработки, а про программное окружение, апи. Ардуино здесь идеально: куча уже готовых библиотек, зачастую кроссплатформенных из-за единого базового фреймворка wiring. Ясное дело, что в серьезных вещах наивные абстракции пердуинщиков типа дрыганья пинами слабоваты, но, знаешь ли, в вопросах "качества" и "профессиональности" фреймворков чья б корова мычала, но не HALа.
Оп, для всех мк на основе ядра cortex-m и -a давно запилили cmsis в который входят в том числе и драйверы почти под все. Если хочется писать свой код и переносить его потом между чипами без рака жопы, можно пользоваться. А вообще в ардуине фич поменьше и поддерживаются они похуже, вот и разное количество всяких функций-хуюнкций
>cmsis
>RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
>FDGTRGHJSDDQWQEQWE->TRUYFHGFGDTREt |= RECXV_ertRETERT_SDFRTRETWSFSDGFD & (1 << TRYTRGDFG_RETER_RET);
Как же сук удобно-то! Реально заменяет пердуино, ведь мне же в каждой записульке обязательно запускать миллион дма трансферов и клоками жонглировать, иначе другие задроты ебаные скажут НЕ ТРУ !!!!!!!!!!!!!!!!! Спасибо, анончик.
А зачем [х+[m16]]? Типа база в памяти, а Х это смещение? Ебать полезно, буду сидеть и сканировать массивы.
То есть по факту полезен только прямой вызов и косвенный через Х или Y, все остальное нахуй не нужно.
Вызовы со смещением очень навязчиво возникают как необходимость при реализации любого конпелятора, для работы со структурами и стек фреймом
Вызов со смещением точки входа в процедуру? Что-то слабо верится. А речь именно о ней, а не о выборке адреса процедуры из структуры.
Разве что таблицу переходов делать, наподобие таблицы прерываний.
Я пооолный нуль в этом вашем стм. Вот полнейший просто. Когда смотрю на микросхему стм - в голове ничего кроме "это микроконтроллер" - не счёлкает. Вот настолько ноль. И никогда, с любыми микро-контролллерами, дела не имел и не планировал.
Но тут под руку попалась одна платка (пикрелейтед). На ней, как я понял, сам стм контроллер и модем(?) со слотом сим-карты. + антенка. Плюс есть микроусб порт. Плюс отходят две косички 6 и 5 проводные.
Короче, что с этим можно сделать в принципе? Это можно как то использовать для своих нужд (не обязательно с модемом)? Или эти штуки вообще повторно не прошиваемые? Я могу, условно говоря поморгать диодом, поклацать реле? На что эта штука вообще способна? Я напонимаю, что очень далёк от этого всего.
Подлючил платку к повербанку - замигал зеленый диод на плате, потом, секунды через 2 загорелся красный рядом. Зеленый продолжает неперывно, не быстро мигать. Если это вообще о чём то говорит.
Я могу эту шляпу как то подлючить к ПК и что-то там читать писать? Если не смогу читать, смогу ли стирать и писать или уже всё? Я слышал некоторые контроллеры залочены.
Расскажи, аноний, ВКРАЦИИ, что это за зверь. И стоит вообще вникать в него. Досталось на халяву.
Всё можно, ищи на плате и в даташите ноги swdio swdclk или tx, rx. Первый это интерфейс swd, который шьётся через stlink, который нужно заказать на АлиЭкспресс за 2$. Второй это uart1 через который тоже можно прошить через переходник usb-uart который тоже нужно заказать на АлиЭкспресс, и стоит он столько же. Второй интерфейс стандартный, он есть везде, он возник из rs232 который был в старых компах в виде com порта, а swd это интерфейс прошивки и отладки от ARM контроллеров, а stlink это его реализация конкретно для stm32.
Этот контроллер стоит тоже где-то 2$, к слову. Плата дороже. Научишься прошивать, зальешь Micropython, и сможешь делать все что угодно.
Спасибо. Обнадеживает. Т.е можно не выбрасывать!
Ещё тупой вопрос: что угодно, это например на дисплее древней авто-магнитолы с помойки написать двач-радач бегущей строкой можно?
Хотя у тебя connectivity line, его можно прошить напрямую через USB. Так ищи кнопку или линию boot, зажимай, подключай с зажатой кнопкой к usb и прошивай через dfu режим. Dfu прогу гугли.
Вызванивай куда boot0 ведёт, и ставь кнопку между ним и плюсом. И между reset и землей тоже можешь поставить кнопку для удобства, чтобы питание не дергать. Когда сделаешь, подключайся к компу с зажатым boot0, как определит новое устройство dfu, можно двигаться дальше.
Возможно нужно будет ещё pb2 на землю подтянуть, он играет роль boot1. Всё это подробно описано в AN2660.
Не зная конкретно, что за дисплей, ничего сказать нельзя.
Тысяча благодарносте, аноний! Начну потихоньку ковырять как время освободится.
Ну можно мигать светодиодом без кода вообще, чисто инициализировать таймер в OC режим.
Чип откуда-то выпаял, может из магнитолы, думал просто жирный арм какой-нибудь.
ctrl f по нужному register name мб
Ахтыжебаныйтынахуй! Мало им талмуда в 600 страниц, еще и даташит отдельный сделали.
Короче купил его с озона. Возможно тоже подделка но работает, отладка тоже. Пока не снял галку с ST-Link S/N не работало.
Я и ставил эту галку и снимал ему пох. У меня как все происходит: покупаю чип или синюю таблетку на азоне/али и все работает через куб, но стоит мне включить любой таймер так все. Куб перестает его видеть, и приходится шить програмером
Я гик без компа, всё с мобилы шью, отладка мне даже не снится. Но ища варианты которыми можно шить из под Андроида, я купил с Али дев плату с stm32 клоном и прошитым daplink. Это 3 в одном: программатор через mass storage (наподобие как у RP PICO), отладчик и UART адаптер. Лежит в качестве запасного варианта, шью самодельными скриптами из под Micropython.
В общем, загугли daplink, может понравится.
https://www.st.com/content/st_com/en/campaigns/st67w-wifi6-bluetooth-thread-module-z13.html