MSP430F – надекономічні 16-розрядні мікроконтролери зі вбудованою флэш-пам’яттю, призначені для застосування у вбудованих системах з живленням від батарей: лічильниках витрати електроенергії та води, вбудованих системах безпеки, портативних вимірювальних приладах, інтелектуальних датчиках, медичних та інших приладах, у яких потрібно забезпечити високу точність обчислень і тривалий термін служби елементів живлення.
Мікроконтролери MSP430F мають усі переваги, притаманні випущеним раніше мікроконтролерам сімейства MSP430 . З появою поняття «система на кристалі» (System on a Chip – SoC) фірма Texas Instruments віднесла мікроконтролери сімейства MSP430F до SoC-подібних виробів , хоча слід зазначити, що за ступенем інтеграції периферійних пристроїв вони поступаються, наприклад, мікроконтролерам 68HC908 компанії Motorola, які мають ширший набір вбудованих пристроїв для зв’язку із «зовнішнім світом» (CAN, J1850, USB та інші).
Архітектура та особливості сімейства MSP430F
Усі мікроконтролери MSP430F реалізовані на базі модульної архітектури, що дає можливість порівняно просто модифікувати їх шляхом додавання нових периферійних пристроїв і поліпшення параметрів уже існуючих. Процесорне ядро, пам’ять і периферійні пристрої об’єднані шинами даних MDB та адреси MAD.
Мікроконтролери сімейства MSP430F відрізняються між собою обсягом вбудованої флэш-пам’яті (від 1 кбайта в MSP430F1101 до 60 кбайт у MSP430F149/1491/449) і RAM-пам’яті (від 128 байт у MSP430F1101/1111 до 10240 або 5120 байт у MSP430F1611/10/12), а також набором периферійних пристроїв. У таблиці наведені основні параметри мікроконтролерів MSP430F . Як і в усіх мікроконтролерах із закритою архітектурою, у MSP430F не реалізовані шини для обміну даними із зовнішньою пам’яттю. Усі мікроконтролери MSP430F реалізовані на базі 16-розрядного процесорного ядра з RISC-архітектурою, працюють при напрузі живлення від 1,8 до 3,6 В, мають 16-розрядний «сторожовий» таймер і призначені для роботи в діапазоні температур від -40 до 85 °С.
У деяких мікроконтролерах сімейства MSP430F є вбудований апаратний помножувач (див. таблицю). Максимальна продуктивність усіх наведених у таблиці мікроконтролерів становить 8 MIPS (при напрузі живлення 3,6 В і тактовій частоті процесорного ядра 8 МГц). На рис. 1 наведений графік залежності тактової частоти процесорного ядра від напруги живлення . У мікроконтролерах MSP430F11х2/12х2 реалізований контролер DTC (Direct Transfer Controller), який виконує пересилання даних з АЦП у вбудовану пам’ять, що дозволяє при цифровій обробці сигналів збільшити продуктивність цих мікроконтролерів порівняно з аналогічними приблизно в 50 разів.
У MSP430F1122/1132 є 10-розрядний п’ятиканальний АЦП і вбудований температурний датчик. У MSP430FE412/13 також міститься температурний датчик, а крім того, реалізовано два 16-розрядних сигма-дельта АЦП . Нові мікроконтролери MSP430F1610/11/12 відрізняються більшим обсягом пам’яті і мають вбудований багатоканальний 12-розрядний АЦП з максимальною частотою перетворення 200 кГц, два 12-розрядних ЦАП, апаратний помножувач, два послідовних порти, вбудований температурний датчик, контролер прямого доступу до пам’яті, 10-канальний генератор ШІМ-сигналу, а також підтримують інтерфейс I²C .

При розгляді мікроконтролерів сімейства MSP430F не можна обійти увагою мікросхему радіочастотного прийомопередавача TRF6900A фірми Texas Instruments, яка, хоча й не входить до складу сімейства мікроконтролерів MSP430F, призначена для безпосереднього підключення до них .
Мікросхема TRF6900A застосовується в розподілених системах збору даних для організації радіозв’язку в діапазоні частот від 850 до 950 МГц у межах обмеженої території. Режим роботи прийомопередавачів — напівдуплексний, застосовувана модуляція — частотна.
Основні параметри мікроконтролерів сімейства MSP430F
| Тип MSP430F | Пам’ять, байт | Помножувач | Контроллер DMA | Кількість ліній входу/виходу | АЦП | ЦАП | 16-розр. таймери | Драйвер ЖКИ, сегменти | Кількість виходів і тип корпусу | ||
| флеш | RAM | А | В | ||||||||
| 1101А | 1 К | 128 | – | – | 14 | интегрирующий | – | + | – | – | 20 DGV^DW, PW, 24 HgE |
| 1111А | 2К | 20 DGVlDW, PW, 24 hGE | |||||||||
| 1121А | 4К | 256 | 20 DGV, DW, PW, 24 RGE | ||||||||
| 1122 | 5 каналів, 10-розрядів | 20 DW, PW, 32RHB | |||||||||
| 1132 | 8К | 20 DW, PW, 32RHB | |||||||||
| 1232 | 22 | 28 DW, PW, 32RHB | |||||||||
| 147 | 32 К | 1 К | + | 48 | 8 каналів, 12 розрядів | + | 64 PM, RTD, PAG | ||||
| 148 | 48 К | 2К | 64 PM, RTD, PAG | ||||||||
| 149 | 60 К | 64 PM, RTD, PAG | |||||||||
| 1471 | 32 К | 1 К | интегрирующий | 64 PM, RTD | |||||||
| 1481 | 48 К | 2К | 64 PM, RTD | ||||||||
| 1491 | 60 К | 64 PM, RTD | |||||||||
| 155 | 16 К | 512 | – | + | 8 каналів, 12 розрядів | розрядних | 64 PM | ||||
| 157 | 32 К | 1 К | 64 PM | ||||||||
| 168 | 48 К | 2К | + | 64 PM | |||||||
| 169 | 60 К | 64 PM | |||||||||
| 1610 | 32 К | 5120 | 64 PM | ||||||||
| 1611 | 48 К | 10 240 | 64 PM | ||||||||
| 1612 | 50 К | 5120 | 64 PM | ||||||||
| 423 | 8 К | 256 | – | – | 14 | 1 ^розрядник сигма- дельта | – | – | 128 | 64 PM | |
| 425 | 16 К | 512 | 64 PM | ||||||||
| 447 | 32 К | 1 К | + | 48 | 8 каналів, 12 розрядів | + | 160 | 100 PZ | |||
| 448 | 48 К | 2К | 100 PZ | ||||||||
| 449 | 60 К | 2К | 100 PZ | ||||||||
Архітектура мікроконтролерів сімейства MSP430F включає: 16-розрядний центральний процесорний пристрій (CPU); пам’ять зберігання програм типу флэш і зберігання даних — RAM; JTAG-порт; системні модулі; широкий набір периферійних пристроїв. Мікроконтролери MSP430F відрізняються між собою обсягом вбудованої пам’яті, набором периферійних пристроїв і типом корпуса (див. таблицю).
До складу мікроконтролерів сімейства MSP430F входять системні модулі, за допомогою яких здійснюється керування режимами роботи, і периферійні пристрої, що виконують керування обміном даними із зовнішніми пристроями.
Системні модулі:
- базовий модуль формування тактових сигналів (Base Clock Module – BCM), у складі якого є два генератори і формувач тактових сигналів;
- JTAG-порт;
- «сторожовий» таймер (Watchdog Timer);
- модуль перезапуску (Power on Reset – POR).
Периферійні пристрої:
- таймер А (Timer A);
- таймер В (Timer B);
- АЦП (ADC);
- ЦАП (DAC);
- компаратор (Comparator A);
- USART-порт;
- порти вводу/виводу (I/O Port);
- драйвер ЖКИ (LCD).
Структурна схема мікроконтролерів типу MSP430F14х наведена на рис. 2.

Мікроконтролери MSP430F призначені для використання в портативних пристроях, що працюють від вбудованих елементів живлення. Тому при розробці мікроконтролерів MSP430F особливу увагу було приділено мінімізації енергоспоживання, що, у свою чергу, дозволяє продовжити термін служби елементів живлення. Струм споживання залежить від частоти тактового сигналу і напруги живлення, причому, як відомо, струм споживання і тактова частота пов’язані прямо пропорційною залежністю . Тому, знаючи струм споживання при конкретній величині тактової частоти, можна визначити струм споживання мікроконтролера на будь-якій іншій частоті. Наприклад, струм споживання мікроконтролерів MSP430F13х/14х при тактовій частоті fMCLK = fSMCLK = 1 МГц, fACLK = 32 768 Гц у діапазоні температур -40…85 °С і напрузі живлення 2,2 В становить 280 мкА (типове значення) .
Крім того, фірма Texas Instruments у документації на мікроконтролери MSP430F13х/14х наводить таку розрахункову формулу для визначення струму споживання в активному режимі (Active Mode – AM) залежно від напруги живлення: IAM(Епит) = IAM(3 В) + (Епит – 3 В) × 175 мкА/В .
У мікроконтролерах MSP430F закладені широкі можливості з керування енергоспоживанням, які реалізуються за рахунок відключення тактового сигналу процесорного ядра (MCLK) і периферійних пристроїв (SMCLK), а також за рахунок зменшення частоти відповідних тактових сигналів. Тому у розробників завжди є можливість вибору найбільш оптимального режиму роботи мікроконтролера.
По-перше, завжди можна встановити таку тактову частоту процесорного ядра, яка забезпечить найбільш оптимальну продуктивність для вирішення кожної конкретної задачі. По-друге, можна мінімізувати струм споживання периферійних пристроїв за рахунок зменшення частоти тактового сигналу або його відключення. По-третє, можна обмежити час роботи мікроконтролера в активному режимі, тобто після виконання необхідних обчислень мікроконтролер слід перемикати в один із п’яти енергозберігаючих режимів.
Вихід з усіх енергозберігаючих режимів здійснюється за сигналами переривань. Якщо підпрограма обробки переривання завершується інструкцією RETI, мікроконтролер повертається в той режим роботи, у якому він перебував перед отриманням запиту на переривання.
У мікроконтролерах MSP430F закладено шість режимів роботи: активний (AM) і п’ять енергозберігаючих LPM0…LPM4 (Lower Power Mode). Вибір режимів роботи мікроконтролера здійснюється програмно (розряди CPUOff, OSCOff, SCG0, SCG1 у регістрі стану процесорного ядра). На рис. 3 наведена діаграма залежності струму споживання мікроконтролерів MSP430F13х/14х від режиму роботи і напруги живлення .

Генерація і формування тактових сигналів, за рахунок зміни частоти яких здійснюється керування електроспоживанням мікроконтролерів MSP430F, виконуються в базовому модулі формування тактових сигналів. У мікроконтролерах MSP430F1хх і MSP430F4хх реалізовані різні структури цього модуля.
https://en.wikipedia.org/wiki/Digitally_controlled_oscillatorБазовий модуль формування тактових сигналів мікроконтролерів MSP430F1хх містить: два генератори XT1 і XT2; формувач тактових сигналів і RC-генератор, керований кодом (Digitally-Controlled Oscillator – DCO). Модуль генерує і формує тактові сигнали для роботи процесорного ядра (MCLK) і периферійних пристроїв (SMCLK), а також допоміжний тактовий сигнал ACLK, який також може використовуватися для периферійних пристроїв.
Надекономічний генератор XT1 призначений для підключення «годинникового» (32 768 Гц) кварцового резонатора, а також керамічного (частота від 450 до 8000 кГц) або кварцового (частота від 1000 до 8000 кГц) резонатора. При підключенні «годинникового» резонатора забезпечується мінімальний струм споживання. Генератор XT2 призначений лише для роботи з високочастотними керамічними або кварцовими резонаторами (частота від 450 до 8000 кГц). Для підключення «годинникового» кварца не потрібні додаткові зовнішні компоненти.
Усі тактові сигнали (ACLK, MCLK, SMCLK) через відповідні виходи портів вводу/виводу можуть використовуватися зовнішніми по відношенню до мікроконтролера пристроями. Вбудований DCO генерує фіксований набір частот і забезпечує можливість роботи мікроконтролера і без використання зовнішніх резонаторів. Однак DCO притаманні всі ті недоліки, якими відрізняються RC-генератори – залежність генерованої частоти від напруги живлення і температури. Тому для отримання стабільної частоти тактування мікроконтролерів MSP430F1хх необхідно використовувати зовнішні кварцові резонатори.
Хоча DCO генерує фіксований набір частот, середнє значення частоти на виході DCO на тривалому інтервалі часу може бути вибране будь-яким, тобто відрізнятися від фіксованих частот із набору DCO, що досягається за рахунок почергової комутації на вихід DCO сигналів двох сусідніх частот із набору в будь-якому заданому співвідношенні тривалості підключення. Перемикання частот здійснюється спеціальним пристроєм – модулятором, а керування його роботою – програмно.
На відміну від генераторів з кварцовими резонаторами, які мають порівняно великий час виходу на робочий режим після ввімкнення живлення (приблизно кілька мілісекунд), час виходу на робочий режим DCO становить усього 4 мкс. Таким чином, гарантований час переходу мікроконтролерів MSP430 з енергозберігаючих режимів в активний (AM) становить 6 мкс.
Процесорне ядро
RISC-подібне фон-нейманівське процесорне ядро містить шістнадцять 16-розрядних регістрів, з яких чотири становлять: програмний лічильник, покажчик стека, регістр стану і регістр формування констант. Інші дванадцять регістрів можна використовувати як регістри загального призначення, у тому числі і як акумулятори, адресні регістри (для непрямої адресації), регістри для зберігання операндів.
Процесорне ядро виконує набір інструкцій (27 основних RISC-подібних і 24 додаткових), сумісних з інструкціями, реалізованими в інших мікроконтролерах сімейства MSP430. У всіх типах інструкцій можуть бути реалізовані сім способів адресації.
Окремий апаратний помножувач дозволяє збільшити продуктивність процесорного ядра при виконанні операцій цифрової обробки сигналів. Помножувач виконує знакові та беззнакові операції множення (16×16, 16×8, 8×16 або 8×8 розрядів), а також множення з накопиченням.
Пам’ять
У мікроконтролерах MSP430F є пам’ять типу флэш і RAM. Надекономічна флэш-пам’ять включає основний блок, що складається з сегментів обсягом по 512 байт, і додаткову (інформаційну) пам’ять, яка складається з сегментів А і В, по 128 байт кожен. Стирання і запис в основну пам’ять можуть виконуватися одночасно в усіх сегментах або окремо в кожному з них. Для виконання операцій стирання/запису у флэш-пам’ять не потрібне спеціальне зовнішнє джерело напруги. У процесі операції стирання/запису не допускається виконання програми, розміщеної у флэш-пам’яті, при цьому всі переривання повинні бути заборонені.
Таймер А
Таймер А містить 16-розрядний лічильник і три регістри захоплення/порівняння. Джерелом тактового сигналу для лічильника можуть слугувати внутрішні тактові сигнали ACLK, SMCLK або один із двох зовнішніх сигналів. Частота тактового сигналу на вході лічильника може бути рівною частоті зазначених сигналів, а також у два, чотири або вісім разів меншою. Вибір джерела тактування та коефіцієнта ділення здійснюється програмно. Передбачено кілька режимів роботи лічильника: рахунок на збільшення або зменшення, зупинка, безперервний рахунок та інші. Кожен із трьох каналів захоплення/порівняння може працювати в режимі вхідного захоплення або вихідного порівняння. Режими роботи визначаються користувачем.
Режим вхідного захоплення
Режим вхідного захоплення найчастіше використовується для вимірювання часового інтервалу між «внутрішніми» або «зовнішніми» подіями. Кожен із трьох регістрів захоплення може мати кілька джерел сигналу захоплення. Це можуть бути зовнішні сигнали (порти P1.1, P1.2, P1.3, P2.2) або внутрішні (тактовий сигнал ACLK або сигнал з виходу аналогового компаратора). Виконання вхідного захоплення за сигналом аналогового компаратора дає можливість на базі компаратора реалізувати інтегрувальний АЦП, опосередковано вимірювати величину струму та напруги . Захоплення може здійснюватися при будь-якій зміні сигналу на вході блоку захоплення (наростаючим або спадаючим фронтом сигналу або комбінацією цих сигналів).
Режим вихідного порівняння
Режим вихідного порівняння найчастіше використовується для програмної генерації часових інтервалів або формування ШІМ-сигналу, який використовується в різних застосуваннях. Сигнал з виходу кожного з компараторів порівняння може надходити на один із трьох виводів мікроконтролера (вибирається програмно). Вихід одного з компараторів може підключатися до блоку керування АЦП.
Для таймера А виділено два вектори переривання.
Таймер В
Таймер В може містити сім регістрів захоплення/порівняння (наприклад, MSP430F14x) або три регістри (MSP430F13x). Робота таймера В багато в чому аналогічна роботі таймера А. 16-розрядний лічильник може бути сконфігурований як 8-, 10-, 12- або 16-розрядний. У каналі вихідного порівняння між регістром порівняння та компаратором введено ще один додатковий буферний регістр, дані в який перезавантажуються з регістра порівняння. Запис даних у буферний регістр здійснюється за внутрішнім сигналом, який формується в результаті виконання певних умов. Крім того, дані в буферний регістр можна завантажувати програмно.
У каналах вихідного порівняння таймера В передбачено два виходи на АЦП. Як і для таймера А, для таймера В виділено два вектори переривання.
Сторожовий таймер
«Сторожовий» таймер формує сигнал скидання, якщо протягом заданого часу лічильник не буде обнулений. Якщо не потрібно використовувати «сторожовий» таймер за прямим призначенням, його можна застосовувати для формування сигналів переривання через задані часові інтервали. «Сторожовий» таймер реалізований на базі 15-/16-розрядного лічильника. Керування таймером здійснюється програмно.
Аналого-цифровий перетворювач (АЦП)
АЦП організований як 12-розрядний АЦП послідовного наближення зі вбудованою схемою вибірки/зберігання та джерелами еталонної напруги (1,5 або 2,5 В). Крім того, у складі АЦП є температурний датчик на базі діода та RC-генератор (частота від 3,7 до 6,3 МГц). Типовий струм споживання АЦП при напрузі живлення 3 В, зовнішньому джерелі еталонної напруги та тактовій частоті 5 МГц становить 0,5 мА. Максимальний час перетворення становить 3,5 мкс при частоті вбудованого тактового генератора (ADC12OSC) 6,3 МГц. У якості входів АЦП використовуються входи порту P6. Джерелами тактового сигналу для АЦП можуть бути сигнали ACLK, MCLK, SMCLK або сигнал генератора ADC12OSC. Початок перетворення можна ініціювати програмно або за сигналами від таймера А або В. Схема керування АЦП дозволяє реалізовувати кілька режимів роботи: послідовний опитування вхідних каналів, опитування групи каналів, опитування каналів у будь-якій заданій послідовності та інші.
Джерело еталонної напруги вибирається окремо для кожного з каналів. Дані перетворення автоматично пересилаються в буферні 16-розрядні регістри. У деяких мікроконтролерах MSP430F реалізований восьмиканальний 10-розрядний АЦП, який за структурою та параметрами аналогічний 12-розрядному.
Порти вводу/виводу
Кількість ліній портів вводу/виводу в модифікаціях мікроконтролерів визначається кількістю виводів корпуса (див. таблицю). У MSP430F14x є шість 8-розрядних портів вводу/виводу. Входи портів P1 і P2 можна використовувати для підключення зовнішніх сигналів переривання.
Входи порту P6 використовуються в якості вхідних каналів АЦП. Для керування портами P1 і P2 є сім регістрів керування/контролю, для керування портами P3…P7 – чотири регістри. Для кожного з портів P1 і P2 виділено один вектор переривання.
USART-порти
У мікроконтролерах MSP430F є один або два USART-порти (USART0 і USART1), через які виконується обмін даними в послідовному форматі зі стандартними зовнішніми пристроями. USART-порти можуть підтримувати синхронний (SPI) або асинхронний (UART) режим обміну даними. USART-порти в режимі UART мають режим зі зниженим енергоспоживанням. Для кожного з USART-портів виділено два вектори переривання.
Компаратор
У складі прецизійного компаратора є: вхідний мультиплексор, що здійснює підключення входів компаратора; два джерела еталонної напруги (0,25Епит і 0,5Епит), реалізовані на резистивних дільниках; програмно підключений RC-фільтр. Вихід компаратора може під’єднуватися до каналу вхідного захоплення таймера А або на вихід мікроконтролера. Якщо входи компаратора не використовуються, вони повинні бути підключені до шини живлення або до загального проводу. В іншому випадку можуть ініціюватися непередбачувані запити на переривання, а крім того, може збільшитися струм споживання. Вмикання та вимикання компаратора здійснюється програмно, і якщо він не використовується для зменшення струму споживання, його слід відключати. Компаратор дозволяє опосередковано вимірювати опір, струм, напругу, контролювати напругу елементів живлення, а також вимірювати час заряду та розряду конденсаторів.