Здравствуйте! Намедни освоил новый проц/архитектуру/производителя/способ отладки
имеется STM32VLDiscovery
запустил с нуля созданный в кейле проект через StdPeriphDriver + CMSIS впринципе могу и без СтдПерипДрайвера - после 3-х дней общения камушек стал прост до безобразия...
и вот на новой платформе заинтересовали меня сравнения... 1) Каково потребление 2) макс частота 3) насколько быстрее атмеги на той же частоте 4) насколько больше/меньше жрёт на меговской частоте 5) насколько высока макс частота 6) разница по объёму кода
в результате чего было проведено масса тестов итак.. программа - обыкновенная простая заготовочка с инициализацией системы, PLL, некоторых таймеров, РТЦ, и самописный драйверок экрана 44780+граф либа к нему....вся вычислительная и рисовательная часть один-в-один с атмеговских проектов...
значиться так по пунктам 1) при 24 мегагерцах и указанной периферии - 10 ма(11 при активных вычислениях) 2) макс частота 56 мегагерц....кушает при этом 25 ма или 29 при активных вычислениях 3) написал прогу примитивнейшую...
замечено что её наличие-отсутствие на результат влияет мало...очень мало...неразличимо мало
так вот на 8 мегагерцах АРМ за секунду проходит указанный тестовый код 2300 раз... АтМега8 - 800 при оптимизации на объём и 900 при оптимизации на скорость разница в два с половиной раза всего....не радует...
5) на 8-ми мегагерцах и указанных вычислениях - токи примерно равны....+- 1 миллиампер... но мега-то рабоатет от 5-ти вольт а арм от 3.3 тоесть мощность в два раза меньше
6) тестовая программка на кодвижне скомпилилась в 5 килобайт коду... оптимизация по размеру ....по скорости - скомпилится в 5.2 кб..разницы нет
АРМовский код аналогичен....занимает 17 килов! без оптимизации и 12 килов с макс оптимизацией по размеру .... на скорость влияет ПОЛОЖИТЕЛЬНО...+ 100-200 проходов в секунду
ИТОГО.....если дать АРМУ 56 мегагерц + его архитектура + кеил который поточнее будет чем свавр овский флоат = 15000 вычислений в секунду
атмегу не гнал...да и разницы нет....скорость растет линейно - 900 при 8 мегагерцах... ИТОГО... -в 3 раза больше прошивка аналогичная по функциям - можно сделать вывод что 128 КБ у арма = 32 килобайтам у АТМЕГИ
-в 2.5 раза больше быстродействие при той же частоте...
-в 3,5 раза больше макс допустимая частота
-в результате - производительность всего в 8 раз выше .... и это максимум....при том что макс допустимой частоты моего арма 24 мегагерца...
- если использовать стандартные частоты то мега на 16-ти мегагерцах выдаёт 1800 вычислений в секунду а АРМ выдаёт 6400 вычислений в секунду на 24 мегагерцах тоесть всего в 3.5 раза больше....при этом и кода сравнительно тоже так же само больше по обьёму...тоесть 128 кб у арма это 36 КБ у атмеги... не радует память...у арма 8 килобайт всего....2000 занято этой прогой... а у меги занято всего 200 байт!!!! при её то килобайте ВСЕГО + у меги есть еепром а у арма - 20 байт бекап регостров для которых надо батарейка... но арм всётаки покруче будет меги...особенно таймерами и режимами ног...большая половина которых 5Вольт толерантная...
Если есть ктото у кого дискаверя лежит и он зная атмеги не знает как перейти на армы - обращайтесь помогу чем смогу..мне с ней уже стало скучно...всё что хотел и мог хотеть уже попробывал настроит и получил.... АРМ это довольно просто....пересесть с атмела на арм нечего делать
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
В принципе, мне там все понятно. Однако есть один вопрос: объясните пожалуйста еще раз, как работать с NVIC (БЕЗ стандартной бибилиотеки, через регистры, с CMSIS и я могу).
Кстати, если кто не знал. Камушек, который стоит в VLDiscovery (STM32F100RB) легко и непринужденно перепаивается на STM32F103XXX без изменения платы.
_________________ Разница между теорией и практикой на практике гораздо больше, чем в теории.
дак ЦМСИС эт просто битраспиновки а вот cln периф драйвер это уже да...это зло...но...там ничего сложного нет можно в исходники посмотреть и увидеть что он делает... с нвик никаких проблем нету...у меня по крайней пере не возникло....надо просто включить его и включить линию прерывания....ну и включить генерацию прерывания в соответствующей периферии
П.С. они то конечно полностью идентичны по распиновке и т.д. но...зачем мне туда 100 грниневый камень? в чём вкусность армов stm32VL ? Цена 9 грн за камень аналогичный атмеге 8-й по размерам флеше и раме но НАСКОЛЬКО навороченней и быстрее? и доставаемей...
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Последний раз редактировалось clawham Пт июн 24, 2011 09:40:31, всего редактировалось 1 раз.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Возможно, но у известно кого STM32L Discovery по 850 рублей
Поставить плату на безпаячную макетку за 450 рублей и прекрасный стенд начального уровня готов !
STM32L-DISCOVERY – недорогой способ познакомиться с микроконтроллерами STM32L, построенными на базе ядра Cortex-M3, отличающиеся ультранизким энергопотреблением (порядка 270нА в спящем режиме). Эта плата – полноценный инструментарий, включающий в себя оценочную плату, программатор и отладчик с поддержкой самых популярных программных средств разработки от таких фирм как IAR, Keil и Atollic.
В основе STM32L-Discovery заложен 32МГц микроконтроллер STM32L152RBT6 с 128 KБ Flash, 16 KБ RAM и 4 KБ EEPROM. Наличие встроенного программатора–отладчика ST-LINK позволяет начать разработку собственных приложений без дополнительных затрат. Сигналы встроенного ST-Link выведены на внешний разъем, что позволяет в дальнейшем использовать STM32L-Discovery в качестве программатора-отладчика для своих собственных разработок. На официальном сайте STMicroelectronics вы можете найти всю необходимую информацию по данному продукту – руководства, примеры программного обеспечения, документацию http://www.st.com/internet/evalboard/product/250990.jsp
Основные характеристики STM32L-Discovery: • Микроконтроллер STM32L152RBT6 - Ядро Cortex-M3, 128 KB Flash, 16 KB RAM, 4 KB EEPROM - Интерфейсы USB 2.0 FS, 3xUSART, 2xSPI, 2xI2C, 8 таймеров - 24-канальный 12-бит АЦП 1мкс, компараторы, 2х12-бит ЦАП - Полноценные часы реального времени - Встроенный контроллер LCD 8х40 • Встроенный программатор ST-Link с возможностью программировать другие микроконтроллеры STM32. • LCD дисплей 24х8 в форм-факторе DIP28 • Возможность измерения потребляемого тока • Четыре светодиода: - LD1 (красный/зеленый) для сигнализации обмена данных по USB - LD2 (красный) для питания 3.3В - Два пользовательских диода LD3 (зеленый) и LD4 (синий) • Две кнопки (user и reset) • Сенсорная клавиатура (четыре сенсорных кнопки или один слайдер) • Все свободные выводы STM32L152RBT6 выведены на контактные площадки
_________________ Будете проходить мимо- проходите!
приоритетами игрался ....пока нет таких задач как то ж на авр жил до этого? я тут это сравнение сделал просто для того чтоб увидеть реально что мне даёт арм....по факту ничего особенного....в 4 раза больше производительность на стандартных частотах.... всё... да красивые таймера, да много плюшек с прерываниями, да много функций у системы тактования....но....это всё не делает его чем-то уникальным.....я не вижу у себя ни одной задачи которая бы арму была б по зубам а вот на меге 8-16-32-108 я этого бы не мог сделать...нет таких задач... рамы мало...много ног не 5в толерант....сложнопаябельные корпуса....скорость на том же уровне...не в 10 и не в 20 раз они быстрее...прерывания...совершенно не известно за сколько тактов выполняются(опоздание - у меги 8й - 12 тактов)....частоту 1 мегагерц на прерывании они тоже не выдерживают...зависают намертво..хоть немного и пускают команд основного цикла...но...это как-то не особо помогает.... ДМА....очень интересно назначение ДМА в 8-ми килах без возможности расширить... да код можно выполнять из РАМ...разницы никакой...по скорости одно и то же... я говорю о проце f100rb .... стабильность тактовой внутренней - ваще пипец...при поднятии температуры корпуса на 10 градусов вместо 2.3 мегагерц генератор выдаёт 2.6....его как термометр можно использовать... у меги не лучше встроенный но...зато внешний не уплывает а в моём арме(мож бракованный попался - И КВАРЦ ПЛЫВЁТ на 1-2 килогерца в плюс при нагреве!!!(правда паяльником и до 60-70 градусов)...
вот и целесообразность....вопрос?
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
тоесть по сути просто обименовывание адресов управляющих регистров и определение структуры-полей этих регистров... куда уж проще и ниже-то? хотите - сами распихивайте вручную по регистрам битики обращяясь к адресам памяти проца выщитывая смещение....ужос наверное
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
не понятно как у вас одинаковые программы откушали от озу разный объем, на порядок разница, вероятно код разный, и получается что сравнение не корректное. -- можете выложить оба проекта?
_________________ С уважением, Денис Железняков aka ZiB Мой блог: http://ziblog.ru
ну конечно разный...разные компиляторы разные разрядности переменных..например флоат у авра 0.0000 а у арма 0.000000 есть разница? у арма любая переменная - 32 битная...даже чар займёт в раме 32 бита! а у АВР нет У Авр кодвижн...он наверняка очень упрощен... увы сравнить результаты расчета синусов пока не смогу...хотя нет....смогу....в уарт сливать да и всё...
потом у арма полтора кила рамы занимает только програ инициализации периферии...а у авра инициализация - просто 10-ток регистров прописать...вот вам и разница архитектур!!!
арм это Кейл...у него флоат 64 битный помоему...а у авра и кодевижна - всего 32 битный...ну есть разница....вот она....напорядок боле расход памяти и оперативки...по сути ресурсов....на самообеспечение....
конечно если без ничего конфигить арм на уровне адресов регистров то получится меньше...но....оно того стоит?
Это не холивар авр и ли арм... я говорю о личном смысле переходить и иметь возможность сравнивать две несравненные архитектуры....просто армы я могу у техасцев нарыть хоть 100 бесплатно а атмели не раздают нашару...а меги 8-е покупать в одессе по 30 грн как-то жаба душит...недавно у ворона купил 20 штук ...так уже 3 остались.......просто я сделал тест-сравнение одинаковых задачь и во что выливается решение их на аврке и на армике...это ж не арм...это жалкое подобие...но стоит 9 грн....
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Причем, если прерывания следуют друг за другом, то при переходе от одного обработчика к другому проходит всего 6 тактов.
Цитата:
даже чар займёт в раме 32 бита!
Нет. Там действует хитрая система упаковки.
Надо сказать, что STM32F100RB - довольно странный проц. Он выглядит обрезаным по прихоти маркетологов - остальное семейство несравненно круче по памяти, периферии и тактированию.
Вообще, я бы посоветовал Вам пристальнее изучать архитектуры, с которыми собираетесь работать, ибо видно, что возможности STM32 Вы представляете не полностью.
_________________ Разница между теорией и практикой на практике гораздо больше, чем в теории.
я не против хитрой упаковки но режим тхумб не рабоатет ...судя по отладчику читается ВЕСЬ регистр на 32 бита из памяти при присвоении....может при хранении начальных данных и нет - но вот при присвоении смотрел - 32 бита все хором...мой чаровский буффер экрана занимает просто дофигищщще дальше по прерываниям...та..так то оно так но вот ... запустил я на сисклоке таймер сбрасываю его в ноль и запускаю внешнее прерывание.... проходит от 24 до 100 тактов
ладно...софт прерывания не то... беру таймер и при переполнении дергаю ножкой....от которой внешнее прерывание... в прерываании первой же командой - прямым обращением к регистру торможу таймер а потом его читаю и присваиваю пром переменную.... и что я вижу? снова....то 5 тактов то 24....12 нигде не видел...хотя именно это в одном проекте мне очень сильно точно нужно знать....ставил внешне приоритет повыше пониже....ничего... у проца больше небыло заданных мною других прерывааний...!!!
я не спорю что я где-то чего-то не знаю..но...какой-то этот экземпляр армика очень уж странный...есть дма нет рамы...есть ЦРЦ но нет апаратноуправляемого контроллера передачи с контролем правильности приёма...просто генерит тот црц вдогонку... я пока в раздумьях... заказал с техаса http://focus.ti.com/docs/prod/folders/p ... s2776.html таких камушков....посмотрим как они мне понравятцо...
П.С. я не спорю что очень мало чего знаю о армах... я не спорю что они круче АТМЕГ я рассуждаю как пользователь у которого с мегами все хорошо и что нужно - всё на них получается....но есть пара-тройка задачь в которых мега не справляется....впрочем арм текуущий - тоже... так что бум дальше изучать архитектуру ассортимент особенности и т.д. единственное где арм пригодился бы - работа с экраном 128х64....но снова - мало рамы...64 кила вроде как достаточно ...а 8 чтото ну ни в какие ворота... так что вот такое моё первое общение с представителями суровых армов....
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Спасибо за код. Такой сральник в файлах у кейла всегда? (ни разу с кейлом не работал) Не понимаю каким образом инициализация у вас занимает ОЗУ? (сильно к код не вдавался, очень не читабелен) вероятно наклепали глобальных переменных, вот на вскидку ваш код на 8 МГц, выполняется более 50 тысяч раз в секунду (точно только в понедельник, дома в наличии простой мультиметр - измерял частоту), код 8,2 кб озу 244 байта (из них 200 байт стек) большую часть кода занимает синус, без него кода всего 700 байт. компилятор gcc, платка STM32VL-Discovery
эт не совсем весь мой код эт раз а потом - в кейле то мой первый проект по сути...я не знал что надо свои файлы ложить отдельно...
я тоже не знаю ка кно вот чистый проц моргающий по прерыванию от РТЦ лампочкой весит 9 килов!!! низнаю как и почему!!! мож я чо не так с кейлом делаю но...фАхт....
кстати ... где тут работа с экраном? вывод эначения? а где инит прерываний, сами прерывания инит ножек и т.д.? да и икса не инкрементируется... не проверяется условие перелета иксы....
али я чот нипанимаю?
интересно было бы получить табличку-распечатку того что передаётся в функцию...мож там сами расчеты не такие?
кстати проект под мегу 8-мь.... вот
П.С, Вот отключил вывод на дисплей и инкремент икса результат 105 тыщ на 56 мегагерцах а если инкрементировать икса но не выводить на экран(не обновлять экран) то 21300 проходов по синусу при 56 мегагерцах по поводу кода....мож я чего не понимаю -
Код:
Program Size: Code=15494 RO-data=634 RW-data=144 ZI-data=1696
расшифруйте данную мессагу?
Вложения:
Комментарий к файлу: тест на меге 8 под 8 мегагерц 43_bench.rar [181.97 KiB]
Скачиваний: 262
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
я сам новенький в этом деле, но делать сравнения мк по производиловке не очень просто, для этого существуют специальные тесты. и код тестовый код при этом не должен прерываться прерываниями, мне показалось оптимальным просто передергивать ножку, без всяких выводов на экран. Повторяю с кейлом не работал, поэтому не знаю что такое ZI-data=1696 Code=15494 это код RO-data=634 константы RW-data=144 по всей видимости переменные в ОЗУ
в целом мк, довольно таки не плохие. младшие собраться stm8L так же не плохо обгоняют авр, особенно в плане потребления.
в плане кода что было то и вставил, то что было за комментировано не трогал, вроде ни чего не изменял.
мег уже не осталось все раздал, более не интересны, проверить не на чем. (хотя на работе мега64 есть, но не хочу проверять)
_________________ С уважением, Денис Железняков aka ZiB Мой блог: http://ziblog.ru
а я не говорил о сравнении тотальном и гарантированно обьективном... я говорю о конкретных применениях... например строить синусы на килогерцах....делать расчеты/умножения по 4-м каналам PWM меге не хватало скорости вообще...
этому тоже не особо хватает но....на 56 мегагерцах и детальной оптимизации должно хватить а техасские 50-егагерцовники уверен что ещё раза в 2 можно газонуть - тем должно хватить точно....тем более что там рамы море можно флеш отключать и газовать гораздо больше...
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
Добавлено: Пт июн 24, 2011 21:04:32
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
clawham писал(а):
рамы мало...много ног не 5в толерант....
конкретно ST'шные не помню, но в NXP и TI почти все ноги 5v толерантные. рам в тех же ST до 128кб гдето есть столько в AVRах ? -))) Корпуса плохо паябельные - так и AVRы с шагом ножек 0.8мм только tqfp32, дальше с тем же шагом но 0.5мм. где разница ?
Нагрузочная способность ног только у дубовых AVRов выше и уровень может быть около 5 вольт при 5В питании, но не так чтоб часто это было нужно.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения