LaunchPad MSP430 совместимость библиотек

medossa
Offline
Зарегистрирован: 10.07.2012

Друзья, кто-нибудь заказывал себе LaunchPad? Недавно вышла среда разработки Energia а ля Arduino IDE. Интересует, совместимы ли с ней ардуиновские библиотеки? 

leshak
Offline
Зарегистрирован: 29.09.2011

 Конечно не совместимы. Железо-то разное. Тут между UNO/MEGA и то приходится подправлять скетчи/либы иногда... 

Библиотеки могут быть "совместимыми" только в одном случае - если кто-то напишет библиотеку с таким же именем как в ардуина и с такими же имена функций. Тогда скетчки для "ардинуины" запустятся и с такой библиотекой. Какие либы "уже портировали" - нужно смотреть на форумах самой Energia.

Ну еще "совместимыми" могут оказатся, сами по себе, "выскоуровневые библиотеки". Которые с железом либо не работают (какие-нибудь помогайки для работы со строками и т.п.) или которые работают с железом через другие библиотеки (уже портированные) или только через digitalRead/digitalWrite (вообщем "чисто ардуиновские", без прямой работы с портами - но такие редкость).

Так что какие-то семплы типа blink у вас запустятся на нем сразу и все будет выглядить "как в ардуино", но вот что-то чуть сложнее - уже без вникание в новый камень - не обойдетесь.

Все эти мои "размышление" - не трудно проверить. Скачайте эту Energia и попробуйте ее скомпилить с каким нибудь вашим скетчем. Для этого не обязательно покупать LaunchPad. Зато сразу узнаете насколько проблемным будет переход на новый камень именно для ваших задачь.

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Приобрел аналог ардуины на STM32 - "поиграться" :) Только пока руки не дошли. Там та же песня с библиотеками. Давайте в эту ветку выкладывать, у кого чего вкусненького для таких "ТипаАрдуина" устройств.

medossa
Offline
Зарегистрирован: 10.07.2012

leshak пишет:

Скачайте эту Energia и попробуйте ее скомпилить с каким нибудь вашим скетчем....

 

всё гениальное просто) до этого я не додумался)

leshak
Offline
Зарегистрирован: 29.09.2011

AlexFisher пишет:

Приобрел аналог ардуины на STM32 - "поиграться" :) Только пока руки не дошли. Там та же песня с библиотеками. Давайте в эту ветку выкладывать, у кого чего вкусненького для таких "ТипаАрдуина" устройств.

Такая же песня. Только  Fez Panda II . Уже пол года валяется - руки не доходят. Диодами помигал, да иногда для отладки дуины использую (эмуляцию импульсов снаружи сделать или как дополнительый USB-Serial конвертер). И вроде на C# пе она, который мощней и родней мне. И вроде "все проще чем на дуине" сделать можно.... только уже сроднился как-то с дуиной. Там хоть и "проще" (и отладка есть), но "по другому". Гуглить нужно (а гуглится хуже чем дуина), а тут "уже знаешь".

Кстати где-то видел пробегала инфа что и для STM32 какого-то сделали поддержку .net micro framework. 

vworld
vworld аватар
Offline
Зарегистрирован: 26.09.2011

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

leshak
Offline
Зарегистрирован: 29.09.2011

vworld пишет:

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

Стоимость самого пада или камней? Где-то слышал что они сильно ниже себестоимости пады продают (а частенько и просто раздают), лишь бы "подсадить разрабов". 

А еще нужно понять "зачем на него переходить". Камни намного более "спартанские" чем AMTEL-ы. Основная фишка - низкое потребление. Целевая ниша - девайсы которым нужно месяцами жить на батарейке. Но... ардуино подход сильно протеворечит использованию этого преимущества. Как по размеру "библиотек", так и желанию работать на максимальной частоте. Да и "борьба за электроны" предполагает более глубокое понимание камня и игры с режимами.

Так что IMHO, освоить новый камень - лишним не будет. Свои задачи - он найдет. Но вот идти в него "ардуино путем" - IMHO не стоит. Задача ардуины - снизить порог входа, познакомить с "миром микроконтроллеров".  Я не понимаю попытки "сделать еще одну ардуину". Зачем? Она уже есть :)  Если же хочется "расширять свой горизонт", то нужно отпускать спасательный круг ардуины и смотреть на родные инструменты.

leshak
Offline
Зарегистрирован: 29.09.2011

medossa пишет:

leshak пишет:

Скачайте эту Energia и попробуйте ее скомпилить с каким нибудь вашим скетчем....

 

всё гениальное просто) до этого я не додумался)

Да. Только "скомпилился", не означает что "будет правильно работать". Какие-то правки "напильником" все равно могут потребоватся. Но "существенная не совместимость", конечны, выплывет еще на компиляции.

Vogdjara
Offline
Зарегистрирован: 08.06.2012

 Заказал себе помигать светодиодиком 2 штучки. Жду уже почти 2 недели. Только отправили. Камни етой серии от 0,34 до 0,95 центов в 1000 партиях. Но их можно и единичными екземплярами на сайте ТI покупать. После рекламы на хабре у ТИ наверно хабрефект на етот контроллер.

medossa
Offline
Зарегистрирован: 10.07.2012

 А тем временем вышла новая сборка Энергии. На скрине видны поддерживаемые библиотеки. Не густо пока, но думаю, проект не забросят) Вопрос времени в общем)

leshak
Offline
Зарегистрирован: 29.09.2011

medossa пишет:

 На скрине видны поддерживаемые библиотеки. Не густо пока, но думаю, проект не забросят) 

А не так уж и мало, как кажется на первый згляд. Есть "ключевые" SPI и Wire. Если они совместимы с ардуиновскими (практически уверен что это так), то можно попытася запускать и библиотеки "от ардуины".

Например та же либа "часовой микрухи" DS1307 . Работает с железом через библиотеку Wire. Значит есть все шансы что она тоже стала "автоматом поддерживатся" (ну может косметические правки какие-нибудь потребуется).

И другие либы для всяких SPI, I2C и т.п. устройств тоже становятся "условно поддерживаются" (пробовать нужно :)

gmv_tft
Offline
Зарегистрирован: 23.02.2013

Извиняюсь , что поднял старую тему. Еще в августе прошлого года купил данную плату привлекла цена .

Поигравшись немного с ней забросил т.к. есть mega2560. По поводу совместимости библиотек не знаю, но примеры “похожи” открыл первый попавшийся пример.

 Долго ожидал, куда ее применить и тут на днях отдали сломанную пароварку (с дефектной центральной платой).  Решил применить данный контролер на практике. Задача простая: опрос датчика уровня воды, 3 кнопки управления (+,- время, пуск/стоп), включения тэна пароварки , индикация времени и пищалка. Все управление (силовое и кнопки),  индикацию (сдвиговый регистр 74hc164d + 2 индикатора) подключил к старой плате, обрезав дорожки.

Программа простая не причесанная, но рабочая.

int pin_sensor=10;
int pin_fuser=2;
int pin_switch=5;
int pin_dsa_dsb=8;
int pin_cp=9;
int pin_in1=11;
int pin_in2=12;
int pin_pl=7;
int pin_min=6;
int pin_alarm=13;
int time=0;
boolean ten;
unsigned long time_mil;

void alarm(int t){
  for (int k=0;k<t;k++){
    digitalWrite(pin_alarm,LOW);
    delayMicroseconds(500);
    digitalWrite(pin_alarm,HIGH);
    delayMicroseconds(500); 
  }
}

void setup() {                
  pinMode(pin_sensor, INPUT);
  pinMode(pin_fuser,OUTPUT);  
  digitalWrite(pin_fuser,LOW);
  pinMode(pin_switch,INPUT_PULLUP);
  pinMode(pin_pl,INPUT_PULLUP);
  pinMode(pin_min,INPUT_PULLUP);
  pinMode(pin_dsa_dsb,OUTPUT);
  pinMode(pin_cp,OUTPUT);
  pinMode(pin_alarm,OUTPUT);
  digitalWrite(pin_cp,LOW);
  pinMode(pin_in1,OUTPUT);
  digitalWrite(pin_in1,HIGH);
  pinMode(pin_in2,OUTPUT);
  digitalWrite(pin_in2,HIGH);
}
void loop() {
  if (digitalRead(pin_sensor)) {
  digitalWrite(pin_fuser,LOW);
   ten=0;
   alarm(100);
  }
  if (time==0) {
    ten=0;
    digitalWrite(pin_fuser,ten);
  }
  if (ten){
    if (millis()-time_mil>=60000){ 
      time--;
      time_mil=millis();
    }
    if (time==0) {
      digitalWrite(pin_fuser,LOW);
      alarm(5000);//Готово!
    }
  }
  if (!digitalRead(pin_switch) && !digitalRead(pin_sensor) && time!=0){
    delay(100);
    while (!digitalRead(pin_switch));
        ten=!ten;
        time_mil=millis();
        digitalWrite(pin_fuser, ten);
  }
  if (!digitalRead(pin_pl)){
  delay(100);
  while (!digitalRead(pin_pl));
    time++;
    if (time>60) time=60;
  }
  if (!digitalRead(pin_min)){
  delay(100);
  while (!digitalRead(pin_min));
    time--;
    if (time<0) time=0;
  }
  for (int k=0;k<2;k++){
    int t=0;
    byte b=0;
    if (k==0) t=time/10; else t=time%10;
    switch (t){
    case 0:b=123;break;
    case 1:b=17; break;
    case 2:b=186; break;
    case 3:b=185; break;
    case 4:b=209; break;
    case 5:b=233; break;
    case 6:b=235; break;
    case 7:b=49; break;
    case 8:b=251; break;
    default:b=249;
  }
    digitalWrite(pin_in1,HIGH);
    digitalWrite(pin_in2,HIGH);
    for (int i=0; i<8; i++){
        digitalWrite(pin_cp,LOW);
        if (bitRead(b, i)) digitalWrite(pin_dsa_dsb,HIGH);
        else digitalWrite(pin_dsa_dsb,LOW);
        digitalWrite(pin_cp,HIGH);
      }
     if (k==0)digitalWrite(pin_in1,LOW);
     else digitalWrite(pin_in2,LOW);
     delay(10);
  }   
}

В общем, плата пригодилась.  Из минусов нет отверстий для крепления платы и разъема для питания. Очень понравилось, что изначально  плата шла с возможностью на прямую припаять провода к портам.

Паровое приготовление  на любителя.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Ланчпад 10 баксов, не так перспективно уже...

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

А вот EK-LM4F120XL стоит 8 баксов, с доставкой. Может взять себе, портов море, на что-то точно пригодится.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Когда использовал АЦП  EK-LM4F120XL я был приятно удивлён тем, что функция analogRead() принимает значение 0...4095:

 

Это получается что у стеллариса в 4 раза точнее АЦП чем у уно верно?

MaksMS
Offline
Зарегистрирован: 11.03.2013

Ничего удивительного  - рязрядность АЦП у его 12 бит...У Ардуино - 10 бит

В даташите про это написано.

StrangerM
Offline
Зарегистрирован: 02.11.2013

Эта область бурно развивается. Очень интересные сдвиги. Как для 16 разрядных процессоров, так и для 32 разрядных. Для ланчпадов. 32 сигнальные процессоры интересны как основа САУ электроприводов. 

StrangerM
Offline
Зарегистрирован: 02.11.2013

Заказал несколько ланчпадов - Piccolo F28027 уже пришел - с пуском пришлось повозиться 5 студия здоровенная и в примерах куча ошибок. 

Приблизительно понятно как его сращивают с библиотеками и прогами ардуино. Попробую запустить.

Попробовал. Сырой проект. Библиотеки подключить не удалось. Запустился только тестовый проект. Жду Tiva и  MSP430. 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Tiva C неплохая платка с 80МГц Cortex-M4F. Юзаю с Keil. Мигрировал RF24 от maniacbug под неё.

Если интересно, сейчас идут курсы https://www.edx.org/course/utaustinx/utaustinx-ut-6-01x-embedded-systems... как раз под неё. Материалы в свободном доступе, если с нуля или около того - рекомендую.

 

StrangerM
Offline
Зарегистрирован: 02.11.2013

Спасибо. Ну почти с нуля. Немного возился с ezdspF2812. Но это по работе. Да и штука совершенно другая - риал тайм и тп.Правда, я не программист, однако, в курсе должен быть. Для меня как раз подошел ардуиновый софт и ее тип - не хочу я в глубь лезть, надо кучу времени и конкретную цель. А вот датчики - экранчики всякие подключить интересно. Поэтому мне интересно именно датчики и наработки по софту Ардуины к Техасу попытаться прилепить. 

И Тива и МСП от Энергии запустились с Блинком. Однако, последняя Энергия.....Е0011 не захотела, только ...Е0010.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Я кроме Tiva C ничего не трогал от Texas Instruments. Но в сравнении с STM32F1 (Cortex-M3) она чуть попроще в понимании и программировании (субъективно, конечно). Да и Keil мне вполне нравится, жаль жутко дорогой, но до 32КБ кода бесплатный, можно взять у них на сайте. Удачи! Материалы посмотрите, можно даже зарегиться на курсы бесплатно.

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Впринципе если переписать все ардуиновские функции и сделать Arduino.h для MSP или STM то должны заработать и библилиотеки. Как то не задумывался. Воляется STM8 discovery - но как то там все сложнее чем в ардуине - писанины больше чтоли - поигрался на уровне помигать светодиодом и положил на полочку.

Приучить бы avrdude к STLink и GCC компилить под STM8 )))

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Если уж так хочется, для ARMов есть SPL, нет смысла париться функциями Ардуино. А если эта сложность напрягает, то незачем и переходить на ARM. Зачем париться?

 

StrangerM
Offline
Зарегистрирован: 02.11.2013

Достоинство Ардуино - множество полезной переферии (датчики, исполнительные мех., дисплеи) для них есть библиотеки.  В то время как переферия Техаса дорогая и крайне бедная. Ардуино выполняет большую часть своих задач. Системы реального времени (особенно быстродействующие со сложной математикой - не ее). Тут бы  и применить DSP да ARMы. Или МСП - где надо низкое потребление. Собственно, меня лично интересовало и интересует насколько можно это совместить в проектах промежуточной сложности.

А Энергию я запустил (был бой при пирамидах из-за досадных мелочей) с простыми проектами для Тивы и МСП. Сигналки не удалось. Зато познакомился с новой студией (там я все запустил) и новым контрол сьюитом. Полезно. Теперь ПикколоФ - посмотрим, как копеечные контроллеры теперь справляются с бездатчиковым векторным управлением.

То хорошо, что вся эта лабуда за скромные деньги и мгновенно. 

PS A SPL - это что такое, если можно - ссылочку.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

SPL - емнип, standard peripheral library. Набор функций, облегчающий настройку периферии и т.п. Т.е. в какой то степени функции аналогичные wiring от Ардуино. На сайте техаса посмотрите или я чуть позже поищу. В двух словах, например, для программирования режима пинов заполняется структура и передается в функцию SPL, всё, режим задан. Но зная SPL камень не изучить. Единственный плюс - переносимость на другие камни.

UPD: Я дезинформировал, потому что сам SPL практически не использую. В TI есть "TivaWare™ Peripheral Driver Library for C Series". Можно посмотреть здесь http://www.ti.com/tool/sw-tm4c-drl . Это "аналог" SPL от STMicroelectronis. Это я для Tiva смотрел, для MSP430 - я не в курсе.

Поскольку это всё с примерами и с исходниками, можно посмотреть внутрь, если интересно.

 

StrangerM
Offline
Зарегистрирован: 02.11.2013

Ага, ну относительно библиотек управления приводом и TivaWare я в курсе. Да, штука удобная. Относительно места Ардуино и СП. Все зависит от вида проектируемого прибора. Простые поделки (барометры, ГПС и тп) проще Ардуино. Быстродействующие системы реального времени (привода, преобразователи частоты и тп) - сигналки. Для этих проектов Ардуино может управлять системой отобажения и В\В (обслуживать дисплеи, клавиатуру....). Но. Теперь мы имеем сверхдешевые сигнальные процессоры для всяческих домашних забав по управлению электрическими моторами, генераторами и ПЧ. При этом помним, что системы движения и позиционирования для Ардуино есть - всякого рода сервы. 

StrangerM
Offline
Зарегистрирован: 02.11.2013

kisoft пишет:

.... В TI есть "TivaWare™ Peripheral Driver Library for C Series". Можно посмотреть здесь http://www.ti.com/tool/sw-tm4c-drl . Это "аналог" SPL от STMicroelectronis. Это я для Tiva смотрел, для MSP430 - я не в курсе.

Поскольку это всё с примерами и с исходниками, можно посмотреть внутрь, если интересно.

Посмотрел TivaWare. Коллекция библиотек относительно бедная (сенсор либ). Для себя я там почти ничего не нашел, ну может барометр да термометр - и то, надо смотреть. Полезное для меня свойство Тива - 8 хардовых СОМ портов. Keil не поддерживает эту плату. И ориентирована эта программа на их эмулятор.

Ардуино для дома впереди, связка Ардуино с дешевой переферии и значительное число пользователей здесь несомненно впереди. 

MaksMS
Offline
Зарегистрирован: 11.03.2013

Большинство библиотек и примеров работы датчиками и другими устройствами переделывается за 5 минут под конкретный м/к . Везде же язык си/с++ .Чаще всего необходимо  всего-то заменить обращение к GPIO или i2c..

StrangerM
Offline
Зарегистрирован: 02.11.2013

Несомненно, но... наверняка есть нюансы. А это как в том анекдоте про Вас. Ив. и Петьку. :-) Однако, я уже к этому подошел - пока немного лениво. По двум причинам, 1.не вижу необходимости,2.Ардуино есть и этого пока хватает. Да, еще надо вспоминать основы С, тк неоснов я и не знал.  

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

StrangerM пишет:

...
Keil не поддерживает эту плату
...

Стоп-стоп.

Keil 4.73 поддерживает TM4C123GH6PM
Keil 5.01 + Legacy Support также поддерживает TM4C123GH6PM, а без Legacy Support он много чего не поддерживает, они перешли на новую систему описания камней, потому пока не всё есть.

PS У меня плата EK-TM4C123GXL, если я еще не говорил.

 

StrangerM
Offline
Зарегистрирован: 02.11.2013

И у меня. Ну, так на ней свой эмулятор - не Keil`овский. И она поддерживается?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Про эмулятор не понял.

У меня Keil 4.73, 5.01 + Legacy Support. В обоих вариантах я могу писать и отлаживать программы как в симуляторе, так и на реальном железе.

 

StrangerM
Offline
Зарегистрирован: 02.11.2013

Немного развлекся. Запустил с Тива компас (по СОМ), ЖК 20Х4 (по СОМ) и УЗ дальномер по И2С. Довольно быстро. Единственное, пришлось повозиться с ЖК - сбои по СОМ порту на 9600. И что? ..... кварцы отличаются - блин, связь при 9550 в Тиве стабильная. Я и не знал, что Энергия может в бегине менять - полез в ККСтудию. Сначала там. Зато со структурой ног платы разобрался. Теперь часы - там сложнее - 3 линии и их библиотека.  

StrangerM
Offline
Зарегистрирован: 02.11.2013

Еще повозился с Тива и Энергией. DS1302 подключить не удалось (с библиотекой) - нет даже обмена (естественно сначала проверив с Ардуино). BMP085 - обмен есть (с использованием библиотеки под Ардуино - маленько в инклюде подправил, поставил Энергию вместо Ардуино, но и с Ардуино в инклюде одинаково), только правильный результат 1 из 20 (хотя с Ардуино связь стабильная). Время и энтузиазм кончились. Может потом. Ардуино пока прочно занимает свое место. 

PS Нашел библиотеку под Энергию - https://github.com/astuder/BMP085-template-library-Energia  - все запахало без сбоев.

StrangerM
Offline
Зарегистрирован: 02.11.2013

C DS1302 заработала такая штука http://playground.arduino.cc/Main/DS1302

StrangerM
Offline
Зарегистрирован: 02.11.2013

Почему не заработала библиотека мне не понятно, никаких ссылок на внешние функции нет. Задержки стандартные. Загадка. Однако вывод, библиотеки от Ардуино не работают правильно с Энергией. Ну, выводы для моего уровня, конечно. А вот прямой текст из Ардуино в большинстве случаев с Энергией работает.

StrangerM
Offline
Зарегистрирован: 02.11.2013

Запустил в Энергии Piccolo F28027 (С2000) - компиирует, но... не шьет код. Чего-то пишет, сбивает пример во флеш - однако, выдает ошибку. Переключатели выставляю правильно, только не уверен ресет надо жать все время записи или только перед началом. Хотя пробовал и так, и так. Без результатов. Пока.

StrangerM
Offline
Зарегистрирован: 02.11.2013

Нашел во временных файлах .out файл - загрузил его во флеш  CCS5-ой. Пашет.

StrangerM
Offline
Зарегистрирован: 02.11.2013

CCS6 (beta) поддерживает скетчи Энергии для MSP430 & Tiva. C2000 - нет. Копилирует и отлаживает. 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

CCS мне не понравился, не помню почему )) Потому этого монстра я не использую. Как то мне родней Keil, хотя тоже не подарок, но всё таки инструмент вполне достойный. А 32КБ мне за глаза хватит на отладку.

 

StrangerM
Offline
Зарегистрирован: 02.11.2013

Программерам милей их С, а Энергия (Ардуино) для ....хм,  кого попроще. :-) Там ведь скетч пишется от Энергии, он компилируется, заливается (можно в ОЗУ, можно флеш) - ну, а дальше по возможностям встроенного эмулятора. 

PS Я с CCS3 общался. На первичное знакомство с 5 ушел час. С 6 с Энегетической состовляющей чуть быстрее.

StrangerM
Offline
Зарегистрирован: 02.11.2013

C Tiva и ЖК дисплеем 20Х4 запустил библиотеку LiquidCrystal_I2C - без переделок подошла.