...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)
-
- По идее, пока вариантов всего два. Может проверять записалось или нет ? Если нет, то делать вторым способом - De_user(06.04.2026 08:21)
- Ставлю на очепятку. Toчкa oпopы(289 знак., 04.04.2026 16:53)
- Наткнулся у себя в файлах (Atmel-8271H-AVR- ATmega-Datasheet_08/2014) Dingo(1 знак., 04.04.2026 20:12, картинка)
- Вероятно да, но зачем?? там же копипастили атмеловскеие доки, а не
писали заново, как так получилось? Мелкое вредительство бывшим
конкурентам? - Adept(04.04.2026 17:40)
- Может быть. На Атмегу328РВ тоже дока кривая. Регистра ACSRB (который у РВ дополнительный, управления компаратора, включает выход АСО на
внешний пин) в описании вобше НЕТ!!! Как он работает. удалось
понять. ковыряя неадеры компилятора IAR AVR. Или вот, полюбуйтесь
на фузы, екстендед и хай байты: vpv.vpv(205 знак., 06.04.2026 06:44, картинка)
- Кстати, доступ к 16-битным регистрам у Атмеги328РВ тоже кривой (в
ПДФ). Как они документацию писали. в пьяном виде, что ли? vpv.vpv(60 знак., 06.04.2026 06:54, картинка)
- В принципе, щас смысл в новых поделиях на АВРах отсутствует.
Китайцкие 32р поделия, вполне себе рабочие. По цэне,
привлекательные. По инструментарию, не уступают. Пора закопать
стюардессу. Поддержка старых прожэктов никуда не денется, ессно. А
в новых применять АВР, смысла не вижу. - mse homjak(06.04.2026 10:43)
- Всё зависит от проектов и от конкретных, практических задач. Калькулятор можно сделать на всём. На AVR, на STM32, на CH32V. Разные там RTOS - то же на всём. Семафоры, поставка задачи, приоритеты. - vpv.vpv(07.04.2026 06:53)
- Меги достаточно неубиваемые, весьма широкий диапазон напряжения
питания, высокая нагрузочная способность портов, существенно
меньшее потребление в режимах Sleep и PD (по сравнению например с
STM32). - Ralex(06.04.2026 12:28)
- Добавлю - архитектура AVR проста, как табуретка, не перегружена
всеми этими тактировниями, конвейеризациями, и пр. Сбросить выход -
команда CBI, это 1 такт, или 50нс при 20МГц. - vpv.vpv(07.04.2026 07:06)
- Ещё проще - это PIC16, и клон его затолкали сопроцессором в CH32X035 ( и в др. ) - PIOC называется, 48МГц - 1 такт команды, жаль только что 2 i/o, но тоже вариант интересный - Zikon(10.04.2026 09:00)
- PY32F0xx например имеет тоже FastIO и на частоте 24МГц переключает выход за 1 такт - и при этом работает при 1.7-5.5В. AVR какое питание надо для 20МГц ? - Zikon(07.04.2026 07:26)
- сейчас Cortex-M тоже так умеет, FastIO называется, и даже stm32c011
имеет кэш инструкций и на частоте 48МГц за 1 такт переключает
выход, с учетом работы flash на 24МГц, а на частоте 24МГц многие
китайские клоны также за 1 такт переключают выход. - Zikon(07.04.2026 07:23)
- А при влёте в прерывание нужные команды точно уже будут в кэше
инструкций? Дело в том, что сбросить выход - это не всё. Выход надо
быстро сбрасывать по какому-то волЯтильному внешнему событию. Т.е.
по прерыванию. И замерять работу всей цепочки, например: "сработал
компаратор - отключился выход". - vpv.vpv(08.04.2026 06:57)
- На AVR я такое делал в пре-прологе, до сохранения контекста. Просто
ставил инструкцию сброса бита в атрибут пре-пролога (avr-gcc).
Конечно, с кэшем - как повезёт, скорее нет, чем да. Но зато
максимально быстро. Nikolay_Po(422 знак., 08.04.2026 11:00)
- Разве naked в GCC RISK-V - не завезли? Вроде, klen его пользует: - Toчкa oпopы(1 знак., 08.04.2026 16:37, ссылка)
- И чего? Мне потом ручками в ассемблере разбираться, как контекст
сохранить, что сохранять, а что нет? Хватит с меня и FreeRTOS с его
кодом переключения контекста. - Nikolay_Po(08.04.2026 18:11)
- Значит я не так понял. - Toчкa oпopы(08.04.2026 22:08)
- Идея была в том, чтобы сделать быстрое действие (например,
отключение драйвера ключей) сразу по входу в прерывание, не
дожидаясь проталкивания в стек предыдущего контекста. Nikolay_Po(247 знак., 09.04.2026 08:32)
- Я использую IAR VAR, он сам всё ненужное удаляет. Если видит, что
флаги и регистры не меняются, то и никакого пролога в прерывании не
будет. Вот, например: vpv.vpv(394 знак., 09.04.2026 11:15 - 11:18)
- IAR в этом плане вообще продвинут. - Звepoящep(20.04.2026 08:10)
- Зачётно! - Nikolay_Po(09.04.2026 11:17)
- Теперь понятно. Спасибо за пролог. - Toчкa oпopы(09.04.2026 09:28)
- Я использую IAR VAR, он сам всё ненужное удаляет. Если видит, что
флаги и регистры не меняются, то и никакого пролога в прерывании не
будет. Вот, например: vpv.vpv(394 знак., 09.04.2026 11:15 - 11:18)
- Идея была в том, чтобы сделать быстрое действие (например,
отключение драйвера ключей) сразу по входу в прерывание, не
дожидаясь проталкивания в стек предыдущего контекста. Nikolay_Po(247 знак., 09.04.2026 08:32)
- Значит я не так понял. - Toчкa oпopы(08.04.2026 22:08)
- И чего? Мне потом ручками в ассемблере разбираться, как контекст
сохранить, что сохранять, а что нет? Хватит с меня и FreeRTOS с его
кодом переключения контекста. - Nikolay_Po(08.04.2026 18:11)
- Разве naked в GCC RISK-V - не завезли? Вроде, klen его пользует: - Toчкa oпopы(1 знак., 08.04.2026 16:37, ссылка)
- На AVR я такое делал в пре-прологе, до сохранения контекста. Просто
ставил инструкцию сброса бита в атрибут пре-пролога (avr-gcc).
Конечно, с кэшем - как повезёт, скорее нет, чем да. Но зато
максимально быстро. Nikolay_Po(422 знак., 08.04.2026 11:00)
- А при влёте в прерывание нужные команды точно уже будут в кэше
инструкций? Дело в том, что сбросить выход - это не всё. Выход надо
быстро сбрасывать по какому-то волЯтильному внешнему событию. Т.е.
по прерыванию. И замерять работу всей цепочки, например: "сработал
компаратор - отключился выход". - vpv.vpv(08.04.2026 06:57)
- ХЗ, конешно, но те-жэ CH32V0** вполне себе, 5-вольтовые. В
программе могут перейти на нутряные генераторы, для снижэния
жручести. Лишнее можно, тупо, отключить и уйти под милиампер на
8МГц. 20мА ногами. Но, зато, 44МГц при 32р, если нужно. А для
аналогичной производительности с АВР, тактовой можно играться как
хош. Да и сравнивать СТМ и АВР по жручести, это такое себе. Наскока
понимаю, щас СТМ в этом деле чемпион. Дажэ МСП умывает. - mse homjak(06.04.2026 13:31)
- CH32V0xx не обольщайтесь. Самая большая проблема - не могут
манипулировать битами регистров или памяти без R-M-V и выделения
свободного регистра для временного значения. Атомарное изменение
бита - только через блокировку прерываний. Ну и относительно долгий
вход в прерывание. Не все задачи удастся решить, как на AVR. Nikolay_Po(211 знак., 08.04.2026 11:04)
- Ну а когда нужно то атомарное изменение бита? Чтобы никто чужой,
ни-ни? В какой-нить реальной многозадаче с семафорами и прочими
хераборами. А в реальной жизни, разве что доступ к портам. А порты
у СТМ и СН такие, что АВР сосёт в присядку. - mse homjak(08.04.2026 11:29)
- Это только если Хмеги за AVRы не считать. У них порты какие надо
порты. - AlexG(08.04.2026 12:51)
- С Хмегами, вообще, смешно. Хмегой должэн был быть микрочиповский
ДСПИК, а АВРы нужно было переводить на 3В и назвать как-нить
АтГига. Т.е. имеем обычные АтМега 5В 16-20МГц, АтГига 3В 32-40МГц,
Хмега 3В 16р 40-100МГц ДСП и САМы. Люто! Но, вместо этого, какое-то
унылое говно, типа АВР-32 и невнятные Хмеги. Вот нащщот портов
Хмег, не в курсе. Там можно, как у СТМов, одной командой
установить-сбросить все биты в порте? - mse homjak(08.04.2026 13:01)
- установить/сбросить все биты в порте одной командой можно у любого
АВР :) - Adept(08.04.2026 14:11)
- Одновременно и установить, и сбросить. - mse homjak(08.04.2026 18:53)
- чем, к примеру, претит команда out PORTx,R ?? - Adept(09.04.2026 17:00)
- Я неправильно выразился не "всех", а "любых". mse homjak(102 знак., 09.04.2026 17:37)
- а какая разница, всех или любых? вводишь нужную маску в порт и всё,
или в СТМ можно одной командой на разных портах битики менять? - Adept(09.04.2026 17:39)
- Принципиальная. В примере, одна команда сбрасывает одни биты и
устанавливает другие. Непричастные сохраняют состояние. АВР сперва
должэн вычитать порт, наложить маску для сброса, наложить маску для
установки и записать взад. - mse homjak(09.04.2026 17:44)
- у Хмег можно так: PORTF.OUTSET = pIN_CS0; есть еще регистры OUTCLR и OUTTGL. Произвольно одной командой часть установить, часть сбросить, остальные не трогать нельзя - AlexG(10.04.2026 18:18)
- "сбрасывает одни биты и устанавливает другие" делается одной
командой "out", ели нужно обращение к конкретным битам, то это
команды sbi/cbi, а та, чтобы выборочно, менять биты в порту зараз,
ну наверне только иксмега, но вот честно не очень понятно зачем. - Adept(09.04.2026 17:57)
- Да. Угу... Сбросьте одной командой "out" бит 0, установите бит 6, а
остальные пусть сохранят состояние. Побитно менять можно, но тогда
СТМ/РИСК5, дажэ сохраняя контент, обойдут АВР. - mse homjak(09.04.2026 18:11)
- в вашем конкретном примере это две команды :) cbi, sbi (проще не
бывает, и я не вижу причин делать по-другому в данном конкретном случае :)) в более
высосанных из пальцадругих случаях да, будет четыре команды, т.е. такта: - считать порт, очистить по маске, установить по маске, выкинуть в порт. ну и вопросы оптимизации схемотехники (т.е. выбора нужных пинов на нужных портах, чтобы менять их одной командой, если это так уж необходимо - не забываем Adept(3 знак., 09.04.2026 19:33)- Ну вот, две команды. За это время СТМ/РИСК5 сделает, либо 8, либо 5
своих, на 48МГц. Т.е даже самый дохлый вариант, по скорости, то на
то и выходит. А что касаемо схемотехники и высосанных пальцов, я на
М48, на 20МГц, поуродовался в своё время. Подбирал тайминги нопами,
т.к. в прерывания уже не успевал. А тут, подготовил массив в
памяти, дёрнул рубильник и оно улетело на утроенной скорости - mse homjak(09.04.2026 20:35)
- дык под задачу камень выбираем или задачу под камень, - кому как
нравится :) мне, к примеру, им в страшном сне не приснится делать,
скажем обработку видео или какие DSP-финты на АВР :) он для других,
более простых дел, хотя извратиться можно конечно, если есть
желание, да и то не всегда получится :)) В общем ключевой вопрос -
ЗАЧЕМ? По задаче и инстрУмент выбираем. Никто же не рисует, к
примеру, лопатой, а бензопилой не точат карандаши :)) - Adept(09.04.2026 20:47)
- Вотъ. А я делал. На м48. ДСП, конечно, такое себе, но тем не менее.
Ибо в те времена она была самым производительным и маложручим
вариантом изо всех доступных. Атмел завёл серию в тупик. Раньше это
был самый быстрый 8-битник, который по арифметике крыл и те
100МГцовые "51". И стоил боле-мене. А щас ch32v305fbp6, 144МГц
20-ношка, с плывучкой, стоит 120-200руб на Ефинде, в розницу. Ну и
чего выбирать "камень под задачу"? Зачем плодить номенклатуру? - mse homjak(09.04.2026 21:08)
- И скоро ждем stm32c5xx - Cortex-M33 в 20 пинах 144МГц (8K iCache) 256K Flash 64K RAM и за 68 центов (хи-хи) - Zikon(10.04.2026 07:15)
- Эта "ch32v305fbp6, 144МГц 20-ношка, с плывучкой " совершенно не
умеет в 5 вольт. А бывают и такие задачи (в чём предыдущий оратор
совершенно прав). Мир не крутится только вокруг DSP, RTOS и пр. - vpv.vpv(10.04.2026 07:13)
- Они умеют в 5В. Часть ног у них 5В-толерант. - mse homjak(10.04.2026 10:42, +1)
- Толерант означает всего лишь внутренний стабилитрон по входу,
вместо прямого диода на Vcc. Никакой толерант, при питании Vcc =
3,3В, не даст на выход 5В. - vpv.vpv(10.04.2026 13:34)
- 3,3В на выходе, для работы 5В логики, достаточно. Что ТТЛ, что КМОП. Есличо, у меня 5В М128 чудесно работают в паре с 3В Цыклонами и АСЕКСами. Лет 20+ ужэ. просто резисторов для ограничения токов с 5 в 3 хватает. А из 3 в 5 вообще, без проблем. - mse homjak(10.04.2026 17:05)
- Open-drain вполне может. - reZident(10.04.2026 14:00, +1)
- там "в единицу" затянутые фронты, разве не? (важно на всяких SPI и прочем скоростном, где как раз это и надо, к примеру для прикручивания 3V флеши к 5V МК, чаще всего приходится юзать конвертеры уровня, если хочется полной скорости :( - Adept(10.04.2026 15:03)
- Да и то - только если явно разрешено тянуть выше питания. - Toчкa oпopы(10.04.2026 15:00)
- Толерант означает всего лишь внутренний стабилитрон по входу,
вместо прямого диода на Vcc. Никакой толерант, при питании Vcc =
3,3В, не даст на выход 5В. - vpv.vpv(10.04.2026 13:34)
- Они умеют в 5В. Часть ног у них 5В-толерант. - mse homjak(10.04.2026 10:42, +1)
- Сейчас много азиатских Cortex-M4/M4F - недорогие совсем, и даже в
20 ногах, тот же N32G430F8S7 -128МГц и с FPU и с DSP от 30руб на
ефинд, или попроще без FPU AT32F421F8P7 -120МГц - от 32руб и разных
корпусов больше - qfn20,tssop20,qfn28,qfn32,lqfp32 и пр. - Zikon(10.04.2026 06:55)
- Есть ещё N32G401 - 72МГц ( младший брат N32G430 / нет CAN ) так тот
совсем от 19руб цена ( qfn32(4x4) ) - Zikon(10.04.2026 07:00)
- Кстати, а в чём их программируют и прошивают? - Звepoящep(20.04.2026 08:29)
- N32 - Keil, IAR, делаю шаблоны для VSCode+EIDE. Программатор
J-Link, CMSIS-DAP(WCH-LinkE, SLogic Combo, DAP-Link любой) , pyocd.
Для некоторых серий N32 совсем недавно вышел N32Cube - генерирует
код для Keil и IAR с использованием их библиотеки. - Zikon(20.04.2026 10:46)
- Как правило китайцы раздают на гитхабе паки для Keil и Iar под свои
контроллеры. Для всех, которые держал в руках, такое было. Вот N32
не доводилось, видимо свежий совсем. - Гyдвин(20.04.2026 11:08)
- просто сейчас на ОЗОН за недорого и на АЛИ тоже - вот и разбираюсь - что за "звери". Периферия подобна STM32, на BluePill встают без проблем за место F103. - Zikon(20.04.2026 11:39)
- Да не такой и новый первые были (2020г) N32G45x серия и даже ещё без AF у GPIO как у STM32F103. Далее N32G435(G432; L40x; L43x) очень неплохая группа чипов с совершенно одинаковой периферией и уже есть AF на GPIO и потребление очень даже неплохое, есть минусы, но куда без них. И далее уже N32G430 где сделали всё-таки FastIO, и потребление конечно выше и корпуса есть 20 выводов. А N32G401 - это больше похоже на отбраковку N32G430 - полное совпадение Zikon(36 знак., 20.04.2026 11:37)
- Как правило китайцы раздают на гитхабе паки для Keil и Iar под свои
контроллеры. Для всех, которые держал в руках, такое было. Вот N32
не доводилось, видимо свежий совсем. - Гyдвин(20.04.2026 11:08)
- N32 - Keil, IAR, делаю шаблоны для VSCode+EIDE. Программатор
J-Link, CMSIS-DAP(WCH-LinkE, SLogic Combo, DAP-Link любой) , pyocd.
Для некоторых серий N32 совсем недавно вышел N32Cube - генерирует
код для Keil и IAR с использованием их библиотеки. - Zikon(20.04.2026 10:46)
- Кстати, а в чём их программируют и прошивают? - Звepoящep(20.04.2026 08:29)
- Есть ещё N32G401 - 72МГц ( младший брат N32G430 / нет CAN ) так тот
совсем от 19руб цена ( qfn32(4x4) ) - Zikon(10.04.2026 07:00)
- а вот интересно, технологически можно АВР сделать мегагерц на
двести (ну такая 8-битная числодробилка :)) Архитектура же не в
пример проще тех же АРМов. Правда вот не могу придумать для какой
задачи... АЛУ для DSP слабоват (как и разрядность), памяти мало...
Но если бы это можно было сделать дёшево, то, думаю камень типа
хотя бы меги328 нашёл бы свою нишу (про иксмегу даж и не думаю,,
хотя она сюда вписалась бы кстати, Внутренней "рамы" бы ещё
докинули до 64К хотя б) - Adept(10.04.2026 00:30)
- Всё можно. Делаем флэшь с 64-128р шиной и фперде. Тока переходы будут тормозные. Или кэшь. Или, как у CH32V, где часть флэши отображается на ОЗУ: "zero wait flash". Тока зачем? - mse homjak(10.04.2026 10:38)
- Задача - замена мелких CPLD/FPGA? :-)) Но тогда придётся мутить
кэш-ОЗУ, либо вводить такты ожидания 10-8-8-8... для FLASH. Ибо
команды не смогут выбираться с такой скоростью. - vpv.vpv(10.04.2026 07:17)
- Заменять мелкие ФПГА проще, размещая мелкую ФПГА в МК. Вроде,
Микрочип туда пошёл. - mse homjak(10.04.2026 10:39)
- Дык была такая серия, кажется AT94 у Atmel'а. AVR (AtMega161) + ОЗУ
+ мелкая FPGA на одном кристалле. - vpv.vpv(10.04.2026 13:41)
- Ну да FPSLIC. Но там всё каг-то печально было. Я толком ИДЕшку завести не смог. Да и Атмел на это забил. - mse homjak(10.04.2026 17:08)
- Дык была такая серия, кажется AT94 у Atmel'а. AVR (AtMega161) + ОЗУ
+ мелкая FPGA на одном кристалле. - vpv.vpv(10.04.2026 13:41)
- Заменять мелкие ФПГА проще, размещая мелкую ФПГА в МК. Вроде,
Микрочип туда пошёл. - mse homjak(10.04.2026 10:39)
- Вотъ. А я делал. На м48. ДСП, конечно, такое себе, но тем не менее.
Ибо в те времена она была самым производительным и маложручим
вариантом изо всех доступных. Атмел завёл серию в тупик. Раньше это
был самый быстрый 8-битник, который по арифметике крыл и те
100МГцовые "51". И стоил боле-мене. А щас ch32v305fbp6, 144МГц
20-ношка, с плывучкой, стоит 120-200руб на Ефинде, в розницу. Ну и
чего выбирать "камень под задачу"? Зачем плодить номенклатуру? - mse homjak(09.04.2026 21:08)
- дык под задачу камень выбираем или задачу под камень, - кому как
нравится :) мне, к примеру, им в страшном сне не приснится делать,
скажем обработку видео или какие DSP-финты на АВР :) он для других,
более простых дел, хотя извратиться можно конечно, если есть
желание, да и то не всегда получится :)) В общем ключевой вопрос -
ЗАЧЕМ? По задаче и инстрУмент выбираем. Никто же не рисует, к
примеру, лопатой, а бензопилой не точат карандаши :)) - Adept(09.04.2026 20:47)
- Ну вот, две команды. За это время СТМ/РИСК5 сделает, либо 8, либо 5
своих, на 48МГц. Т.е даже самый дохлый вариант, по скорости, то на
то и выходит. А что касаемо схемотехники и высосанных пальцов, я на
М48, на 20МГц, поуродовался в своё время. Подбирал тайминги нопами,
т.к. в прерывания уже не успевал. А тут, подготовил массив в
памяти, дёрнул рубильник и оно улетело на утроенной скорости - mse homjak(09.04.2026 20:35)
- в вашем конкретном примере это две команды :) cbi, sbi (проще не
бывает, и я не вижу причин делать по-другому в данном конкретном случае :)) в более
- Да. Угу... Сбросьте одной командой "out" бит 0, установите бит 6, а
остальные пусть сохранят состояние. Побитно менять можно, но тогда
СТМ/РИСК5, дажэ сохраняя контент, обойдут АВР. - mse homjak(09.04.2026 18:11)
- Ну не совсем одна команда. НЯП, нужно сначала загрузить маску в
регистр, потом записать в регистр по адресу. Проблема в том, что
вместе, адрес регистра и маска - слишком велики, чтобы поместиться
в одну команду. Поэтому, несмотря на красоту одновременного
снятия/установки, команд несколько. Nikolay_Po(365 знак., 09.04.2026 17:55)
- Да, несколько. Но если устанавливать-сбрасывать несколько бит, то ужэ выигрышь за счот тактовой. - mse homjak(09.04.2026 18:14)
- Вот это вот "ввести маску", на RISC-V требует использования
регистра. Только лишь командами - нельзя. Nikolay_Po(134 знак., 09.04.2026 17:41)
- Но в РИСК-5 можно делать хитрые финты ушами. mse homjak(931 знак., 09.04.2026 18:07)
- Красиво! Но завести канал DMA, чтобы по прерыванию компаратора тока
ключей, быстро задисейблить драйвер - это будет слишком :) - Nikolay_Po(09.04.2026 19:51)
- Почему? Компаратор, походу, тока внешний. На какую-нить ножку
захвата таймера надрочить ДМА и пусть ждёт. Хорошая идея, кстате!
На какой-нить 144МГц машинке, на всё-про всё, в 20-30-40нс
уместиться можно. - mse homjak(09.04.2026 20:45)
- Не, если компаратор внешний, то я его выход сразу на драйвер и
заведу... - Nikolay_Po(09.04.2026 22:51)
- Но лучше выход компаратора завести на вход "R" триггера управления драйвером. ;-) - vpv.vpv(10.04.2026 07:26, +1)
- Дык, компаратор должэн коммутироваться на порт, вроде как. - mse homjak(09.04.2026 23:37)
- Для одних задач - напрямую на порт (внешний гистерезис). Для других - на сброс триггера порта. - vpv.vpv(13.04.2026 09:25)
- Не, если компаратор внешний, то я его выход сразу на драйвер и
заведу... - Nikolay_Po(09.04.2026 22:51)
- Почему? Компаратор, походу, тока внешний. На какую-нить ножку
захвата таймера надрочить ДМА и пусть ждёт. Хорошая идея, кстате!
На какой-нить 144МГц машинке, на всё-про всё, в 20-30-40нс
уместиться можно. - mse homjak(09.04.2026 20:45)
- Красиво! Но завести канал DMA, чтобы по прерыванию компаратора тока
ключей, быстро задисейблить драйвер - это будет слишком :) - Nikolay_Po(09.04.2026 19:51)
- Но в РИСК-5 можно делать хитрые финты ушами. mse homjak(931 знак., 09.04.2026 18:07)
- Принципиальная. В примере, одна команда сбрасывает одни биты и
устанавливает другие. Непричастные сохраняют состояние. АВР сперва
должэн вычитать порт, наложить маску для сброса, наложить маску для
установки и записать взад. - mse homjak(09.04.2026 17:44)
- а какая разница, всех или любых? вводишь нужную маску в порт и всё,
или в СТМ можно одной командой на разных портах битики менять? - Adept(09.04.2026 17:39)
- Я неправильно выразился не "всех", а "любых". mse homjak(102 знак., 09.04.2026 17:37)
- чем, к примеру, претит команда out PORTx,R ?? - Adept(09.04.2026 17:00)
- Одновременно и установить, и сбросить. - mse homjak(08.04.2026 18:53)
- установить/сбросить все биты в порте одной командой можно у любого
АВР :) - Adept(08.04.2026 14:11)
- С Хмегами, вообще, смешно. Хмегой должэн был быть микрочиповский
ДСПИК, а АВРы нужно было переводить на 3В и назвать как-нить
АтГига. Т.е. имеем обычные АтМега 5В 16-20МГц, АтГига 3В 32-40МГц,
Хмега 3В 16р 40-100МГц ДСП и САМы. Люто! Но, вместо этого, какое-то
унылое говно, типа АВР-32 и невнятные Хмеги. Вот нащщот портов
Хмег, не в курсе. Там можно, как у СТМов, одной командой
установить-сбросить все биты в порте? - mse homjak(08.04.2026 13:01)
- Это только если Хмеги за AVRы не считать. У них порты какие надо
порты. - AlexG(08.04.2026 12:51)
- Ну а когда нужно то атомарное изменение бита? Чтобы никто чужой,
ни-ни? В какой-нить реальной многозадаче с семафорами и прочими
хераборами. А в реальной жизни, разве что доступ к портам. А порты
у СТМ и СН такие, что АВР сосёт в присядку. - mse homjak(08.04.2026 11:29)
- А тольку-то от этих 44МГц в CH32V0**? Сколько процессорных тактов
уходит на влёт в прерывание? Этовсё равно, что вспомнить про i8051
- эх, уже в то время там была частота аж 12МГц! :)) - vpv.vpv(07.04.2026 06:59)
- Ну, дык, и АВР в прерывание не бесплатно влетает. 3-4 такта вынь да положь. А там ещо контекст сохранить, то-сё. Я тожэ, было дело, за колхоз агитировал. Но Атмел АВРы забросил, а Микрочип, таки, сделал АВР мечты, ДСПИК. Пока Атымел уродовался с АВР32, при живом-то АРМ. - mse homjak(07.04.2026 11:47)
- влёт в прерывание 13-20 тактов на CH32V003, на Cortex-M - 12 тактов, и не надо говорить про 12МГц i8051 там один машинный цикл был 12 тактов, это сейчас современные x51 однотактовые и на 35МГц (STC) шустрые - Zikon(07.04.2026 07:11)
- Слышал в интернете, что у STM32 при остановке тактирования портов
pull'ы превращаются в тыкву. Как "спать по настоящему"? Внешними
подтяжками обвешивать? - Toчкa oпopы(06.04.2026 14:21)
- Для более новых stm32g0xx ; stm32c0xx есть настройка PD/PU на
каждый порт в модуле PWR для Standby и Shutdown режимов. В более
старых stm32f0xx - нет такого и в документации написано что - "In
Standby mode, all I/O pins are high impedance except: RST,
PC13-15(if use RTC or LSE, WKUPx" - смотрим внимательно LP режимы -
всё описано в документации - Zikon(07.04.2026 07:04, +1)
- Спасибо. - Nikolay_Po(07.04.2026 07:46)
- Это откуда информация? Я больше поверю, что кто-то пользовался
кубом для "остановки тактирования", а оно, заодно, проходит по всем
GPIO меняет настройки "для лучшего энергосбережения". Не слышал
никогда... Не то, что не слышал, механизма такого (кроме неумелого
использования куба) представить себе не могу - как остановка
тактирования снимает статический логический уровень? - Nikolay_Po(06.04.2026 20:02)
- От Хабарки, наверное. Соврали? P.S. А может - это вообще про 103 было? - Toчкa oпopы(06.04.2026 22:16)
- Ну это так себе довод, я на подтяжки почти никогда не рассчитываю,
так как в момент появления питания на несколько мс такой сигнал
остается без подтяжки вовсе. Но иногда использую, к примеру чтобы
опросить стартовую конфигурационную перемычку - в этот момент проц
точно в режиме, ну и перемычке ничего не будет если пропадет пулап. - Ralex(06.04.2026 14:23)
- Пропадает не только pull, но и настройка выходов купно с их
уровнями. Хотя, конечно, переключение на LSE должно попускать... - Toчкa oпopы(06.04.2026 17:00)
- Есть упоминание в документации? Интересно было бы глянуть. - Nikolay_Po(06.04.2026 20:03)
- И прескалер. - mse homjak(06.04.2026 18:52)
- Пропадает не только pull, но и настройка выходов купно с их
уровнями. Хотя, конечно, переключение на LSE должно попускать... - Toчкa oпopы(06.04.2026 17:00)
- Для более новых stm32g0xx ; stm32c0xx есть настройка PD/PU на
каждый порт в модуле PWR для Standby и Shutdown режимов. В более
старых stm32f0xx - нет такого и в документации написано что - "In
Standby mode, all I/O pins are high impedance except: RST,
PC13-15(if use RTC or LSE, WKUPx" - смотрим внимательно LP режимы -
всё описано в документации - Zikon(07.04.2026 07:04, +1)
- ну это спец серии STM32 только, а там и производительность сразу не так высока, да всё ещё выше атмег, но уже далеко не полновесные серии. И кстати стоимость этих мелкожручих СТМ32 тоже не маленькая. - Ralex(06.04.2026 14:00)
- CH32V0xx не обольщайтесь. Самая большая проблема - не могут
манипулировать битами регистров или памяти без R-M-V и выделения
свободного регистра для временного значения. Атомарное изменение
бита - только через блокировку прерываний. Ну и относительно долгий
вход в прерывание. Не все задачи удастся решить, как на AVR. Nikolay_Po(211 знак., 08.04.2026 11:04)
- вставлю свои 5 копеек :) - есть даже в корпусе SOT23-6 :)) В общем
для некоторых эксклюзивных вещей - практически незаменимвы бывают
:) - Adept(06.04.2026 12:38)
- АтТини10? Рулончик (штук 500) до сих пор где-то лежит. Припасён, на
всякий случай. ))) - vpv.vpv(07.04.2026 07:10)
- да, оне самые. Вешчь! "speed grade" до 12МГц поболее бы (всегда
хочется побыстрее, тем более, чтона батарейном питании там 4-8Мгц
всего). Ну и АЦП хотелось бы пошустрее и поточнее (10bit/250ksps -
стандартного для АВР, вместо того, что туда засунули - 8bit/15ksps
:( - Adept(09.04.2026 17:18)
- PY32F003L24D6 - dfn8 (3x2) - 7 i/o : 48MHz, 16K/2K, ADC
12bit/1Msps, TempSens, Comparator, 1.7 - 5.5V and +++ - Zikon(10.04.2026 07:39)
- PUYA обещает ещё PY32T020613V7 (sot23-6) (24MHz 12K/1K 3i/o) из
серии PY32T020 (TouchSens) ( с урезанным функционалом - подобно
PY32F002B ) - Zikon(11.04.2026 09:24)
- А в чём всю эту китайскую прелесть кодить и прошивать? Тоже своя
студия и свой программатор? - Звepoящep(21.04.2026 07:03)
- для PY32 сейчас примеры на HAL и LL в Firmware для Keil, IAR и VSCode+EIDE с поддержкой JLink и PyOCD. Пакет PY32_GCC_SDE на сайте PUYA как раз для VSCode+EIDE+GCC+PyOCD - быстрый старт - Zikon(21.04.2026 07:53)
- Все азиатские Cortex-M0/M4 - прошиваются J-Link, DAP-Link. PyOCD
много знает и можно настроить просто. Нормально можно работать в
Keil, IAR, Eclipse, VSCode у некоторых есть собственные IDE
(Artery) и Кубы делают простенькие для генерации кода (N32Cube) - Zikon(21.04.2026 07:47)
- Даю наводку. Segger Ozone - вещь. Ну и JLink для него легко делается вот так: - SciFi(1 знак., 21.04.2026 07:52, ссылка)
- А в чём всю эту китайскую прелесть кодить и прошивать? Тоже своя
студия и свой программатор? - Звepoящep(21.04.2026 07:03)
- круть! А IDE ( и вообще средства работы с ней какие) доступность,
стабильность поставок опять же ж. А так да, претендент на звание
"блоха мечты" :)) 1,5mA @24MHz и полмикроампера в спячке, при
"полном фарше" на борту. Круто! - Adept(10.04.2026 13:15)
- Фсё, лавочку с "микрочипами", "АВРАми" и всякими другими "СТМами" и "Амурами" можно прикрывать :) Доступность, цены и количество "пуйи" в "Промэлектронике", к примеру, убивает все другие варианты. Микроконтроллер (по меркам 20-30 летней давности целый компутер) по цене транзистора и в корпусе транзистора. Куда катится этот мир? :)) Adept(429 знак., 10.04.2026 14:57, картинка)
- В основном примеры есть на их сайте (лучше на китайском) Firmware - для Keil, IAR, VSCode+EIDE и есть HAL и LL подобные STM32 и периферия подобная также. Свои эксперименты на VSCode+EIDE тоже провожу, на гите тоже есть - Zikon(1 знак., 10.04.2026 14:48 - 14:55, ссылка)
- Спасибо. Где тут смайлик "огонь"? - Nikolay_Po(10.04.2026 10:14)
- 🔥 здесь - General(1 знак., 11.04.2026 08:46, ссылка)
- а если шпаргалку посмотреть? сколько "огня" будет ? Zikon(1 знак., 10.04.2026 10:44, картинка)
- этот чип тестировал и вообще зачетный, max HSI = 50MHz --> x2 PLL = 100MHz запустил (в RAM только, Flash ws только 0 и 1 может быть), более подробно про PY32 Zikon(6 знак., 10.04.2026 10:37, ссылка)
- PUYA обещает ещё PY32T020613V7 (sot23-6) (24MHz 12K/1K 3i/o) из
серии PY32T020 (TouchSens) ( с урезанным функционалом - подобно
PY32F002B ) - Zikon(11.04.2026 09:24)
- MSPM0C1104SDDFR от TI - tsot-23-8 (3x3 e=0,5) Cortex-M0+ 24MHz,
16K/1K, ADC 12bit(1,5Msps) 1.62-3.6 V -40 - 125C - Zikon(10.04.2026 07:39)
- На фоне пуйи выше - бледно. - Nikolay_Po(10.04.2026 10:15)
- там ещё есть tsot-23-16 (тоже мелкий с e=0,5), но и диапазон температур -40 .. +125С может кому надо - Zikon(10.04.2026 10:32)
- На фоне пуйи выше - бледно. - Nikolay_Po(10.04.2026 10:15)
- PY32F003L24D6 - dfn8 (3x2) - 7 i/o : 48MHz, 16K/2K, ADC
12bit/1Msps, TempSens, Comparator, 1.7 - 5.5V and +++ - Zikon(10.04.2026 07:39)
- да, оне самые. Вешчь! "speed grade" до 12МГц поболее бы (всегда
хочется побыстрее, тем более, чтона батарейном питании там 4-8Мгц
всего). Ну и АЦП хотелось бы пошустрее и поточнее (10bit/250ksps -
стандартного для АВР, вместо того, что туда засунули - 8bit/15ksps
:( - Adept(09.04.2026 17:18)
- АтТини10? Рулончик (штук 500) до сих пор где-то лежит. Припасён, на
всякий случай. ))) - vpv.vpv(07.04.2026 07:10)
- Добавлю - архитектура AVR проста, как табуретка, не перегружена
всеми этими тактировниями, конвейеризациями, и пр. Сбросить выход -
команда CBI, это 1 такт, или 50нс при 20МГц. - vpv.vpv(07.04.2026 07:06)
- там где нужно что-то мелкое - какой-нить контроллер какой-нить условной "лампочки" (да и посложнее при наличии опыта :)) - вполне себе (а тем более, если есть закупленное и/или наработки по софту :)) - Adept(06.04.2026 11:57)
- В принципе, щас смысл в новых поделиях на АВРах отсутствует.
Китайцкие 32р поделия, вполне себе рабочие. По цэне,
привлекательные. По инструментарию, не уступают. Пора закопать
стюардессу. Поддержка старых прожэктов никуда не денется, ессно. А
в новых применять АВР, смысла не вижу. - mse homjak(06.04.2026 10:43)
- Кстати, доступ к 16-битным регистрам у Атмеги328РВ тоже кривой (в
ПДФ). Как они документацию писали. в пьяном виде, что ли? vpv.vpv(60 знак., 06.04.2026 06:54, картинка)
- Человеческий фактор, копипастить надо тоже с умом - ILYAUL(05.04.2026 16:26)
- Может быть. На Атмегу328РВ тоже дока кривая. Регистра ACSRB (который у РВ дополнительный, управления компаратора, включает выход АСО на
внешний пин) в описании вобше НЕТ!!! Как он работает. удалось
понять. ковыряя неадеры компилятора IAR AVR. Или вот, полюбуйтесь
на фузы, екстендед и хай байты: vpv.vpv(205 знак., 06.04.2026 06:44, картинка)
