Всем привет. Начнем с начала: наткнулся в сети на такую штуку(как на картинке). С виду Arduino mini. Но вот что в даташит написано:http://catalog.gaw.ru/index.php?id=11656&page=component_detail. Там сказано, что этот проц может работать на 72 MHz. Однако кварц стоит на 8. Вопрос: Это маркетинговый ход ARM-овцев или и правда есть платы, с такой производительностью. И вообще, кто может что-нибудь сказать про STM Cortex M3? Заранее спасибо. С Уважением, Евгений).
Сложно сказать. На старых, еще пентиумных ПК стояли кварцы на 50,60 и 66 МГц. При этом процессоры работали на частотах до 200 МГц. Т.е. тактовая процессора получалась умножением частоты кварца с множителем до 3х (для P-200). Вполне возможно, что в данной конкретной "штуке" применен тот же фокус, и исходные 8 кварца разгоняются до 72 умножением на 9. Другой теоретически возможный вариант - встроенный в само ядро осциллятор на нужную частоту.
Да с такой производительностью. C STM Cortex M3 не работал, работал с STM Cortex M4, там умножением. Предположу, что в M3 аналогично. А что Вы хотите услышать, на мой взгляд превосходный контролер. Сравнений в сети не мало, хоть сравнивать ее с Ардуиной пожалуй не корректно (может только с теми, которые на ядре ARM). Вообще STM32 это другой мир, мне он показался немного сложнее AVR, при наличии времени и усидчивости, ни каких проблем не должно возникнуть. А к Ардуине они не имеют ни какого отношения. Хоть есть платы, с прошивкой для Ардуино IDE, вот только сколько для них готовых библиотек, еще, тот вопрос. Без библиотеки добро пожаловать в старый добрый Std Periph Lib или STM32Cube HAL. Если на думаете заниматься STM32, позволю себе совет, купите родную отладочную плату, к примеру такую - stm32f3discovery.
Спасибо буду знать. Просто увидел такую частоту. И подумал: ну не че себе! Но можете подобнее обьяснить, как увеличивают частоту кварца, ну или там самого процессора напрямую?
Все правильно. По фазе этого кварца подстраивается внутренний генератор, кратный этим 8 М. В даташите на stm страниц 100 посвящено внутренним таймерам, там все разжевано. Вообще по специальным вопросам, по деталям бибел для вас - даташит на мк. Гуглите.
Кстати, такой момент: ардуины на ARM (Zero, M0, Due) не защищены от 5В на пинах, что приводит к необходимости дополнительно делать преобразование уровней между такой ардуиной и исполнительными устройствами на 5 В. Не знаю, как STM, но есть такая платка на ARM Cortex M4 (те же 72 МГц), как Teensy 3.1, все порты которой толерантны к 5 В. Удобная и шустрая штука, кстати.
Итак сначала ответ в STM32Cube HAL, видео на русском, на 4-той минуте настройка, сейчас это рекомендовано производителем - Я настраивал по старой схеме, тогда STM32 рекомендовала скачивать Excel файл и с помощью его генерировался файл настройки, его уволакивал в проект - Вообще я бы посоветовал Вам сначала определится, для чего он Вам нужен. Я знаю 5 вариантов работы с STM32. Возможно, сейчас, что-то устарело, что-то добавилось. Если поверхностно. 1. CMSIS - работа с регистрами, только баловался. 2. Std Periph Lib - работа через библиотеку, библиотека построена CMSIS, работал на ней, на сколько мне известно устарело. 3. HAL новая библиотека, библиотека построена CMSIS, только баловался. 4. mbed - система программирования, которая создавалась как аналог Ардуино, очень огр. список процессоров. Один раз глянул и забыл. 5. Arduino IDE, слышал, но не пробовал. Я бы рекомендовал бы HAL, она не сложная, более переносимый код между проц. и сериями. И на нем можно раскрыть весь потенциал данных контролеров. Начальное видио по HAL (там канал с 8 видео) - . Аналогично у M4 версии, не знаю как у всех, но у многих в серии STM32F4, к примеру на STM32F407VG, STM32F401RET6. UPD. Если хотите остаться на Arduino IDE, действительно возьмите Teensy 3.1. Или аналогичное решение, DUE и т.д.
Лучше Teensy, по причине, озвученной ранее. При этом, правда, поддерживаются не все версии Arduino IDE. В частности, 1.6.7 c arduino.сс поддерживается, а версии с arduino.org не поддерживаются. Польза от Arduino IDE в данном случае, пожалуй, только в том, что она дает доступ к накопленным для данной среды библиотекам, может оказаться привычной и обеспечить программирование разных микроконтроллеров в одной среде. Программировать и прошивать Teensy можно и без нее. Можно, кстати, и STM из Arduino IDE пользовать. Средства для программирования из Arduino IDE под него сделаны по тому же принципу, что и для Teensy - собраны в кучу компилятор, утилита для загрузки прошивки, поправленная под новый МК стандартная библиотека, и эта куча прикручивается к Arduino IDE. Для STM32 M3, например, что-то доступно тут: http://we.easyelectronics.ru/aliaksei/arduino-ide-i-stm32.html
Говорил о тех Ардуинах, которые на ARM, возможно Вы правы и Teensy лучше DUE, не сравнивал и не изучал. Что качается разных уровней, не понимаю, как это может сказаться на выборе платформы, не хотите/не требуется делать плату с опторазвязкой, есть LLC 5V - 3,3V стоит копейки, можно использовать и на макетке и в хоббийных проектах. Сейчас тенденция такова, что все идет в сторону уменьшения рабочих напряжений. Но я всего лишь любитель и может чего-то не понимаю. Что лучше Teensy, STM или какой-то другой контролер, ответ на этот вопрос зависит, от того, для чего планируется использовать данный контролер. Мне требовалась широкая и гибкая линейка 32 разрядных микроконтроллеров с превосходной документацией, большим сообществом, открытыми библиотеками и хорошими платами и средствами отладки и при этом не дорого, поэтому мой выбор пал на STM32. Это большой плюс, как и минус. Да плюс в том, что если есть библиотека и она нас устраивает мы в дамках, если нет, начинается изучение конкретного контролера. И тут начинается веселье, к примеру Teensy, есть модели AVR 8 от Atmel, Teensy 3.0 > ARM от Freescale. M0\DUE ARM от Atmel. Да средства разработки и отладки можно найти универсальные, как и то, что они похожи, но все же. Хотя справедливости ради, нужно отметить, что выбор библиотек не мал и Вы можете ни когда не столкнутся с подобными проблемами. Да я слышал, просто не пробовал. Если Вы начнете работать к примеру на HAL, Вас потом ни какими пряниками не заманить на написание кода для STM32 в Arduino IDE. Другое дело, что само использование 32 битных микроконтроллеров, требует определенных задач. Все это лишь сугубо мое мнение.
Как мне кажется, на начальном этапе, когда слишком велик риск что-то случайно спалить и тем самым в самом начале отвратить себя от занятий с микроконтроллерами, некоторая защищенность платы никогда не помешает. А когда уже приходит понимание, что к чему, то можно выбирать и из других соображений. Конечно, есть еще такой фактор, как шилды, которые удобно ставить как раз на аутентичные ардуины, но их подавляющее число рассчитано на 5В, и они вполне способны спалить плату, которая не защищена от подобных проблем.