Авторизация
Зарегистрироваться

avatar RSS блога Подписка

Отладочные платы от Texas Instruments

  • Цена: MSP430: $9.99, C2000: $17.05, Tiva™ C: $12.99, Stellaris LM4F120: $9.99, Hercules RM42X: $19.99

После выхода Arduino, Texas Instruments решил не отставать и начал активно выпускать свои отладочные платы. На данный момент у них есть 5 бюджетных плат (MSP430™ MCUs, Stellaris® LM4F120 LaunchPad, Tiva™ C ARM® Cortex™-M4 MCUs, C2000™ MCUs, Hercules™MCUs), о которых я и хочу рассказать.

Кто не в курсе, что это и для чего оно нужно: это небольшие платы с микроконтроллером, основные выводы которого выведены так, что бы к ним было удобно подключать внешние устройства (лампочки, датчики, дисплеи и многое другое). Эти платы имеют USB разъём для подключения к компьютеру и при наличие некоторых базовых знаний можно запрограммировать на сбор, обработку и выдачу информации.

Немного примеров на плате msp430, взятых с habrahabr:
Сигнализатор обновлений на SVN сервере, Простенькие часики, Автономный радиоТермометр, светильник, автоматический освежитель воздуха.
И уже начали появляться примеры реализации на Stellaris: WiFi радио из старой магнитолы

Для тех, кто раньше программировал для Arduino или тех, кто хочет сразу же видеть результаты не вникая в архитектуру ядра можно скачать программу Energia, которая разработана на основе IDE Arduino.
Вот, список всех команд, доступных в Energia.

Доставка плат осуществляется курьерской службой FedEx, среднее время доставки 7-14 дней, ну и конечно самое приятное, что за это удовольствие ничего платить не надо, доставку Texas Instruments берёт на себя.



MSP430G2 Value Line LaunchPad
MSP430G2 Value Line LaunchPad: $9.99

Первая плата, о которой хочу рассказать MSP430G2. С момента выхода она стала уже довольно популярной. Сейчас, к сожалению цена на неё возросла почти в 2 раза и составляет $9.99.

Основные характеристики микроконтроллеров:

MSP430G2553
16-разрядный ЦПУ, макс. частота 16 МГц, 16 кБ Flash, 512B RAM, 16 GPIO, 2 16-битных таймера, I2C, SPI, UART, 8 10-битных АЦП каналов

MSP430G2452
16-разрядный ЦПУ, макс. частота 16 МГц, 8 кБ Flash, 256B RAM, 16 GPIO, 1 16-битный таймер, I2C, SPI, 8 10-битных АЦП каналов

Внешний вид коробки:


Комплектация:
— Сама плата MSP430G2 c установленным микроконтроллером MSP430G2553;
— Микроконтроллер MSP430G2452;
— Кварц 32768 Гц;
— Кабель miniUSB;
— краткая инструкция;
— два 10-пинового PCB разъёма для крепления лаунчпада к своей плате.

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


Пайка кварца особого труда не составляет при условии хорошего паяльника и флюса. Примеров пайки в просторах интернета полно, вот один из них:


Теперь самое интересное, это написать свой первый «Hello World», а именно поморгать светодиодом, находящимся на плате. Самый простой способ через Energia. Всё, что для этого нужно, скачать саму программу, распаковать и запустить файл energia.exe.
В программе достаточно выбрать нашу плату (LaunchPad) и микроконтроллер (MSP430G2553)

и написать простенькую программку:
/*****************************************/
//Эта функция выполняется при запуске МК
void setup() {
//Указываем, что пин светодиода — это выход
pinMode(RED_LED, OUTPUT);
}
//Основная функция, которая будет вызываться каждый раз,
//пока микроконтроллер работает
void loop() {
//Зажигаем светодиод
digitalWrite(RED_LED, HIGH);
//Ждём 1000 мс, т.е. 1 секунду
delay(1000);
//гасим светодиод
digitalWrite(RED_LED, LOW);
//Ждём 1 секунду
delay(1000);
}
/*****************************************/
После чего нажать на изображение стрелочки в левом верхнем углу, дождаться окончания загрузки и наслаждаться моргающим светодиодом.

Есть способ поморгать светодиодом посложнее, но зато пощупать контроллер более детально. Для этого можно использовать среды разработки, предлагаемые Texas Instruments IAR или CCS.
Скачать CSS можно отсюда, а IAR отсюда.
Для загрузки необходимо зарегистрироваться на сайте TI и заполнить анкетку. У каждой из программ есть свои небольшие ограничения, которые при любительском использовании вряд ли будут заметны. Ну а если всё же столкнётесь с ними, то всегда на помощь придут торренты с необходимым набором лекарственных средств для лечения этого недуга.

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

/*****************************************/
//Загружаем описание нашего микроконтроллера
#include «io430.h»
//номер пина, к которому подключен красный светодиод
// в лаунчпаде это первый пин, который является нулевым битом
#define LEDPIN BIT0

int main( void ) {
WDTCTL = WDTPW + WDTHOLD; //отключаем сторожевой таймер

//устанавливаем внутренний генератор
//на частоту 1 МГц, можно конечно и 16,
//но для обычного моргания нам одного за глаза хватит.
DCOCTL = CALDCO_1MHZ;
BCSCTL1 = CALBC1_1MHZ;
P1DIR |= LEDPIN; //Говорим, что наш пин — это выход
//Бесконечный цикл
while(1) {
//Меняем бит светодиода на противоположный
P1OUT ^= LEDPIN;
//Задержка в 1 миллион циклов, при скорости процессора 1 Мгц
//получаем 1 секунду
__delay_cycles(1e6);
}
}
/*****************************************/
Ну и получаем результат:


Всё это интересно, но насколько быстро можно чередовать 1 и 0 на выходе? Что бы это узнать, я немного подправил программу:
Для Energia
/*****************************************/
void setup() {
pinMode(RED_LED, OUTPUT);
}

void loop() {
digitalWrite(RED_LED, HIGH);
digitalWrite(RED_LED, LOW);
}
/*****************************************/
И вот результат на выходе:

Время на смену состояния выхода: ~4 мкс
На следующий вызов функции loop: ~1мкс

Для IAR:
/*****************************************/
#include «io430.h»

#define LEDPIN BIT0

int main( void ) {
WDTCTL = WDTPW + WDTHOLD;
//устанавливаем внутренний генератор на максимальную частоту 16 МГц
DCOCTL = CALDCO_16MHZ;
BCSCTL1 = CALBC1_16MHZ;
P1DIR |= LEDPIN;
P1OUT = 0;
while(1) {
//зажигаем светодиод
P1OUT = LEDPIN;
//гасим светодиод
P1OUT = 0;
}
}
/*****************************************/
На выходе получаем:

Время на смену состояния выхода порядка 250 нс и время на переход от конца цикла в начало 250 нс.

Как видно, удобство сильно сказывается на скорости, но в большинстве случаев такая скорость вовсе и не нужна, да и при желании в той же energia можно применять низкоуровневое программирование. Если есть интерес, можно посмотреть, как реализованы все функции, для этого достаточно открыть папку
energia-0101E0009\hardware\msp430\cores\msp430
К примеру, в файле wiring_digital.c можно посмотреть, как реализована функция digitalWrite и сразу станет понятно, куда уходит столько времени на её выполнение.

Можно так же посмотреть, как быстро плата реагирует на нажатие кнопки, для этого напишем в IAR следующую программу:
#include «io430.h»

#define LEDPIN BIT0
#define BUTTON BIT3

int main( void )
{
//Отключаем сторожевой таймер
WDTCTL = WDTPW + WDTHOLD;
//Ставим максимальную частоту процессора
DCOCTL = CALDCO_16MHZ;
BCSCTL1 = CALBC1_16MHZ;
//Указываем, что пин со светодиодом — это выход
P1DIR |= LEDPIN;
//Указываем, что пин с кнопкой — это вход
P1DIR &= ~BUTTON;
//Включаем внутренний резистор подтяжки для кнопки
P1REN |= BUTTON;
//Подтягиваем резистором к плюсу, т.к. наша кнопка сажает пин на землю
P1OUT |= BUTTON;
//Гасим светодиод
P1OUT &= ~LEDPIN;
//Устанавливаем прерывание по заднему фронту, т.к. при нажатии уровень
//изменится с 1 до 0
P1IES |= BUTTON;
//Сбрасываем флаг прерывания
P1IFG &= ~BUTTON;
//Разрешаем прерывание для кнопки
P1IE |= BUTTON;
//Разрешаем глобальные прерывания
__bis_SR_register(__SR_GIE);
//Можно усыпить контроллер до тех пор, пока не нажата кнопка,
//но на его пробуждение понадобится некое время, поэтому пусть ждёт так
//__low_power_mode_4();
//Бесконечный цикли
while(1) {
}
}

//Это функция обработки прерывания по нажатию нашей кнопки
#pragma vector=PORT1_VECTOR
__interrupt void onP1ISR(void) {
//Запрещаем прерывания для кнопки, что бы пока функция не отработала,
//ещё раз она не вызывалась
P1IE &= ~BUTTON;
//Сбрасываем флаг прерывания
P1IFG &= ~BUTTON;
//Зажигаем светодиод
P1OUT |= LEDPIN;
//разрешаем прерывания для кнопки
P1IE |= BUTTON;
}

И результат:

Голубой график — это нажатие кнопки. При нажатии мы сажаем подтянутый резистором верхний уровень на землю. Синий график — это наш светодиод.
Как видно из графиков, время от нажатия кнопки до загорания светодиода — 1,2 мкс.
Если же процессор усыпить (раскомментировав строчку __low_power_mode_4()), получим следующее:

Время реакции увеличилось до 1,6 мкс.
~400нс требуется на пробуждение нашего сони.

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

Информация:
MSP-EXP430G2 User's Guide (En)
MSP430G2553 Datasheet (En)
MSP430G2452 Datasheet (En)
Уроки по MSP430 (Рус)
Подборка с MSP430 (Рус)
Книга «Семейство микроконтроллеров MSP430х2хх» (Рус)


C2000 Piccolo LaunchPad
C2000 Piccolo LaunchPad: $17.05


Следующая плата C2000 Piccolo на базе микроконтроллера TMS320F28027.
Данный микроконтроллер оптимизирован для выполнения задач в режиме реального времени.


Основные характеристики:
— 32-разрядный ЦПУ;
— Частота до 60 МГц;
— 20 GPIO;
— 12-битный АЦП 7 каналов;
— 8 каналов ШИМ;
— I2C, SPI, UART
— 3 32-битных таймера;
— 64 KB Flash;
— 12 KB RAM.

Внешний вид коробки:


Внутри сама плата, мини UBS шнурок и инструкция.




В плане программирования, тут дела обстоят посложнее, для IAR ничего нет, в Energia пока окончательно не реализована поддержка этой платы, но они приглашают поучаствовать в тестировании. Так что придётся скачать и установить Code Composer Studio и controlSUITE.
После установки можно посмотреть примеры работы с этой платой, которые лежат в папке:
C:\ti\controlSUITE\development_kits\C2000_LaunchPad\f2802x_examples
Все примеры используют готовый набор функций, упрощающий разработку программы, но конечно немного замедляющий её.
Исходный код всех функций можно посмотреть в этой папке:
C:\ti\controlSUITE\development_kits\C2000_LaunchPad\f2802x_common\source

Так как настроек проекта там тьма тьмущая, проще взять готовый из примеров и доработать под себя.
К примеру, поморгаем всеми четырьмя нашими светодиодами:
#include «DSP28x_Project.h»

#include «f2802x_common/include/clk.h»
#include «f2802x_common/include/gpio.h»
#include «f2802x_common/include/pie.h»
#include «f2802x_common/include/pll.h»
#include «f2802x_common/include/wdog.h»

void main()
{
CLK_Handle myClk;
GPIO_Handle myGpio;
PIE_Handle myPie;
CPU_Handle myCpu;
PLL_Handle myPll;
WDOG_Handle myWDog;

//Инициализируем наши переменные
//Функции часов
myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj));
//Процессор
myCpu = CPU_init((void *)NULL, sizeof(CPU_Obj));
//Входы/выходы
myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj));
//прерывания
myPie = PIE_init((void *)PIE_BASE_ADDR, sizeof(PIE_Obj));
//Фазовая автоподстройка частоты
myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj));
//сторожевой таймер
myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj));

// Отключаем сторожевой таймер
WDOG_disable(myWDog);

//Частота будет браться в внутреннего генератора
CLK_setOscSrc(myClk, CLK_OscSrc_Internal);
// Устанавливаем плл на 60МГц. 10Мг(внетренний генератор) * 12 / 2 = 60
PLL_setup(myPll, PLL_Multiplier_12, PLL_DivideSelect_ClkIn_by_2);
// Сбрасываем все прерывания
PIE_disable(myPie);
PIE_disableAllInts(myPie);
CPU_disableGlobalInts(myCpu);
CPU_clearIntFlags(myCpu);
// Если программа на флэше, переписываем её в RAM
#ifdef _FLASH
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
#endif

// Настраиваем наши выходы
//Выходы с 0 по 3 будут выполнять свою главную роль — дискретные входы/выходы
GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_GeneralPurpose);
GPIO_setMode(myGpio, GPIO_Number_1, GPIO_0_Mode_GeneralPurpose);
GPIO_setMode(myGpio, GPIO_Number_2, GPIO_0_Mode_GeneralPurpose);
GPIO_setMode(myGpio, GPIO_Number_3, GPIO_0_Mode_GeneralPurpose);

//Наши пины — это выходы
GPIO_setDirection(myGpio, GPIO_Number_0, GPIO_Direction_Output);
GPIO_setDirection(myGpio, GPIO_Number_1, GPIO_Direction_Output);
GPIO_setDirection(myGpio, GPIO_Number_2, GPIO_Direction_Output);
GPIO_setDirection(myGpio, GPIO_Number_3, GPIO_Direction_Output);

//Бесконечный цикл
while(1) {
//Светодиод загорается от 0 и гаснет от 1, поэтому подаём low, что бы зажечь, и high, что бы погасить
GPIO_setHigh(myGpio, GPIO_Number_0);
GPIO_setHigh(myGpio, GPIO_Number_1);
GPIO_setHigh(myGpio, GPIO_Number_2);
GPIO_setLow(myGpio, GPIO_Number_3);
//Ждём 1млн мксекунд. т.е 1 секунду
DELAY_US(1E6);

GPIO_setHigh(myGpio, GPIO_Number_0);
GPIO_setHigh(myGpio, GPIO_Number_1);
GPIO_setLow(myGpio, GPIO_Number_2);
GPIO_setHigh(myGpio, GPIO_Number_3);

DELAY_US(1E6);

GPIO_setHigh(myGpio, GPIO_Number_0);
GPIO_setLow(myGpio, GPIO_Number_1);
GPIO_setHigh(myGpio, GPIO_Number_2);
GPIO_setHigh(myGpio, GPIO_Number_3);

DELAY_US(1E6);

GPIO_setLow(myGpio, GPIO_Number_0);
GPIO_setHigh(myGpio, GPIO_Number_1);
GPIO_setHigh(myGpio, GPIO_Number_2);
GPIO_setHigh(myGpio, GPIO_Number_3);

DELAY_US(1E6);

}
}
И получаем:


Теперь можно посмотреть, на что эта плата способна и поморгать светодиодом на максимальной скорости.
Так как готовые функции замедляют работу, откроем файл
C:\ti\controlSUITE\development_kits\C2000_LaunchPad\f2802x_common\source\gpio.c
и посмотрим, что можно выкинуть из функций GPIO_setHigh и GPIO_setLow

void GPIO_setHigh(GPIO_Handle gpioHandle, const GPIO_Number_e gpioNumber)
{
GPIO_Obj *gpio = (GPIO_Obj *)gpioHandle;

ENABLE_PROTECTED_REGISTER_WRITE_MODE;

if(gpioNumber < GPIO_Number_32)
{
gpio->GPASET = (uint32_t)1 << gpioNumber;
}
else
{
gpio->GPBSET = (uint32_t)1 << (gpioNumber — GPIO_Number_32);
}

DISABLE_PROTECTED_REGISTER_WRITE_MODE;

return;
} // end of GPIO_setHigh() function

void GPIO_setLow(GPIO_Handle gpioHandle, const GPIO_Number_e gpioNumber)
{
GPIO_Obj *gpio = (GPIO_Obj *)gpioHandle;

ENABLE_PROTECTED_REGISTER_WRITE_MODE;

if(gpioNumber < GPIO_Number_32)
{
gpio->GPACLEAR = (uint32_t)1 << gpioNumber;
}
else
{
gpio->GPBCLEAR = (uint32_t)1 << (gpioNumber — GPIO_Number_32);
}

DISABLE_PROTECTED_REGISTER_WRITE_MODE;

return;
} // end of GPIO_setLow() function
...

После чистки, получаем следующее:
#include «DSP28x_Project.h»

#include «f2802x_common/include/clk.h»
#include «f2802x_common/include/gpio.h»
#include «f2802x_common/include/pie.h»
#include «f2802x_common/include/pll.h»
#include «f2802x_common/include/wdog.h»

void main()
{
CLK_Handle myClk;
GPIO_Handle myGpio;
PIE_Handle myPie;
CPU_Handle myCpu;
PLL_Handle myPll;
WDOG_Handle myWDog;

//Инициализируем наши переменные
//Функции часов
myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj));
//Процессор
myCpu = CPU_init((void *)NULL, sizeof(CPU_Obj));
//Входы/выходы
myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj));
//прерывания
myPie = PIE_init((void *)PIE_BASE_ADDR, sizeof(PIE_Obj));
//Фазовая автоподстройка частоты
myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj));
//сторожевой таймер
myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj));

// Отключаем сторожевой таймер
WDOG_disable(myWDog);

//Частота будет браться в внутреннего генератора
CLK_setOscSrc(myClk, CLK_OscSrc_Internal);
// Устанавливаем плл на 60МГц. 10Мг(внутренний генератор) * 12 / 2 = 60
PLL_setup(myPll, PLL_Multiplier_12, PLL_DivideSelect_ClkIn_by_2);
// Сбрасываем все прерывания
PIE_disable(myPie);
PIE_disableAllInts(myPie);
CPU_disableGlobalInts(myCpu);
CPU_clearIntFlags(myCpu);
// Если программа на флэше, переписываем её в RAM
#ifdef _FLASH
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
#endif

GPIO_Obj *gpio = (GPIO_Obj *)myGpio;

//разрешаем управление портами
EALLOW;
//Все порты делаю входами/выходами, что б не болтались без дела
gpio->GPAMUX1 = (uint16_t)0;
gpio->GPAMUX2 = (uint16_t)0;
gpio->GPBMUX1 = (uint16_t)0;

//Все порты делаю выходами
gpio->GPADIR = (uint16_t)0xFFFF;
gpio->GPBDIR = (uint16_t)0xFFFF;

//Сбросим все выходы
gpio->GPADAT = (uint16_t)0;
gpio->GPBDAT = (uint16_t)0;
//Конец работы с портами
EDIS;

//Бесконечный цикл
while(1) {
//разрешаем управление портами, без него порты будут работать криво,
//поэтому перед управлением разрешили, а после закрыли
EALLOW;
//устанавливаю 1 в GPIO 0
gpio->GPASET = (uint32_t)1;
//Завершаю управление портами
EDIS;
//Начинаю управление портами
EALLOW;
//Сбрасываю GPIO 0 в ноль
gpio->GPACLEAR = (uint32_t)1;
//Завершаю управление портами
EDIS;
}
}


Как видно, время на смену состояния 500нс. А вот переход из конца цикла в начало около 600нс.
Можно снизить время смены состояния до 30нс, если убрать EALLOW и EDIS, но при частом использовании он может работать нестабильно.
Для примера, я изменил код:

while(1) {
gpio->GPASET = (uint32_t)1;
gpio->GPACLEAR = (uint32_t)1;
gpio->GPASET = (uint32_t)1;
gpio->GPACLEAR = (uint32_t)1;

}
...
И вот, что получил:


Ну и как же не посмотреть на время реакции от начала нажатия на кнопку, до зажигания светодиода
Вот код:
#include «DSP28x_Project.h»

#include «f2802x_common/include/clk.h»
#include «f2802x_common/include/gpio.h»
#include «f2802x_common/include/pie.h»
#include «f2802x_common/include/pll.h»
#include «f2802x_common/include/wdog.h»

interrupt void buttonISR(void);
GPIO_Handle myGpio;
PIE_Handle myPie;
GPIO_Obj *gpio;

void main()
{
CLK_Handle myClk;
CPU_Handle myCpu;
PLL_Handle myPll;
WDOG_Handle myWDog;

//Инициализируем наши переменные
//Функции часов
myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj));
//Процессор
myCpu = CPU_init((void *)NULL, sizeof(CPU_Obj));
//Входы/выходы
myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj));
//прерывания
myPie = PIE_init((void *)PIE_BASE_ADDR, sizeof(PIE_Obj));
//Фазовая автоподстройка частоты
myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj));
//сторожевой таймер
myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj));

// Отключаем сторожевой таймер
WDOG_disable(myWDog);

gpio = (GPIO_Obj *)myGpio;

//Частота будет браться в внутреннего генератора
CLK_setOscSrc(myClk, CLK_OscSrc_Internal);
// Устанавливаем плл на 60МГц. 10Мг(внетренний генератор) * 12 / 2 = 60
PLL_setup(myPll, PLL_Multiplier_12, PLL_DivideSelect_ClkIn_by_2);
// Сбрасываем все прерывания
PIE_disable(myPie);
PIE_disableAllInts(myPie);
CPU_disableGlobalInts(myCpu);
CPU_clearIntFlags(myCpu);

// Если программа на флэше, переписываем её в RAM
#ifdef _FLASH
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
#endif

EALLOW;
//Все порты делаю входами/выходами, что б не болтались без дела
gpio->GPAMUX1 = (uint16_t)0;
gpio->GPAMUX2 = (uint16_t)0;
gpio->GPBMUX1 = (uint16_t)0;

//Все порты делаю выходами
gpio->GPADIR = (uint16_t)0xFFFF;
gpio->GPBDIR = (uint16_t)0xFFFF;

//Сбросим все выходы
gpio->GPADAT = (uint16_t)0;
gpio->GPBDAT = (uint16_t)0;

//Конец работы с портами
EDIS;

// Настраиваем наши выходы
//Выход 0 будет выполнять свою главную роль — дискретные входы/выходы
GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_GeneralPurpose);
//Наш пин 12 тоже будет выполнять обычную функция ввода/вывода
GPIO_setMode(myGpio, GPIO_Number_12, GPIO_12_Mode_GeneralPurpose);

//Отключаем подтяжку, т.к. по схеме наша кнопка даёт положительный уровень
GPIO_setPullUp(myGpio, GPIO_Number_12, GPIO_PullUp_Disable);
//Привязываем нажатие кнопки к прерыванию CPU_ExtIntNumber_1
GPIO_setExtInt(myGpio, GPIO_Number_12, CPU_ExtIntNumber_1);

//Наш пин 0 — это выход
GPIO_setDirection(myGpio, GPIO_Number_0, GPIO_Direction_Output);

//Наш пин 12 (кнопка) — это вход
GPIO_setDirection(myGpio, GPIO_Number_12, GPIO_Direction_Input);

//Гасим светодиод
GPIO_setLow(myGpio, GPIO_Number_0);

//Включаем прерывания
PIE_enable(myPie);
//Указываем нашу функцию-обработчик прерываний
PIE_registerPieIntHandler(myPie, PIE_GroupNumber_1, PIE_SubGroupNumber_4, (intVec_t)&buttonISR);

//Указываем, что прерывание должно срабатывать по переднему фронту
PIE_setExtIntPolarity(myPie, CPU_ExtIntNumber_1, PIE_ExtIntPolarity_RisingEdge);

//Разрешаем прерывания нашей кнопки
PIE_enableExtInt(myPie, CPU_ExtIntNumber_1);
CPU_enableInt(myCpu, CPU_IntNumber_1);
//Разрешаем глобальные прерывания
CPU_enableGlobalInts(myCpu);

//Разрешаем писать в регистры
ENABLE_PROTECTED_REGISTER_WRITE_MODE;

//Бесконечный цикл
while(1) {

}
}

//Наше прерывания по нажатию кнопки
interrupt void buttonISR(void)
{
//Подаём 1 на выход
gpio->GPASET = (uint32_t)1;
//Сбрасываем флаг прерываний
PIE_clearInt(myPie, PIE_GroupNumber_1);
}

И сам результат:

Голубой график — это наша кнопка, синий график — выход. Как Видно, с момента нажатия на кнопку до подачи на выход единицы проходит около 2,5 мкс.
Конечно моргание светодиодом не является основным назначением этой платы, она заточена немного под другие задачи, но для общего представления думаю будет достаточно.
К сожалению нормальной информации на русском я не нашёл, поэтому для изучения рекомендую использовать примеры, входящие в комплект controlSUITE ну и даташит.
Основная информация:
Datasheet на TMS320F28027 (En)
C2000 LaunchPad (описание, схема платы и т.п.) (En)
Прочая документация (En)



Stellaris LM4F120 LaunchPad
Stellaris LM4F120 LaunchPad Evaluation Board: $12.99 $9.99 $7.99

Следующая плата на базе микроконтроллера Cortex ™-M4F LM4F120H5QR. Этот микроконтроллер имеет свой USB интерфейс, который выведен на плате отдельным разъёмом, так же на плате установлены две пользовательские кнопки и RGB светодиод.

Внешний вид коробки:



В комплекте:
— Stellaris LaunchPad Демонстрационная плата
— USB Micro-B USB-кабель
— Руководство по эксплуатации

В руководстве как обычно идёт описание программы, зашитой в микроконтроллер и ссылки на матчасть.

Основные характеристики:
— Микроконтроллер: 32-битный Cortex ™-M4F LM4F120H5QR;
— Скорость до 80 МГц;
— 256 КБ Flash/ 32 КБ SRAM / 2 КБ EEPROM
— 2 12-битных АЦП;
— 6 64-битных и 6 32-битных таймеров;
— 8 UART;
— 4 SSI;
— 4 I2C;
— CAN 2.0;
— USB 2.0.


Для программирования Texas Instruments предлагает бесплатно скачать на выбор:
Code Composer Studio;
Keil (ограничение кода до 32 КБ);
IAR (ограничение кода до 32 КБ или 30 дней);
Sourcery CodeBench (30-дневный триал);
Energia.
Как и с MSP430, самым простым способом запрограммировать железку, воспользоваться средой разработки Energia.
Так как на плате установлен RGB светодиод, фактически 3 светодиода (красный, синий и зелёный), почему бы не поморгать ими всеми:
void setup() {
// Указываем, что наши пины со светодиодами — это выход
pinMode(RED_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
pinMode(BLUE_LED, OUTPUT);
}

void loop() {
//Зажигаем красный светодиод
digitalWrite(RED_LED, HIGH);
//Ждём 200мс
delay(200);
//Гасим красный светодиод
digitalWrite(RED_LED, LOW);
//Ждём секунду
delay(1000);
//Проделываем тоже самое с зелёным светодиодом
digitalWrite(GREEN_LED, HIGH);
delay(200);
digitalWrite(GREEN_LED, LOW);
delay(1000);
//И синем
digitalWrite(BLUE_LED, HIGH);
delay(200);
digitalWrite(BLUE_LED, LOW);
delay(1000);
}
Для остальных сред разработки нужно посетить страницу «Stellaris® LM4F120 LaunchPad Evaluation Board Software» и скачать StellarisWare под свою среду.
После загрузки и установки, можно посмотреть примеры, которые находятся в папке:
C:\StellarisWare\boards\ek-lm4f120xl
Для моргания светодиодом я взял за основу «project0» из папки с примерами и вот, что получилось:
#include «inc/hw_types.h»
#include «inc/hw_memmap.h»
#include «driverlib/sysctl.h»
#include «driverlib/gpio.h»

//задаём псевдонимы для RED_LED — это пин 1, синий — 2, зелёный — 3
#define RED_LED GPIO_PIN_1
#define BLUE_LED GPIO_PIN_2
#define GREEN_LED GPIO_PIN_3

int main(void) {
//Устанавливаем системные часы на 16МГц
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);

//Включаем канал F, на котором установлены светодиоды
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
//Указываем, что пины RED_LED|BLUE_LED|GREEN_LED — это выходы
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED);

//
//Бесконечный цикл
//
while(1) {
//Зажигаем красный светодиод
GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, RED_LED);
//Эта функция делает задержку в 3 цикла, в итоге получаем 0,3 сек.
SysCtlDelay(1e5);
//Гасим все светодиоды
GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, 0);
//Ждём ~1сек.
SysCtlDelay(5e6);
//Всё тоже самое проделываем с зелёным и синем светодиодом
GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, GREEN_LED);
SysCtlDelay(1e5);
GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, 0);
SysCtlDelay(5e6);
GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, BLUE_LED);
SysCtlDelay(1e5);
GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, 0);
SysCtlDelay(5e6);
}
}
В итоге получаем следующее:

Ну а теперь посмотрим, на максимальную скорость. Первым делом изучим файл «gpio.c», который находится в папке
C:\StellarisWare\driverlib
Там же лежат исходные коды всех наших функций, упрощающих жизнь.

Исходный код функции GPIOPinWrite

void
GPIOPinWrite(unsigned long ulPort, unsigned char ucPins, unsigned char ucVal)
{
//
// Check the arguments.
//
ASSERT(GPIOBaseValid(ulPort));

//
// Write the pins.
//
HWREG(ulPort + (GPIO_O_DATA + (ucPins << 2))) = ucVal;
}
...

Подкорректируем наш код и получаем:
#include «inc/lm4f120h5qr.h»
#include «inc/hw_types.h»
#include «inc/hw_memmap.h»
#include «driverlib/sysctl.h»
#include «driverlib/gpio.h»

int main(void) {
//Устанавливаем внутренний генератор на максимальную частоту 80МГц
SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|
SYSCTL_OSC_MAIN);

// Включаем порт F
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
//Указываем, что наш пин 2 — это выход
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2);

//
// Бесконечный цикл
//
while(1) {
//Передаём 1 на выход 2
HWREG(GPIO_PORTF_BASE + (GPIO_PIN_2 << 2)) = GPIO_PIN_2;
//Передаём 0 на выход 2
HWREG(GPIO_PORTF_BASE + (GPIO_PIN_2 << 2)) = 0;
}
}
Зашиваем программу в контроллер, подключаем осциллограф и видим следующее:

Время на переключение состояния ~23 нс, на переход из конца цикла в начало ~40 нс.

Проверка времени реакции на нажатие кнопки.
Опять же лезем в наши примеры, знакомимся с реализацией тех или иных функций и выдёргиваем нужные себе.
У меня получилось следующее:
#include «inc/hw_types.h»
#include «inc/hw_gpio.h»
#include «inc/hw_ints.h»
#include «inc/hw_memmap.h»
#include «driverlib/sysctl.h»
#include «driverlib/gpio.h»
#include «driverlib/rom.h»
#include «driverlib/interrupt.h»

void __GPIOF_ISR(void);

int main(void) {
ROM_FPUEnable();
ROM_FPULazyStackingEnable();
//Устанавливаем внутренний генератор на максимальную частоту 80МГц
ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|
SYSCTL_OSC_MAIN);

// Включаем порт F
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
//Делаем пин 1 выходом
ROM_GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1);
//Делаем пин 0 входом
ROM_GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_0);
//Разблокируем регистр PF0, что бы его можно было использовать в качестве входа
HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= 0x01;
HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = 0;
//Подключаем подтяжку к плюсу
ROM_GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_0,
GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
//Прерывание срабатывает по заднему фронту
ROM_GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_0, GPIO_FALLING_EDGE);
//Включаем прерывания
ROM_GPIOPinIntEnable(GPIO_PORTF_BASE, GPIO_PIN_0);

//Включаем глобальные прерывания
ROM_IntMasterEnable();
ROM_IntEnable(INT_GPIOF);
//
// Бесконечный цикл
//
while(1) {
}
}

//Наш обработчик прерывания
void __GPIOF_ISR(void) {
//Подаём на выход 1
HWREG(GPIO_PORTF_BASE + (GPIO_PIN_1 << 2)) = GPIO_PIN_1;
unsigned long ulStatus;
//Получаем статус текущего прерывания
ulStatus = ROM_GPIOPinIntStatus(GPIO_PORTF_BASE, true);
//Сбрасываем флаг прерывания
ROM_GPIOPinIntClear(GPIO_PORTF_BASE, ulStatus);
}
И ещё, главное не забыть подправить файл «startup_ewarm.c», объявив вначале нашу функцию

extern void __GPIOF_ISR(void);
...
и указать её в списках обработчиков прерываний:

IntDefaultHandler, // FLASH Control
__GPIOF_ISR, // GPIO Port F
IntDefaultHandler, // GPIO Port G
...
После загрузки в контроллер получаем следующее:

Голубой график — это кнопка, синий — выход контроллера. На графиках видно, что время реакции ~380нс.

Плата действительно очень интересная, тем более, что на момент написания обзора цена её упала до 7.99$, что дешевле, чем MSP430 launchpad. Похоже Texas Instruments хотят снять её с продажи и распродают остатки, в пользу Tiva™ C Series TM4C123G LaunchPad.

Информация:
Stellaris® LM4F120 LaunchPad User Manual (En);
Начало программирования в Code Composer Studio;
Начало программирования в IAR;
Stellaris® LM4F120H5QR DATA SHEET (En);
Прочая документация.



Tiva™ C Series TM4C123G LaunchPad
Tiva™ C Series TM4C123G LaunchPad Evaluation Kit: $12.99

Следующая плата появилась совсем недавно и пришла на смену Stellaris.

Коробка:


Новые платы теперь упаковываются в более мелкие коробки.

Внешне Тива не отличается от Стелариса, платы сделаны абсолютно идентично.

Снизу платы нанесены названия пинов, что конечно очень удобно.


Комплект:
— Tiva C Series отладочная плата;
— USB Micro-B USB-кабель;
Руководство по быстрому старту.


Основные характеристики:
— Микроконтроллер: 32-битный ARM Cortex-M4 TM4C123GH6PM;
— Скорость до 80 МГц;
— 256 КБ Flash/ 32 КБ SRAM / 2 КБ EEPROM
— 2 12-битных АЦП;
— 6 64-битных и 6 32-битных таймеров;
— 8 UART;
— 4 SSI;
— 4 I2C;
— CAN 2.0;
— USB 2.0.

В общем характеристики такие же, как и у стеллариса, да и процесс программирования платы абсолютно с ним одинаковый, среды программирования те же, поэтому расписывать не буду, лишь приведу результаты тестов.
Первым дело залил программу, подающую 1 и 0 на максимальной скорости и вот результат:

Время смены состояния ~23 нс, время перехода из конца цикла в начало ~40 нс (как и у стеллариса).
Теперь залью программу для проверки времени реакции на нажатие кнопки и результат оказался следующим:

Время реакции на нажатие кнопки ~380нс (опять же как и у стеллариса).

В общем пока особо не понял, в чём отличие тивы от стеллариса, но Texas Instruments пишут, что тива — новое и улучшенное продолжение стеллариса.

В CCS, после установки ControlSuite появились интересные примеры с тивой:

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

Информация:
Tiva™ C Series EK-TM4C123GXL LaunchPad User's Guide (En);
Tiva™ TM4C123GH6PM Microcontroller DATA SHEET (En);
Начало программирования в Code Composer Studio;
Начало программирования в Keil™ RealView®;
Начало программирования в Sourcery CodeBench™;
Прочая документация.


Hercules RM42x LaunchPad
Hercules RM42x LaunchPad Evaluation Kit: $19.99


Ну и напоследок расскажу о совсем новой плате Hercules RM42x LaunchPad.
Texas Instruments совсем недавно начал выпуск новых плат Hercules TMS570LS04x/03x Launchpad и Hercules RM42X Launchpad на базе двухъядерных микроконтроллеров TMS570LS0432 и RM42L432 соответственно.
Платы абсолютно одинаковые, в том числе и цена, разные только микроконтроллеры, у TMS570LS0432 частота до 80 МГц, а RM42L432 до 100 Мгц.

Основные характеристики:
Hercules TMS570LS04x/03x Launchpad
— Микроконтроллер: TMS570LS0432 (Dual ARM Cortex – R4);
— Встроенная самопроверка для ЦП и RAM;
— Контроль часов и напряжения;
— Характеристики МК: 80MHz
384kB Flash со встроенными средствами обнаружения и коррекции ошибок (ECC);
32kB RAM с ECC;
16kB flash c ECC для эмуляции EEPROM;
16 12-битных АЦП;
19-пиновый программируемый High-End Timer (N2HET);
SPI;
LIN/SCI (UART);
GIO пины;
Hercules RM42X Launchpad
— Микроконтроллер: RM42L432 (Dual ARM Cortex – R4);
— Встроенная самопроверка для ЦП и RAM;
— Контроль часов и напряжения;
— Характеристики МК: 100MHz
384kB Flash со встроенными средствами обнаружения и коррекции ошибок (ECC);
32kB RAM с ECC;
16kB flash c ECC для эмуляции EEPROM;
16 12-битных АЦП;
19-пиновый программируемый High-End Timer (N2HET);
SPI;
LIN/SCI (UART);
GIO пины;
В общем я взял побаловаться Hercules RM42X Launchpad.

Коробка по размерам такая же как и у Tiva.
Внешний вид коробки:




Комплект:
— Hercules RM42x отладочная плата;
— USB Micro-B USB-кабель;
Руководство по быстрому старту.


Снизу на плате есть резиновые ножки, что конечно же очень удобно при её использовании на столе. Так же рядом со всеми пинами нанесены надписи, указывающие на их функции.


По умолчанию в микроконтроллер зашита программа, которая работает в паре с Windows приложением Hercules Safety MCU Demos

Данный проект предназначен для демонстрации следующих возможностей:
— система самодиагностики и обнаружения ошибок

— работа встроенного датчика освещённости

— моргание двумя светодиодами


Для программирования Texas Instruments предлагает скачать Code Composer Studio и HALCoGen

К сожалению плата пришли на днях и я ещё глубоко в ней не ковырялся, поэтому с морганием светодиодами проблема. Но если кому то это интересно, как разберусь, вставлю тесты.

Информация:
RM42L432 DataSheet;
Схема Hercules LaunchPad;
Страница на wiki
Прочая документация.


Ну в общем всё. Спасибо за внимание.
...
Планирую купить +54 Добавить в избранное +73 +129
свернуть развернуть
Комментарии (128)
RSS
+
avatar
+23
Спасибо за обзор!
Если не ошибаюсь TI — тот самый магазин, где можно попросить ламантину в цилиндре?
ламантина в ТИ
+
avatar
  • Lafania
  • 29 августа 2013, 01:33
+1
не верю)))))))
+
avatar
  • Kasatich
  • 29 августа 2013, 16:05
0
Всякое бывает. Еще и от упаковщика зависит) Мне некоторые продаваны вкладывали в посылки либо подобие открыток, либо просто писали благодарность за покупку каллиграфией)
+
avatar
  • vint_x
  • 29 августа 2013, 09:10
+1
Сложно в это поверить, хотя там тоже люди работают
+
avatar
  • stels
  • 29 августа 2013, 10:08
0
нет, там магазинчик, специализирующийся на светодиодах вроде был
+
avatar
0
На хабре писали именно про TI, но я не уверен, что хабр был вообще первоисточником.
Я могу в это поверить, тк постоянно общаюсь с людьми не обделёнными чю )) Думаю, будь я продом, я тоже нарисовал бы по мере своих художественных возможностей ))
+
avatar
  • Ajax
  • 29 августа 2013, 10:21
0
Первоисточник англоязычный, в рунет попал уже перевод.
+
avatar
  • Ajax
  • 29 августа 2013, 10:19
0
Сомневаюсь что в TI можно заказать «несколько светодиодов».
Ланчпады они отправляют в фирменной упаковке, а сверху коробка FedEx.

При попытке нагуглить нашел несколько вариантов, наиболее правдоподобным кажется вот этот (не реклама, пусть модеры уберут если кто-то считает это рекламой) superbrightleds.com
+
avatar
  • stels
  • 29 августа 2013, 10:26
0
да, да, я его встречал в коментах
+
avatar
0
Тогда пардон, меня дезинформировали.
+
avatar
+1
отличный обзор. жаль что обывателю больше интересны всякие обывательские мелочи :(
+
avatar
  • vint_x
  • 29 августа 2013, 09:11
+1
Спасибо. На самом деле в своё время один подобный обзор превратил меня из обычного обывателя в больного до этих железок человека))) ну и судя по комментам, интересующихся много.
+
avatar
  • gogabig
  • 29 августа 2013, 01:47
+9
Хорошие «железки», но главное для массовости — это удобная, простая и понятная среда разработки программ (и в России на русском языке), а тут Ардуино вне досягаемости.
Разработчики железок это как-то плохо понимают, я всегда вспоминаю старое предисловие к одной книге:
+
avatar
  • Faster
  • 29 августа 2013, 03:30
0
Интересно автор книги сейчас на досе?
+
avatar
  • REMember
  • 29 августа 2013, 06:49
+8
На Линуксе!
+
avatar
  • nikitosk
  • 29 августа 2013, 11:02
+3
Собственно, прошло больше 20 лет, а слова автора так-же актуальны и по сей день:
Винда вредная хрень :)
+
avatar
  • atomikf
  • 29 августа 2013, 20:41
-1
Да-да, вы до сих пор в досе команды пишете…
+
avatar
  • nikitosk
  • 29 августа 2013, 22:56
+3
Зачем в досе? Но в консоли в линуксе часто.
+
avatar
  • jenya
  • 30 августа 2013, 15:41
+2
какое примитивное мышление…
+
avatar
  • atomikf
  • 31 августа 2013, 01:50
+1
Отвечу сразу обоим в одном комменте.
Надо же, любители холиваров «винда vs линукс» заминусовали меня. Я так и ждал ответа, типа «ну я в линуксе консолью постоянно пользуюсь» — так и вышло.
Примитивное мышление — говорить, что винда — вредная хрень. Не собираюсь устраивать тут очередной бессмысленный спор — что лучше, винда или линукс, тем более, что сам пользуюсь и тем и другим, так как каждая система хороша по-своему. Однако, если объективно посмотреть на вещи, именно винда сделала ПК тем, что он представляет собой сейчас. У ОС семейства windows есть недостатки, но это не отменяет их достоинств, которых значительно больше. К сведению, и в винде есть отличная штука, PowerShell, которая позволяет любителям интерфейса командной строки выложиться по полной. Авторы же высказывания из книги, приведённого выше, просто закостенелые ретрограды, которые не смогли разглядеть тенденцию и продолжая пользоваться устаревшими технологиями, смело заявляли, что как раз это и есть правильный путь, а использование удобного и наглядного оконного интерфейса и мыши — это ошибка. Кто из вас, минусователи мои дорогие, может похвастаться, что он не использует ни того ни другого? И Линукс в своё время пришёл к этому, потому что невозможно остановить прогресс. И если настроить сервер прекрасно можно, используя лишь терминал, то для полноценной работы на ПК этого не достаточно уже лет n-цать как. Вы против винды? Что-ж, приготовьтесь отказаться от кучи привычных вещей, например, таких как хорошая 3d графика в фильмах (3ds max, After effects под линуксами не пашут, увы, в крайнем случае можно на Mac OS, но и там в терминале не работают — мышкой вертят, прикинте). А еще откажитесь от хороших архитектурных и промышленных решений — AutoCAD под пингвином тоже, почему-то не работает. Кстати, кто в игры современные поиграть любит — тоже в лес, если винда для вас «вредная хрень». Это лишь поверхностные примеры. Вы, похоже, не особо представляете, какой громадный пласт промышленного ПО работает только под виндой. Это ПО контролирует производство топлива, пищи, одежды, жилья, систем ГОиЧС и прочего-прочего. Есть доля и других ОС во всём этом, но значительно меньшая (я не беру в расчёт встраиваемые системы и контроллеры — только системы для ПК). Винда сделала для современного мира очень много, при всех своих недостатках.
Так что, примитивно мыслят только те, кто до сих пор кричит «Винда отстой, Билл Гейтс мастдай, Линукс рулит» и т.п. Это было модно лет 10-15 назад, когда много где еще работала 98 система, та что падала при всяком удобном случае, хотя ей было далеко по этому параметру до 95 винды, которой пользовались тоже, кстати, и много полезного сделали с её помощью. Те, кто проводит между окнами и линуксом холивары из разряда — вин/отстой, тогда как использовать можно и нужно обе системы, выглядят глупо и сами этого не понимают.
+
avatar
  • jenya
  • 02 сентября 2013, 01:22
+1
Пока возбудился лишь только ты на вырезку из статьи 20 летней давности.
Винда сделала из ПК помойку — невозможность работы без антивируса, опускание большого болта на стандарты… хоть и последние 5 лет стало чуть-чуть лучше, но до этого был полнейший ад — dll hell, любой инсталятор (стандарта-то небыло) — срал в windows/system… даже вспоминать не хочется.

Удобство мыши и гуйни лучше всего понимаешь оставшись один на один с regedit :))

3ds max и after effects, autocad — покупают 0.0001% от пользователей windwos и только 1%, наверное, когда-то слышали про эти приложения — так что совсем мимо кассы.

Последнее время — windows используется только как экран с мордой, а по сути как чукча на космическом корабле («покорми собак, и смотри ничего не трогай»)…
А внутри трудится linux либо что-то более специфичное.
Да сейчас куда не плюнь, в любой железке чуть умее кирпича стоит linux: Телевизоры, телефоны, модемы, всякая домашняя электронника, плееры… он даже иногда настолько сильно запрятан, что ты даже не предпагаешь что это он.

А я тебе скажу почему windows Отстой, прервое что делаешь после установки — лезешь скачивать (либо уже сворованные) приложения, серийники, ломалки и прочее. В linux-же такая проблема отсутвует.
+
avatar
  • atomikf
  • 02 сентября 2013, 10:39
0
Зачем писать вирусы под Линукс, когда в то всремя он бы распространен чуть менее, чем никак, среди широких слоёв пользователей? Это следствие популярности, вот и всё. А прочие детские болезни — просто отсутствие стандартов, как и было тобой сказано. При чём тут винда? Глупо всё валить на ОС. Да я и не отрицал — 95, 98 это был кошмар, но сколько эти системы дали миру невозможно оценить. Именно с появлением этих систем началось широкое распространение компьютеров в дома обычных людей. Сколько хороших специалистов и программистов начинали с винды, пока обнаруживали, что есть еще и Линукс?

Удобство ГУИ лучше всего понимаешь, в любом приложении, не связанном с набором текста. Ты сейчас с терминала в сети? Или всё же с ГУЯ?

Эти программы использует немного людей, не так мало, конечно, как в твоём предположении, но дело не в использовании самих программ, а в использовании производных труда, продукта, созданного в этих программах. Что в 3D игры никто не играет, или кино не смотрит с современной графикой и эффектами? Все этим пользуются и всё это создано как раз подобным ПО. Это лишь вершина айсберга.

Я не знаю, где винда как экран с мордой используется, но на комбинате, где я работаю, большинство производстенных процессов контролируются ПО под виндой. Не считая встраиваемых систем, как я уже сказал. Ну и сеть естественно вся построена на оборудовании, так или иначе, с линуксом на борту. Я не умаляю ни в коем случае ценность Линукса, и знаю прекрасно, что эта система сейчас используется повсеместно, но и винда не утратила во многих случаях, своих позиций, а учитывая парк старого ПО, которое существует только под окна — она еще и незаменима кое-где.

А насчёт ПО. Линукс-то откуда возьмётся? Также с интернета будет скачан, изначально. Или ты заказываешь диски у производителей дистров? А раз у юзера есть возможность скачть четырёхгиговый образ линукса со всем необходимым ПО, то скачать то же самое для винды он также сумеет, ибо и под винду есть множество свободного ПО. В Линуксе ПО также скачивается с интернета, просто интерфейс поиска и установки из репозиториев удобнее — всё в одном месте. Многое Линукс, в отличие от винды, даёт возможность выполнять сразу после установки, но это не актуальная проблема. Более того, вообще не проблема — интернет сейчас дёшев и доступен. Да и для винды есть сборки энтузиастов, которые уже содержат в себе весь необходимый среднему пользователю софт. Причем практически весь — открытый и бесплатный. Скачай такой, и пользуйся из коробки — никто не мешает. Эта придирка устарела уже несколько лет назад.

И вообще, я еще в первом сообщении сказал, я против холивара на эту тему, ибо сам использую обе системы по необходимости. Я лишь хочу обратить внимание, что винда, какая она не была бы, очень сильно повлияла на распространение ПК и компьютерную грамотность населения. И не соглашаться с этим — только показывать своё невежество.
+
avatar
  • jenya
  • 04 сентября 2013, 00:01
0
Удивительное дело, мы наверное живём в параллельных вселенных что-ли…
Я вот у себя дома насчитал — 2 телевизора, 4 телефона, 1 планшет, маршрутизатор интернет, wifi точка доступа, внешний HDD-tray с ethernet…
итого 10 линуксов

Я не считаю еще штук 7-10 всяких девайсов — которые лежат в кладовке и не использутся (несколько старых wifi, голосовые шлюзы, ADSL модем, телефон openmoko и прочие..)
Я не считаю google, я не считаю 90% интернета, я не считаю apache, mysql, php, nginx, 95% почтовых серверов

И ты мне что-то говоришь, что linux «да в то время он бы распространен чуть менее, чем никак» Ты просто не понимаешь масштабов проникновения linux в жизнь широких слоёв населения.

Украв windows сборки энтузиастов, так-же своровав пачку приложений — можно начать работать, либо облазив полинтернета за серийниками.
Ибо 96% пользователей на вопрос какое ПО вы используете — ответят photoshop,msoffice (на 60% ворованный как и сам windows) — у 40% стоит на работе (возможно) честно купленный софт.
+
avatar
  • atomikf
  • 04 сентября 2013, 20:24
0
Вот только не надо переходить на другую тему, когда разговор идёт о пользовательских операционках, и с которых он начался, когда я возразил на реплику о вредности винды. Для чего все эти притянутые за уши примеры совсем не той темы?
Головой подумай. Когда в широкую продажу вышла винда, и когда она была установлена на каждом первом ПК, линукс в этой же среде, в среде пользователей, на ПК, был распростаранён чуть менее, чем никак. И кто бы под него стал писать вирусы, когда его использовали десяток человек из тысяч? При чём тут роутеры, телевизоры и прочее? Я еще в первом комментарии сказал, что «не беру в расчёт встраиваемые системы» имея в виду как раз всё это прикладное оборудование. В то время интернет и сети работали под Unix большей частью, впрочем и сейчас его доля очень не маленькая.
Что ты хотел доказать предыдущим сообщением? Что Линукс везде — да, и я это знаю. Однако везде — лишь в прикладном оборудовании. А в среде ПК у винды нет конкурентов. Линукс пробивается, и, я уверен, пробъется в лидеры, но не теперь. Пожалуй, даже не в лидеры, а в более-менее существенную нишу. И большая часть работы производится на ПК под управлением Окон а не Пингвина. Проведи опыт: зайди в любой офис любой фирмы и в 82,3% ты увидишь какую-либо винду, 9,2% какую-нибудь Мак-ОС, и только в 5% будет Линукс. Источник. Какие ещё могут быть вопросы? UPD: Кстати, поизучай внимательно приведённую по ссылке статистику. Погляди как менялась доля Линукс-пользователей с 2003 года. Почти никак. Увеличилась лишь на 3% примерно. Причём начиная с 2009 года до 2013 доля возросла всего на 1,1% — и это за четыре с половиной года! Это ли не показатель?
Сборки разные бывают, в том числе, состоящие полностью из открытых приложений. А не нравится что-то — никто не мешает сделать свою. Купить нужно будет только винду. При сегодняшней политике ценообразования и разнообразия различных версий — это вовсе не дорого. И за 96% пользователей говорить не нужно. Кроме того, это явно не так, ведь основная масса пользователей — америка, китай и европа. За китай не поручусь, но в америке и европе доля пиратских окон ничтожна.
В общем, я вижу, что по существу тебе просто нечего сказать мне и ты начинаешь перескакивать с темы в тему. Я просто не понимаю, с чем ты вообще споришь? Я всего лишь возразил, что винда далеко не «вредная хрень» как её назвали, а ты начал мне холивар на тему, линукс vs винда. Я сразу сказал, что против таких споров, и сказал я так, потому, что знаю прекрасно и ту и другую систему и обеими пользуюсь, в каждой находя и достоинства и недостатки.
+
avatar
  • jenya
  • 05 сентября 2013, 14:50
0
Тот факт, что ты умышленно органичил понятие ПК — гробом на процессоре INTEL с монитором, клавиатурой и мышкой — это исключительно проблемы твоего мышления, а не моего перескакивания на другие темы.
В понятие ПК — замечательно умещаются планшеты, телефоны и О ЧУДО даже телевизоры.
В ТВ сейчас есть весь весь комплект, начиная от соц. сетей, заканчивая скайпами и играми, магазином с программами к ним подключается клавиатура и мышка, есть даже встроенный wifi
Это я про телевизоры цена которых начинается от 10000 руб!

Последние 4 мои работы — количество windows редко превышало 5-10% — да и по большей части из-за какого-нить старого кривого софта. Но я не кричу, что линукс захватил из-за этого мир.

Собственно поэтому вся остальная дискуссия потеряла всякий смысл.
+
avatar
  • atomikf
  • 05 сентября 2013, 16:42
0
Отрица́ние — психический процесс, относимый к механизмам психологической защиты. Проявляется как отказ признавать существование чего-то нежелательного. Отрицание особенно характерно для мании, гипомании и вообще людей с биполярным аффективным расстройством в маниакальной стадии...
Это про тебя, видимо, так как отрицание многократного превосходства (по количеству инсталляций) Windows на ПК иначе никак не объяснить.

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

Зато примитивность моего мышления ты быстро уловил, какой молодец, а я ведь так тщательно пытался это скрыть.
+
avatar
  • jenya
  • 07 сентября 2013, 01:48
0
напомню тебе:
«Винда сделала из ПК помойку — невозможность работы без антивируса, опускание большого болта на стандарты…» у меня небыло желания холиварить, я писал про заблуждения с linux.

Ну и конечно под ПК — ты объявил исключетельно «десктопы» и рабочие станции. Всё остальное, если я правильно понял, встраиваемыми системами.
А тем временем, количество устройств на android, уже наверное, перевалило за миллиард! —
Но для тебя ведь, это встраиваемые системы, да? (даже планшет с клавиатурой)

ps. Можешь заниматься своим отрицанием дальше. Спасибо за внимание.
+
avatar
0
Осмелюсь напомнить, что для TI существует такая штука как Energia, являющаяся портом дуиновского IDE. Такштаааа…

ЗЫ: Тьфу, она же в обзоре упомянута. Это просто автор камента невнимательно читал обзор. Как, впрочем, и я. :)
+
avatar
  • gogabig
  • 29 августа 2013, 18:45
0
Это просто автор камента невнимательно читал обзор
Я-то читал и внимательно, но эта Energia не для всех плат, глючная и не локализована, это в обзоре тоже написано. А Вы действительно читайте внимательней.
+
avatar
  • lesha
  • 29 августа 2013, 14:55
-1
на момент 3.11 он был прав год 1992, до 95 винды почти 3 года
+
avatar
  • gogabig
  • 29 августа 2013, 15:13
0
3.1 была хорошая надстройка, Вы видимо просто ей не пользовались. Я ещё 1.0 (RU!!!) поюзал!
А этот мой комменнт к тому что не важно «что внутри», главное — Удобная, Простая и Понятная ОБОЛОЧКА ориентированная на ПОЛЬЗОВАТЕЛЯ. К сожалению «технари» не могут понять что мозги других людей работают совсем по-другому и стараются ВСЕХ обратить в «свою веру» (ДОС, Линукс, АСМ и т.д.), в этом их ошибка. Вот Джобс это хорошо понимал, а сейчас и МелкоМягкие осознали.
Главное — ИНТЕРФЕЙС, железо ВТОРИЧНО (его легко «прокачать»).
+
avatar
  • lesha
  • 29 августа 2013, 18:56
-1
не сравнивайте технарей с программистами это разные люди по мышлению, книгу писал программист
+
avatar
  • gogabig
  • 29 августа 2013, 19:24
0
:-) Я сам и технарь и программист в одной морде, это без разницы, а вот дочка — чистый гуманитарий творческий и там СОВСЕМ другой взгляд, даже когда она работает в Архикаде :-).
+
avatar
  • jenya
  • 30 августа 2013, 15:44
0
Есть всего один интуитивно понятный интерфейс — «мамкина сиська», а всему остальному учиться надо.
Это касается всего windows и DOS, unix, android или ios.
+
avatar
  • fariaos
  • 29 августа 2013, 02:24
+2
В конце того года сдавал задание на автомат: реализация манчестерского кодирования/декодирования на двух msp430 на чипе g2553. Жаль что не на ардуино это делал, потому как почта раиси отдала мне посылку с мк аж в феврале.
+
avatar
  • BobaQPE
  • 29 августа 2013, 02:41
+2
Желаем увидит этот обзор (дополненный последней платой) на хабре!
+
avatar
  • vint_x
  • 29 августа 2013, 09:14
+1
Спасибо, но мне кажется до хабра этот обзор очень не дотягивает =)
+
avatar
  • Serg32
  • 29 августа 2013, 03:17
0
STM32 все таки дешевле :) и к ней maple есть. А за обзор спасибо, я и не знал что у тексиса тоже есть ардуинообразный аналог.
Пора уже выпустить ардуинообразную демоплпту с ПЛИС :D
+
avatar
  • Faster
  • 29 августа 2013, 03:31
0
Ну собственно уже есть :) у меня знакомый ими занимается и что то подобное уже есть…
+
avatar
  • jh7
  • 29 августа 2013, 04:34
0
+
avatar
  • vint_x
  • 29 августа 2013, 09:16
+1
Спасибо. Я хотел заказать STM дискавери побаловаться, залез на офф сайт, выбрал плату, мне насчитали ~15$ плата, 100$ доставка. Так что вопрос как то сам решился. Повезло тем, кто в своё время попал под халявную раздачу. А насчёт IDE ардуино для ПЛИС, мне кажется это всё не за горами.
+
avatar
  • lesha
  • 29 августа 2013, 14:57
-1
так они вроде даже в чип и дип есть с не очень крутой наценкой для него за плату, рублей 300 разницы от сайта
+
avatar
  • vint_x
  • 29 августа 2013, 15:03
+1
В нижегородской области есть ЧипНН, ассортимент поменьше, но цены адекватные
chipnn.ru/51.php
Вот думал там заказать, а как назло в наличие нет STM32F4-DISCOVERY
+
avatar
  • Maze
  • 29 августа 2013, 15:23
0
Эм… плата стоит около 15 долларов, наценка в Чип-И-Дип еще 10 долларов, т.е. 66% от цены — это не очень крутая наценка? Или я чего-то не понимаю?
+
avatar
  • lesha
  • 29 августа 2013, 18:57
+2
66% для чип и дип это минимум, обычно там наценка 300%
+
avatar
  • Maze
  • 30 августа 2013, 07:20
0
Это-то понятно, что Чип-и-Дип барыги те еще, но брать там что-то — только если совсем срочно надо или нигде больше найти не смог.
+
avatar
  • Kirillko
  • 29 августа 2013, 07:09
0
Когда-то пытался завести на лаунчпаде звуковой дальномер (работавший прекрасно на ардуине)

Находил примеры, вроде даже принцип работы понял. Но дальномер тогда так и не заработал. Нужно булет разобраться с этим…
+
avatar
  • vint_x
  • 29 августа 2013, 09:19
+2
Ну ардуино скрывает всю правду от разработчика, многие, сидящие на ардуино считают, что МК знает, что такое секунды/минуты/часы, что UART работает со строками и удивляются, почему, когда в этот регистр кидаешь строку, вылетает ошибка =) так что, если имеются долгосрочные планы на изучение микроконтроллеров и проекты посложнее, чем просто поморгать светодиодом, лучше сразу приучаться использовать низкоуровневое программирование.
+
avatar
  • gogabig
  • 29 августа 2013, 13:50
-1
лучше сразу приучаться использовать низкоуровневое программирование.
:-))) Мне что-то это напоминает (посмотрите мой коммент выше :-).
+
avatar
  • vint_x
  • 29 августа 2013, 14:00
+1
Да да)))
+
avatar
  • AFCrio
  • 29 августа 2013, 17:08
0
Упаси меня… от промышленной автоматике на ардуине и ее разработчиков согласных с вашим мнением.
з.ы. Как вы реализуете обработку сигналов где требуется точность до тактов не используя низкоуровневое программирование?
+
avatar
  • gogabig
  • 29 августа 2013, 18:41
0
промышленной автоматике на ардуине
:-) Здесь кто-то это обсуждает?
:-) Хотя почему бы и нет? :-)
А если серьёзно, то не надо путать разные сферы применения, как говорит наш великий президент: «Мухи отдельно, котлеты отдельно»!
+
avatar
  • AFCrio
  • 29 августа 2013, 19:57
0
Вот именно! Ведь предоставленные в обзоре платы не пересекаются с ардуиной и не позиционируются как основа для DYI.
А почему нет — да потому что низкий порог вхождения не способствует качеству создаваемого кода.
+
avatar
  • gogabig
  • 29 августа 2013, 20:23
+1
низкий порог вхождения не способствует качеству создаваемого кода
??? Качество кода зависит… от порядка на столе и на кухне! Этот парадоксальный вывод можете сами проверить на практике. :-)
+
avatar
  • AFCrio
  • 29 августа 2013, 20:32
0
Надеюсь вы не будете возражать, что говнокода на PHP больше чем на асме.
+
avatar
  • gogabig
  • 29 августа 2013, 20:57
+1
Где БОЛЬШЕ куча, там и Г больше :-) В своё время на асме было БОЛЬШЕ кода и соответственно Г хватало по «самый нехочу», только там его это Г никто и не разгребал.
А качество ЛЮБОГО продукта, не только кода (это программёры упоротые не понимают) зависит от… читайте выше!
+
avatar
  • Neko
  • 30 августа 2013, 06:47
0
У меня на MSP430 сразу заработало (только максимальное определяемое расстояние было меньше, так как дальномер был рассчитан на 5 вольт, а эта штука давала 3.3).
+
avatar
  • vint_x
  • 30 августа 2013, 09:54
+1
Я делал дальномер, но тут проще со стелларисом/тивой, на которых есть пин VBUS. С него берём 5 Вольт. Вход дальномера по даташиту талерантен с 3,3В, так что проблем нет, 5 вольт с выхода УЗ на всякий пожарный гашу этой схемой:
+
avatar
  • sainer
  • 29 августа 2013, 07:42
0
Интересный обзор, заинтересовало. Но хотелось бы увидеть работу плат, не только с лампочками…
+
avatar
  • vint_x
  • 29 августа 2013, 09:32
+1
Примеров конкретно с MSP430 тьма, я вначале обзора указал несколько. По сути стелларисы/тивы/пикколо и геркулес могут всё тоже. Только к примеру у MSP430G2553 2 таймера, а у стеллариса/тивы — 12. Плюс много протоколов в отличие от 2553 там реализовано аппаратно, в итоге не нужно нагружать процессор лишними операциями. Я хотел добавить последнюю самоделку, которой занимаюсь GPS трекер (ML8088s + Tiva), но побоялся, что обзор слишком раздуется.
+
avatar
  • beg
  • 03 сентября 2013, 15:51
0
Кстати, а обзорчик "(ML8088s + Tiva)" определенно бы не помешал.
+
avatar
  • edo
  • 29 августа 2013, 07:49
0
любопытно, а если заказывать штук 20 например — платы будут доступны по той же цене?

или это спонсируемая производителем серия для разарабочиков, которая не предполагает реального более-менее массового использования?
+
avatar
  • vint_x
  • 29 августа 2013, 09:36
+1
именно так, производитель уже сильно занизил стоимость на платы + отправка не какой то там почтой а FedEx, что бы занять нишу, на которой сейчас властвует ардуино, так что сомневаюсь, что они будут снижать цену.
+
avatar
  • maksms
  • 29 августа 2013, 08:18
0
Заказывал EK-LM4F120XL за 4.99 в осенью 2012, потом цена стала 12.99, а щас похоже цену уронили до 7.99
Хотя и существует схожесть программы Энергия с Адруино, но некоторые железяки не работают как следует.А так плата -альтернатива Arduina mega 2560(у которой цена около 14$) по возможностям, хотя немного меньше I/O, но процессор тут быстрее в 5 раз…
Умельцы уже научили работать микроконтроллер с Ethernet ENC28J60 в Энергии, что хорошо расширило возможности применения

Кстати,EK-LM4F120XL пришла за 5 дней в г.Киров.Вот только очередь доставки ждать пришлось долго…
+
avatar
  • vint_x
  • 29 августа 2013, 09:40
+1
Я тоже успел урвать стелларис за 5 баксов, правда это ревизия «А» и она кстати на фотографиях в обзоре. Потом правда я подменил для обзора тивы уже плату с ревизией «B», так как у той «рабочей лошадки» во время тестирования её с датчиком GPS на балконе кошак нарочно прыгнул и вырвал USB разъём с корнями. Разъём я конечно припаял, но плата уже не фотогеничная =)
+
avatar
  • Ajax
  • 29 августа 2013, 10:12
+1
Я MSP430 заказывал. Заказал в пятницу вечером, в обед понедельника курьер уже был у двери моей квартиры. Правда не ждал такой скорости доставки, поэтому, дома меня не было.

Обзор однозначно плюсую.
+
avatar
  • vint_x
  • 29 августа 2013, 10:20
+1
Спасибо. В последнее время FedEx не тот, Тексас инструментс перестали выдавать трек код, FedEx перестали звонить и договариваться о встрече. Ну и время чуток увеличилось.
+
avatar
0
за то почта начала работать, что просто удивительно. за обзор спасибо, когда то любил читать бумажную компьютерру.
+
avatar
  • Demosfen
  • 30 августа 2013, 21:01
0
А почта каждое лето делает вид, что начинает работать. Но вот осенью, особенно чем ближе к зиме, все возвращается на круги своя :(
Будем надеяться, что в этом году будет не так.
+
avatar
  • vint_x
  • 30 августа 2013, 23:22
+1
Ну это понятно, т.к. основная нагрузка на почту в предпраздничные дни, когда все хотят сделать оригинальные подарки, а там ещё и акции в магазинах начинаются.
Так что никуда не деться.
+
avatar
+1
Заказывал Stellaris LM4F120 2 недели назад, TI немного медлит с отправкой, но с FedEx никаких проблем нет: трек дают, в Москву долетела меньше чем за 3-е суток, через 3 часа после прибытия в Москву позвонил курьер(как оказалось от Major) и через 20 мин. привез заказ, причем не по адресу доставки, а по адресу моего фактического нахождения на тот момент… :)
После многолетнего использования Почты России, я несколько дней был шоковом состоянии от такой работы FedEx :)
+
avatar
  • deeprus
  • 29 августа 2013, 10:38
0
А можно тупой вопрос радио-«чайника», который только присматривается к микроконтроллерам?
Платы от Texas (в частности MSP430) нормально работают с Ардуиновскими шилдами (датчики всякие, экраны и т.п.) или Ардуиновские шилды только для Ардуино?
Я как-то полгода назад успел урвать пару плат MSP430 ещё по 5-7 баксов, но не нашёл тогда в сети примеров работы с шилдами Ардуино и отложил в долгий ящик…
+
avatar
  • maksms
  • 29 августа 2013, 10:41
0
Работает со всеми датчиками -просто надо найти библиотеки для них, для Энергии можно тут глянуть forum.stellarisiti.com/forum/64-energia-libraries/
+
avatar
  • vint_x
  • 29 августа 2013, 11:28
+1
Тут главное обратить внимание на напряжение питания. Классическая ардуино на Atmega 328 работает на 5 В. А MSP430 на 3,3В. Поэтому с некоторыми датчиками будут проблемы, но на каждый прибор от 5 вольт есть его же аналог для 3,3 В. Но это очень важный момент, который не следуют упускать.
+
avatar
+3
В очередной раз читая обзор пожалел, что можно поставить только 1 плюс :)
Автору большое спасибо за труд, жду с нетерпением обзора Hercules и при случае, каких-нибудь примеров практического использования данных плат… :)
+
avatar
  • vint_x
  • 29 августа 2013, 11:29
+3
Спасибо. Тогда, как освою геркулес, в рамках обзора ML8088s приведу примеры её работы =)
+
avatar
  • DJOxid
  • 29 августа 2013, 14:04
0
Было дело заказывал у них JM Badge Board. 50уе платка и где то столько же доставка. Чуть ниже 3 000 руб вышло. Доставили за 6 дней через UPS =)
+
avatar
  • vint_x
  • 29 августа 2013, 14:16
+1
На днях знакомый заказал биглибон, только блэк с фарнела, в общем заказ попал под ограничение и его завернули. Деньги конечно вернули, но время потеряли. Потом он заказал в терреэлектронике по завышенной цене + дорогущей доставке, вышло около 4т.р. но зато всё сразу пришло.
+
avatar
  • Demosfen
  • 30 августа 2013, 21:03
0
Что за ограничение? Фарнела или нашей таможни?
+
avatar
  • vint_x
  • 30 августа 2013, 23:18
+2
Ограничение таможенного союза. Дело в том, что платы с чуть мощным DSP или системой криптографии попадают под ограничения как товары двойного назначения и соответственно не доступны для частных лиц. Ну тут конечно система двойных стандартов, т.к. эту плату без проблем можно купить через чип и дип или терроэлектронику переплатив в 2-5 раз.
+
avatar
  • Demosfen
  • 06 сентября 2013, 17:34
+1
Сегодня получил ВВВ от gаrаgelabs. Повезло — проскочило, не завернули. Похоже первый класс особо не досматривают. Обошлась чуть больше 50 баксов с доставкой.
+
avatar
  • vint_x
  • 07 сентября 2013, 00:11
0
Это классно, вам очень повезло, видимо у фарнела слишком строго с этим. Железка действительно очень интересная.
+
avatar
  • kaf
  • 29 августа 2013, 19:02
+3
21 августа на почту упало письмо от ti.com следующего содержания:
Happy Belated Anniversary! We are hoping we can make it up to you with a $25 TI eStore gift card.
It was a little over a year ago that your myNational account was moved to a myTI account. We were so excited to have you as part of the TI family and we think it's a great anniversary to celebrate. 	
Please enter
National-1yr
as your coupon code during check out.
This gift card is valid on any product within the TI eStore used before September 30, 2013

может кому пригодится.
+
avatar
  • beg
  • 03 сентября 2013, 16:04
0
Спасибо.
Попробуем
+
avatar
  • vint_x
  • 03 сентября 2013, 16:25
+1
да, работает, я заказал пиколу ещё одну и dsp. В итоге 25$ простили))) я доволен. теперь, главное, что бы таможня пропустила
+
avatar
  • en1gma
  • 27 сентября 2013, 20:58
0
не работает
хоть я на естор.ти давно зареген
+
avatar
  • kaf
  • 27 сентября 2013, 23:04
0
Возможно нужно было иметь аккаунт на ni.com или при прикрыли халяву.
PS. Попробовал — все работает.
+
avatar
  • nomeron
  • 29 августа 2013, 22:34
0
Хороший обзор. Но для новичков еще нужно сразу заказывать дополнительные устройства. Светодиодом мигать быстро надоест. Я для старта брал инфракрасный пульт с приемником, модуль блютуса, и драйвер на два мотора. Сейчас докупил еще датчик движения и модуль часов.
Всем новичкам рекомендую посмотреть https://github.com/energia/Energia/wiki/Hardware

Может кто подскажет, пример как работать со встроенным термодатчиком в MSP430G2553?
+
avatar
  • vint_x
  • 29 августа 2013, 23:27
+1
В этом плане Texas активно рекламирует бустер паки:
Sensor Hub BoosterPack ($ 49.99) — на плате установлен 3х осевой гироскоп, 3х осевой акселерометр и 3х осевой компас, датчик давления, датчик влажности и температуры, ИК датчик света, ИК бесконтактный датчик температуры;
430BOOST-SENSE1 ($15.00) — ёмкостная сенсорная панель для платы MSP430.

И даже снизили цены на наборы:
MSP430 + 430BOOST-SENSE1 ($15.00)
Tiva™ C Series + BOOSTXL-SENSHUB ($49.99)
Tiva™ C Series + CC3000BOOST (WiFI модуль) ($43.99);
MSP-EXP430G2 + CC3000BOOST ($40.99).
+
avatar
  • bav_at
  • 02 сентября 2013, 11:33
0
Sensor Hub BoosterPack дороговат, но всё равно спасибо за инфу.
+
avatar
  • vint_x
  • 30 августа 2013, 00:42
+2
В плане температуры, как то так:
#include  "msp430g2553.h"

volatile unsigned long tempC;
void main(void) {
  //Отключаем сторожевой таймер
  WDTCTL = WDTPW + WDTHOLD;  
  //Устанавливаем частоту 1 МГц
  BCSCTL1 = CALBC1_1MHZ;                   
  DCOCTL = CALDCO_1MHZ;
  //Включаем аналоговый вход
  ADC10AE0 = 0x00;

  //Устанавливаем наш датчик температуры ADC10CLK/4 и производим настройка АЦП
  ADC10CTL1 = INCH_10 + ADC10DIV_4; 
  ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + REF2_5V + ADC10ON + ADC10SR; 

 

while(1){
//Запускаем процесс преобразования данных с датчика
ADC10CTL0 |= ENC + ADC10SC; 
//Ждём, когда данные появятся
while (!(ADC10CTL0 & ADC10IFG)); 
//Преобразовываем "попугаи" в значение температуры. теперь в переменной будет 
//лежать значение температуры.
tempC = ((ADC10MEM - 673) * 423) / 1024;
//Сбрасываем флаг готовности
ADC10CTL0 &= ~ADC10IFG;
}
}
+
avatar
  • myafko
  • 29 августа 2013, 22:58
0
stellaris и tiva чем-то отличаются? Я думал перемаркировали МК и все
+
avatar
  • vint_x
  • 30 августа 2013, 09:38
+1
Не нашёл, лишь попадаются такие фразы — «новая и улучшенная тива»
+
avatar
  • vint_x
  • 30 августа 2013, 23:20
+1
У меня кстати появилось несколько идей для тестов. Возможно разница проявится при математических вычислений. В понедельник возьму на работу и на осциллографе проверю догадки. Если и здесь разницы не будет, то тогда я уж не знаю.
+
avatar
0
Спасибо за обзор! Как-то заказал MSP430G2, получил, но он так и лежит, все руки не дойдут пощупать. Ваш пост будет лишним пинком под ленивую 5ю точку. Скажите а чем pwm выходы отличаются от не pwm?
+
avatar
  • vint_x
  • 30 августа 2013, 09:28
+1
Ну, для начала нужно понять, что такое PWM. Так вот PWM выходы — это выходы, которые по мимо обычного режима 1 и 0, поддерживают ещё и PWM (ШИМ).
+
avatar
0
Так в этом то и вопрос чем «поддержка PWM» отличается от обычного выхода на который можно притянуть затвор полевика и с определенными интервалами подавать логические 1 и 0 которые будут лежать в/за пределами порогового напряжения?
+
avatar
  • vint_x
  • 30 августа 2013, 11:15
+2
Когда PWM реализован аппаратно, ты просто прописываешь регистры его конфигурацию и всё, дальше процессор занимается своими делами не обращает внимания на эти выходы. Когда PWM реализован программно, процессору, пусть и не на долго, но стабильно раз, в положенное время нужно будет тратить сотни наносекунд на смену состояния выхода.
+
avatar
0
Т.е. разница в том что тайминги и управление придется реализовывать программно. Этот ответ всё расставил по местам :) Спасибо!
+
avatar
  • OlegEF
  • 30 августа 2013, 02:55
0
интересно, а на каком ардуино совместимом мк можно смастерить температурный датчик долгоработающий от батарейки?
+
avatar
  • vint_x
  • 30 августа 2013, 09:35
+2
Это только MSP430G2553 или MSP430G2452, для которых реализована поддержка в Энергии. И опять же, для экономии питания нужно пользоваться таймером на часовом кварце сомвестно с режамами сна. Почитайте интересную статью "Уроки MSP430 LaunchPad. Урок 11: Экономия, должна быть экономной!" и посмотреть пример Автономный радиоТермометр на msp430.
А вообще, для долгоиграющих приборов надо копать в сторону MSP430 F серии.
+
avatar
  • beg
  • 31 августа 2013, 12:16
+2
Хотелось бы дополнить ссылками на другие интересные вещи с ti.com
1 — ez430-chronos — $58, но частенько продают с 50% скидкой.
Занимательные часы с датчиками (давление, температура, 3-хосевой гироскоп) и беспроводным интерфейсом и msp430 внутри. Можно залить любой свой код, естественно. Есть на 3 разных диапазона — 433,868,915 MHz
Есть конечно более занятное — Bluetooth Wearable Watch, но $200 — перебор однако.
2 — SensorTag — $25.
Занятная демка для их Bluetooth Low Energy/Bluetooth Smart SoC — CC254x и их датчиков. Опять же куча датчиков и беспроводной интерфейс. На сей раз BLE.
Внимание — работает либо с их USB BLE донглом, либо с iPhone, либо с Android 4.3 телефонами (узок их круг, страшно далеки они от народа©).
4 — EZDSP 5505/5515/5535 — $49/$79/$99
Демоплата с их DSP с USB интерфейсом

Теперь про полезные дополнения к их платкам:
1 — MSP430 Capacitive Touch BoosterPack — $10
Простенькая демка их емкостного интерфейса
2 — СС3000 BoosterPack — $35
WiFi интерфейс к LaunchPad (MSP430 и Tiva)
3 — Sensor Hub BoosterPack — $49
Дополнение для Tiva с кучей разнообразных сенсоров.
4 — C5000 Audio Capacitive Touch BoosterPack — $35
Набор из упомянутого выше емкостного интерфейса правления и c5000 DSP. Можно развлекаться с выводом и обработкой аудио и с управлением этим через msp430
Ну и т.д т.п — там еще много всего.
Также есть бустерпаки и не от TI. Но тут исчезает вкусность бесплатной доставки FedEx.

Ну и приятное дополнение —
1 — у них есть сайт со скидками
Обычно они там правда только ex430-chronos распродают уже 2 года :)
Но бывают и полезные исключения.
2 — периодически они по разным поводам устраивают скидки (то год демоплате, то еще что:) Сейчас например под раздачу попали старые Tiva и MSP430
3 — прям сейчас вроде еще действует Back to School Sale с купоном LP_BTS на MSP430 LaunchPad
+
avatar
  • vint_x
  • 31 августа 2013, 14:04
+1
1 — для россии они больше не отправляют из за наличие криптографии (так покрайней мере они мне сказали по телефону на вопрос, почему для россии заказ часов недоступен) и акция на часы была только один раз.
4 — конечно не проверял, но в названии DSP может стать причиной отказа пропускать через таможню

upd.: удивительно, сейчас попробовал заказать часы и заказ прошёл. Посмотрим, дойдёт ли. спасибо, сколько раз пробовал заказать часы, но безуспешно, даже уже плюнул на эту затею, а тут решил попробовать и получилось.
+
avatar
  • beg
  • 31 августа 2013, 15:38
0
1 — отправляют, люди получали. Акция кстати, довольно ергулярно повторялась — последний раз недавно повторяли на tideals.com — видимо все распродать не могут.
4 — я пока тоже не проверял — задач нет интересных. Но, возможно, проверю, когда соберусь с SDR поиграться в следующий раз.

PS. аналогичная история про разрешения была с cc3000 и со SensorTag — отказались отправлять и вежливо рассказали про разрешения на ввоз. Сейчас вот с SensorTag уже получили разрешение — шлют быстро и без проблем.

PPS. забыл еще занятное про часы — heart rate monitor
+
avatar
  • vint_x
  • 31 августа 2013, 16:04
+1
Ясно. а я слежу на estore.ti.com и поэтому не видел более снижения цен на часы.
С дсп интересно поиграться, правда для моих задач он либо медленный, либо слишком дорогой.
+
avatar
  • beg
  • 03 сентября 2013, 15:02
+1
Часики аднака опять распродают :)
+
avatar
  • vint_x
  • 03 сентября 2013, 15:11
+1
Печально аднака… часики я заказал уже. Вот, хочу анализатор спектра к часам взять со скидкой))
+
avatar
  • vint_x
  • 03 сентября 2013, 15:18
+1
Эх, опоздал, код более недействителен. Но всё равно большое спасибо за наводку, у меня под носом такие скидки пробегали, а я и не заметил =)
+
avatar
  • beg
  • 03 сентября 2013, 15:38
0
Как раз хотел написать что облом-с с анализатором. Сам в печали, что не успел за такие-то деньги. Полную стоимость жаба душит отдавать.
+
avatar
  • vint_x
  • 04 сентября 2013, 00:11
+1
Да и не стоит он ИМХО таких денег. В общем теперь буду бдеть)))
+
avatar
  • vint_x
  • 03 сентября 2013, 12:56
+1
Сегодня прислали информационный бюллетень, где на русском можно почитать про новую платформу микроконтроллеров серии Tiva™ C и другую интересную информацию
В этом издании:

Новая платформа микроконтроллеров серии Tiva™C от корпорации Texas Instruments! Передовая встроенная аналоговая часть, низкое энергопотребление и возможности вычислений с плавающей запятой в следующем поколении процессоров ARM® Cortex™-M4.
MSP430F6779 – система на кристалле для создания высокоточных трехфазных электросчетчиков со сверхнизким потреблением.
В рубрике «Управление питанием» мы предлагаем вашему вниманию обзоры решений от корпорации Texas Instruments:
— TPS62175 и TPS62177 – синхронные понижающие стабилизаторы напряжения с выходным током до 0,5А.
— TPS54239 – синхронный импульсный стабилизатор, рассчитанный на широкий диапазон входных напряжений – от 4,5 до 23 В. Выходное напряжение – регулируемое.
— TPS63060 и TPS63061 – данные микросхемы работают в диапазоне входных напряжений от 2,5 до 12 В.
+
avatar
  • beg
  • 03 сентября 2013, 14:47
+1
И еще одна новость про часы — Back to School Sale! (Part 3 — eZ430-Chronos) — $29.99 + free shipping!
Коды соответственно
433 (весь мир) 433_BTS
868 (Европа) 868_BTS
915 (Америка) 915_BTS
+
avatar
  • vint_x
  • 03 сентября 2013, 14:58
+1
а можно поподробнее, что где и как? Блин и как поздно, я уже заказал часы
+
avatar
  • beg
  • 03 сентября 2013, 15:40
0
Прошу прощения, ссылочку на объявление в их блоге забыл, а отредактировать уже не дают.
+
avatar
0
Очень обрадовало ваше сообщение. Сразу же сделал заказ.
Так мне в тот же день написали из TI и сказали, что не могут принять заказ. Якобы федекс ко мне не возит. При этом в течение последнего года я у них сделал 4 заказа и все без проблем до меня добрались.
+
avatar
  • vint_x
  • 09 сентября 2013, 15:58
0
Что странно, многим, кто сделал заказы с купонами федикс сказал, что не возят, хотя мне скоро придёт, а с работы мужичок сегодня получил посылку.
+
avatar
0
Видимо слишком много желающих на халявку налетело, вот и отсеивают)
Почти уверен что за полную стоимость федекс вдруг обнаружит мой закуток у себя в списках доставки))
+
avatar
  • vint_x
  • 11 сентября 2013, 12:32
0
Вполне возможно. Вчера я получил один стеларис, пока они дешёвые, решил набрать. Пикколо, к примеру вновь подорожал.
+
avatar
0
Так я тоже по паре пикколо и стеларисов заказал. Сразу после хроноса. Так их в тот же день выслали.
Вот так вот врут и не краснеют)
Я им, кстати, письмо в ответку написал, мол как же так, другие заказы без проблем отправляли а этот никак… Молчат до сих пор
+
avatar
  • vint_x
  • 11 сентября 2013, 14:44
0
Если ответят, отпишитесь плз, интересно, чем аргументировали свой отказ
+
avatar
0
Я конечно поздно отвечаю, но лучше поздно. Хочу сказать, что TI похоже не виновата в безобразиях, виноват все-таки Fedex.
В нашу деревню они возить перестали, мою посылку с платами развернули. Я потом перезаказал стелларисы на адрес в Нижний Новгород и все без проблем дошло… Но хронос я профукал)
Сейчас вот опять на хроносы скидки, но на все кроме 433Мгц. А остальные не дают оформить в Россию… Будем подождать, может повезет
+
avatar
  • vint_x
  • 18 декабря 2013, 21:51
0
Да, я тоже разговаривал с ТИ, они объяснили, что похоже в российском федиксе сидит толстозадый дядя, и в зависимости от того, в каком боку заколет у него, он разрешит отправку или нет, тоже порекомендовали искать друзей или родственников в крупных городах, уж туда если откажут доставлять, это будет феерическим писцом. Конечно в свете последних событий как то пропадает желание следить за этими купонами и прочей фигней, так как столько обломов за единицу времени немного подорвали мой оптимизм, сейчас стал больше интересоваться железками на базе A20 (cubieboard2, BeagleBone Black и A20-OLinuXino-MICRO). В настоящее время ковыряю как раз A20-OLinuXino-MICRO. Очень уж она мне понравилась. Может и обзор запилю, как будет о чем людям рассказать.
+
avatar
  • vint_x
  • 20 сентября 2013, 10:46
0
Нет, кроносы нельзя заказать в россию. там есть модель криптографии, поэтому по новым правилам их не пропустят. Мне часы завернули и из поддержки сказали, что без шансов.
+
avatar
  • vint_x
  • 04 сентября 2013, 23:17
+2
Меня попросили помочь с MSP430 + UART, сделал простенький примерчик uart эхо, может кому то пригодиться:

для IAR
/*Программа принимает данные по UART и возвращает обратно */
#include "io430.h"

//Флаг получения данных с уарт
unsigned char  __isUartReceived = 0;
//Байт, полученный с уарт
unsigned char  __receive;

//Наша функция, посылающая байт по уарт
void uartPutCh(unsigned char);
//наша функция, посылающая строку по уарт
void uartPutStr(char*);

int main( void )
{
  // Останавливаем сторожевой таймер
  WDTCTL = WDTPW + WDTHOLD;
  //Устанавливаем частоту 1 МГц
  DCOCTL = CALDCO_1MHZ;
  BCSCTL1 = CALBC1_1MHZ;
  
  //По даташиту переключаем функционал пин 1 и 2 в режим УАРТ
  P1SEL = BIT1 + BIT2;  
  P1SEL2 = BIT1 + BIT2; 
  
  UCA0CTL1 |= UCSSEL_2; //Для уарта выбираем наш генератор с тактовым сигналом 1 Мгц 
  UCA0BR0 = 0x68; //Устанавливаем скорость передачи в 9600 по формуле:
  UCA0BR1 = 0;   // // 1000000Гц / 9600 = 104(0x68)
  UCA0MCTL = UCBRS0; //Выбор модуляции
  UCA0CTL1 &= ~UCSWRST;  //Сброс
  //Устанавилваем прерывание при получении данных
  IE2 = UCA0RXIE; 
  //Разрешаем глобальные прерывания
  __bis_SR_register(GIE);
  //Шлём строку в уарт
  uartPutStr("Hello");
  //Бесконечный цикл
  while(1) {
    //Если получен символ
    if(__isUartReceived) {
      //Сбрасываем флаг      
      __isUartReceived = 0;
      //Возвращаем этот символ в уарт
      uartPutCh(__receive);
    }
  }
}

//Функция отправки символа по уарт
void uartPutCh(unsigned char ch) {
  //Ждём, пока уарт будет готов отправить
  while(!(IFG2&UCA0TXIFG));
  //Пишем в регистр отправки наш символ
  UCA0TXBUF = ch;
}

//Функция отправки строки в уарт
void uartPutStr(char* ptStr) {
  //Пока не конец строки
  while(*ptStr !=  '\0')
    //Посылаем символ и переводим указатель на следующий
    uartPutCh(*ptStr++); 
}

//Если в уарт что то прислали, вызывается эта функция
#pragma vector=USCIAB0RX_VECTOR
__interrupt void uartRXISR() {
  //Сохраняем в нашу переменную полученный байт
  __receive = UCA0RXBUF;
  //Устанавливаем флаг получения данных
  __isUartReceived = 1;
}



msp430Uart.zip (22 KB)
+
avatar
  • Ajax
  • 05 сентября 2013, 17:20
0
Объясните гуманитарию (если не затруднит), зачем нужно останавливать сторожевой таймер в вашем примере?

p.s. за код плюсанул, разумеется)
+
avatar
  • vint_x
  • 05 сентября 2013, 20:29
+1
Сторожевой таймер останавливаю, что б не заострять на нём внимания. Дело в том, что если его не остановить, то необходимо будет каждый раз сбрасывать строкой:
WDTCTL = WDTPW + WDTCNTCL;

В противном случае МК перезапустится. В конечном продукте я считаю сторожевой таймер необходим.
+
avatar
  • Ajax
  • 06 сентября 2013, 09:52
0
Спасибо, буду знать, вдруг пригодится.
Хотя я сейчас только «Энергию» осваивать начал)
+
avatar
  • vint_x
  • 06 сентября 2013, 09:58
+1
Энергия автоматом стопорит сторожевой таймер. и работа с уартом там гораздо проще

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.