Не имеет смысла.roman.com писал(а):Кто писал на Ассемблере на STM32?
GCC нормально оптимизирует код.
Не имеет смысла.roman.com писал(а):Кто писал на Ассемблере на STM32?
выгоднее тинька, которая стоит 80 рублей. Правда, в доковидную эпоху стоила она 40 рублей.Так что выгоднее таки?
Не имеет смысла.roman.com писал(а):Кто писал на Ассемблере на STM32?
Раньше STM32F030P4T6 на Ами можно было купить на 0.24$. STM8 и того дешевле, около 0.10 за штуку. Так что тинька слишком дорогая учитывая ее скромные возможности.parovoZZ писал(а):выгоднее тинька, которая стоит 80 рублей.
Зачем это нужно?roman.com писал(а):Оптимизирует с точностью до машинного такта ?
Можно сделать аппаратно без участия процессора. Проц только загружает новые данные в буфер или извлекает прочитанные. Причем не побайтно, а скажем по килобайту. Это значит что у процессора есть много времени на другие дела, а если их нет, можно остановить ядро уменьшив потребление.BOB51 писал(а):ногодрыг для обмена с далласовскими микроLAN да ногодрыг с WS2812 - подобными...
ЦАП, АЦП (даже два), навороченный таймер с внешними паузами, оконный вачдог, система событий, две ячейки FPGA, аппаратный умножитель....это всё скромные возможности?Так что тинька слишком дорогая учитывая ее скромные возможности.
Все это (кроме FPGA) и даже больше (например 32-ух битный таймер, RTC, внутрисхемная отладка и др.) есть в STM32F030P4T6, который в 2019 году стоит 0.24$. Сейчас цены на электронику выросли.parovoZZ писал(а):ЦАП, АЦП (даже два), навороченный таймер с внешними паузами, оконный вачдог, система событий, две ячейки FPGA, аппаратный умножитель....это всё скромные возможности?
Легко! Кеил точно.roman.com писал(а):Оптимизирует с точностью до машинного такта ? ))
Там, где тинька встаёт без проблем, для СТМ надо городить обвяз. Например, батареечное или аккумуляторное питание.Все это (кроме FPGA) и даже больше (например 32-ух битный таймер, RTC, внутрисхемная отладка и др.) есть в STM32F030P4T6, который в 2019 году стоит 0.24$. Сейчас цены на электронику выросли.
Я неделю поигрался в tiny1614 и обнаружил просто огромное количество недостатков если сравнивать с STM32, начиная с того, что Errata на мелкую тиньку сопоставима по размеру с таковой для моего STM32F7. Возьмем хоть таймеры, у мелких G0 семь 16-ти битных и по одному 24-х и 32-х, если нужно просто попинать любую периферию можно взять любой из 8-ми, т.к. они все практически одинаковые, просто у некоторых есть дополнительные возможности. Когда нужен аппаратный энкодер, берем любой из 4-х таймеров, а если подключаем пульт, то подойдет любой двухканальный. Фактически я у себя в либах только номера таймеров меняю... У тиньки 3 или 4 таймера трех значительно отличающихся видов, один 12-ти битный и остальные 16-ти битные. Для примера, вот такие у этих таймеров пределители:parovoZZ писал(а):И так во всём.
Даже на таком уровне таймеры значительно отличаются и если вы где-то задействовали TCA, то заменить его TCB может быть не так просто, а 12-ти битным TCD еще сложнее.TCA - 1/2/4/8/16/64/256/1024
TCB - 1/2/TCA_CLK
TCD - 1/4/32
Если писать программы которые входят в прерывание, ничего не делают, выходят и сразу входят снова и если сделать вид, что у STM32 нет DMA, то даparovoZZ писал(а):Так что вычислительные мощности примерно совпадают.
Чё ???Reflector писал(а):кварц на новые AVR поставить нельзя
Аппаратно! https://www.cyberforum.ru/blogs/204791/blog5169.htmlroman.com писал(а):Значит будем дрыгать ножками у AVR ))
OUT PORTD, R0 // Запись регистра -1 такт
OUT PORTD, R1 // Запись регистра -1 такт
А у STM сколько тактов ?
Ни кода не работал с STM...
Вот только тинька имеет RC на 20МГц, а СТМ всего 16. Либо городим внешний кварц -> деньги.Частота у STM32 выше минимум в 3 раза
всё ставится.кварц на новые AVR поставить нельзя
а он вообще под другое заточен. Это таймер для управления мостом или полумостом с регулируемым deadtime12-ти битным TCD еще сложнее.
да никакая это не замена. Сижу на аккуме, где напряжение от 2.7 и до 4.2. Тиньку посадил и всё. С СТМ надо городить преобразователь -> деньги.Современная замена тинек - это STM32G0
От задач зависит.roman.com писал(а):3 USART нафиг никому не нужны когда есть SPI.
У меня G0 с 64MHz гонится до 140 и SPI дисплей 320x240 работает при 70MHz, 240x240 при 64-х, а AVR без кварца разгонишь только если генератор поставить, так что разница минимум в 3 раза, максимум в 7 и это без учета FIFO и DMA. На старые AVR можно кварц поставить, но там SPI совсем примитивный, не умеет даже без зазора байты отправлять...roman.com писал(а):SPI на AVR при 3,3 V для дисплей 10 Мбит/c при 20MHz тактовой летает прекрасно))
Хотя у STM в ~2 раза больше... Только не все дисплеи потянут)) Но это отдельная тема.
От серии зависит, F3 может за 2 такта читать с порта в память с инкрементом адреса, другие медленнее, обычно такта 4, но за 3-5 тактов можно то же самое делать при помощи DMA, обычно так осцилы/ЛА работают.roman.com писал(а):А у STM сколько тактов ? Никада не работал с STM...
Открываю DS на mega4808:parovoZZ писал(а):всё ставится.
Код: Выделить всё
– Clock options:
• 16/20 MHz low-power internal oscillator
• 32.768 kHz Ultra Low-Power (ULP) internal oscillator
• 32.768 kHz external crystal oscillator
• External clock input
Без разницы под что он там заточен, пользоваться этими таймерами не удобно и их мало. На STM я пишу либу для энкодера юзающую таймер с уверенность, что практически всегда такой свободный таймер найдется, на AVR нужно два конкретных таймера и CCL, значит напиши либу под них, а потом еще чисто софтовую, или ничего не пиши заранее, напишешь по ходу конкретного проектаparovoZZ писал(а):а он вообще под другое заточен. Это таймер для управления мостом или полумостом с регулируемым deadtime
TCB - чисто событийный таймер.
Во-первых, есть STM32L0 c EEPROM, во-вторых, у практически любого мк будут какие-то преимущества, далеко не все сидят на аккумах и т.д.... В третьих, имелось в виду не что G0 должен заменить AVR, а что из всех серий STM32 именно G0 для этого больше всего подходит. А ресурс при эмуляции EEPROM во флеше зависит от того сколько флеша не жалко под это дело выделить....parovoZZ писал(а):да никакая это не замена. Сижу на аккуме, где напряжение от 2.7 и до 4.2. Тиньку посадил и всё. С СТМ надо городить преобразователь -> деньги.
В тиньке на борту EEPROM. У СТМ городить внешнюю флеш -> деньги. Нет, что там и там можно прямо во флеш писать, но долго ли?
Ну так далеко не все сидят с энкодерами и дисплеями. Мне если надо совсем долго сидеть на батарейке, я вообще беру MSP430FR. Время жизни от батарейки в этом случае зависит от самой батарейки, ибо в паузе тикает только таймер и потребление на уровне 500 нА.далеко не все сидят на аккумах и т.д
дисплей 320x240 подключали в прошлой теме... 320x240. Режим Parallel.Reflector писал(а):64MHz гонится до 140 и SPI дисплей 320x240 работает при 70MHz...
Там ни слова про такты...Мурик писал(а):Аппаратно! https://www.cyberforum.ru/blogs/204791/blog5169.html
Reflector писал(а):От серии зависит, F3 может за 2 такта читать с порта в память с инкрементом адреса, другие медленнее, обычно такта 4, но за 3-5 тактов можно то же самое делать при помощи DMA, обычно так осцилы/ЛА работают.