Top Banner
Семейство MSP430FR57xx : MSP430 с встроенной FRAM Сравнение с семейством Wolverine MSP430FR59xx
74

Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Jul 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Семейство MSP430FR57xx : MSP430 с встроенной FRAM

Сравнение с семейством Wolverine MSP430FR59xx

Page 2: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через

командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: ADC10_B, сравнение с Wolverine

‒ Лаб5: BLINK LED (програмное моргание светодиодом)

‒ Лаб5a: BLINK LED (моргание светодиодом с помощью Tamer0)

Page 3: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Свойства технологии FRAMFRAM:• Энергонезависимость

• Is truly random access, not segmented

• Малое энергопотребление и высокая скорость во время записи

• Не нужна раскачка для записи(1,5В запись)

3

• Не нужна раскачка для записи(1,5В запись)

• Высокая надёжность (10^15 циклов записи стирания)

• Повышенная надёжность целостности данных

Page 4: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Все преимущества FRAM

FRAM SRAM EEPROM Flash

Энергонезависимость

Скорость записи

Приведено для13kB блоков

Ток потребления в active mode

Да Да ДаНет

10мс 2сек<10мс 1 сек

50мA+<60100 230active mode[мкA/MГц]

Циклов перезаписи (надёжность)

Побитная запись

Унифицированнаяпамять (данные/программа)

50мA+<60100 230

10,000100,000∞10^15

ДаДа НетНет

Да НетНетНет

Данные для встроенных типов памяти в МК

Page 5: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Сравнение LPM и времени просыпания

Параметр F2xx F5xx FR57xx

LPM0-LPM4 Да Да Да

LPMx.5 Нет Да Да

tWAKEUP-LPM0 1мкс 6мкс 1мкс

FR59xx

Да

Да

1мксtWAKEUP-LPM0 1мкс 6мкс 1мкс

tWAKEUP-LPM1,2 1мкс 6мкс 11мкс

tWAKEUP-LPM3,4 1мкс6мкс/150мк

с100мкс

tWAKEUP-LPMX.5 Н/Д 2000мкс 575мкс

6мкс

<7мкс

<200мкс

Page 6: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через

командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: ADC10_B, сравнение с Wolverine

‒ Лаб5: BLINK LED (програмное моргание светодиодом)

‒ Лаб5a: BLINK LED (моргание светодиодом с помощью Tamer0)

Page 7: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Первый LP FRAM МК – MSP430FR5739

• Производительность

– До 24МГц(Доступ к FRAM @ 8МГц)

• Потребление

‒ Активный режим:100 мкA/МГц @ 8MГц

‒ Режим RTC (LPM3.5): ~1.5 мкA

‒ Режим Standby (LPM3): < 7 мкA

‒ Режим Shutdown(LPM4.5): ~0.3 мкA

Power & Clocking

Микроконтроллер MSP430FR57xx

Memory

16KB / 8KB / 4KB FRAM(with segment protections

for code/data)

Debug

Real-time JTAG

Boot Strap Loader

Embedded Emulation

• Power on Reset• Brownout Reset• Low Power

Vreg(1.5V)• XT1, VLO• DCO • Real Time Clock

Timers

16-bit RISCMCU

Up to 24 MHz

Peripherals

1KB / 0.5KB RAM

Low Power

‒ Режим Shutdown(LPM4.5): ~0.3 мкA

• Гибкая универсальная память

‒ 16/8/4 KB FRAM с разделением на память данных/память программ

• Корпуса

‒ 24/40-Pin QFN, 28, 38-Pin TSSOP

‒ Темп. диап. -40ºC to 85ºC

DMA (3ch)

32 x 32 Multiplier

Serial Interface

ADC10 (up to 12ch)

Analog

Timers

TimerA0 (3)

TimerA1 (3)

Watch Dog Timer

PortsUp to 3 [1x8 ] + 1 [1x2 ] I/O Ports w/ interrupt/ wake-up

CRC16

3 x eUSCIUniversal Serial Comm. Interfaces

TimerB0 (3)

Comparator / REF

TimerB1 (3)

TimerB2 (3)

Peripherals

Page 8: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Второе поколение семейство Wolvorine MSP430FR5969

• Performance

– Up to 16MHz (FRAM access @ 8MHz)

• Power Numbers

– Active Mode: 100 µA/MHz avg.@ 8MHz

– RTC mode (LPM3.5): <0.5 µA

– Standby Mode (LPM3): <1 µA

– Shutdown Mode (LPM4.5): 100 nA

• Flexible Unified Memory

Power & Clocking

MSP430FR59xx Microcontroller

Memory

64KB FRAM/2KB RAM(with segment protections

for code/data)

Debug

Real-time JTAG

Boot Strap Loader

Embedded Emulation

• Power on Reset• Brownout Reset• XT1, XT2,VLO• DCO • Real Time Clock

Timers

16-bit RISCMCU

Up to 16 MHz

Peripherals

8

• Flexible Unified Memory

– 64/48/32 KB FRAM versions with program code / data memory partitioning

• Package

– 48/40-Pin QFN, 38-Pin TSSOP

– Temp Range -40ºC to 85ºC

DMA (3ch)

32 x 32 Multiplier

Serial Interface

ADC12 (up to 32c h)

Analog

Timers

TimerA0 (3)

TimerA1 (3)

Watch Dog Timer

PortsUp to 4 [P1-P4] I/O Ports w/

interrupt wake-up

CRC16

eUSCIUniversal Serial Comm. Interfaces

TimerA2 (2)

Comparator / REF

TimerA3 (2)

TimerB0 (7)

Peripherals

Page 9: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Блок-схема MSP430FR5739

Page 10: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Блок-схема MSP430FR5969

Page 11: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Управление питанием и напряжение ядраМодуль PMM MSP430FR57xx / MSP430FR59xx

� Что такое VCORE?‒ Интегрированный LDO обеспечивает стабилизированное напряжение‒ VCORE питает цифровую часть (ядро, память, цифровые модули)

� Есть ли какие либо отличия от семейства F5xx?‒ Да, у FR57xx только один уровень напряжения ядра [1.5В]

• Чем отличаются Wolverine ?– FR59xx только один уровень напряжения ядра[1.2В]– FR59xx не требуется внешний VCORE конденсатор

� Рекомендации для FR57xx ?‒ 470нФ конденсатор необходим на пин VCORE

‒ НЕ питать пин VCORE внешним напряжением!‒ НЕ присоединять пин VCORE к другим выводам!

DVCC

2 – 3.6VVCORE1.5V

LDO

Ref.BrownoutSVSH SVSL

REGULATOR

1.8 – 3.6VDVCC

1.2VVCORE

Page 12: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Супервизор питания (SVS)

‒ Супервизор питания сильно упрощен в сравнении с

семейством F5xx

‒ Для FR57xx раздельный контроль за высоким (DVcc ) / низким

(ядро) напряжениями

‒ Для FR59xx слежение только за DVcc, SVSL (слежение за

Vccore) не нужно

‒ Предустановленные пороговые значения

‒ Сброс устройства через слежение за SVSH

Для FR57xx

‒ SVSH

– Активен в AР & LPM0 & LPM1 & LPM2 & LPM3 & LPM4 & LPM3.5 (не

отключается)отключается)

– Не активен в LPM4.5

‒ SVSL

– Активен в AР & LPM0 (не отключается)

– Может быть отключен в LPM1 & 2(вкл. по ум-ю)

– Не активен в LPM3 & LPM4 & LPM3.5 & LPM4.5

Для FR59xx

‒ SVSHE = 0

– Активен в AР, LPM0, LPM1

– Не активен в LPM2, LPM3, LPM4, LPM3.5, LPM4.5

‒ SVSHE = 1

– Всегда включен

Работа PMM при старте

Page 13: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

• До пяти независимых источников

– Низкая частототные:

• LFXT1 32768 Гц

• VLO 10 кГц

• LFMODCLK MODCLK/128

– Высокая частотные

• XT1 4 – 24 МГц кристалл

• XT2 4 – 24 МГц кристалл

• DCO Откалиброванный диапазон

• MODCLK Внутренний 5МГц

Тактирование (CS)

• MODCLK Внутренний 5МГц

• Частота DCO по умолчанию = 1MHz

• ACLK = Только LF источники

• MODOSC тактирование ADC12

• Защита от сбоев

– XT1LF: LFMODCLK (~42kHz)

– XT1HF or XT2: MODCLK (5MHz)

Page 14: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

DCO: Программируемый цифровой осциллятор

‒ 6 возможных частот

‒ Откалиброван на заводе:

Точность +2% в диапазоне 0-50C

Точность+3.5% в диапазоне от -40 до 85C

*

Выбор частоты DCO

Диапазон высоких частот приведен только для семейства FR573x

Page 15: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

DCO: Программируемый цифровой осциллятор

• Multiple frequency settings

• Заводская калибровка

Точность +2% при 0-50C

Точность +3.5% при -40 -85C

• DCOCLK = 20, 24МГц

тактировать MCLK только

после делителя

DCORSEL DCOFSEL DCO Freq.

MHz

0/1 000 1

0 001 2.667

0 010 3.333

0 011 4

0/1 100/001 5.330/1 100/001 5.33

0/1 101/010 6.67

0/1 110/011 8

1 100 16

1 101 20*

1 110 24*

Диапазон высоких частот приведен только для семейства FR59xx

Page 16: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Режимы работы

• Active Mode – 100 µA/MHz!– CPU active

– Fast Peripherals Enabled

– 32 kHz Peripherals Enabled - RTC

• LPM0 – 40 µA– CPU disabled, Fast Peripherals Enabled

– Fast Wake up

– HF clock sources available

• LPM3 – 1.2 µA (typical)– CPU disabled, Fast Peripherals Disabled

– 32 kHz Peripherals Enabled– 32 kHz Peripherals Enabled• RTC, Watchdog & SVS protection

• LPM4 – 0.7 µA– All clocks disabled

– Wake on interrupt from port

• LPM3.5 – 0.36 µA– Regulator & all system clocks disabled except for

RTC (32768Hz LFXT)

– Complete FRAM retention

– BOR on nRST/NMI or Port I/O or RTC

• LPM4.5 – 0.1 µA– With SVS enabled

– With SVS disabled – 10nA

Page 17: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Контроллер FRAM (FRCTL)

Функции FRCTL:

‒ Обеспечивает чтение и запись

во FRAM подобно обычной RAM

памяти

‒ Чтение/Запись на частоте < 8MHz

‒ Для частот MCLK > 8MHz

задействуются циклы ожидания

o Автоматически или

принудительнопринудительно

‒ Контроллер содержит кэш

‒ Проверка и исправление ошибок

(ECC) в каждом цикле

чтения/записи

Page 18: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Встроенный кэш

‒ Встроенный сдвоенный кэш на 4 слова, невидимый для программиста, всегда активен

‒ Кэш помогает:

o Уменьшить потребление за счет использования SRAM

o Увеличить пропускную способность на частотах выше 8МГц

o Увеличить надежность, особенно при частых обращений во FRAM, например, для циклов (JMP$)

Active Power Vs MCLK

0

0,5

1

1,5

2

2,5

3

3,5

4

1 4 8 16 20 24MCLK (MHz)

Act

ive

Po

wer

(m

A) RAM / 100% Cache Hit

75% Cache Hit

Typical/ 66% Cache Hit

50% Cache Hit

0% Cache Hit

Page 19: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

So far we’ve covered…

• FRAM Technology Attributes

• Introduction to the MSP430FR59xx Family

• FR59xx CPU, Operating Modes & Wake up times

• Core Module Overview– PMM

– SVS

19

– SVS

– CS, DCO

– FRCTL

– Impact of Cache in the systemNow we are ready for a lab!

Page 20: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через

командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: ADC10_B, сравнение с Wolverine

‒ Лаб5: BLINK LED (програмное моргание светодиодом)

‒ Лаб5a: BLINK LED (моргание светодиодом с помощью Tamer0)

Page 21: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Лабораторная 1

• Цели:

• 1) Знакомство с MSP-EXP430FR5739

• 2) Измерение потребления в активном режиме при • 2) Измерение потребления в активном режиме при различных частотах MCLK

• 3) Влияние кэша на потребление в активном режиме

Page 22: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Начало работы с MSP430FR5739

‒ Отладочная плата MSP-EXP430FR5739

‒ $40 (В Компэл)

‒ Встроенный эмулятор

‒ Особенности• 3-х осевой акселерометр

• Термистор NTC

• 8 светодиодов

• Посадочное место для LDR - датчика

• 2 кнопки• 2 кнопки

‒ Быстрое знакомство• Загруженный демо софт

• 4 режима для теста особенностей FRAM:

o Mode 1 – максимальная скорость записи во FRAM

o Mode 2 - эмуляция записи во флэш

o Mode 3 – запись во FRAM данных акселерометра

o Mode 4 – запись во FRAM данных с термистора

Page 23: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Разъем USB Интерфейс отладки и программирования

Акселерометр

NTC Термистор

LED0 – LED8

MSP430 UART

MSP-EXP430FR5739

Акселерометр

MSP430FR5739

Кнопки S1,S2

Кнопка сброса

Разъем для EXP-MSP430F5438

Разъем для плат CCxx

Page 24: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Конфигурирование проекта в CCS

‒ Открыть CCS V5.1

‒ Выбрать C:\FR57x\LabWorkspace в качестве рабочего пространства

C:\FR57x\LabWorkspace

Page 25: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Конфигурирование проекта в CCS

• Импортировать 3 проекта ‘Lab1’ ‘Lab2’ ‘Lab3’ ‘Lab4’ ‘Lab5’ из ‘C:\FR57x\LabSourceProjects’

‒ ‘Project’ � ‘Import existing CCS/CCE Eclipse Project’

‒ Выставить ‘Copy projects into workspace’

• Убедиться что Lab1 активен [Active-Debug]

• Если нет, кликнуть правой кнопкой на Lab1 и выбрать ‘Set as Active Project’

Page 26: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Потребление в цикле while(1); / JMP$

LAB1A

‒ Lab1.c содержит код, инициализирующий плату и

включает светодиоды

‒ Убедитесь ,что цикл while(1); включен в main()

‒ Откомпилируйте и загрузите код [Target � Debug Active

Project]Project]

‒ Запустите код [Target � Run]

‒ Остановите отладку [Target � Terminate All]

‒ Нажмите кнопку ‘RESET’

Page 27: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Получаем значение тока…

LAB1A: Измерения

‒ Измерьте ток через джампер VCC

‒ MCLK = DCO = 8МГц; Показания мультиметра <600µA

или ~75µA/ МГц

Результат:

‒ Короткий цикл (JMP$) � код выполняется полностью

из кэша (SRAM)из кэша (SRAM)

‒ Поэтому столь низкое потребление!

Подсоедините мультиметр через Vcc

Использовать USB для питания

Page 28: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Более реалистичный вариант

LAB1B

‒ Функция Active_mode_test() это комбинация доступа из RAM, FRAM + различные режимы адресации

‒ Ближе к условиям реального кода

‒ Используйте эту функцию для измерения ‘реального’ потребления

‒ Закомментируйте цикл while(1);

‒ Включите в проект вызов ACTIVE_MODE_TEST()‒ Включите в проект вызов ACTIVE_MODE_TEST()

‒ Пересоберите проект

‒ Загрузите и запустите код на выполнение, остановите отладку

Не забудьте вставить джампер на питание для программирования!

Page 29: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Исходный код

Убедитесь, что данная функция вызывается

Page 30: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Измерения…

LAB1B: Наблюдения

‒ MCLK = DCO = 8MHz

‒ Показания прибора <800мкА или 100мкA/МГц

Результаты:

‒ Потребление растет с ростом прямых обращений Потребление растет с ростом прямых обращений

(мимо кэша)

‒ Соотношение попаданий/промахов кэш зависит от

кода

‒ Чем проще и короче циклы – тем больше попаданий

Page 31: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Зависимость потребления от частоты

LAB1C

‒ Измерение потребления при различных тактовых частотах

‒ Используйте MCLK = 16MHz и MCLK = 24MHz

‒ Установите значения регистров CSCTL1 � DCORSEL, DCOFSELx в соответствии с таблицей

‒ Загрузите код

Page 32: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Зависимость потребления от частоты

LAB1C: Наблюдения

‒ Убедитесь что частота выросла по ускоренному

миганию светодиодов при включении

‒ Потр. мощность @ 16 МГц <1.3мA or ~81мкA/МГц

‒ Потр. мощность @ 24 МГц < 1.8мA or ~75мкA/МГц

Итоги:Итоги:

� Влияния кэша на потребление в активном режиме

� Измерение потребляемой мощности на 8MГц

� Установка DCO на 16МГц 24МГц

� Сравнение потребления для 8,16, 24МГц

Page 33: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через

командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: BLINK LED (програмное моргание светодиодом)

‒ Лаб4a: BLINK LED (моргание светодиодом с помощью Tamer0)

Page 34: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Унифицированная память

Один МК поддерживает различные конфигурации

В ряде случаев требуются разные МК

Без FRAM С FRAM

Зачастую

16kB Flash (Program)

2kB SRAM 64kB Universal FRAM

Разделение между областями данных и

‒ Проще логистика

‒ Более быстрая модификация изделий

Чтобы получить больше SRAM нужно купить больше FLASH ROM

1kB EEPROM

Зачастую нужен другой

МК 14kB Flash2kB

SRAM

24kB Flash5kB

SRAM

Разделение между областями данных и программ по желанию

Page 35: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Модуль защиты памяти (MPU)

‒ Во FRAM память очень просто записать…

‒ По этому память данных и память программ должны быть защищены

‒ MPU защищает от случайных модификаций [разрешения только на

чтение, запись и выполнение]

‒ Особенности:

• Память разделена на три изменяемых • Память разделена на три изменяемых

по размеру сегмента

• Независимые права доступа к

каждому сегменту

• Регистры MPU защищены паролем

Page 36: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Расчет границ сегментов

‒ Размер сегмента определяется регистром

MPUSB (Segment Borders)

‒ Всего 5 бит

� 32 сегмента

‒ Минимальный размер сегмента:

4k :4 * 1024 / 32 = 128 байт

8k :8 * 1024 / 32 = 256 байт

16k :16 * 1024 / 32 = 512 байт

Page 37: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Разбивка на сегменты за 4 шага

Сегмент 1 = 0xC200 to 0xCDFF

Сегмент 2 = 0xCE00 to 0xD7FF

Сегмент 3 = 0xD800 to 0xFFFF

Шаг 1: Определение границ сегментов

Шаг 2: Поиск значений регистра MPUSBx в MSP430FR57xx Family User’s Guide стр.240 (Пример для 16k памяти)

MPUSBx[4:0] Page_start Address

0x01 0xC200

….. 0xCxxx

0x07 0xCE00

… 0xCxxx

0x0C 0xD800

Family User’s Guide стр.240 (Пример для 16k памяти)

B1

B2

Page 38: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Разбивка на сегменты за 4 шага

Шаг 3: Запись значений в регистр MPUSEG

0x0C

Page 39: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Разбивка на сегменты за 4 шага

MPUSEGxXE MPUSEGxWE MPUSEGxRE Выполнение Запись Чтение

0 0 0 нет нет нет

Шаг4: Установка прав доступа для каждого сегмента

0 0 0 нет нет нет

0 0 1 нет нет да

0 1 1 нет да да

1 0 1 да нет да

1 1 1 да да да

Page 40: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через

командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: ADC10_B, сравнение с Wolverine

‒ Лаб5: BLINK LED (програмное моргание светодиодом)

‒ Лаб5a: BLINK LED (моргание светодиодом с помощью Tamer0)

Page 41: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Лабораторная 2

• Цели:

• 1) Изучение регистров MPU

• 2) Установка границ сегментов с помощью документации• 2) Установка границ сегментов с помощью документации

• 3)Установка прав доступа

Page 42: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Конфигурирование MPU

Лаб 2

1. Сделать проект Lab2 активным

2. Ознакомиться с регистрами MPU в User’s Guide C:\FR57xx\Documents\MSP430FR5xx User's Guide (slau272)

3. Заполнить пустые места в lab2.c в соответствии с условиями:

• Разрешить доступ к регистру MPU

• Установить границы сегментов в 0xC800 и 0xD000

• Запретить доступ на запись для Сегмента 2

• Разрешить прерывания для Сегмента 2 при нарушении прав доступа

4. Собрать проект Lab2

5. Загрузить и запустить код

6. LED5 должен мигать

Page 43: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

void main(void){

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

P3OUT &= ~BIT4; P3DIR |= BIT4; // Configure P3.4 for LEDP3OUT |= BIT4;__delay_cycles(100000);P3OUT &= ~BIT4;__delay_cycles(100000);

// Configure MPUMPUCTL0 = MPUPW; // Write PWD to access MPU registersMPUSEG = 0x0804; // B1 = 0xC800: 04h; B2 = 0xD000: 08h

// Borders are assigned to segments

Пример кода

1. Установить пароль

2. Установить границы сегментов

// Borders are assigned to segmentsMPUSAM &= ~MPUSEG2WE; // Segment 2 is protected from writeMPUSAM |= MPUSEG2VS; // Violation select on write access

MPUCTL0 = MPUPW+MPUENA+MPUSEGIE+MPULOCK; // Enable NMI & MPU protection// MPU registers locked until BOR

Data = 0x88;// Cause an MPU violation by writing to any address in segment 2

ptr = (unsigned int *) 0xC802; *ptr = Data;

while(1); }

}

3. Защитить Сегмент2 от записи

4. Сконфигурировать PUC при нарушении доступа

5. Добавить запись в защищенную область

Page 44: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Конфигурирование MPU

LAB2 Наблюдения:

‒ MPU играет важную роль в защите памяти данных и памяти программ

‒ MPU может сгенерировать RESET (PUC)при попытке доступа в защищенную область

итоги:

� Получены сведения о регистре MPU

� Установлены границы сегментов� Установлены границы сегментов

� Настроены индивидуальные права доступа к сегментам

� Для каждого сегмента установлено действие на нарушение прав доступа

Page 45: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через

командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: ADC10_B, сравнение с Wolverine

‒ Лаб5: A) BLINK LED (програмное моргание светодиодом)

B) BLINK LED (моргание светодиодом с помощью Tamer0)

Page 46: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Лабораторная 3• Цели:

1) Изучение командного файла линковщика

2) Размещение глобальных переменных в FRAM

3) Автоматическое назначение Границ Сегментов и Привилегий Сегментов используя командный файл линковщикалинковщика

Page 47: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Компиляция с установками линковщика по

умолчанию

LAB3A

1. Сделайте Lab 3 активным проектом

2. Осуществите сборку проекта Lab3 с установками линковщика по

умолчанию

3. Загрузите и запустите на выполнение код примера

4. Вы можете менять количество зажженных светодиодов кнопкой 4. Вы можете менять количество зажженных светодиодов кнопкой

S1

5. Отключите питание и подайте снова;

-> Установки зажженных светодиодов сбросились потомучто

переменная ‘SwitchCounter1’ хранилась в RAM

Как сделать чтобы переменная ‘SwitchCounter1’ сохранялась во

FRAM?

Page 48: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Настройка Памяти Данных

и Программ

• Проанализируйте файл линковщика для этого МК в CCS5.1

• Откройте файл lnk_msp430fr5739.cmd из проекта Lab3

• Изучите строки файла lab3.map (находится в папке Debug) отвечающие за использование RAM/FRAM

Page 49: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Настройка Памяти Данных

и Программ• В IAR и CCS5.1по умолчанию все глобальные переменные

размещаются в SRAM

– Плюсы: часть глобальных переменных должна быть энергонезависима например машинные состояния, часто вызываемы переменные к которым необходим частый доступ в этом случае не уменьшают пропускную способность, уменьшение потребления

– Минусы: Пользователю необходимо описывать сегменты для хранения переменных в FRAMхранения переменных в FRAM

• В CCS4 все глобальные переменные размещаются во FRAM

– Плюсы: Все переменные энергонезависимы, не требуется дополнительных действий для сохранения необходимых переменных

– Минусы: Увеличивается размер кода , повышается потребление, уменьшается пропускная способность на частотах MCLK > 8MГц

• Комментарии приветствуются ! [email protected]

Page 50: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

CCS5.1 Расположение секций в памяти

Page 51: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Директива

Pragma SET_DATA_SECTION

• Использоваться для описания секций ниже дериктивы

pragma. Синтаксис директивы выглядит в C/C++ так :

#pragma SET_DATA_SECTION ("section name" )

• Для описания секции по умолчанию компилятора

необходимо оставить пустое поле в директиве.

Пример:Пример:

Код C:

#pragma SET_DATA_SECTION("mydata") int x;int y;#pragma SET_DATA_SECTION()

Файл Линковщика:

SECTIONS{

mydata : {} > FRAM…

Page 52: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Перенос глобальных

переменных во FRAMLAB3B

1. Сделайте Lab 3 активным проектом

2. Переместите глобальную переменную

‘SwitchCounter1’ во FRAM используя директиву pragma

SET_DATA_SECTION

3. Измените файл Линковщика соответствующим

образомобразом

4. Загрузите и запустите на выполнение код примера

5. Вы можете менять количество зажженных

светодиодов кнопкой S1

6. Отключите питание и подайте снова;

-> Установки зажженных светодиодов сохранились потому что

переменная ‘SwitchCounter1’ хранилась во FRAM

Page 53: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Скриншот исходного кода

Lab3.c:

• Файл

1. Создание новой секциилинковщика

2. Сброс текущей секции

3. Добавление новой секции_msp430fr5739.cmd

Page 54: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: ADC10_B, сравнение с Wolverine

‒ Лаб5: A) BLINK LED (програмное моргание светодиодом)

B) BLINK LED (моргание светодиодом с помощью Tamer0)

Page 55: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Конфигурирование MPU

используя Линковщик• Линковщик отвечает за инициализацию Модуля Защиты Памяти

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

• TI предоставляет командный файл линковщика который содержит начальные определения для автоматической инициализации Модуля Защиты Памяти (MPU). Секциям Программ и Данных автоматически присваиваются корректные права доступа.

• Если вам необходимо настроить собственную инициализацию MPU вы • Если вам необходимо настроить собственную инициализацию MPU вы можете изменить определения __mpuseg и __mpusam в командном файле линковщика.

• Специальная подпрограмма начальной загрузки MPU используется, когда эти два символа определены, и она устанавливает значение MPUSEG и регистров MPUSAM на основе этих значений.

Page 56: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Настройка MPU с

помощью Линковщика

• Специализированный загрузчик процедуры инициализации MPU

использует определенные с помощью директив __mpuseg и

__mpusam значения MPUSEG и MPUSAM.

Page 57: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Настройка MPU с

помощью Линковщика

LAB3C

1. Сделайте Lab 3 активным проектом

2. Настройте MPU используя командный файл линковщика Linker

Command File: Uncomment the ‘MPU SPECIFIC MEMORY SEGMENT

DEFINITONS’

3. Осуществите сборку проекта Lab3 с использованием

редактированного командного файла линковщика редактированного командного файла линковщика

4. Загрузите и запустите на выполнение код примера

5. Проверьте состояние регистров MPU в отладчике (Debugger)

Page 58: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Настройка MPU с помощью Линковщика/****************************************************************************//* MPU SPECIFIC MEMORY SEGMENT DEFINITONS *//****************************************************************************/

mpusb1 = (fram_ro_start + 0x4000 - 0xFFFF - 1) * 32 / 0x4000 - 1;mpusb2 = (fram_rx_start + 0x4000 - 0xFFFF - 1) * 32 / 0x4000 - 1;__mpuseg = (mpusb2 << 8) | mpusb1;__mpusam = 0x7516;

Settings after MPU-specific boot routine execution:Default Settings:

Page 59: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: ADC10_B, сравнение с Wolverine

‒ Лаб5: A) BLINK LED (програмное моргание светодиодом)

B) BLINK LED (моргание светодиодом с помощью Tamer0)

Page 60: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

ADC10_B

Feature Enhancements

• Significant power savings

– 150µA Vs 1.2mA on F2xx

• Up to 200ksps

• REF – unique module

– 1.5V, 2V and 2.5V

• DTC replaced by DMA

• Up to 12 external input channels

60

• Up to 12 external input channels

• Window Comparator

– Hi, low and middle interrupts

Page 61: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

ADC12B

• Upto 200ksps

• SNR >64dB; ENOB 11 bits w/ external reference

• INL <= +/- 1.7 LSB; DNL <= +/- 1 LSB

• Window comparator for all channel results, shared high and low threshold between all channels

• Differential or single-ended Inputs – user selectable

• Extend to 32-input channels

– separate internal channels for AVcc and TempSensor and 4 for future use

– Added 16 ADC12MCTL registers– Added 16 ADC12MCTL registers

– Added 16 ADC12MEMx registers

• Ultra Low current consumption

– Single ended typical 63uA @ 1.8V, 200ksps

– Differential typical 95uA @ 1.8V, 200ksps

Page 62: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: ADC10_B, сравнение с Wolverine

‒ Лаб5: A) BLINK LED (програмное моргание светодиодом)

B) BLINK LED (моргание светодиодом с помощью Tamer0)

Page 63: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Скриншот исходного кода

Family User’s Guide стр.255 Стр.412

1. Включить модуль ADC10ON, установитьS&H=16 тактов

2. Тактирование от MODOSC и режим S&H в sample timer режиме

3. 10 бит результат

4. Отцифровывать вход A1, Vref=AVCC

5. Разрешить прерывание по завершению

63

5. Разрешить прерывание по завершению преобразования

Page 64: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Содержание� Введение во FRAM

� FR57xx: Обзор архитектуры, ядра, периферии

‒ Лаб1: Измерение потребления MSPFR5739 в активном режиме

� Использование FRAM на FR57xx

‒ Лаб2: Использование MPU (модуля защиты памяти)

‒ Лаб3: A) Размещение глобальных переменных во FRAM‒ Лаб3: A) Размещение глобальных переменных во FRAM

B) Автоматическое выделение границ сегментов через командный файл линковщика

� Примеры использования периферийных модулей FR57xx в сравнении с FR59xx

‒ Лаб4: ADC10_B, сравнение с Wolverine

‒ Лаб5: A) BLINK LED (програмное моргание светодиодом)

B) BLINK LED (моргание светодиодом с помощью Tamer0)

Page 65: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Скриншот исходного кода

1. Разрешение прерывания таймера TA02. Тактирование от SMCLK и повторяющийся

счёт вверх

3. Выбор вектора прерывания

65

3. Выбор вектора прерывания

4. Переключение состояния 4го бита порта 3

Page 66: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

JTAG and BSL

JTAG• Security can be achieved by:

• Fuse is in software

1) JTAG lock and unlock

- Access granted only if tool chain supplies correct password

2) JTAG fuse blow

BSL• Similar to F5xx BSL but

• Code in Boot ROM – cannot be modified

• Peripheral Interface: HW UART

• BSL Entry and signature same as F5xx

66

2) JTAG fuse blow

- Access only via BSL if password is know

- JTAG can be re-enabled via BSL

3) JTAG fuse blow + BSL disable

- No further access to device is possible

Page 67: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Итоги

FRAM работает! Первые в мире молопотребляющие

контроллеры с FRAM у Texas Instruments.

• 3 главных преимущества FRAM:

– Ультра быстрая запись

– Ультра низкое потребление

– Супер надёжность

• FR5739: Надёжное семейство микроконтроллеров • FR5739: Надёжное семейство микроконтроллеров

улучшенное за счёт установленного FRAM

• Протестируйте наши ДЕМКИ!

Page 68: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Спасибо!

По всем вопросам можно

обращаться обращаться

[email protected]

Page 69: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

Backup

Page 70: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

• Use Case Example: MSP430F2274 vs MSP430FR5739

• Both devices use System clock = 8MHz

• Maximum Speed FRAM = 1.4Mbps [100x faster]

• Maximum Speed Flash = 13kBps

FRAM = Ultra -fast Writes

1,400kBps

Max. Throughput:

13kBps

Page 71: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

• Use Case Example: MSP430F2274 vs MSP430FR5739

• Both devices write to NV memory @ 13kBps

• FRAM remains in standby for 99% of the time

• Power savings: >200x of flash

FRAM = Low active write duty cycle

Consumption @ 13kBps:2,200µA

9µA

Page 72: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

• Use Case Example: MSP430F2274 vs MSP430FR5739

• Average power FRAM = 720µA @ 1.5Mbps

• Average power Flash = 2200 µA @ 12kBps

• 100 times faster in half the power

• Enables more unique energy sources

FRAM = Ultra-low Power

• FRAM = Non-blocking writes • CPU is not held

• Interrupts allowed

Page 73: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

• Пример: MSP430F2274 против MSP430FR5739

• Надёжность FRAM >= 100 Трилионов [10^14]

• Надёжность Flash < 100,000 [10^5]

• Сравнение: запись в блок памияти 512 байт на скорости12кБ в

сек.

• Flash = 6 минут

FRAM = Высокая надёжность

• Flash = 6 минут

• FRAM = 100+ лет!114,000лет

6.6мин[мин]

Page 74: Семейство MSP430FR57xx : MSP430 с встроенной FRAM · Сравнение LPM и времени просыпания Параметр F2xx F5xx FR57xx LPM0-LPM4

FRAM – ведение журнала данных в реальном

времени!• Системы Реального Времени при работе с Flash

– Стирание и запись блоков занимает существенное процессорное

время

– CPU не отвечает на внешние события

– Решения для MSP430 :

• Перенос Таблицы Векторов Прерывания и подпрограмм прерываний в

RAM

• Прерывание может дождаться завершения стирания Flash

• Прерывание может остановить запись во Flash• Прерывание может остановить запись во Flash

– Усложнить ПО для обхода возникновения таких ситуаций

• Системы Реального Времени при работе с FRAM

– Запись в FRAM не блокирует CPU

– Любые прерывания могут быть обработаны в реальном времени

– Ни каких специальных программных сложностей не нужно