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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.11.2014, 21:30   #1
HiddenPilot
Member
 
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0
HiddenPilot is an unknown quantity at this point
По умолчанию 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х тактов.
Цитата:
http://radiohlam.ru/teory/stm32_6.htm
Если мы работаем с flash-памятью, а не перегружаем программу в оперативку, то для оптимальной работы нашего камня должны быть настроены ещё кое-какие опции.

Во-первых, нужно задать параметр, называемый Latency. Это количество циклов задержки для операций чтения из flash. Оно задаётся исходя из следующих правил:
=0, если 0 ≤ SYSCLK ≤ 24 MHz;
=1, если 24 MHz ≤ SYSCLK ≤ 48 MHz;
=2, если 48 MHz ≤ SYSCLK ≤ 72 MHz.

Во-вторых, для ускорения работы процессора, должен быть включен буфер предварительной выборки (prefetch buffer), который позволяет вычитывать инструкции из flash двумя 64-х битными блоками. Включить или выключить этот буфер можно только когда SYSCLK < 24 MHz и делитель шины AHB=1. После сброса он автоматически включается, поэтому нам ничего делать не нужно. Но обычно если его хотят выключить, то делают это в самом начале программы, при инициализации, когда контроллер ещё работает от внутреннего генератора 8 MHz.

Обе перечисленные выше настройки flash-памяти доступны в регистре FLASH_ACR.
HiddenPilot вне форума   Ответить с цитированием
Старый 29.11.2014, 22:28   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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

Спасибо!!!
Сейчас попробую
Admin вне форума   Ответить с цитированием
Старый 04.12.2014, 11:19   #3
HiddenPilot
Member
 
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0
HiddenPilot is an unknown quantity at this point
По умолчанию Re: Maple Mini

дополнение к интеграции:
набрел на соответствующую ветку на arduino.cc где отметился тот же человек с библиотекой maple-asp. но на ардуино.сс ыетко намного живее и на основе его разработки пошли доп. ветки более плотной интеграции с ардуино, в том числе и со штатными и сторонними либами для AVR. Так же допилили SPI библиотеку, теперь она инклудится и использует такие же команды и параметры как на Arduino.

здесь описание установки:
http://www.rogerclark.net/stm32f103-...ino-1-5-x-ide/
а тут об последних изменениях:
http://www.rogerclark.net/updates-to...no_stm32-code/

А это ссылка на ветку/сообщение человека разрабатывающего подобную интеграцию на осонове выше указанной maple-asp
http://forum.arduino.cc/index.php?PH...947#msg1940947
HiddenPilot вне форума   Ответить с цитированием
Старый 04.12.2014, 11:27   #4
HiddenPilot
Member
 
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0
HiddenPilot is an unknown quantity at this point
По умолчанию Re: Maple Mini

Кстати запустил 1.8" экранчик на Maple IDE + maple_mini с использованием адаптированной под Maple IDE библиотеки "ST7735r" от Adafruit. Экранчик с удовольствием проглотил SPI на частоте 18Мгц. Добавим к этому повышенную производительность самого камня(для расчетов геометрии фигур) и как результат, тест пролетает за считанные секунды.
HiddenPilot вне форума   Ответить с цитированием
Старый 04.12.2014, 11:33   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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

Видео с флешки на этом экранчике не пробовал прогнать?
Admin вне форума   Ответить с цитированием
Старый 04.12.2014, 12:04   #6
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

Стоп. Минуточку. Всегда знал, что STM по круче ардуино. Но ленился перейти на него, так как совсем другое программирование, другой язык, другая среда. Да и порог вхождения выше... А теперь что получается, что он программируется абсолютно также как и ардуино и в той же среде?
Sirocco вне форума   Ответить с цитированием
Старый 04.12.2014, 12:25   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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

Сравните языки программирования maple и arduino

Вот так реализуется блинк на maple
PHP код:
void setup() 
{
    
pinMode(33OUTPUT);
}

void loop() 
{
    
digitalWrite(33HIGH);
    
delay(1000);
    
digitalWrite(33LOW);
    
delay(1000); 

Admin вне форума   Ответить с цитированием
Старый 04.12.2014, 13:52   #8
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

Цитата:
Сообщение от Admin Посмотреть сообщение
Сравните языки программирования maple и arduino

Вот так реализуется блинк на maple
PHP код:
void setup() 
{
    
pinMode(33OUTPUT);
}

void loop() 
{
    
digitalWrite(33HIGH);
    
delay(1000);
    
digitalWrite(33LOW);
    
delay(1000); 

А есть ли на неё, для этой IDE, такие же библиотеки для подключения BMP180, DTH22, DS18B20, серво машинок, Ethernet модулей и прочего?
Так-то и ардуино всем устраивает, кроме её однозадачности. Нельзя плавно менять яркость диода и в тоже время управлять двумя сервами. Может конечно и можно, но геморой жуткий такой скетч писать. На стм тоже так?

В идеале хотелось бы иметь несколько циклов, которые параллельно бы и независимо выполнялись.

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

Цитата:
Сообщение от Sirocco Посмотреть сообщение
А есть ли на неё, для этой IDE, такие же библиотеки для подключения BMP180, DTH22, DS18B20, серво машинок, Ethernet модулей и прочего?
Так-то и ардуино всем устраивает, кроме её однозадачности. Нельзя плавно менять яркость диода и в тоже время управлять двумя сервами. Может конечно и можно, но геморой жуткий такой скетч писать. На стм тоже так?

В идеале хотелось бы иметь несколько циклов, которые параллельно бы и независимо выполнялись.
https://duino.ru/maple-mini-na-kontr...ortex-m3-.html
12 ШИМ(PWM) с разрешением 16 бит
Думаю должно хватить и для серво и для диодов.

А несколько параллельных циклов это один бесконечный цикл, с несколькими счетчиками сбрасываемыми в 0 по условию, либо по переполнению размерности типа данных.
В случае со светодиодом можно вообще абделаться лёгким испугом, что то типа:
PHP код:
uint8_t i,x
void loop(){
   if (
i++ <= x) {зажечьиначе {погасить}; 

В итоге в качестве значения переменной Х имеем 256 градаций яркости диода.

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

Чтобы видео гонять с флешки, надо придумать какой-то формат для видео и во вторых задействовать ДМА. В идеале флешку посадить на второй канал SPI и завязать их между собой на прямую через ДМА в режиме Device2Device. Но не известно что будет быстрее на одном канале попеременно 2 устройства, на частоте 18Мгц или 2 канала SPI напрямую через ДМА, но одно из устройств на 9Мгц.

Вот тут 2,5 года назад крутили видео на STM32F100? при чем на частоте 1/8, так что можно еще в 4 раза ускорить:
http://habrahabr.ru/post/139384/

======================================== =============

Если нужен действительно мега чип в сверхмалых размерах то это Teensy 3.1.
В этом плане это мой новый кумир, построенный на чипе MK20DX256VLH7(Cortex-M4) от FreeScale
---------------------------------------------

Частота процессора 72MHz(разгон до 120-150Мгц)

SPI запускали на 48МГц(SPI имеет FIFO буфер)

16ти канальный ДМА с подключением до 63 источников(STM32F103 - 2 канала)

Также наконец то имеется EEPROM: 2кб
Flash: 256Мб
ОЗУ: 64Кб
Cache 256byte (128 команд предвыборки, а значит меньшая зависимость исполнения команд от скорости flash)

Два АЦП - 16bit (13 эффективных, с оверсемплингом еще больше)
При этом имеются 2 встрооенных программируемых усилители АЦП (до х64)

Три компаратора

Low-power hardware TOUCH SENSOR interface (TSI)

Встроенный полноценный 12bit ЦАП(без всяких шим), а значит с моментальным выходом на нужное напряжение.

таймеры:
FTM Type
PDB Type (Programmable delay block)
CMT (Carrier modulator transmitter) (infrared) Type
LPTMR Type(16-bit low-power timer)
PIT (Periodic interrupt timers) Type
Systick
RTC (date/time) **
Eight-channel motor control/general purpose/PWM timer
Two 2-channel quadrature decoder/general purpose timers

И все это на плате размером 3,5*2,5см.
https://www.pjrc.com/teensy/teensy31.html

Имееется официально поддердиваемая надстройка для Arduino IDE(Teensyduino):
http://pjrc.com/teensy/teensyduino.html

Совместим со многими Ардуиновскими библиотеками:
http://pjrc.com/teensy/td_libs.html

пока что останавливает стоимость $20 + $10 доставка(по текущему курсу 1500р.) ждем пока китайцы склонируют и доведут стоимсть с доставкой до $10.
и не понятно как и где всю эту вкусность можно полноценно заюзать.

Последний раз редактировалось HiddenPilot; 04.12.2014 в 13:30.
HiddenPilot вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

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

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

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


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


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