Компоненты и технологии, № 1'2004
S3F9444 и S3F9454 -недорогие 8-разрядные
Flash-микроконтроллеры фирмы Samsung
О-
Сегодня фирма Samsung в конкурентной борьбе с очень сильными
соперниками активно участвует на российском рынке, поставляя большое количество аппаратуры как потребительского назначения (телевизоры и другая видео-и аудиотехника, сотовые телефоны, персональные информационные устройства и пр.), так и аппаратуру оснащения офисов, сетевую аппаратуру. Борьба ведется с использованием самых передовых технологий. Так, в технологии «система-на-кристалле» (SOC) фирма использует ядра 16/32-разрядных RISC-процессоров (семейств ARM7TDMI, ARM9TDMI, ARM940T, ARM920T и ARM1020E), разработанные фирмой Advanced RISC Machine. В то же время, в тех применениях, где нет необходимости использовать самые высокопроизводительные ядра, например, в ряде контроллеров смарт-карт, используются и 8-разрядные ядра SAM8, построенные по архитектуре Super 8 фирмы Zilog. Различные версии ядра SAM8 фирма использует при создании микроконтроллеров, ориентированных на критичные к стоимости применения.
Евгений Крылов
При нынешнем положении, как ни горько это признавать, наши разработчики и производители не могут включиться в борьбу за массовый рынок высоких технологий. Имеющиеся возможности ограничивают сферу их деятельности малыми и средними партиями устройств, ориентированных на использование внутри страны, на внутренние нужды. И именно в этих условиях могут найти применение недорогие (при поставке крупной партией их цена будет существенно меньше $1) 8-разрядные Flash-микроконтроллеры S3F9444 и S3F9454 фирмы Samsung.
Микроконтроллеры S3F9444 и S3F9454 ориентированы на использование в тех применениях, для которых требуются ADC, о чем говорит следующая за цифрой 9 (8 разрядов) цифра 4 (ADC), несложные таймеры-счетчики и PWM.
Особенностью микроконтроллеров S3F9444 и S3F9454 является использование ядра CPU SAM88RCRI, младшей версии типового ядра SAM8 с архитектурой, характерной для 8-разрядных CPU фирмы Zilog. Отличительными особенностями этой архитектуры являются:
• регистровая архитектура, позволяющая использовать в качестве аккумулятора любой регистр и сокращающая время выполнения команд и необходимый объем памяти программ;
• программный стек, обеспечивающий существенно большую глубину при вызовах подпрограмм и прерываниях, чем аппаратный стек;
• конвейерная выборка и выполнение команд. Сокращение функциональных возможностей ядра SAM88RCRI по сравнению с типовым ядром
привело к сокращению размеров кристалла, снижению потребления, снижению стоимости микроконтроллера в целом. Другим следствием сокращения функциональных возможностей стало уменьшение количества команд до 41 команды.
Микроконтроллеры S3F9444 и S3F9454 оснащены Flash-памятью емкостью 4 кбайт и регистровым файлом, в котором 208 байт могут быть использованы в качестве регистров общего назначения. Длительность командного цикла составляет 400 нс при fosc = 10 МГц. Диапазон рабочих напряжений простирается от 2,0 (задаваемый уровень срабатывания схемы LVR) до 5,5 В. Предусмотрены режимы энергосбережения Power-Down и Idle. Типовое потребление при частоте тактирования CPU 10 МГц составляет 5 мА, а в режиме Stop — всего 0,1 мкА. Диапазон рабочих температур от -40 до +85 °C.
В состав встроенной периферии входят:
• 9-канальный 10-разрядный аналого-цифровой преобразователь (ADC);
• 8-разрядный широтно-импульсный модулятор (PWM) с максимальной частотой 156 кГц (6-разрядная база + два разряда расширения);
• 8-разрядный базовый таймер (для функций сторожевого таймера) и 8-разрядный таймер-счетчик с режимом измерения интервалов времени;
• три порта I/O (всего до 18 выводов) с конфигурированием каждого вывода. Каждый вывод может управлять светодиодом (типовой ток 10 мА);
• встроенная функция Smart, определяющая стартовые условия работы прибора (разрешение/запрет схемы LVR, используемые источники сигнала тактирования).
Компоненты и технологии, № 1'2004
Xin -Xout •
Basic
Timer
Port I/O and Interrupt Control
TimerO
ADC0-ADC8 -
P0.5/PWM-«
ADC
PWM
88RCRI SAMRI CPU
2 kB ROM Á KB ROM
208 Byte Register life
PortO
Porti
PO.O/ADCO/INTC PO.l/ADCl/INTl P0.2/ADC2
P0.3/ADC7
P1.0 Pl.l PI .2
Port 2
Р2.0/Ю
P2.1
P2.6
NOTE: PI.2 is used as input only Рис. 1. Блок-схема микроконтроллеров S3F9444 и S3F9454
Микроконтроллеры тактируются встроенным RC-генератором (3,2 МГц или 0,5 МГц) или внешним генератором с тактовой частотой до 10 МГц.
Микроконтроллеры S3F9454 поставляются в 20-выводных корпусах DIP и SOP и в 16-вы-водных корпусах DIP. Микроконтроллеры S3F9444 поставляются в 8-выводных корпусах DIP и SOP. Разводка выводов по корпусу выполнена таким образом, что переход от 20-выводного корпуса к 16-выводному корпусу и далее к 8-выводному происходит простым «отрезанием лишних» выводов с исключением, естественно, некоторых функций. Так, при переходе от 20-выводного корпуса к 16-выводному «отрезаются» выводы 4, 5 и 6 порта P2 и вывод 7 порта 0, вместе с альтернативными функциями этих выводов (ADC7 и ADC8); при дальнейшем переходе к 8-выводному корпусу «отрезаются» выводы с 0 по 3 порта P2, выводы с 3 по 6 порта P0. Соответственно «отрезаются» и альтернативные функции этих выводов (P2.0/T0, ADC3, ADC4, ADC5 и ADC6/PWM).
Пространство адресов Flash-памяти программ и регистрового файла микроконтроллеров S3F9444 и S3F9454 показаны на рис. 3-4.
Первые два байта пространства памяти программ (0000H-0001H) используются как адрес вектора прерывания. В качестве именно памяти программ могут быть использованы ячейки с адресами с 0002H по 00FFH, за исключением ячеек с адресами 3CH, 3DH, 3EH, 3FH. Эти ячейки используются как
Vïj/Vis nz 1 KJ 20
Xin/P1.0l= 2 19
Xout/PI.IE 3 18
Vpp/RESET/P.1.2l= Á 17
TO/P2.0C 5 S3F9454 16
P2.1l= 6 15
P2.2C 7 U
P2.3 d 8 13
P2.41= 9 12
P2.5C 10 11
□ Vdd/Vdd
3 PO.O/ADCo/INTO/SCL ЗРО.І/ADCl/INTl/SDA 3 P0.2/ADC2 з P0.3/ADC3 з РОЯ/ADCi з P0.5/ADC5 з P0.6/ADC6/PWM з P0.7/ADC7 з P2.6/ADC8/CLO
Рис. 2. Разводка выводов корпусов
ячейки функции Smart. Адрес программного сброса — в 0100H.
Архитектура регистров ядра SAM88RCRI обеспечивает эффективный метод адресации рабочих регистров, предоставляющий все преимущества использования команд короткого формата, уменьшающих время выполнения. Общий объем регистрового файла составляет 256 байт. Старшие 64 байт регистрового файла приборов S3F9444 и S3F9454 предназначены для работы в качестве регистров управления системой и периферией и для работы в качестве рабочих регистров. Ячейки рабочих регистров (16 байт) могут быть использованы в качестве рабочих регистров всеми операциями, адресующими какую-либо ячейку регистрового файла. Для обращения к этой области может быть использован регистровый (R) режим адресации.
Младшие 192 байт (00H-BFH) названы областью регистров общего назначения и стека. В этом регистровом файле в качестве регистров общего назначения могут быть использованы 208 регистров (с учетом рабочих регистров).
Регистры адресуются как одиночные 8-разрядные регистры или как спаренные (16-разрядные) регистры. Адрес первого 8-разрядного регистра пары всегда будет четным, и адрес
(DECIMAL) 4,095 (HEX)
4-Kbyte Program Memory Area 10000H
2,047 07FFH
2-Kbyte Program Memory Area
2 56 Program Start- - 0100H
64 60 0040H 003CH 0002H 0001H 0000H
1 0 Interrupt Vector
Рис. 3. Пространство адресов памяти программ
следующего будет иметь нечетный адрес. Старший байт 16-разрядных данных всегда сохраняется в регистре с четным адресом, а младший байт данных всегда сохраняется в следующем (+1) регистре с нечетным адресом.
Все регистры управления периферией, а также регистр системных флагов и регистр-указатель стека расположены по фиксированным адресам в диапазоне адресов с C0H по FFH.
В микроконтроллерах серии S3C9 для вызова подпрограмм и для сохранения данных возврата используется системный стек, работой которого управляют команды PUSH и POP. Архитектурой приборов S3F9444 и S3F9454 предусмотрена организация стека в регистрах общего назначения регистрового файла. По команде CALL содержимое 16-разрядного счетчика команд, организованного в CPU и работающего совместно с 16-разрядным сумматором, используемым в режимах индексной и относительной адресации, сохраняется в стеке и по команде RET содержимое счетчика команд восстанавливается. В случае прерывания в стек, кроме содержимого счетчика команд, заносится и содержимое регистра системных флагов. Отметим, что в микроконтроллерах серии S3C9 регистр системных флагов содержит только четыре флага: флаг переноса (C), флаг нулевого результата (Z), флаг знака (S) и флаг переполнения (V).
Команды, хранящиеся в памяти программ, выбираются для исполнения с использованием счетчика команд. Сами команды указывают на те операции, которые необходимо выполнить, и на те данные, над которыми выполняются операции. Операнд, задаваемый командой SAM88RCRI, может быть кодом условия, непосредственными данными или ячейкой в файле регистров, памяти программ или данных.
Система команд SAM88RCRI поддерживает шесть явных режимов адресации. Не всякий режим может быть использован с кон-
64 Bytes of Common Area
FFH
ЕОН
DFH
DOH
CFH
COH
Peripheral Control Registers
System Control Register
Working Registers
192 Bytes
General Purpose Register File and Stack Area
ООН
Рис. 4. Организация регистрового файла
Компоненты и технологии, № 1'2004
кретной командой. Напомним, что микроконтроллеры S3F9444 и S3F9454 не поддерживают работу с внешней шиной.
Традиционные для 8-разрядной архитектуры фирмы Zilog режимы адресации и их символические обозначения следующие:
• Регистровая (R). При регистровой адресации операнд является содержимым задаваемого регистра. Адресация рабочими регистрами отличается от регистровой адресации тем, что при этом используется пространство рабочих регистров в файле регистров и еще 4-разрядный регистр в этом же пространстве.
• Косвенная регистровая (IR). Адресом операнда является содержимое задаваемого регистра или пары регистров. В зависимости от используемой команды действительный адрес может указывать на регистр в регистровом файле или на память программ. При косвенной адресации другого регистра можно использовать любой 8-разрядный регистр. Для косвенной адресации ячеек памяти программ может быть использована любая 16-разрядная пара регистров.
• Индексная (X). Во время выполнения команды для вычисления действительного адреса операнда к базовому адресу добавляется значение смещения. Этот режим адресации используется при обращении к ячейкам регистрового файла. При этом 8-разрядный базовый адрес, прописанный в команде, добавляется к 8-разрядному смещению, содержащемуся в рабочем регистре. Единственной командой, поддерживающей режим индексной адресации регистрового файла, является команда загрузки (Load — LD). Команды LDC и LDE поддерживают режим индексной адресации для встроенной памяти программ, внешней памяти программ и данных, если они используются.
• Прямая (DA). Команда содержит 16-разрядный адрес операнда в памяти. Команды перехода (JP) и вызова (CALL) используют этот режим для задания 16-разрядного адреса назначения, загружаемого в счетчик команд при каждом выполнении команд JP или CALL.
Режим прямой адресации может быть использован командами LDC и LDE для задания адреса источника или назначения при загрузке в память программ (LDC) или во внешнюю память данных (LDE), если она используется.
• Относительная (RA). В этом режиме задается смещение в виде дополнения до двух со знаком, значение которого находится в диапазоне от -128 до +127. Для получения адреса следующей выполняемой команды это значение добавляется к текущему значению PC. Перед выполнением этого сложения в счетчике команд (PC) находится адрес команды, следующей непосредственно за текущей командой. Режим относительной адресации поддерживает команда относительного перехода JR.
• Непосредственная (IM). Значение операнда находится непосредственно в поле операнда команды. Режим непосредственной
Таблица 1. Функции выводов, используемых при программировании Flash-памяти
Основная При программировании
функция вывода Обозначение вывода Номер вывода (корпус) I/O Функция
P0.1 SDA 18 (20 выводов) 14 (16 выводов) I/O Вывод последовательных данных (выход при чтении, вход при записи). Может быть назначен входным портом и портом с двухтактным выходом
P0.0 SCL 19 (20 выводов) 15 (16 выводов) I Вывод последовательного тактирования (вывод только входа).
RESET, P1.2 VPP 4 (все корпуса) I Вывод напряжения питания записи ячеек РЫЬ-памяти. Подача напряжения 12,5 В переводит прибор в режим записи, при подаче напряжения 5 В прибор переводится в режим чтения
VDD/VSS VDD/VSS 20/1 (20 выводов) 16/1 (16 выводов) I Выводы напряжения питания логики
Таблица 2. Установка режимов взаимодействия с Flash-памятью
Vdd, В Vpp, В REG/MEM Адрес (A15-A0) R/W Режим
5 0 0000H 1 Чтение Flash-памяти
5 12,5 0 0000H 0 Программирование Flash-памяти
12,5 0 0000H 1 Проверка Flash-памяти
12,5 1 0E3FH 0 Защита Flash-памяти от чтения
адресации используется при загрузке в регистры значений констант.
Несколько слов об управлении прерываниями. По вектору прерывания, размещаемому в памяти программ по адресу 0000H, может быть обслужено несколько прерываний. Управление прерываниями системного уровня организуется разрешением или запретом прерывания командами EI и DI. Разрешение или запрет прерываний по периферии организуется в соответствующих регистрах управления периферией. Запрос на прерывание может быть сформирован по переполнению PWM, по совпадению таймера 0 и по внешним прерываниям на портах P0.0 и P0.1. Поскольку архитектурой ядра SAM88RCRI регистр приоритета прерывания не предусмотрен, порядок обслуживания определяется последовательностью запросов прерываний. Возможен режим отложенного прерывания.
Микроконтроллеры S3F9444 и S3F9454 оснащены двумя таймерами: 8-разрядным базовым таймером и одним 8-разрядным таймером-счетчиком общего назначения, работающим в режиме таймера интервалов и получившим название «таймер 0».
Компонентами блока базового таймера являются:
• делитель тактовой частоты (fOSC делится на 4096, 1024 или 128) с мультиплексором;
• 8-разрядный счетчик таймера, BTCNT (DDH, только чтение);
• регистр управления базовым таймером, BTCON (DCH, чтение-запись). Использовать базовый таймер можно двумя способами: как сторожевой таймер, обеспечивающий механизм автоматического сброса в случае сбоя программы, и для указания на окончание времени стабилизации тактового сигнала после сброса или при выходе из режима Stop.
Компонентами блока таймера 0 являются:
• делитель тактовой частоты (fOSC делится на 4096, 256, 8 или остается fOSC) с мультиплексором;
• 8-разрядный счетчик (T0CNT), 8-разрядный компаратор и 8-разрядный регистр данных (T0DATA);
• регистр управления таймером 0 (T0C0N). Во время работы таймера 0 при совпадении значения счетчика и значения, записанного в регистр данных сравнения T0DATA,
формируется сигнал совпадения. Этот сигнал формирует, в свою очередь, прерывание по совпадению таймера 0 (ТОВДТ, вектор ООН) и затем очищает счетчик. Если, к примеру, в регистр данных таймера записано значение «10Н», счетчик будет инкрементироваться, пока не достигнет значения «10Н». В этот момент формируется запрос прерывания по таймеру 0, счетчик очищается и счет начинается снова.
Другим встроенным периферийным устройством является 8-разрядный широтноимпульсный модулятор (PWM). Счетчиком PWM является 8-разрядный счетчик прямого счета. Для запуска счетчика и разрешения схемы PWM бит PWMCON.2 устанавливают в состояние 1. Запуск-останов (перезапуск), очистка счетчика, выбор частоты тактирования, запрет или разрешение прерывания по переполнению счетчика и управление откладыванием прерывания организуются регистром управления PWMCON. При остановке счетчика его текущее состояние сохраняется и при перезапуске счетчика счет продолжается с сохраненного состояния.
Задаваемой битами PWMCON.6-.7 частотой тактирования PWM счетчика может быть: ^с/64, ^с/8, ^с/2, ^сА.
Схема 8-разрядного PWM содержит следующие компоненты:
• 6-разрядный компаратор и расширитель цикла;
• 6-разрядный регистр данных сравнения (PWMDATA.7-.2);
• 2-разрядный регистр данных расширения (PWMDATA.1-.0);
• вывод выхода PWM (P0.6/PWM).
Регистр данных (скважности) PWM, размещенный по адресу Б2Н, определяет скважность сигнала, генерируемого 8-разрядной схемой PWM. Для программирования требуемой скважности выходного сигнала необходимое значение загружают в 6-разрядный регистр данных сравнения (PWMDATA.7-.2) и в 2-разрядный регистр данных расширения (PWMDATA.1-.0).
Базовая скважность PWM-сигнала определяется данными PWM (PWMDATA.7-.2) с которыми сравниваются старшие 6 разрядов счетчика. По переполнению 6-разрядного счетчика выходной сигнал переключается с высокого уровня на низкий. Младшие 2 бита
Компоненты и технологии, № 1'2004
счетчика могут быть использованы для обеспечения большего разрешения путем управления «растяжением» (stretch) рабочего цикла PWM.
Поскольку микроконтроллер S3F9444 размещается в 8-выводных корпусах, то выхода PWM не имеет.
Аналого-цифровой преобразователь (ADC), реализованный по схеме последовательного приближения, преобразует аналоговые уровни, поступающие на один из девяти возможных каналов входа, в эквивалентные 10-разрядные цифровые значения. Уровень входного напряжения должен находиться между значениями VDD и VSS. Регистр управления ADC (ADCON) запускает преобразование и отображает текущее состояние преобразователя, задает выводы входа, задает частоту преобразования (делит тактовый сигнал на 16, 8, 4 или 1 при тактовой частоте менее 4 МГц).
Аналого-цифровое преобразование занимает четыре такта сигнала тактирования на каждый бит и 10 тактов на завершение преобразования. Таким образом, для выполнения 10-разрядного преобразования необходимо 50 тактов сигнала тактирования. При частоте тактового сигнала CPU 10 МГц и делении его на 4 время преобразования составляет 20 мкс.
Отметим, что ADC не оснащен схемами выборки и хранения.
Программирование Flash-микроконтроллеров S3F9444 и S3F9454 ведется в формате последовательных данных с подачей на вывод P1.2 напряжения программирования 12,5 В (VPP). В таблице 1 показаны функции выводов (см. рис. 2), используемых при программировании Flash-памяти микроконтроллеров S3F9444 и S3F9454, и в таблице 2 показаны установки режимов взаимодействия с Flash-памятью.
Фирма Samsung располагает полностью готовыми, мощными и простыми в использовании средствами поддержки разработки. Система поддержки разработки конфигурируется из хост-системы, средств отладки и ПО поддержки. В качестве хост-системы может быть использован любой стандартный компьютер, работающий под операционной системой MS-DOS. ММ
е
е
www.finestreet.ru
99