21.05.2013, 15:52 | #1 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Плавный переход от Arduino к Armduino
Давно подумывал о переходе на 32 битные ARM контроллеры, так как 8 битного контроллера
мне уже стало не хватать и вот настал этот день. Наконец то у меня в руках отладочная плата Maple mini в основе которой контроллер ARM Cortex-M3 STM32F103. Почему я решил перейти на этот контроллер? Потому что стоимость микросхем STM32F103 даже немножко дешевле чем Atmega328, но разница в характеристиках колоссальная. Например на Ebay стоимость чипа STM32103 105руб. А стоимость чипа Atmega328 -118руб. Характеристики Для подключения к компьютеру не требуется USB-UART мост Ядро ARM Cortex M3 Разрядность 32 бита Тактовая Частота 72мГц Оперативка 20кб Флеш память программ 128кб Входы/Выходы 34пина (GPIOs) из них 12 ШИМ(PWM) с разрешением 16 бит 9 аналоговых входов (АЦП) с разрешением 12 бит, 2АЦП(ADC) время преобразования 1мкс 2 SPI 2 I2C 3 USART 1 CAN 7 каналов прямого доступа к памяти (DMA) 4 таймера встроенные часа реального времени 32кГц с возможностью калибровки для питания часов от батарейки есть пины Vbat+ и Vbat- Для внешнего прерывания можно использовать любые GPIO пины, но одновременно могут использоваться только 16 пинов и только одного порта А или В Схема Maple mini Переходить не торопился потому что понимал что на изучение нового контроллера и его особеностей, потребуется много времени Но когда HiddenPilot дал ссылку на контроллер и компилятор к нему, который был заимствован у Arduino, то после этого я понял что можно безбоязненно переходить на STM32 Первое включение и установка драйверов Процесс установки драйверов не стандартный, так как устанавливается два разных драйвера Сначала нужно cкачать и распаковать Maple IDE Подключаем контроллер к USB ПК Потом заходим в диспечер устройств и видим устройство "Maple R3" жмем кнопку ""обновить драйвер" и указываем путь к драйверу ..\maple-ide-0.0.12-windowsxp32\drivers\mapleDrv\serial После успешной установки serial драйвера нужно установить еще один драйвер LibUSB. Для этого нужно перевести контроллер в режим бесконечного загрузчика, нужно нажать кнопку сброса отпустить и сразу же нажать кнопку but=32 и и отпустить кнопку через 2-3сек. В диспечере устройств должно появится устройство Maple 003. В свойствах устройства жмем кнопку ""обновить драйвер" и указываем путь к драйверу ..\maple-ide-0.0.12-windowsxp32\drivers\mapleDrv\dfu После того как драйвер установится, можете попробовать залить в контроллер тестовый код Blink Также как и в ардуино IDE у Maple есть много примеров в папке Exemples В основном синтакс языка программирования Maple такой же как и у Arduino. Вам не придется переучиваться. Вот Вам пример кода Blink для Maple Он отличается только тес что у него светодиод подключен на D33 PHP код:
|
21.05.2013, 21:46 | #2 |
Senior Member
|
А к OpenWRT подключается так же как и Arduino ? Я имею ввиду настройки порта и управление "ногами"?
|
21.05.2013, 21:50 | #3 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
К UART подключить даже проще не требуется без согласования уровней, так как контроллер питается 3,3в. Питать его можно тоже от разъема UART
По USB пока еще не пробовал, хотя исходники драйвера libusb под линукс в открытом доступе, можно попробовать скомпилировать под роутер |
24.09.2013, 11:55 | #4 |
Senior Member
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0 |
Лично я не вижу смысла в Armduino. Wiring - С-подобный язык используемый в Arduino IDE конечно очень прост для понимания, но за это приходится платить ограничениями и не возможностью не только полностью использовать все функции ARM-процев, но и писать гибкий код. В конечном итоге разница между платами только в частотах, количестве пинов и размерах памяти, а надо ль оно? Я когда игрался с ардуиной и ее то на 100% не загружал никогда ни по частоте, ни по памяти.
Преимущество ARM процев, в частности плат типа STM32 в том, что можно легко и быстро аппаратно генерировать ШИМ, создавать кучу таймеров и обрабатывать много прерываний. То есть опрос датчиков, управление сервами и обработка разных сигналов реализуется на порядок эффективнее и расходует меньше времени ЦПУ, позволяя обсчитывать что-то еще... То же составление карты, например. А еще можно работать с разной переферией от аудио выхода до USB/Ethernet. Библиотек куча. Надо только разобраться, в отличие от всяких дуино писать сразу не получится. Но при разработке чего-то на что не хватает мощностей ардуино вдумчивый подход с изучением железа и библиотек это только плюс. Такое вот IMHO |
24.09.2013, 12:02 | #5 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Даже если использовать только те функции которые в Ардуино, то мы получим большую производительность и с таким же уровнем цен на контроллер
Плюс еще в том что есть DMA |
24.09.2013, 12:40 | #6 |
Senior Member
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0 |
Цена на аврки и ардуину в частности завышена из-за популярности платформы.
Насчет "контроллера за те же деньги" я бы не был так уверен. Гугление показало что в россии на сайте "амперка" ардуина стоит 1100, а ардуина due с кортексом стоит 2500, на ибее 300-500 рублей за Uno и 1000-1500 за Due и клоны. В то время как сам контроллер Atmega 328 можно купить за 200-500 рублей в России, а Cortex M-4 от 30 до 100 (правда паять та еще развлекуха). При этом в той же тера электронике плату discovery с кортексом, юсб, разными датчиками и кучей переферии можно купить за 700-1200 рубликов. Насчет производительности... ну да, выше будет. Но я не могу представить задачу для такого уровня платы где этот прирост производительности был бы виден или хотя бы нужен. |
24.09.2013, 12:43 | #7 |
Senior Member
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0 |
Я к чему. Если есть желание расти, надо брать серьезные платы, углубляться в изучение даташитов и настоящих языков программирования. Если желания нет, то для игрушек и поделок AVR-ардуины за глаза.
|
24.10.2013, 08:33 | #8 |
Junior Member
Регистрация: 24.10.2013
Сообщений: 1
Вес репутации: 0 |
Загрузчик maple ide
Как загрузить и где скачать загрузчик в STM32F103RB ?
Поддерживает ли maple j-link или отладка в нем исключена? Какой тип платы выбрать при заливке скетча для указанного процессора? |
19.02.2015, 21:23 | #10 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Re: Плавный переход от Arduino к Armduino
а как перенести проект с исходниками из Eclipse на Maple Ide? уж очень не хочется новую среду осваивать
|
Здесь присутствуют: 5 (пользователей: 0 , гостей: 5) | |
|
|