Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Устройства на ARM процессорах

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2015, 18:08   #81
HiddenPilot
Member
 
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0
HiddenPilot is an unknown quantity at this point
По умолчанию Re: Maple Mini

Цитата:
Сообщение от Sirocco Посмотреть сообщение
Хочу сделать тахометр с дисплеем (на мото), и при превышении оборотов должен идти сигнал на реле, которая будет размыкать искру, так сказать отсечка.
Так понимаю на Maple Mini оно по шустрее будет работать, чем на atmega328p?
Конечно пошустрее. Мало того, для этих целей можно задействовать один из продвинутых таймеров. Таймер привязанный к нужной ноге в момент импульса будет записывать в регистр текущее значение таймера. Далее, в прерывании(или в цикле) можем сравнивать с предыдущим значением таймера, и вычислять период. С помощью делителя можем заставить тикать таймер практически с любой частотой. К примеру загружаем в пределитель значение 72, получаем получаем 1.000.000 отсчетов в сек. Записываем 36000 получаем 2000 отсчетов за 1 сек.

Подобным образом можно определять значение шима, практически не нагружая проц.

Если пойти дальше, то к таймеру, можно прикрутить DMA. Тогда модуль ДМА сам(без участия процессора), по событию будет инкриментированно складывать значения таймера прямо в память(как в массив, т.е. каждое значение в следующую ячейку массива). Таким образом мы еще больше высвобождаем ресурсы процессора.

Так же ДМА можно запустить по циклу размером к примеру 16. Тогда в массиве у вас всегда будет лежать последние 16 значений периодов тактов. Тогда простым усреднением всех значений массива, мы можем получать усредненное значение оборотов(периода м/у тактами).

подобным образом можно считывать инкриментный энкодер или датчик холла. Не нагружая процессор.

Вот пример на вскидку практически под ваши потребности
http://robocraft.ru/blog/ARM/739.html
Единственное, данный пример использует SPL бибилиотеку. А она мне не нравится(много ошибок, и генерить много байтов в прошике). Нужно переписать инициализацию на CMSIS cинтаксис. По сути прямая инициализация через регистры.
Вообще, с STM32 потихоньку начинаешь отвыкать от праграммирвоания в режиме простого ногодрыга, на максимальное использование всех встроенных модулей микроконтроллера. Таймеры у STM32 простоуникум, можно запрограммировать таймер на режим полумостового PUSH-PULL c заданным Dead-Time чтобы исключить сквозного пробоя ключей.

Cамая моя любимая реализация максимального задействования всех прелестей ARM, это Индикация сегментнтного дисплея с использованием только таймеров и ДМА.
http://kazus.ru/forums/showpost.php?...95&postcount=8

Но высший пилотаж это подключение HD44780 с использованием 2х каскадированных таймеров и одного канала ДМА!
Процессор занят только тем что заполняет массив информацией которая должна попасть на экран. Все остальное делает железо, не нагружая сам процессор.
http://kazus.ru/forums/showthread.ph...545#post713545
в них кстати используется CMSIS cинтаксис при инициализации.

Тут небольшое обсуждение
http://www.microchip.su/showthread.php?t=16822

Последний раз редактировалось HiddenPilot; 19.01.2015 в 19:11.
HiddenPilot вне форума   Ответить с цитированием
Старый 19.01.2015, 20:58   #82
HiddenPilot
Member
 
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0
HiddenPilot is an unknown quantity at this point
По умолчанию Re: Maple Mini

судя по этому сайту, в ближайшем обозримом будущем нас ждет засилие копеечных китаеклонов STM32

http://www.gigadevice.com/product-category/11.html

Есть даже варианты в корпусе TSSOP20 с кучей железа на борту, в том числе и DAC
А так же 3Мб флэша в корпусе LQFP64


ADD: А я то думаю, почему в последнее время появилось так много недорогих плат на базе STM32F103C8T6 , а оно оказывается оно чЁ:
http://www.aliexpress.com/item/GD32F...045341751.html
Маркировку стереть, так от "папы" и не отличить

Последний раз редактировалось HiddenPilot; 19.01.2015 в 21:11.
HiddenPilot вне форума   Ответить с цитированием
Старый 19.01.2015, 21:24   #83
HiddenPilot
Member
 
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0
HiddenPilot is an unknown quantity at this point
По умолчанию Re: Maple Mini

И еще к слову о переходе от ногодрыга к максимальному использованию потенциала железа

вот тут подключили мой экранчик к SPI с использованием ДМА(правда на Due SPI может работать на 84мгц, против 18 у STM32)


для контраста все та же Арду
HiddenPilot вне форума   Ответить с цитированием
Старый 19.01.2015, 23:53   #84
Sirocco
Senior Member
 
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0
Sirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant future
По умолчанию Re: Maple Mini

Цитата:
Сообщение от HiddenPilot Посмотреть сообщение
Конечно пошустрее. Мало того, для этих целей можно задействовать один из продвинутых таймеров. Таймер привязанный к нужной ноге в момент импульса будет записывать в регистр текущее значение таймера. Далее, в прерывании(или в цикле) можем сравнивать с предыдущим значением таймера, и вычислять период. С помощью делителя можем заставить тикать таймер практически с любой частотой. К примеру загружаем в пределитель значение 72, получаем получаем 1.000.000 отсчетов в сек. Записываем 36000 получаем 2000 отсчетов за 1 сек.

Подобным образом можно определять значение шима, практически не нагружая проц.

Если пойти дальше, то к таймеру, можно прикрутить DMA. Тогда модуль ДМА сам(без участия процессора), по событию будет инкриментированно складывать значения таймера прямо в память(как в массив, т.е. каждое значение в следующую ячейку массива). Таким образом мы еще больше высвобождаем ресурсы процессора.

Так же ДМА можно запустить по циклу размером к примеру 16. Тогда в массиве у вас всегда будет лежать последние 16 значений периодов тактов. Тогда простым усреднением всех значений массива, мы можем получать усредненное значение оборотов(периода м/у тактами).

подобным образом можно считывать инкриментный энкодер или датчик холла. Не нагружая процессор.

Вот пример на вскидку практически под ваши потребности
http://robocraft.ru/blog/ARM/739.html
Единственное, данный пример использует SPL бибилиотеку. А она мне не нравится(много ошибок, и генерить много байтов в прошике). Нужно переписать инициализацию на CMSIS cинтаксис. По сути прямая инициализация через регистры.
Вообще, с STM32 потихоньку начинаешь отвыкать от праграммирвоания в режиме простого ногодрыга, на максимальное использование всех встроенных модулей микроконтроллера. Таймеры у STM32 простоуникум, можно запрограммировать таймер на режим полумостового PUSH-PULL c заданным Dead-Time чтобы исключить сквозного пробоя ключей.

Cамая моя любимая реализация максимального задействования всех прелестей ARM, это Индикация сегментнтного дисплея с использованием только таймеров и ДМА.
http://kazus.ru/forums/showpost.php?...95&postcount=8

Но высший пилотаж это подключение HD44780 с использованием 2х каскадированных таймеров и одного канала ДМА!
Процессор занят только тем что заполняет массив информацией которая должна попасть на экран. Все остальное делает железо, не нагружая сам процессор.
http://kazus.ru/forums/showthread.ph...545#post713545
в них кстати используется CMSIS cинтаксис при инициализации.

Тут небольшое обсуждение
http://www.microchip.su/showthread.php?t=16822
Сильно! С таким подходом и из ардуины можно выжать много. Ладно, придёт плата, начну изучение. Может не всё так страшно как себе представляю.
Sirocco вне форума   Ответить с цитированием
Старый 20.01.2015, 20:36   #85
Mastar
Junior Member
 
Регистрация: 31.03.2014
Сообщений: 19
Вес репутации: 0
Mastar is an unknown quantity at this point
По умолчанию Re: Maple Mini

Нашел может и не ошибку, но нигде не описано.
Под MapleIDE analogWrite() - 16 битный, а на ArduinoIDE analogWrite() - 8 битный.
А вот pwmWrite(), работает нормально.
Под MapleIDE pwmWrite() - 16 битный и на ArduinoIDE pwmWrite() - 16 битный.

Последний раз редактировалось Mastar; 20.01.2015 в 21:18.
Mastar вне форума   Ответить с цитированием
Старый 27.02.2015, 23:07   #86
Sirocco
Senior Member
 
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0
Sirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant future
По умолчанию Re: Maple Mini

Кто объяснит что это всё означает, и что нужно выбрать для мапл мини 3?


Цитата:
Сообщение от HiddenPilot Посмотреть сообщение
9. Кстати! На счет отладки, наконец-то программу можно заливать прямо в RAM минуя Flash. А значит можно сколько угодно раз заливать прошивку в контроллер, без опасения запортить флеш по ограничению количества перезаписей. При обесточивании, MAPLE очистит все что мы на творили в RAM. да и запись проекта в рам должна проходить быстрее.
Эта возможность только для этого нужна, чтоб пока отлаживаешь прогу не тратить ресурс флеш?

Последний раз редактировалось Sirocco; 28.02.2015 в 10:36.
Sirocco вне форума   Ответить с цитированием
Старый 28.02.2015, 12:39   #87
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Maple Mini

Цитата:
Кто объяснит что это всё означает, и что нужно выбрать для мапл мини 3?
Maple rev 3

Цитата:
Эта возможность только для этого нужна, чтоб пока отлаживаешь прогу не тратить ресурс флеш?
Да
Admin вне форума   Ответить с цитированием
Старый 28.02.2015, 17:05   #88
Sirocco
Senior Member
 
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0
Sirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant future
По умолчанию Re: Maple Mini

А как узнать ревизию? Я тут покупал: http://www.ebay.com/itm/141404280807...%3AMEBIDX%3AIT
Если выбираю Rev3 to RAM - работает. Если выбираю Rev 3 to Flash - не работает скеч, хотя успешно грузится. Если выбираю любой вариант Rev 2 - работает.
Sirocco вне форума   Ответить с цитированием
Старый 28.02.2015, 20:59   #89
Sirocco
Senior Member
 
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0
Sirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant future
По умолчанию Re: Maple Mini

Цитата:
Сообщение от HiddenPilot Посмотреть сообщение
Пока что все заняты прикручиванием maplelib к Arduino. Так что до примеров руки еще не дошли. Если есть желание можете подкорректировать те что уже освоили, я прикину их роджеру и он их с удовольствием включит в REPO
Я пока что занят портированием UTFT под STM32
А где искать ваши труды? И куда их нужно положить, чтоб оно работало?
Sirocco вне форума   Ответить с цитированием
Старый 10.03.2015, 11:51   #90
fieldman
Junior Member
 
Регистрация: 23.12.2014
Сообщений: 1
Вес репутации: 0
fieldman is an unknown quantity at this point
По умолчанию Re: Maple Mini

IDE Arduino конечно весело и просто, а главное работает в 80% случаях. И ногодрыг рабтает и PWM. Но кто-нибудь пробовал прикрутить MAPLE MINI (stm32f103cbt6) к COOCOX 1.7 с закачкой через dfu-util.exe? У кого есть положительные наработки?

Последний раз редактировалось fieldman; 10.03.2015 в 11:55.
fieldman вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 7 (пользователей: 0 , гостей: 7)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:10. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика