Отвлеченный вопрос. Почему AVR? Почему например не STM?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Как тут где-то  писалось про поколения процов  - тогда ждём пятое ( шестое) поколение  с параметрами:

256К флэш,  32К оперативки, 32К епрома, 12-ти разрядный АЦП, (возможно и ЦАП)
100 и более Мегагерц при микропотреблении ( хотя-бы 1 миллиампер максимум)

И чтобы он был 8-ми битовый с абсолютно теми-же коммандами.
НАНО 256  в том-же габарите ;)

Тогда эти 32 разрядные  и нафик не нужно.
АТМЕЛ наше всё!

Мечты, мечты, где ваша сладость.......

Arhat109-2
Offline
Зарегистрирован: 24.09.2015
axill
Offline
Зарегистрирован: 05.09.2011

Arhat109-2 пишет:

Ну и уж если холиварить то сравнивать надо сравнимые вещи, а именно 5в технику с 5в, а 3.3 с аналогичной. А там у АВРов есть замечательная xMega ... http://www.atmel.com/products/microcontrollers/avr/xmega_technical_details.aspx тут вам и 12-разпядный АЦП обнаруживается и 4-х канальный DMA и объединяемые счетчики 8-16-32 и интерфейсов туева кучка .. и даже криптографический блок и расчет CRC. Разве что частота 32 Мгц.

Насколько понимаю, 5в СТМ-ок в природе не бывает .. или ошибаюсь?

про питание это вы зря. Нафига 5в стэмке если она свою работу делает от 3в? Посмотрите даташит на atmega328. Она работать может от 1.8в, только при таком напряжении частота будет до 4мгц. А чтобы выжать 20 надо подать минимум 4.5. Это говорит о более старых технологиях в AVR по отношению к stm. Так что считать наличие 5в в питании AVR преимуществом - совершенная глупость

никто и не говорит, что у атмела нет сопоставимых МК, атмел тоже делает Cortex. Но если вы сравните цены... Сами чипы у атмела намного дороже, а средства отладки просто космических цен. Вам сложно понять пока не попробуете отладку. Мне полный комплект для отладки AVR обошёлся в 700 долларов, если бы покупал в Москве, отдал бы раза в 3-4 больше. А для STM я купил отладчик за 3500р в дорогом чипдипе. И это отладчик работает как с stm8 так и stm32

Более того к stm отладчик можно купить дешевле 1000р у китайцев. А вот для атмела существуют только фирменные отладчики

axill
Offline
Зарегистрирован: 05.09.2011

trembo AVR8 уже история, сомневаюсь, что будет реинкарнация)

хотя tiny10 появились не так давно. Но назвать их поколением сложно, узкий ряд для узких задач. Да и цены на них сейчас не гуманны. Куда выгоднее брать stm8 в корпусе qfn - места на плате займёт почти как tiny10, но будет 20 ног вместо 6 и 8кб вместо 1кб. По цене stm выйдет в 2-4 раза дешевле

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Нет. Это говорит о кривости холивара. Сравнивать старые АВР-ки и новые стм-ки .. сравните промеж 32-х разрядных моделей и обнаружьте, что вполне конкурентно способный продукт за 500руб. :)

a5021
Offline
Зарегистрирован: 07.07.2013

axill пишет:
Это соотношение ещё круче - для всей серии 26% имеют один USART, а для паябельных МК только 16% имеют один USART

И вы думаете кому-то интересные эти сферические многопортовые МК, которые даже не купить, если приспичит? У вас спор ради спора. Вы прицепились к третьестепенному вопросу и устроили из него бучу. То, что вы даказываете не имеет ровно никакого значения. Вы тратите свое время впустую и заставляяет меня тратить свое.

Arhat109-2 пишет:
А ещё и вынесли в необсуждаемое место (подготовку) всё, что и дает тот самый коэффициент 2.5 .. ну знаете ли .. видел как маркетологи натягивают трусы на глобус, но чтобы разрабы этим же занимались. Да после такого, я на него ваще смотреть не стану .. разводилово.

Тут никто никого не заставляет силой куда-то смотреть. Приведенный код взят отсюда, где тоже шло обсуждение скорости ногодрыга. Там он почему-то он не вызвал такого праведного гнева насчет подтасовок и маркетинговых трюков. Не нравится этот код, в сети еще тонны другого. Вот, например, полный листинг разновидности блинка для stm32. Практически, все тоже самое.

 

axill
Offline
Зарегистрирован: 05.09.2011

я не спорю, я привожу факты, вы же против фактов приводите личные ощущения. согласен, в таком виде продолжать нет смысла

a5021
Offline
Зарегистрирован: 07.07.2013

Вы не факты приводите, а к словам цепляетесь. Кому нужны факты о замечательных МК, которых не найти в продаже?

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

a5021 пишет:
.. Приведенный код взят отсюда, где тоже шло обсуждение скорости ногодрыга. Там он почему-то он не вызвал такого праведного гнева насчет подтасовок и маркетинговых трюков. Не нравится этот код, в сети еще тонны другого. Вот, например, полный листинг разновидности блинка для stm32. Практически, все тоже самое.

Вы сами-то читали что там пишут? А впрочем, и по этим ссылкам наглядно видно всё то, что я вам написал. Спасибо. :)

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Arhat109-2 пишет:

Насколько понимаю, 5в СТМ-ок в природе не бывает .. или ошибаюсь?

ARM'ов нет, stm8 пятивольтовые есть. stm8s: 2.95 – 5.5в;  stm8l: 1.8-3.6в

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну так и надо сравнивать меги и хмеги с таким stm8 как 8/16 и 5-и вольтовые, а stm32 сравнивать с соответствующими atmel32  .. то есть одинаковые вещи, а не "пулемет vs самолет, что лучше?"

Ещё раз повторю: "каждому овощу - свою кухню и кулинарию". Даже поясню:

Там, где основная работа идет с прямым управлением периферией, там где основной набор данных 8/16 разрядов, где надо шустро реагировать на множество и разнообразных прерываний от железа - там прямая дорога к мегам и иксмегам. И 8/16 для управления железом вполне достаточно. Диапазон многих "чувствительностей" как правило укладывается в 20-40Дб (10-100раз): бессмысленно пихать яркостный ШИМ на лампу в 32 разряда. Яркость ламп лежит в пределах 20Бд и не так просто найти кому можно запихать сигнал с диапазоном "за 40Дб" с пользой. Не так много применений АЦП "ширее" 12 разрядов .. и т.д.;

Если вам НЕ ХВАТАЕТ 8/16 бит, требуются 32 (long) есть и много вычислений во float, double - прямая дорога в 32-битные микроконтроллеры. За возможность работать с 32-разрядами также быстро как с 8-ю будете платить пониженным питанием, доп. расходами на память, некучерявой реакцией на прерывания и длиннотактовой работой (там где был 1, станет 2-3-4 и более). Последнее с лихвой окупается повышением тактовой частоты, и в итоге даже может получиться шустрее.

Если у вас потребность в обработке "видео онлайн", "звук онлайн" с зачистками, программными шумодавами, фильтрами и т.п. - вам прямая дорога .. увы, в сигнальные и графические процессоры. Ни AVR ни STM полноценно такие задачи не решают, хотя бы из-за недостатка оперативы. Потому её и нет столько ни в АВР ни в СТМ.

При этом, что интересно, наличие тех или иных шин, протоколов .. ни разу не аргумент ни за 8/16 ни за 32 .. и то и другое есть и там и там в достаточном количестве. :)

Ещё раз: каждому овощу - свою кухню. А пиарить можно что угодно и как угодно.

a5021
Offline
Зарегистрирован: 07.07.2013

Arhat109-2 пишет:

Вы сами-то читали что там пишут? А впрочем, и по этим ссылкам наглядно видно всё то, что я вам написал.

Скорость ногодрыга stm32 начинается от 1/6 ? Ничего подобного. Пишут там следующее:

"str : 1 cycle
taken branch: 2 cycles

So the minimum in a simple loop is 18MHz. If you just toggle without branch you'll see 36MHz"

Не припоминаю, чтобы вы что-то такое писали. Зато я говорил, что линейное исполнение даст скорость F_CPU/2.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Гы. Конечно даст. Пачками, что и видно на вашей самой первой осцилограмме. Это НЕ блинк и даже не "ногодрыг", а частный случай линейного кода. Насколько времени вам хватит флеша при таком линейном "ногодрыге"?

Может уже хватит сравнивать пулеметы с самолетами, не? :)

Вы решили попиарить STM32, я вам указал на те его недостатки, которые напрямую связаны с переходом с 8/16 на 32 разряда. Они - системные и не зависят от реализаций. Вы же решили оспорить теорию и практику, уткнувшись в некий ЧАСТНЫЙ случай, даже в его ЧАСТЬ: линейный кусок кода из пары команд. Посмотрите по вашим ссылкам на ПОДГОТОВКУ этого куска кода .. и внезапно найдете там опять все тот же коэффициент 2.5.

Всё, я дальше отвечать не собираюсь. Нравится - пользуйтесь. Микроскопом тоже гвозди забивать можно. :)

a5021
Offline
Зарегистрирован: 07.07.2013

Опять сумбур и голословные обвинение. С ваших слов я то подтасовываю и специально готовлю код, то устраиваю маркетинговые трюки, то теперь вот пиарю stm32 и сравниваю чего-то с чем-то. Это при том, что ни к чему из этого я не имею никакого отношения и кроме технических вопросов здесь более ничего не касаюсь. Не надоело придумывать? Придумывать про сырой STM32, про перерасход памяти, про дикие пенальти по времени выполнения.

Интегральная производительность атмеги 1MIPS/Mhz, stm32f103 1.25MIPS/Mhz. Эти цифры хоть и показывают во многом среднюю температуру по больнице, но чтобы понять, что вы не правы, их достаточно.

Поймите простую вещь, если я обнаружу ваши ошибочные, на мой взгляд, утверждения в адрес AVR, то я тут же переметнусь в стан атмелов и буду "пиарить" и "подтасовывать" уже в их пользу.

В этой жизни я не фанат ничего, кроме здравого смысла.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Апну тему.

Одним из доводов против STM пишут про отсутствие DIP-корпусов, без фена паять тяжело. Я вчера проверил на себе. Запаял советским паяльником 25Вт (но с хорошим необгораемым жалом Pro'sKit - усеченный конус 2мм) мелкую букашку STM8S003F3P6 в корпусе TSSOP-20 размером 6,5мм*6,4мм*1,2мм. Шаг 0,65мм, между ножками 0,25мм. Собсно запаял с первого раза, аккуратно и красиво. Лупу не использовал, только хорошее освещение и твердые руки.

Клапауций 911
Offline
Зарегистрирован: 18.10.2015

Jeka_M пишет:

Одним из доводов против STM пишут про отсутствие DIP-корпусов, без фена паять тяжело.

да, не потому, что паять тяжело, а что урезан ассортимент корпусов.

Jeka_M пишет:

Я вчера проверил на себе. Запаял советским паяльником 25Вт (но с хорошим необгораемым жалом Pro'sKit - усеченный конус 2мм) мелкую букашку STM8S003F3P6 в корпусе TSSOP-20 размером 6,5мм*6,4мм. Шаг 0,65мм, между ножками 0,25мм. Собсно запаял с первого раза, аккуратно и красиво. Лупу не использовал, только хорошее освещение и твердые руки.

ну, да - паялось японскими паяльниками.

Logik
Offline
Зарегистрирован: 05.08.2014

А скорость компиляции под STM32 как соотносится с ATMEGA? А то у меня под STM собирает чуть ли не в 10 раз медленней чем такой же блинк на AVR. На том же ПК разумеется . У всех так?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

У меня в EM::Blocks (gcc) собирается чуть ли не быстрей, про прошивку вообще молчу...165Кб за 15 сек ST-Link'ом

a5021
Offline
Зарегистрирован: 07.07.2013

Никогда не возникало ощущения, что под STM32 собирается как-то удручающе долго. Пользуюсь IAR.

Logik
Offline
Зарегистрирован: 05.08.2014

Хмм.. чего же у меня компилит 45сек, а на AVR за 3сек справляется тот же gcc. Судя по загрузке используется только одно ядро.

Хотя вобщем не так уже и важно. Достал из стола, поморгал светодиодом, померил время выполнения digitalWrite - 0,6мксек, вполне на уровне. Попробовал подключить экран OLED, хрен, он 5В, не понимает что от него хотят. Думал получу осцилограф шоб за AVR наблюдать. Не судьба..  Верну я STM на место в стол. Задач для него нет, перифирии нет. Может когда позже его к MPU6050 прикручу, тот 3,3В, должен вроде.

ПС. Ожил таки ssd1306!!! Пофиксил свою ошибку в либе и ожил. Продолжу..

Logik
Offline
Зарегистрирован: 05.08.2014

А что у STM с PROGMEM? Компилятор на него ругнулся, я его убрал, а pgm_read_byte забыл убрать. И именно так заработало. А ведь это фонты! Я их на екране правильно вижу.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Хм...у них нету PROGMEM вроде, у них просто запись идёт, и так же просто - чтение. Сначала надо разлочить память, потом можно просто по адресу писать. Япишу, как говорилось, в Em::Blocks, используя SPL и CMSIS. В дуньсреде не пробовал. Компилится весь проект (recompile all - перекомпилирует все сишные файлы) за секунд 11, если просто build target (компилит только main.c) - секунды полторы.

Ноут Lenovo G50 на Celeron'e, 2.13ГГц, 2Гб ОЗУ - характеристиками не блещет)Logik,бросайте Arduino IDE, давайте на чистый С перейдём)

Logik
Offline
Зарегистрирован: 05.08.2014

Yarik.Yar пишет:

Logik,бросайте Arduino IDE

"Всеравно его не брошу,  потомушо он хороший!"  )))))

Чистый С и/или испачканый  плюсами, он как бы от IDE не зависит. Вся сила в чем - в библиотеках! Их я как раз на C или С++ и пишу, в нотепадике или VS. В VS можно и поотлаживать если че не очевидное, типа машинки крутящей многоуровневые меню на экране с тачем. А вызовы из скетча так и калеченый виринг нормально сделает. И какая в общем разница, будет loop или main. При таком подходе от IDE много не требуется - немного текст править, выполнить компиляцию не утруждая меня организацией проекта, и загрузить в МК так, чтоб я вообще не задумывался о том как оно грузит. Аскетизм при правке текста я прощаю, хоть вспомню как зарезервированые слова до конца пишутся, а то с автодополнениями уже на бумаге код писать разучился. Для AVR компиляция и загрузка в целом гуд. Для STM вот вылезло, но раз проблема только у меня, значить излечимо.

И вхождение в тему происходит сухо и комфортно через ардуинку. Написал analogRead, в Serial пнул, пальцем ткнул на нужный пин - вау! аналоговый ввод работает! Другое дело, что работает ввод за 7мксек вместо одной, ну и ладно переходим к следующему этапу уже на чистом С. Дето так.

Logik
Offline
Зарегистрирован: 05.08.2014

Повеселил STM. В loop записано примитивное - цикл ввода аналоговой величины в буфер 1024 шт. с замером времени, цикл поиска в буфере максимального и минимального, вывод интересного на экран и в Serial, в конце делей 100мсек. Все работает, но первые 90 секунд. Потом вместо вывода данных на екран каждые 0,1сек начинает так же правильно выводить, но раз в секунду 8)). Дело к часу ночи, причем не первому. Сразу думал засыпаю я. Потом, проверив по выводимому на экран же времени, решил - тормозит он.  Неуж то думаю, он сам решил энергосбережением занятся и понизил скорость, вот шайтан.

  Утром пришла мысль подключить его не к ноуту а к зарядке usb-ной. Тормозит сразу. Отсюда две морали - 1. ночью нужно спать 2. Если Serial не может передать данные, то на это у него уходит около секунды. А на AVR этого небыло! Я требую сатисфакции (хоть узнаю что это такое ;)))

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Говнокодом можно любой камень заставить работать через жопу, потому смешно читать про "обиды" на камни. Шутите дальше.

Logik
Offline
Зарегистрирован: 05.08.2014

Я так понял в говнокоде шариш. Ну даффай, даффай. 

Для STM32F103CBT6 на плате с тату Maple Mini. IDE 1.6.5 на всяк случай. Эксклюзивом для kisoft почищено от слишком сложного.

#define PIN_LED 33

void setup() {
  pinMode(PIN_LED, OUTPUT);
  
  Serial.begin(115200);
  
}
 
// the loop function runs over and over again forever
void loop() {
  digitalWrite(PIN_LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(50);              // wait for a second
  digitalWrite(PIN_LED, LOW);    // turn the LED off by making the voltage LOW
  delay(50);              // wait for a second
  
  int t1=micros();
  Serial.println(t1);

}

Угадай, kisoft, частоту мигания? При подключении к ноутовскому USB и к USB зарядке. Тока за ноутовскую USB не спеши, сразу глянь, обожди минутки 3, монитор не запускай. И отпишись по существу, а не кучки тут откладывай. 

Immortal
Offline
Зарегистрирован: 28.12.2013

Logik, как именно вы добавляли поддержку STM32?

Через менеджер плат? (Наконец то добавлена поддержка неродных плат...)

Logik
Offline
Зарегистрирован: 05.08.2014

В общем вот так - https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation. 

Там кстати версия немного новей чем у меня. Будете ставить, обратите внимание, нужны 2 драйвера USB.

Один ставится в режиме загрузки и нужен только для загрузки, другой в обычном, видится как компорт. Переключатся в режим загрузки ни кто по людски не обясняет. Методом тыка так: после ресета светодиод быстро мигает в течении дето 1 сек, в это время нужно нажать вторую кнопку. Затем светодиод мигает медленно, в это время нужно отпустиь вторую кнопку. Если все правильно - светодиод продолжает мигать так же медленно бесконечно.  

Переходил на ИДЕ 1.6.5 чтоб эта поддержка была.

 

Успехов.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Немного оффтопа...никто не знает, был ли реверс протокола SWD, того самого, по которому ST-Link шьёт и дебажит 32хбитные STMки? 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Прежде чем меня спрашивать, дайте ссылку на официальную поддержку STM32 на АрдуиноИДЕ. Мне Ваш сарказм не интересен. Я использую Keil и мне Ваши извращения в виде стм32 на ардуиноидехрензнаеткемсделанные не интересны, потому что это пустая трата времени, это в моём понимании есть говнокод.

Logik
Offline
Зарегистрирован: 05.08.2014

kisoft пишет:

Мне Ваш сарказм не интересен. Я использую Keil и мне Ваши извращения в виде стм32 на ардуиноидехрензнаеткемсделанные не интересны, потому что это пустая трата времени, это в моём понимании есть говнокод.

А чего вобще приходили ))) Расказать как все это не интересно)))

Бегите дальше есть много непонятных и не интересных тем. Важно их все пометить расказом о личной крутости и гомнокоде остальных.

От жеж люди есть на свете, прости господи.. 

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

kisoft пишет:
Прежде чем меня спрашивать, дайте ссылку на официальную поддержку STM32 на АрдуиноИДЕ. Мне Ваш сарказм не интересен. Я использую Keil и мне Ваши извращения в виде стм32 на ардуиноидехрензнаеткемсделанные не интересны, потому что это пустая трата времени, это в моём понимании есть говнокод.

kisoft, прежде чем отвечать, вспомни, где ты находишься - на неофициальном форуме неофициальных дуиноводов, неофициально говнокодящих на AVR.

фууу! как ты так мог запомоиться - весь такой официальный в костюме среди фриков в майках-алкоголичках.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Logik, пока что о личной крутости говоришь только ты. Форум для всех, где хочу, там и пишу. Не нравится, не читай. Я уже сказал, что для стм есть более удобные иде, но ты не понял и смеёшься над стм, используя говнокод от подельщиков, прикрутивших свой говнокод к АрдуиноИДЕ. Продолжай в том же духе.

a5021
Offline
Зарегистрирован: 07.07.2013

А реверсить его зачем? На сайте ARM-а лежит его подробное описание.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

SWD? C таймингами, командами и прочим? Дайте ссылочку, если не сложно...

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Таймингов я не нашел, но некоторое описание протокола есть - http://www.arm.com/files/pdf/Serial_Wire_Debug.pdf

a5021
Offline
Зарегистрирован: 07.07.2013

А зачем вообще может понадобиться вникать в  тонкости этого протокола?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Есть одна идейка...)

Спасибо!