16.03.2013, 00:00 | #1 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Maple Mini
Кандидат на замену моего ArDuino Nano V.7
Maple mini представляет собой отладочную плату с штыревыми выводами с низу, для удобства прототипирования. В Maple mini установлен 48-контактный STM32 процессор с той же скоростью и памятью, как и у его старшего брата Maple, но используется только 34 GPIO. Он может питаться от USB или внешнего источника питания. Размеры: 50 х 18 мм Микропроцессор: 32-разрядный ARM Cortex M3 72 МГц (STM32F103CBT6) Память: 120 КБ флэш-памяти программ и 20 КБ SRAM I / O Pins: 34 (12 из которых обеспечивают выход 16-бит ШИМ) АЦП: 9 (Разрядностью 12-бит) Периферия: 4 таймера, 2 I2C, 2 порта SPI, 3 USART Купить контроллер Maple Установка драйверов для Maple mini и первый запуск Maple IDE Мaple-ide, внешне ни чем не отличается от Arduino-IDE |
16.03.2013, 06:09 | #2 |
Junior Member
Регистрация: 24.11.2012
Адрес: Новосибирск
Сообщений: 14
Вес репутации: 0 |
Серия статей про STM32 (4 части) на русском ; даташиты, руководства и т.п. ...
http://eugenemcu.ru/publ/13-1-0-71 Последний раз редактировалось fot; 16.03.2013 в 09:32. |
16.03.2013, 10:24 | #3 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Я бы взял пару штук!
|
16.03.2013, 11:48 | #4 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
IDE для неё такое же как для ардуины.
|
16.03.2013, 16:39 | #5 |
Member
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0 |
Так и есть! Это логическое продолжение ардуины.
Почти все функции ардуины портированы. Скетчи написанные для ардуино с некоторыми изменениями спокойно компилируются в MAPLE IDE. библиотеки тоже потихоньку перенсят. Некоторые особенности: 1. Есть небольшая специфика, в плане шевеления ногами. Но это не столько специфика, а сколько логическое продолжение, которого многим не хватало. Режим работы ног теперь может быть не только In или Out. Но принимать следующие значения. OUTPUT - тут и так все понятно, 1- TTL, 2- GND. OUTPUT_OPEN_DRAIN - выход с открытым стоком, т.е., как я понял, в режиме "Low" пин потдякивается к земле, тем самым превращая в шине логическую 1 в 0. INPUT - переводит ногу в режим Цифрового входа, INPUT_ANALOG - переводит ногу в режим аналогового входа INPUT_PULLUP – вход, подтянутый к плюсу питания. Как я понял, для считывания данных с выхода подобному OUTPUT_OPEN_DRAIN INPUT_PULLDOWN– вход, подтянутый минусу питания. INPUT_FLOATING – синоним INPUT. вход без подтяжки. PWM – выход аналоговый PWM, PWM_OPEN_DRAIN – выход аналоговый PWM с открытым стоком. (тоже может быть удобно для бездрайверного управления ключом, ИМХО) 2. Как можно было заметить, ноги в STM32 более гибко настраиваются, чем в AVR. Например Pin D4(PA7), может быть цифровым IO, может быть подключен к АЦП, так же может выступать в роли ШИМ, и при этом так же может перенастраиваться как составляющая порта SPI. 3. Но при разработке схем нужно обязательно учитывать, что не все ноги MAPLE выдерживают работу с TTL в 5V. Т.е. либо ставим делитель, либо подключаем к "5 volt tolerant" ногам. Все АЦП ноги работают с напряжением не более 3.3V. 4. Разрядность PWM в STM32 16-бит, так что для скетчей использующих в ардуине функцию analogWrite(n) придется добавить умножение на 256. т.е. поменять все "analogWrite(" на "analogWrite(256*" и получить в итоге analogWrite(256*n) выходе. 5. ШИМ у MAPLE работает на частоте 1,1кГц, у Ардуино - 490Гц. 5. Т.к. контроллер 32х разрядный, арифметика над большими числами должна производиться побыстрее, чем на арду. Так же появилась нативная поддержка функции деления. (очень не хватало в ардуино. некоторые скетчи очень мног4о теряли в быстродействии из-за деления). 7. 2х байтных переменных(типов данных) теперь нет. Либо 1 байт в памяти, либо 4 байта. При объявлении типа данных, Int и Long теперь синонимы. За-то появился тип данных - "монстр": Long Long - 8 байт в памяти, т.е. может хранить числа до 18 446 744 073 709 551 616. 8. Заливается все в MAPLE c помощью бутлоадера и хардварного USB.В системе опознается как DFU устройство и наверняка можно шить используя DfuSe. С помощью нее у меня перешивается осциллограф DSO201(он тоже на STM32). Есть еще JTAG и на некоторых MAPLE совместимых платах SWD. с ними превращение говнокодов в конфетку происходит гораздо проще(MAPLE IDE как я понял пока не поддерживает такую отладку, и наврятли будет) 9. Кстати! На счет отладки, наконец-то программу можно заливать прямо в RAM минуя Flash. А значит можно сколько угодно раз заливать прошивку в контроллер, без опасения запортить флеш по ограничению количества перезаписей. При обесточивании, MAPLE очистит все что мы на творили в RAM. да и запись проекта в рам должна проходить быстрее. продолжение следует... Последний раз редактировалось HiddenPilot; 16.03.2013 в 18:54. |
17.05.2013, 22:51 | #6 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Получил сегодня контроллер Maple Mini
Первый тестовый код заработал!!! PHP код:
|
23.05.2014, 02:57 | #7 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: Maple Mini
А что можно на ней сделать, круче чем на дуине;
Вот тут : https://duino.ru/maple-mini-na-kontr...ortex-m3-.html Что можно поключаться CAM-шне? И или на её чего! Просто штуа вроде иьересня. |
29.07.2014, 18:21 | #8 |
Junior Member
Регистрация: 12.03.2014
Сообщений: 3
Вес репутации: 0 |
Re: Maple Mini
Заказал себе одну платку Maple mini на STM32F103CBT6. Качество отличное. Плата приходит в комплекте с двумя нераспаяными рейками pin headers. На ebay такой цены нет вроде бы.
Плата, действительно, достойна внимания. Тем более по такой цене (ардуино нано так же стоит). Будет ли у Админа либа к этой плате наподобее CyberLib? |
29.11.2014, 20:14 | #9 |
Member
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0 |
Re: Maple Mini
Думаю получится такую замонстрячить, а пока поделюсь кое-какими наработками:
Не плохие сайты/статьи с описанием работы того или иного функционала. Для начала, в качестве справочного пособия, в части общего понимания: 1. http://www.gaw.ru/html.cgi/txt/doc/m..._arh/index.htm Это как настольный букварь. Кратко, лаконично, и зачастую понятно. Не раз возвращался к разделам этой книги, и каждый раз она давала ключ к пониманию некоторых кодов в интернете. 2. Cайты с обучающими урками по различным направлениям Stm32: http://cxem.net/mc/mc.php http://eugenemcu.ru/publ/13 http://ziblog.ru/category/mikrokontr...stm32f1/page/2 http://chipspace.ru/category/microco...-stm32/page/4/ в частности: SPI(max=18MHz): http://www.gaw.ru/html.cgi/txt/doc/m..._arh/5_2_1.htm http://easystm32.ru/interfaces/43-spi-interface-part-1 http://easystm32.ru/interfaces/45-spi-interface-part-2 http://chipspace.ru/stm32-spi/ http://pcus.ru/1567-prikruchivaem-k-...tu-po-spi.html http://we.easyelectronics.ru/STM32/h...me-master.html Много чего интересного есть у Stm32 в части SPI(2 канала, ремэп портов на другие ноги, подключение к ДМА, 16-битные пакеты.). Но один замечательный режим пришелся как нельзя кстати - полудуплексный режим работы SPI. Устанавливается старшим байтом "BIDIMODE". + делитель на 16(pclk=36МГц/16=2,25МГц). И для HX711 мы получаем готовый хардварный интерфейс самостоятельно складывающий через DMA прямо в нужный нам массив, или сразу в радиомодуль. А это значит, что любые весы могут быть подключены к умному дому и не только 2. Режим работы с адресным пространством в режиме "Bit Band" http://www.gaw.ru/html.cgi/txt/doc/m..._arh/2_3_7.htm http://we.easyelectronics.ru/STM32/s...t-banding.html http://eugenemcu.ru/publ/13-1-0-77 http://forum.chibios.org/phpbb/viewtopic.php?f=3&t=1123 больше всего мне понравится этот скрипт, т.к. он показался самым универсальным. http://electronix.ru/forum/index.php...3&#entry968953 Еще одна ооочень интересная статья про резервирование адресного пространства в памяти под бингбэнд и последующее использование его для быстрого доступа к битам. http://www.micromouseonline.com/2013...ding-approach/ 3. И самое вкусное, что так греет слух - это DMA(помните UDMA33/66? Это оно самое ): http://www.gaw.ru/html.cgi/txt/doc/m..._arh/4_2_3.htm http://amberclan.clan.su/publ/uroki_...7_dma/7-1-0-95 http://we.easyelectronics.ru/STM32/p...bibliotek.html http://kazus.ru/forums/showpost.php?...45&postcount=9 http://amberclan.clan.su/publ/uroki_...7_dma/7-1-0-95 так же не плохие коды работы с ДМА и прерываниями генерит ниже приведённая программка. если нужна быстрая работа с ногами контроллера, вот мой вариант ногодрыга. PHP код:
Последний раз редактировалось HiddenPilot; 10.01.2015 в 07:54. |
29.11.2014, 21:30 | #10 | |
Member
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0 |
Re: Maple Mini
Ну и еще хорошая новость.
не далее как месяц назад один хороший человек сделал удачную поделку. Скрестил ужа с носорогом, а именно синтегрировал maplelib и Arduino IDE 1.5.7 и выше. Теперь можно создавать и компилорвоать коды для мапле и Ардуино из одной и тоже программы. Но самое главное в Arduino используется новй GCC компилятор, с помощью него удалось увеличить быстродействие ногодрыга с считыванием инфы на 35%: с 32(2,25Мгц) тактов до 23(3,12МГц), и это думаю не предел. Мало того в Arduino IDE довольно таки просто обновляется компилятор. Достаточно скачать новую версию компилятора с сайа https://launchpad.net/gcc-arm-embedded , и заменить им все содержимое папки: C:\arduino-1.5.8\hardware\tools\gcc-arm-none-eabi-4.8.3-2014q1 для того чтобы самим скрестить ежа с носорогом. качаем самую свежую версию ARDUINO IDE (не ниже 1.5.7). Скачиваем отсюда архив с либой https://github.com/bobc/maple-asp . Из в архиве находим папку Maple-asp и копируем ее в C:\arduino-1.5.8\hardware . Запускаем IDE и наслаждаемся. Несколько особенностей компилировать в память у меня получилось только при выборе "Maple Rev.3 to RAM". Также (но это специфика китайской версии) при перекулючении режима заливки с RAM на Flash, после заливки программы в контроллер, программа всеравно стартует из RAM. Чтобы программа начала стартовать из Flash нужно передернуть питание контроллера. Но это нужно делать только в случае переключении с Ram на Flash, и только после заливки скетча в контроллер. Кстати с Flash программа зачастую выполняется слегка медленнее. Но не всегда, бывает и наоборот. (все зависит от телепатических способностей модуля предвыборки команд). если отключить этот буфер то при ситывании каждой команды, процессор простыми NOP'ами будет пропускать до 3х тактов. Цитата:
|
|
Здесь присутствуют: 12 (пользователей: 0 , гостей: 12) | |
|
|