Распродажа

Электронные компоненты со склада по низким ценам, подробнее >>>

Журнал Компел

2010: 
1, 2, 3, 4, 5, 6, 7, 8, 9
2009: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
13, 14, 15, 16
2008: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
13, 14, 15, 16
2007: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
13, 14, 15, 16, 17, 18, 19, 20
2005: 
1, 2, 3

Новости электроники

Мне нравится

Комментарии

дима пишет в теме Параметры биполярных транзисторов серии КТ827:

люди куплю транзистар кт 827А 0688759652

тамара плохова пишет в теме Журнал Радио 9 номер 1971 год. :

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

Ивашка пишет в теме Параметры отечественных излучающих диодов ИК диапазона:

Светодиод - это диод который излучает свет. А если диод имеет ИК излучение, то это ИК диод, а не "ИК светодиод" и "Светодиод инфракрасный", как указано на сайте.

Владимир пишет в теме 2Т963А-2 (RUS) со склада в Москве. Транзистор биполярный отечественный:

Подскажите 2т963а-2 гарантийный срок

Владимир II пишет... пишет в теме Параметры биполярных транзисторов серии КТ372:

Спасибо!

Журнал "Новости Электроники", номер 9, 2008 год.

Переход с микроконтроллеров MSP430F1xx на MSP430F2xx

Алексей Пантелейчук (КОМПЭЛ)
Разработчики, работающие с семействами микроконтроллеров MSP430 от Texas Instruments, осведомлены, что на смену MSP430F1xx пришло семейство MSP430F2xx. Как выявить все преимущества этого семейства, заменив старый микроконтроллер на новый? √ этому посвящена предлагаемая статья.

 

Цель настоящей статьи - показать целесообразность перехода с микроконтроллеров MSP430F1xx на MSP430F2xx, а также облегчить сам переход, обозначив основные отличительные черты двух семейств с точки зрения аппаратной и программной части. 

Сравнение микроконтроллеров семейства MSP430F1xx с MSP430F2xx

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

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

Таблица 1. MSP430F1xx в сравнении с MSP430F2xx
Параметры MSP430F1xx MSP430F2xx
Максимальная частота ядра, МГц 8 16
Выход из режимов LPM3/LPM4 <6 мкс <1 мкс
Энергопотребление в режиме LPM3 <2 мкА <1 мкА
Сброс при пониженном напряжении Некоторые Все
Минимальное напряжение при программировании flash, В 2,7 2,2
Интегрированные подтягивающие резисторы на портах ввода/вывода нет   Все порты
Неравномерность характеристик встроенного осциллятора DCO при дрейфе температуры и напряжения ±20% ±2%
Детектирование ошибок  осциллятора Высокочастотный Высокочастотный и низкочастотный
Дополнительный встроенный низкочастотный осциллятор с низким энергопотреблением нет 12 кГц VLO
Фильтр пульсаций сигнала синхронизации нет есть
Конфигурируемые встроенные нагрузочные конденсаторы кварцевого резонатора нет есть
Детектирование обращения к несуществующему адресу нет есть
Сторожевой таймер устойчивый к ошибкам осциллятора нет есть
Защищенность загрузчика от взлома 256-битный пароль 256-битный пароль, функция стирания
Flash память, кбайт до 60 до 120
ОЗУ, кбайт до 10 до 8
Температурный диапазон, °С -40...85 -40...105

 

Переход с MSP430F1xx на MSP430F2xx: аппаратная часть

Совместимость по корпусу и выводам

Больше всего повезло разработчикам, использующим MSP430F16x и MSP430F13x/14x в 64-выводном корпусе LQFP, так как они могут напрямую заменить эти микроконтроллеры на MSP430F261x и MSP430F23x/24x соответственно. Как корпус, так и площадь, занимаемая на печатной плате (PCB foot-print) идентичны.

Все выводы MSP430F23x/24x могут быть использованы для тех же целей, что и выводы MSP430F13x/14x (выводы аналоговых и цифровых модулей, источников питания, JTAG-программатора), что позволяет осуществить переход на новое семейство без изменения печатной платы. Это утверждение справедливо для MSP430F16x и MSP430F261x с одним исключением. Если в приложении используется последовательный интерфейс USART микроконтроллера MSP430F16x в режиме I2C, прямую замену на MSP430F261x осуществить не получится, из-за несовместимости по выводам (см. таблицу 2).

Таблица 2. Изменения в выводах интерфейса I2C при переходе
Сигналы I2C Вывод/сигнал F16x Вывод/сигнал F261x Комментарии
SDA вывод 29 (P3.1/SIMO0/SDA) вывод 29 (P3.1/UCB0SIMO/UCB0SDA) нет конфликта
SCL вывод 31 (P3.3/UCLK0/SCL) вывод 30 (P3.2/UCB0SOMI/UCB0SCL) меняется вывод

Подробное описание выводов можно найти в документах.

Потребляемый ток

При переходе на MSP430F2xx, разработчик получает выигрыш по энергопотреблению. Так, например, в режиме ожидания при синхронизации от 32 кГц осциллятора (LFXT1), потребляемый ток MSP430F261x составляет 1,1 мкА (3 В, 25°С), в то время, как для MSP430F16x это значение составляет от 2 мкА до 2,6 мкА при выполнении тех же функций. Таким образом, перейдя на новый микроконтроллер, разработчик может в несколько раз увеличить жизнь батарейки (если в приложении таковая используется).

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

Тактовая частота и напряжение питания

Максимальная частота работы MSP430 зависит от напряжения питания. Эта зависимость приводится в документации для каждого устройства. В общем, зависимости максимальной частоты от напряжения питания для MSP430Fxx и MSP430F2xx различаются, но MSP430F2xx всегда может работать на той же частоте, что и MSP430F1xx, при одном и том же напряжении питания. Однако, если разработчик, переходящий на MSP430F2xx, хочет увеличить тактовую частоту ядра, очень важно рассмотреть эту зависимость подробнее.

Особенно рекомендуется рассмотреть эти зависимости, если требуется получить линейное изменение мощности. Напомним, что MSP430F1xx и MSP430F2xx содержат встроенный супервизор (SVS), который может помочь в решении этой задачи. 

Документ об ошибках (Device Errata)

При переходе с MSP430F1xx на MSP430F2xx очень важно заглянуть в документ Errata Sheet, в котором собраны найденные ошибки микроконтроллера и предложены методы их обхода, так как этим новые семейства тоже могут отличаться друг от друга. 

Переход с MSP430Fxx на MSP430F2xx: программная часть

В этой части мы обсудим важные моменты относительно программного обеспечения при переходе с MSP430F1xx на MSP430F2xx. Несмотря на то, что оба семейства программно совместимы, в большинстве случаев при переходе на новый микроконтроллер нельзя просто загрузить бинарный код MSP430Fxx в MSP430F2xx. Потребуется перекомпоновать код приложения на уровне исходных кодов с использованием необходимых заголовочных файлов, библиотек и соответствующего командного файла компоновщика, находящиеся в папке установки среды разработки и имеющего расширение CMD (для Code Composer Essential) и XCL (для IAR Embedded Workbench). Рассмотрим эти аспекты более подробно. 

Расширенная архитектура памяти

Семейство MSP430F2xx построено на базе архитектуры MSP430X с улучшенным ЦПУ и системой памяти. Основное улучшение заключается в расширении разрядности адресной шины до 20 бит, что позволяет получить 1 МБ адресного пространства без использования страниц. Архитектура ЦПУ MSP430X обратно совместима с ЦПУ MSP430 микроконтроллеров MSP430F1xx.

Для использования адресного пространства более 64 кБ нужно применять команды CALLA и RETA (вместо CALL и RET), для того, чтобы обратный адрес возврата из подпрограмм правильно сохранялся и извлекался как 20-битное число. В случае перекомпилирования программного кода на языке высокого уровня, таком как С, компилятор делает это автоматически. При переводе ассемблерного кода на новую архитектуру это нужно будет сделать вручную.

Существуют команды, изменяющие значение PC в соответствии с использующимся режимом адресации. Например, команда MOV.W # value, PC сотрет старшие четыре бита счетчика, так как это команда шириной в слово. Поэтому следует также пересмотреть команды, обращающиеся к PC напрямую. Опять же, в случае компиляции кода на языке высокого уровня, это производится автоматически.

У большинства микроконтроллеров нового семейства увеличен объем ОЗУ. Чтобы воспользоваться этим преимуществом, нужно перекомпилировать программный код при переходе со старого семейства.

Передача параметров подпрограмм и стековый фрейм

Для обмена данными с функциями компилятор обычно использует регистры ЦПУ. В случае, когда все данные не умещаются в регистры, они размещаются в стеке перед тем, как вызывается подпрограмма. В микроконтроллерах с большим адресным пространством MSP430F2xx вызов подпрограмм осуществляется с помощью команды CALLA, которая использует дополнительное 16-битное слово в стеке для размещения значения 20-битного счетчика команд (рисунок 1).

 

Сохранение значения счетчика команд в стеке командой CALLA

 

Рис. 1. Сохранение значения счетчика команд в стеке командой CALLA

Если подпрограмме нужно получить доступ к данным в стеке, нужно учитывать, что счетчик команд занимает дополнительное слово. При переносе приложения с MSP430F1xx на MSP430F2xx следует пересмотреть фрагменты кода, где происходит обращение к стеку.

Если осуществляется переход с MSP430F1xx на MSP430F2xx параллельно с обновлением версии компилятора, нужно иметь в виду, что в новой версии может измениться способ вызова подпрограмм, как например, при переходе с IAR Embedded Workbench V2.xx/V3.xx на V4.xx.

Оптимизация кода по скорости выполнения

При переносе кода, который содержал оптимизированные вручную критичные к скорости выполнения участки, следует иметь в виду, что время выполнения некоторых команд ЦПУ сократилось на один или два цикла.

Другим улучшением архитектуры MSP430X является сокращение времени реакции на прерывание (пять циклов MCLK вместо шести) и времени возврата из прерывания (три цикла вместо пяти).

Объем ОЗУ

Микроконтроллер MSP430F1611 содержит 10 кБ ОЗУ, в то время как максимальный объем ОЗУ MSP430F261x составляет 8 кБ. Таким образом, если в приложении задействованы все 10 кБ ОЗУ MSP430F1611, для того, чтобы перейти на MSP430F261x, потребуется переработка программного кода.

Таблица векторов прерывания MSP430F261x занимает 32 слова памяти, в то время как в MSP430F16x только 16. Область памяти MSP430F261x с адресом 0xFFBE зарезервирована для специальных задач загрузчика.

Информационная flash-память

Микроконтроллеры MSP430F1xx и MSP430F2xx содержат 256 байт информационной flash-памяти, расположенной по адресам от 0x1000 до 0x10FF. Хотя объем этого сектора обоих семейств одинаков, его организация различна. Информационная память MSP430F1xx состоит из двух сегментов (INFOA и INFOB) по 128 байт каждый, в то время как MSP430F2xx содержит четыре сегмента (INFOA, INFOB, INFOC и INFOD) по 64 байта каждый.

Каждый сегмент информационной flash-памяти должен стираться отдельно, следовательно, для MSP430F2xx потребуется четыре обращения вместо двух, как для MSP430F1xx. Сегмент INFOA микроконтроллеров MSP430F2xx поддерживает функцию защиты от стирания, что требует дополнительной обработки при обращении к этой области памяти. Однако не рекомендуется стирать сектор INFOA, а также записывать в нее данные, так как там хранятся калибровочные коэффициенты высокочастотного осциллятора DCO. Для более подробной информации о системе памяти и об обращении к сегменту INFOA, см. [3][4].

Последовательные интерфейсы: USCI вместо USART

Одно из самых значительных отличий MSP430F2xx от MSP430F1xx заключается в последовательном коммуникационном интерфейсе. Микроконтроллеры MSP430F2xx содержат USCI модуль, а MSP430F1xx - USART. Эти модули программно несовместимы, т.е. при переходе на новый микроконтроллер потребуется адаптация кода.

С помощью USCI можно реализовать два SPI-канала или один I2C и один UART одновременно. Стоит заметить, что MSP430F1xx не поддерживают интерфейс I2C.

В настоящей статье мы подчеркнем только основные отличия последовательных коммуникационных модулей старого и нового семейств. Для подробного ознакомления рекомендуется обратиться к документам [3][4], а также рассмотреть программные примеры использования USCI модуля, доступные на сайте производителя.

Режим UART

Функционирование USCI модуля MSP430F2xx и USART модуля MSP430F1xx в режиме UART идентично. Основные отличия:

Режим SPI

Функционирование USCI-модуля MSP430F2xx и USART-модуля MSP430F1xx в режиме SPI также идентично. Основные отличия:

Режим I2C

Модуль USCI не поддерживает некоторых функций, доступных в модуле USART:

Осцилляторы LFXT1 и XT2

Микроконтроллеры MSP430F2xx могут работать от тех же низко- и высокочастотных осцилляторов, что и MSP430F1xx, потребляя при этом меньше электроэнергии. Кроме того, в низкочастотном режиме (LF) доступны конфигурируемые нагрузочные конденсаторы кварцевого резонатора. По умолчанию значение емкости этих конденсаторов в LF-режиме составляет 6 пФ.

Если в приложении, в котором использовались внешние нагрузочные конденсаторы, производится переход на микроконтроллер MSP430F2xx, то нужно иметь в виду:

Высокочастотный осциллятор DCO

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

При переходе с MSP430F1xx на MSP430F2xx следует обратить внимание на то, что:

Загрузчик

Микроконтроллеры MSP430F2xx содержат новый загрузчик (BSL) с улучшенными защитными функциями. Память обоих семейств MSP430F1xx и MSP430F2xx защищена 256-битным паролем. Однако, в MSP430F2xx при обращении к памяти с неправильным паролем, стирается все содержимое flash-памяти (включая калибровочные константы, хранящиеся в сегменте INFOA).

Векторы прерываний

Расположение векторов прерываний микроконтроллеров MSP430F1xx и MSP430F2xx отличается. В принципе, перекомпилирование кода MSP430F1xx с использованием библиотек для MSP430F2xx автоматически решает задачи, связанные с изменением расположения векторов в таблице прерываний. Однако, в некоторых случаях, в процедуре обработки прерывания нужно сделать это вручную.

Также изменилось расположение таблицы векторов прерываний. Для MSP430F1xx это была область адресов с 0xFFE0 до 0xFFFF (16 слов), а для MSP430F2xx - с 0xFFC0 до 0xFFFF (32 слова). Кроме этого, область памяти с адресом 0xFFBE зарезервирована в MSP430F2xx и используется для секретного ключа загрузчика BSL.

Зарезервированные участки памяти

Микроконтроллеры MSP430F2xx содержат обновленные периферийные устройства, такие как BCS+, Comparator+. Эти дополнительные устройства используют часть тех участков памяти, которые раньше имели статус «зарезервировано». Теперь, при обращении к этим областям памяти нужно соблюдать осторожность, так как их изменение может привести к нежелательным последствиям в работе приложения. В качестве примера рассмотрим регистр управления компараторами Comparator_A и Comparator_A+ (см. рис 2, 3).

 

Биты регистра CACTL2 микроконтроллеров MSP430F1xxx

 

Рис. 2. Биты регистра CACTL2 микроконтроллеров MSP430F1xxx

 

Биты регистра CACTL2 микроконтроллеров MSP430F2xxx

 

Рис. 3. Биты регистра CACTL2 микроконтроллеров MSP430F2xxx

Допустим, что в ходе программы устанавливается бит 7, и она работает правильно на MSP430F1xx. Если запустить эту же программу на MSP430F2xx, получится, что входы компаратора будут внутренне закорочены.

Литература

1. Migrating From MSP430F16x to MSP430F261x Application Report (SLAA380).

2. Migrating From MSP430F13x/14x to MSP430F23x/24x Application Report (SLAA381A).

3. MSP430x1xx Family User's Guide (SLAU049).

4. MSP430x2xx Family User's Guide (SLAU144).

5. MSP430x15x, MSP430x16x, MSP430x161x data sheet (SLAS368).

6. MSP430x13x, MSP430x14x, MSP430x14x1 data sheet (SLAS272).

7. MSP430x241x, MSP430x261x data sheet (SLAS541).

8. MSP430x23x, MSP430x24x(1) data sheet (SLAS547).

9. Using the VLO Library (SLAA340).

 

Texas Instruments MSP430F20XX для интеллектуальных датчиков

 

Texas Instruments Новые версии популярных микроконтроллеров MSP430

 

Вернуться к содержанию номера







Ваш комментарий к статье
Журнал "Новости Электроники", номер 9, 2008 год. :
Ваше имя:
Отзыв: Разрешено использование тэгов:
<b>жирный текст</b>
<i>курсив</i>
<a href="http://site.ru"> ссылка</a>