Мікроконтролери msp430

39
Мікроконтролери MSP430 Лекція 11 Судаков О.О, Радченко С.П. «Сучасна мікропроцесорна техніка»

Upload: verna

Post on 08-Jan-2016

94 views

Category:

Documents


1 download

DESCRIPTION

Мікроконтролери MSP430. Лекція 11 Судаков О.О, Радченко С.П. « Сучасна мікропроцесорна техніка ». MSP 430 (Mixed Signal Processor- аналого-цифровий процесор ). Повноцінн і 16 розряд ів Шина даних Шина адреси Регістри Периферія Тактова частота 8-25 МГц (залежить від моделі) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Мікроконтролери MSP430

Мікроконтролери MSP430

Лекція 11

Судаков О.О, Радченко С.П. «Сучасна мікропроцесорна техніка»

Page 2: Мікроконтролери MSP430

MSP 430 (Mixed Signal Processor- аналого-цифровий процесор) Повноцінні 16 розрядів

Шина даних Шина адреси Регістри Периферія

Тактова частота 8-25 МГц (залежить від моделі) Затримки 1-2 мкс (залежить від моделі)

Широкий набір периферії Цифрової Аналогової

Наднизьке енергоспоживання <0.1 мкА в режимі очікування (менше струму саморозряду батарей) <200 мкА в активному режимі

Пам’ять Flash 512 B-512K RAM 128 B – 64 K Фон-Нейманівська архітектура

Широкий набір застосувань

Page 3: Мікроконтролери MSP430

Моделі MSP430 Сімейство

СС – з радіо (Wifi) MSP L –низька напруга

Тип пам’яті С-ROM F-flash FR-fram G flash

Покоління 1 – до 8 МГц 2 - до 16 МГц 4 -до 16 МГц з LCD для медичних застосувань 5 до 25 МГц для медичних застосувань 6 до 25 МГц з LCD для медичних застосувань

Page 4: Мікроконтролери MSP430

Структурна схема

RISC CPU Системний годинник 1 адресний простір

RAM Flash

Шина адреси 16 біт

Шина даних 16 біт Частина периферії 8

біт Автоматичне

перетворення 8/16 біт

Периферія JTAG

Page 5: Мікроконтролери MSP430

Процесор ALU 16 розрядів Регістри загального призначення

16 16 розрядних Спільна пам’ять для програм і

даних Фон-Нейманівська архітектура Єдиний простір адрес

Шина Адреси Даних

Проста архітектура

Page 6: Мікроконтролери MSP430

Особливості регістрів Всі регістри загального призначення

Всі можна записувати – читати – адресувати 16 розрядів можна використовувати як 8

розрядів Деякі мають спеціальні функції

R0 – PC програмний лічильник R1 – SP вказівник стеку R2 – SR регістр стану і генератор констант CG1 R3 - генератор констант CG2 R4-R15 – звичайні регістри

Page 7: Мікроконтролери MSP430

Регістри для адресації пам’яті Адреси команд кратні 2

Останній біт завжди 0 PC – адреса поточної виконуваної команди

При виконанні збільшується на 2 Запис у регістр – перехід на іншу інструкцію

SP – адреса стека Адреса вершини стека записується в регістр PUSH A SP=SP-2; *SP=A POP A A=*SP; SP=SP+2

Всі інші регістри можна використовувати для адресації

Page 8: Мікроконтролери MSP430

Режими адресації Регістровий режим

Використовується значення в регістрі

1 слово 1 такт MOV R12 R13 R12->R13

Індексний режим Викорисовується значення в

пам’яті Адреса в регістрі Зміщення – аргумент команди 2 слова 3 такти MOV 2(R5),6(R6)

Page 9: Мікроконтролери MSP430

Режими адресації (продовження) Символьний режим З адреси/в адресу пам’яті Адреса перераховується відносно поточної команди PC Адреса - аргумент команди Коли пам’яті більше 64К MOV ADDR R6 Асемблер використовує індксну адресацію 4 такти 2 слова

Абсолютний режим Те що і символьний, тільки абсолютна адреса MOV &ADDR R6

Безпосередній режим Завантаження константи MOV #1234h R6 2 такти 2 слова

Page 10: Мікроконтролери MSP430

Непряма адресація Непряма адресація

Використати дані в пам’яті Адреса в регістрі MOV @R14 R15 1 слово 2 такта

Непряма адресація з інкрементом Те ж що і непряма Регістр зібльшується на 1 (для байтів) або 2

(для слів) MOV @R14+ R15 1 слово 2 такта

Page 11: Мікроконтролери MSP430

Регістр стану

Керування різними пристроями SCG1 – вимикання генератора периферії SCG0 – вимикання RC генератора OSCOFF – вимикання кварцевого генератора GIE – дозволити переривання CPUOFF – зупинити процесор

Прапорці результату останньої операції V – було переповнення N – результат від’ємний Z – результат нульовий С – було перенесення в старший розряд

Page 12: Мікроконтролери MSP430

Генератори констант Часто використовуються константи

-1,0,1,2,4,8 Введення константи в код –додаткова операція Генератори констант роблять це за 1 такт

Регістри R2 і R3 як джерело Регістровий режим R3:0 MOV R3 R15 R15=0 Індексний режим R2:(0),R3:1 MOV(R3)R15 R15=1 Непрямий режим R2:4,R3:2 MOV @R3 R15 R15=2 Непрямий автоінкремент R2:8,R3:-1 MOV @R3+ R15

Запис в R3 – NOP (немає операції)

Page 13: Мікроконтролери MSP430

Виконання команд Вибірка команди з

пам’яті PC=PC+2 Адреса на шині

адреси Зчитування даних

Вибірка аргументів PC=PC+2 …

Виконання Під час вибірки

наступного слова В такті запису

Запис результату в такті виконання

Page 14: Мікроконтролери MSP430

Пам’ять Спільний простір адрес

Регістри Регістри периферії RAM FLASH Таблиця переривань

Максимальний розмір 128K

Код і дані де завгодно

Page 15: Мікроконтролери MSP430

Регістри керування периферією Відображені на пам’ять

Кожен пристрій має визначені адреси керування В документації визначені константи для позначення

адрес Константи використовують для прямоъ адресації

Приклади TACTL – 0x0160 TAR – 0x0170 … MOV.W 200h &TAR

Page 16: Мікроконтролери MSP430

Набір інструкцій Всі інструкції працюють із всіма режимами

адресації Безпосередня адресація не може бути джерелом

Є варіанти команд із словом і з байтом .B .W Команди

Два операнди MOV,ADD,XOR,BIC,BIS,BIT,CMP,AND,SUB,ADDC,

SUBC,DADD 1 операнд

RRC,RRA,SWPB,CALL,RETI,SXT перехід

JZ,JNZ,JC,JNC,JN,JGE,JL,JMP Всього 27 інструкцій і 24 емульовані інструкції

Page 17: Мікроконтролери MSP430

Переваги фон-Неймановської архітектури Спільна пам’ять для команд і даних

Менше шин Простіша конструкція Менший набір команд Простіше програмування Менше енергоспоживання “Самозмінювані” програми

Недоліки Виконання не завжди можливо паралельно із

читанням-записом Більше тактів (повільніше)

Page 18: Мікроконтролери MSP430

Переривання Масковані і немасковані

Масковані – 32 вектора у флеш Більший номер – вищий пріоритет Окремий обробник для кожного вектора

Немасковані – дозволяються окремо Найвищий пріоритет Біти NMIIE, ACCVIE, OFIE Прапорці NMIFG, ACCVIFG, OFIFG Один обробник

Дозволяються – забороняються Біт GIE

Page 19: Мікроконтролери MSP430

Тактові генератори

3-4 тактових генератори VLO (Very low Power)

До 20КГц DCO (Digitally Controlled Oscillator)

0.1-25 МГц LFXT1 (low-high frequency external)

Кварц 32кГц-25МГц

Можуть тактувати різні системні годинники

Page 20: Мікроконтролери MSP430

Вихідні сигнали системного годинника ACLK (Auxiliary clock)

VLO, LFXT1 Опорні сигнали периферії

MCLK (Main Clock) VLO, LFXT1,DCO Тактування процесора

SMCLK (Sub-Main Clock) VLO, LFXT1,DCO Тактування периферії

Всі сигнали можна ділити на 1,2,4,8

Page 21: Мікроконтролери MSP430

Керування системними годинниками Регістри

DCOCTL – керування частотою DCO BCSCTL1, BCSCTL2, BCSCTL3

ввімкненя/вимкнення різних генераторів Точне встановлення частоти Підключення тактових генераторів до вихідних сигналів Ділення частоти вихідних сигналів

IE1,IFG1 – переривання по збою генератора IE1,IFG1 – дозвіл і прапорець переривання

Калібровочні константи 1,8,15 МГц

MOV.B &CALBC1_1MHZ,&BCSCTL1 MOV.B &CALDCO_1MHZ,&DCOCTL

Page 22: Мікроконтролери MSP430

Запис флеш-пам’яті 2 області flash

Інформаційна і головна Сегменти 64 і 512 байтів

Запис Розблокування запису Встановлення частоти тактового генератора Очистка

Лише сегментами Запис

Окремі байти Блочний запис

Page 23: Мікроконтролери MSP430

Периферія Цифровий ввід-вивід

Порти вводу-виводу Таймери

TimerA,TimerB,TimerD,WDT Компаратор АЦП

10,12,16 біт Послідовні шини

SPI,UART,I2C ЖК індикатори Сенсори

температура DMA

Page 24: Мікроконтролери MSP430

GPIO 1-8 портів по 8 біт

Вибір функції портів Підключення виводів до пристроїв

Запис 0,1 Читання 0,1 з порта Переривання по зміні рівня Ввімкнення підтягуючих резисторів Генерація коливань для вимірювання ємності

Керування за допомогою регістрів PxDIR – ввід чи вивід PxOUT – вивід PxREN – ввімкнення підтягуючих резисторів PxSEL,PxSEL2 – вибір функцій CAPD – вибір компаратора AD10AE – вибір АЦП

Page 25: Мікроконтролери MSP430

Вибір функції портів PxSEL,PxSEL2 – вибір функцій

0,0 – GPIO 1,0 – друга фуекція 1,1 – третя функція

CAPD – вибір компаратора 1 - компаратор

AD10AE – вибір АЦП 1 - АЦП

Page 26: Мікроконтролери MSP430

Ввід-вивід Напрямок вводу-виводу PxDIR

0 – ввід , 1 –вивід Вивід даних PxOUT

0 – низький рівень, 1 – високий рівень Введення даних PxIN

0 – низький рівень, 1 – високий рівень Підтягуючий резистор

PxREN – дозвіл-заборона PxOUT – дозвіл-заборона

Переривання PxIFG – прапорець переривання PxIE – дозвіл-заборона переривання PxIES – по фронту чи по спаду

Page 27: Мікроконтролери MSP430

TimerA

1-2 Таймера Лічильник імпульсів

16 розрядів Різні джерела вводу

Захоплення Тактові генератори Подільник частоти

Різні режими підрахунку і виводу Порівняння ШІМ

Переривання По переповненню По порівнянню По захопленню

Page 28: Мікроконтролери MSP430

Лічильник Кількість вхідних імпульсів

В регістрі TAR Обнулити таймер TACLR=1 Старт таймера TACCR0=1

Виібір вхідних сигналів Режим таймера біти MC

00 – зупинено 01 – Up mode до ССR0 10 - Неперервний 11 – up/down

Page 29: Мікроконтролери MSP430

Вибір вхідних сигналів

Підрахунок імпульсів Тактові генератори ACLK, SMCLK Зовнішні сигнали з виводів TACLK INCLK Вибір бітами TASSELx регістра TACTL

Подільник частоти вхідних сигналів Біти IDx регістра TACTL

Page 30: Мікроконтролери MSP430

Захоплення Запис поточного значення таймера в

регістр, коли вхідний сигнал захоплення змінюється Вхід CCIxA і CCIxB Регістри TACCR1, TACCR2 Генерується переривання по захопленню Біт COV коли регістр не зчитано до захоплення Режим вмикається бітом CAP = 1

Джерела захоплення Вхідні сигнали Компаратор

Page 31: Мікроконтролери MSP430

Порівняння Зміна вихідних сигналів коли таймер дорахував до значення

в регістрі Запускається при CAP=0 Змінюється внутрішній сигнал

EQU0 для регістра ССR0 EQU1 для регістра ССR1

Змінюється зовнішній сигнал OUT0 відповідно EQU0 OUT1 відповідно EQU1

Зовнішні сигнали вибираються функцією порта Вихідні сигнали відповідають бітам OUTMOD

0 – зміна виходу зміною бітів OUTx 2 - Toggle/Reset по ССR1,2/CCR0 4 – перемикання при зміні сигналу …

Page 32: Мікроконтролери MSP430

Переривання таймера По переповненню

TAIFG і порівнянню CCR1 CCR2 По порівннянню

CCR0 Біти вибору джерела

Біти TAIV 10 – переповнення 4 – ССR2 2- CCR1

Page 33: Мікроконтролери MSP430

Генерація часових інтервалів

Неперевний режим Запис періоду в

регістр CCR0 CCR1 CCR2

При порівнянні Збільшуєм регістр

на величину інтервала T0,t1,t2

Page 34: Мікроконтролери MSP430

Генерація ШІМ

Період - в регістр ССR0

Рівень в ССR1 Режим 7 При перериванні

CCR0 Зміна рівня в

CCR1

Page 35: Мікроконтролери MSP430

Компаратор Ввімкнення

Компаратора Біт CAON Опорна напруга

Біти CARSEL=0 ввымкнена на + компатора CAREF

00 – зовнішня 01 – 0.25Vcc 10 -0.5 Vcc 11 – 0.55 в

Входи Біти P2CA0-P2CA2 ввімкнення входів CA1-CA7

Вихід Біт CAOUT Захоплення таймера

Переривання По зміні рівня на виході

Page 36: Мікроконтролери MSP430

АЦП

SAR перетворювач 10 -12 біт До 200 кГц

дискретизація Запуск таймером чи

програмно Опорна напруга

Внутрішня 1.5 В 2.5 В Зовнішня

Входи Зовнішні Сенсори

Тактування Різні генератори

Різні режими перетворення Одиночний Послідовний перебір

каналів Блочний

Page 37: Мікроконтролери MSP430

Вибір входів Аналоговий сигнал

Біти ADC10AEx Опорна напруга

Біти REF2_5V=1/0 Зовнішя опорна напруга SREF0 і SREF1 Виведення внутрішньої напруги REFOUT=1/0

Тактовий генератор Внутрішній генератор

SMCLK, MCLK, ACLK По фронту сигнала SHI Вихідний сигнал Таймер А Подільник частоти ADC10DIVx

Page 38: Мікроконтролери MSP430

Запуск перетворення Запуск

ADC10ON=1 ввімкнення SAMPCON = 1 статр перетворення Третій стан SAMPCON = 0 Біти CONSEQx – режим перетворення

00 -один канал однократне 01 –набір каналів 10 –періодичне один канал 11 – періодичне багато каналів

Результат ADC10MEM ADC10IFG встановлено Генерація переривання Блочний режим перетворення

Page 39: Мікроконтролери MSP430

Режими енергозбереження