-
- установить/сбросить все биты в порте одной командой можно у любого
АВР :) - 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)