Перейти к содержанию
    

Просьба откликнуться тем, кто пользовался конроллером-конструктором eZ430-F2013.

1) На плате установлен МК MSP430x20x1. Правда ли, что его ток потребления всего лишь 220 мкА?

2) По какой технологии выполнен этот чип (мои версии - ABT, BTL, CMOS, TTL)?

В даташите на него указано " 16-Bit RISC Architecture, 62.5 ", но архитектура и технология - различные понятия или я не прав?

 

Думаем покупать этот набор, прошу знатоков посоветуйте, пожалуйста, на что обратить внимание?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"конроллер-конструктор" - интересный термин :)

Ток потребления сильно зависит от режимов. Сморите даташит с сайта производителя на msp430f2013.

Технология производства и архитектура это разные понятия. Архитектура RISC 16 бит, а технология то вам зачем?

Покупать с какой целью?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просьба откликнуться тем, кто пользовался конроллером-конструктором eZ430-F2013.

1) На плате установлен МК MSP430x20x1. Правда ли, что его ток потребления всего лишь 220 мкА?

2) По какой технологии выполнен этот чип (мои версии - ABT, BTL, CMOS, TTL)?

В даташите на него указано " 16-Bit RISC Architecture, 62.5 ", но архитектура и технология - различные понятия или я не прав?

 

Думаем покупать этот набор, прошу знатоков посоветуйте, пожалуйста, на что обратить внимание?

1. Вопрос задан не совсем корректно. Например, я использую в своих изделиях (пожарные извещатели) именно F2001. У меня микроконтроллер просыпается примерно 1000-1300 раз в секунду, делает свою работу и вновь засыпает. При этом он хавает примерно 30-40 мкА. Кроме того, следует заметить, что напряжение питания тоже очень сильно влияет на энергопотребление.

 

2. :( методом исключения -- остается только CMOS. Сдается мне, что Вас интересует не этот вопрос, а какой-то другой. Уровни входных сигналов, входные токи? Задавайте вопрос прямо, а технология... -- Вам ехать надо, а Вы шашечками интересуетесь?

 

3. Я не понял, что Вы собираетесь покупать -- eZ430-F2013 или MSP430x20x1?

 

Если первое ("свисток"), то для радиолюбительства сойдет, но не для промышленных применений. Не надежен, прошивка слетает, бит защиты жечь не может... в общем букет. Я убил несколько штук, потом купил MSP430-UIF и все заморочки закончились.

Если второе -- MSP430F20x1, то это нормальный МК. Правда, памяти у него -- кот наплакал, но ведь и задачи разные: смотря что МК должен, может под Вашу задачу он будет вокурат. Как знать!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если первое ("свисток"), то для радиолюбительства сойдет, но не для промышленных применений. Не надежен, прошивка слетает, бит защиты жечь не может... в общем букет. Я убил несколько штук, потом купил MSP430-UIF и все заморочки закончились.

Если второе -- MSP430F20x1, то это нормальный МК. Правда, памяти у него -- кот наплакал, но ведь и задачи разные: смотря что МК должен, может под Вашу задачу он будет вокурат. Как знать!

Jorikdime - ну просто интересно.

to Zhevak-

1) если он так часто у вас просыпается, то сколько же времени он работает от проспался до заснул (один цикл)? Если 220 мкА при непрерывной работе, в 5 раз меньше за счёт скважности , неужто :07: за 166 мксек можно успеть 2500 команд?

2) ну просто интересно, пусть будет CMOS. Первым делом мы испортим самолёты, ну а девушек... и шашечки - потом.

3) Покупать собираемся комплект, вот поэтому и обращаюсь к добрым профессионалам за консультацией. Если так легко сломать "свисток", то на что обращать внимание в первую очередь? Статика? Или питание? Спасибо за сочувствие, но MSP430-UIF дороговат пока.

 

Задача - измерение напряжения от электродных датчиков - они крайне чувствительны к входному сопротивлению схемы (например, для измерения рН входной импеданс должен быть порядка 10^15 Ом).

АЦП хотели сначала MAX1301, но цена 2700 руб за штуку отпугнула.

Не посоветуете ли недорогой АЦП 16-разрядный, с униполярным питанием 5 Вольт и приёмом сигналов +-12 (15 Вольт)?

Изменено пользователем rezident
Излишнее цитирование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не посоветуете ли недорогой АЦП 16-разрядный, с униполярным питанием 5 Вольт и приёмом сигналов +-12 (15 Вольт)?

Это как??? У Вас опорный источник должен быть не менее чем размах сигнала. Обычно диапазон существенно меньше +-12 (15) В. Так как Вам требуется ОЧЕНЬ большое входное сопротивление, то напрашивается нормирующий усилитель с необходимым входным сопротивлением и скорректированным под возможности АЦП диапазоном выходного сигнала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у АЦП подозреваю нет таких конских входных сопротивлений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это как??? У Вас опорный источник должен быть не менее чем размах сигнала. Обычно диапазон существенно меньше +-12 (15) В. Так как Вам требуется ОЧЕНЬ большое входное сопротивление, то напрашивается нормирующий усилитель с необходимым входным сопротивлением и скорректированным под возможности АЦП диапазоном выходного сигнала.

Верно, в MSP430F2012 есть встроенный АЦП. Можно ли его использовать при размахе от -2 до +2 Вольт?

Относительно MAX1301 - вот поэтому его цена и зашкаливает 2700-3100 руб. за корпус.

В качестве нормирующего усилителя решили ставить AD797 ( с входным шумом в 1.2 nV/sqrt(Hz)) или 795-й с входным импедансом 10^14 Ом.

Если нормирующий будет работать с коэффициентом усиления меньше 1 , то из размаха в 4 Вольта можно ужать до 3 Вольт. Но как быть с отрицательными напряжениями?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Верно, в MSP430F2012 есть встроенный АЦП. Можно ли его использовать при размахе от -2 до +2 Вольт?

В даташите на контроллер абсолютно четко указан диапазон допустимых входных напряжений. Он от GND до AVCC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, на плате исходно стоял МК MSP430F2013 c 16-разрядным АЦП, и его ценность навела на мысль заменить более дешевым MK MSP430F2012 c 10-разрядным АЦП. Встал вопрос, как его проверить. Поиск на форуме привёл к монографии Chrisa Nagy http://upload.caxapa.ru/mcu/msp430/Using%20MSP430.rar , где на странице 90 приведён пример программного кода для работы с АЦП от встроенного температурящего диода. Попытка компиляции его в IAR Embedded Workbench IDE ощенилась 5 ошибками и тремя предупреждениями. Ниже приведён так и недокомпилированный исправленный вариант.

 

#include "io430.h"

int main( void )
{
 // Stop watchdog timer to prevent time out reset
 WDTCTL = WDTPW + WDTHOLD;
 cout << Determine_Temp(0);
 cout << Determine_Temp(1);
 return 0;
}
signed long Determine_Temp (unsigned char BooleanFlag)
// This function returns device temperature, based on an ADC conversion
// The passed parameter acts as a flag. If it is zero, the temperature is
// returned in degrees Fahrenheit. If it is non-zero, it is returned in
// degrees Celsius.
{
signed long Temperature=25; //Define and initialize working variable
ADC12CTL0 = SHT0_6 + SHT1_6 + REFON + ADC12ON;
// Initialize control register 0. Sets up conversion clock, internal reference
ADC12CTL1 = SHP; //Conversion sample timer signal is
//sourced from the sampling timer
ADC12MCTL0 = INCH_10 + SREF_1; //Use internal reference with
//respect to ground, Temp sensor
//is on input channel 10.
ADC12CTL0 |= ADC12SC + ENC; //Enable and start conversion
while (ADC12CTL1 & 0x01); //Hang in loop until conversion
//completes.
Temperature = ADC12MEM0 & 0x00000FFF;
Temperature *= 845; //These steps convert the ADC reading
//to degrees Celsius
Temperature = Temperature >> 13;
Temperature -= 278;
if (BooleanFlag) return Temperature; //Return temperature in degrees
//Celsius, if required
Temperature *=461;
Temperature = Temperature >> 8; //Otherwise, convert to Fahrenheit and
//return
Temperature +=32;
return Temperature;
}//End Determine Temperature Function

1) Верна ли догадка о том, что в пакете IAR нет функции вывода текстовой строки по формату (cout не работает)?

2) Как правильно сформулировать вопрос, что следует изменить в тексте, чтобы он откомпилировался?

Изменено пользователем rezident
Оформление цитаты исходника.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не используйте cout и все. Все что вам надо в этой программе это ф-ция Determine_Temp, она возвращает результат измерения, видимо (не вчитывался в код, но судя по названию). Можете хоть в дебаггере смотреть на результат ф-ции или выводить в порт, как вам угодно. cout пользуется такими ф-циями как put_char если не ошибаюсь и именно вы должны их реализовать, чтобы оно работало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за подробный и ясный ответ, Jorikdima.

 

Первое сомнение. В приведённом со страницы коде исходно была строка " Temperature >> = 13;" Смысл её - путем сдвига вправо на 13 бит отсечь неинформативные значащие цифры и шумы, уменьшив также результат в 2^13 раз.

Компилятор не принял такой орфографии и строка была заменена на "Temperature = Temperature >> 13";

 

Извините заранее за неумный вопрос, но зачем присваивается начальное значение 25? (Среднея комнатная температура в градусах Цельсия?).

 

Строка "Temperature = ADC12MEM0 & 0x00000FFF;" обнуляет старшие пятьполубайт, сохраняя три младших (12 бит).

Умножение на 845 (1101001101) для конверсии в градусы Цельсия добавляет 10 бит, а после сдвига на 13 имеем 9 значащих двоичных цифр, соответствующих трёхзначному десятичному числу в градусах Кельвина.

Прав ли я, что строку "Temperature -= 278;" следует исправить на "Temperature -= 273;"?

 

Относительно загадошной фразы на стр. 89 "This code is written assuming 3.35 mV/°C, as is the case with the

’149 device. If you are using a different device, check your datasheet for the correct value."

думаю, что 149 - это номер серии термочувствительных диодов, встроенных в МК, а значение 3.35 должно влиять на коэффициент 845. Но смысл формулы мне найти пока не удалось (845\3.35 = 252). Поделитесь идеями, пожалуйста.

 

По существу, на странице 28 "IAR C LIBRARY FUNCTIONS Reference Guide" есть описание функции printf (stdio.h),

так что COUT не понадобилось.

 

И на стр. 25 "MSP430 IAR Embedded Workbench® IDE User Guide" показано как создать рабочее место (workspace window), потом файл проэкта и в нем файл с кодом программы.

Изменено пользователем VVlad

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Компилятор не принял такой орфографии и строка была заменена на "Temperature = Temperature >> 13";
А какую ошибку выдал? Вполне возможно, что достаточно было привести константу к типу переменной

Temperature >>= 13L;

Строка "Temperature = ADC12MEM0 & 0x00000FFF;" обнуляет старшие пятьполубайт, сохраняя три младших (12 бит).

Умножение на 845 (1101001101) для конверсии в градусы Цельсия добавляет 10 бит, а после сдвига на 13 имеем 9 значащих двоичных цифр, соответствующих трёхзначному десятичному числу в градусах Кельвина.

Прав ли я, что строку "Temperature -= 278;" следует исправить на "Temperature -= 273;"?

В данном примере используются "магические числа" для того, чтобы делать вычисления с дробными величинами, не используя арифметику "плавающих" чисел, для которой потребуется соответствующая библиотека. Библиотека обычной "плавучки" порядка 600 байт кода добавит. Умножение на 845 и затем арифметический сдвиг на 13 бит вправо эквивалентно умножению на дробь 845/8192=0,103149.

Относительно загадошной фразы на стр. 89 "This code is written assuming 3.35 mV/°C, as is the case with the

’149 device. If you are using a different device, check your datasheet for the correct value."

думаю, что 149 - это номер серии термочувствительных диодов, встроенных в МК,

Под " ’149 device" имеется в виду тип микроконтроллера - MSP430F149.

а значение 3.35 должно влиять на коэффициент 845. Но смысл формулы мне найти пока не удалось (845\3.35 = 252). Поделитесь идеями, пожалуйста.
3,35мВ/°C это наклон линейной части характеристики встроенного диода, который является термочувствительным элементом в MSP430F149. Формула для расчета по этой характеристике имеется в User's Guide в разделе ADC12 operation -> Using the Integrated Temperature Sensor.

VTEMP=0.00355В/°C*(TEMPC)+0.986В

Из нее выводится формула для температуры

T[°C]=VTEMP / 0.00355В/°C - 0.986В / 0.00355В/°C

С учетом, что АЦП 12-битный, а величина опорного напряжения VREF=1,5В получается VTEMP=VREF/4096*ADC12code откуда

T[°C]=ADC12code * 1,5В / 4096 / 0,00355В/°C - 0,986В / 0,00355В/°C или

T[°C]=ADC12code*0,103158°C-277,7°C

Здесь мы получаем те самые коэффициенты, фигурирующие в программе 845 / 2^13=0,103149 и -278.

Умножение на дробный коэффициент в программе заменено на умножение на "магическое" число 845 с последующим делением путем арифметического сдвига. Дробь 845/8192 дает весьма хорошее приближение к искомому коэффициенту, достаточное для вычисления температуры с точностью до целых градусов. Для перевода в градусы Фаренгейта в программе соответственно используются другие коэффициенты.

post-3882-1262134821_thumb.png

Изменено пользователем rezident

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ошибка в ответ на строку "Temperature >> = 13L;" была такой

 

Error[Pe029]: expected an expression C:\Documents and Settings\vlad\Мои документы\IAR Embedded Workbench\temper-prj\main.c 22 ( В компиляторе Си)

 

Error[Pe029]: expected an expression C:\Documents and Settings\vlad\Мои документы\IAR Embedded Workbench\temper-prj\main.cpp 23 ( В компиляторе Си++)

 

 

За терпение и редкое в наше время серьёзное вспомоществование сердечно благодарю уважаемого rezident -а.

Особое мерси за пояснение смысла формулы. У меня есть два USER Guides ( EW430_UserGuide.pdf и MSP430x2xx_Family_User's_Guide_(Rev._D)_slau144d.pdf). В обоих искал, в последнем видел передаточную функцию, идентичную приведённому графику, а подробное объяснение нашёл только здесь. Вероятно, есть ещё третий ЮзерГайд, мне пока незнакомый. Спасибо за помощь.

 

Искренне поздравляю с Наступающим Новым Годом. Всего наилучшего. Пусть Ваши микроконтроллеры работают без ошибок и долго.

Изменено пользователем VVlad

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А на строку "Temperature >> = 13L;" ругается потому что там лишний пробел затесался, между >> и =

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А на строку "Temperature >> = 13L;" ругается потому что там лишний пробел затесался, между >> и =
Точно! Пробел лишний. А я и не обратил внимания, скопипастив строку у VVlad. Исправил в своем сообщении.

Вероятно, есть ещё третий ЮзерГайд, мне пока незнакомый.
Ну вообще-то этих User's Guide как минимум пять, по одному на каждое семейство MSP430. :rolleyes: А выведенная мной формула основана всего лишь на внимательном чтении одного из них и минимальных знаниях физики и математики в объеме, преподаваемом при обучении в средней школе. Не вижу в этом какой-то доблести. :laughing:

Искренне поздравляю с Наступающим Новым Годом. Всего наилучшего.
И вас с Наступающим! :santa2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...