S3F9444 и S3F9454 -недорогие 8-разрядные Flash микроконтроллеры фирмы Samsung
Samsung!
Как много в этих звуках
Для потребителя слилось,
Как много в них отозвалось!
Сегодня фирма Samsung, в конкурентной борьбе с очень сильными соперниками, активно участвует на российском рынке, поставляя большое количество аппаратуры как потребительского назначения (телевизоры и другая видео и аудиотехника, сотовые телефоны, персональные информационные устройства и пр.) так и аппаратуру оснащения офисов, сетевую аппаратуру. Борьба ведется с использованием самых передовых технологий. Так в технологии «система-на-кристалле» (SOC) фирма использует ядра 16/32-разрядных RISC процессоров (семейств ARM7TDMI, ARM9TDMI, ARM940T, ARM920T и ARM1020E), разработанные фирмой Advanced RISC Machine. В то же время, в тех применениях, где нет необходимости использовать самые высокопроизводительные ядра, например в ряде Smart Card контроллеров, используются и 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 c архитектурой, характерной для 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°C до 85°C.
В состав встроенной периферии входят:
- 9-канальный 10-разрядный аналого-цифровой преобразователь (ADC)
- 8-разрядный широтно-импульсный модулятор (PWM) с максимальной частотой 156 кГц (6-разрядная база + два разряда расширения)
- 8-разрядный базовый таймер (для функций сторожевого таймера) и 8-разрядный таймер/счетчик с режимом измерения интервалов времени
- Три порта I/O (всего до 18 выводов) с конфигурированием каждого вывода. Каждый вывод может управлять LED (типовой ток 10 мА)
- Встроенная Smart функция, определяющая стартовые условия работы прибора (разрешение/запрет схемы LVR, используемы источники сигнала тактирования)
Микроконтроллеры тактируются встроенным RC генератором (3,2 МГц или 0,5 МГЦ) или внешним генератором с тактовой частотой до 10 МГц.
Микроконтроллеры S3F9454 поставляются в 20-выводных корпусах DIP и SOP и в 16-выводных корпусах DIP. Микроконтроллеры S3F9444 поставляются в 8-выводных корпусах DIP и SOP. Pазводка выводов по корпусу выполнена таким образом, что переход от 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. Эти ячейки используются как ячейки Smart функции. Адрес программного сброса в — 0100H.
Архитектура регистров ядра SAM88RCRI обеспечивает эффективный метод адресации рабочих регистров, предоставляющий все преимущества использования команд короткого формата, уменьшающих время выполнения. Общий объем регистрового файла составляет 256 байтов. Старшие 64 байта регистрового файла приборов S3F9444 и S3F9454 предназначены для работы в качестве регистров управления системой и периферией и для работы в качестве рабочих регистров. Ячейки рабочих регистров (16 байтов) могут быть использованы в качестве рабочих регистров всеми операциями, адресующими какую либо ячейку регистрового файла. Для обращения к этой области может быть использован регистровый (R) режим адресации.
Младшие 192 байта (00H-BFH) названы областью регистров общего назначения и стека и, с учетом рабочих регистров, в этом регистровом файле в качестве регистров общего назначения могут быть использованы 208 регистров.
Регистры адресуются как одиночные 8-разрядные регистры или как спаренные (16-разрядные) регистры. Адрес первого 8-разрядного регистра пары всегда будет четным, и адрес следующего будет иметь нечетный адрес. Старший байт 16-разрядных данных всегда сохраняется в регистре с четным адресом, и младший байт данных всегда сохраняется в следующем (+ 1) регистре с нечетным адресом.
Все регистры управления периферией, а также регистр системных флагов и регистр указатель стека расположены по фиксированным адресам в диапазоне адресов с C0H по FFH.
В микроконтроллерах серии S3C9 для вызова подпрограмм и для сохранения данных возврата используется системный стек, работой которого управляют команды PUSH и POP. Архитектурой приборов S3F9444 и S3F9454 предусмотрена организация стека в регистрах общего назначения регистрового файла. По команде CALL содержимое 16-разрядного счетчика команд, организованного в CPU и работающего совместно с 16-разрядным сумматором, используемым в режимах индексной и относительной адресации, сохраняется в стеке и по команде RET содержимое счетчика команд восстанавливается. В случае прерывания в стек, кроме содержимого счетчика команд, заносится и содержимое регистра системных флагов. Отметим, что в микроконтроллерах серии S3C9 регистр системных флагов содержит только четыре флага: флаг переноса (C), флаг нулевого результата (Z), флаг знака (S) и флаг переполнения (V).
Команды, хранящиеся в памяти программ, выбираются для исполнения с использованием счетчика команд. Сами команды указывают на те операции, которые необходимо выполнить, и на те данные, над которыми выполняются операции. Операнд, задаваемый командой SAM88RCRI, может быть кодом условия, непосредственными данными или ячейкой в файле регистров, памяти программ или данных.
Система команд SAM88RCRI поддерживает шесть явных режимов адресации. Не всякий режим может быть использован с конкретной командой. Напомним, что микроконтроллеры 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). Значение операнда находится непосредственно в поле операнда команды. Режим непосредственной адресации используется при загрузке в регистры значений констант.
Несколько слов об управлении прерываниями. По вектору прерывания, размещаемому в памяти программ по адресу 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 (T0CON)
Во время работы таймера 0 при совпадении значения счетчика и значения, записанного в регистр данных сравнения T0DATA, формируется сигнал совпадения. Этот сигнал формирует, в свою очередь, прерывание по совпадению таймера 0 (T0INT, вектор 00H) и, затем, очищает счетчик. Если, к примеру, в регистр данных таймера записано значение «10H», счетчик будет инкрементироваться, пока не достигнет значения «10H». В этот момент формируется запрос прерывания по таймеру 0, счетчик очищается и счет начинается снова.
Другим встроенным периферийным устройством является 8-разрядный широтно-импульсный модулятор (PWM). Счетчиком PWM является 8-разрядный счетчик прямого счета. Для запуска счетчика и разрешения схемы PWM бит PWMCON.2 устанавливают в состояние 1. Запуск/останов (перезапуск), очистка счетчика, выбор частоты тактирования, запрет/разрешение прерывания по переполнению счетчика и управление откладыванием прерывания организуются регистром управления PWMCON. При остановке счетчика его текущее состояние сохраняется и при перезапуске счетчика счет продолжается с сохраненного состояния.
Задаваемой битами PWMCON.6-.7 частотой тактирования PWM счетчика может быть: fOSC/64, fOSC/8, fOSC/2, fOSC/1.
Схема 8-разрядного PWM содержит следующие компоненты:
- 6-разрядный компаратор и расширитель цикла
- 6-разрядный регистр данных сравнения (PWMDATA.7-.2)
- 2-разрядный регистр данных расширения (PWMDATA.1-.0)
- Вывод выхода PWM (P0.6/PWM)
Регистр данных (скважности) PWM, размещенный по адресу F2H, определяет скважность сигнала, генерируемого 8-разрядной схемой PWM. Для программирования требуемой скважности выходного сигнала необходимое значение загружают в 6-разрядный регистр данных сравнения (PWMDATA.7-.2) и в 2-разрядный регистр данных расширения (PWMDATA.1-.0).
Базовая скважность PWM сигнала определяется данными PWM (PWMDATA.7-.2) с которыми сравниваются старшие 6 разрядов счетчика. По переполнению 6-разрядного счетчика выходной сигнал переключается с высокого уровня на низкий. Младшие 2 бита счетчика могут быть использованы для обеспечения большего разрешения путем управления «растяжением» (stretch) рабочего цикла PWM.
Поскольку микроконтроллер S3F9444 размещается в 8-выводных корпусах, то выхода PWM не имеет.
Аналого-цифровой преобразователь (ADC) реализованный по схеме последовательного приближения, преобразует аналоговые уровни, поступающие на один из девяти возможных каналов входа, в эквивалентные 10-разрядные цифровые значения. Уровень входного напряжения должен находиться между значениями VDD и VSS. Регистр управления ADC (ADCON) запускает преобразование и отображает текущее состояния преобразователя, задает выводы входа, задает частоту преобразования (делит тактовый сигнал на 16, 8, 4 или не делит, при тактовой частоте менее 4 МГц).
Аналого-цифровое преобразование занимает четыре такта сигнала тактирования на каждый бит и 10 тактов на завершение преобразования. Таким образом, для выполнения 10-разрядного преобразования необходимо 50 тактов сигнала тактирования. При частоте тактового сигнала CPU 10 МГц и делении его на 4 время преобразования составляет 20 мкс.
Отметим, что ADC не оснащен схемами выборки/хранения.
Программирование Flash микроконтроллеров S3F9444 и S3F9454 ведется в формате последовательных данных с подачей на вывод P1.2 напряжения программирования 12,5 В (VPP). В Табл. 1 показаны функции выводов (см. Рис. 2), используемых при программировании Flash памяти микроконтроллеров S3F9444 и S3F9454, и в Табл. 2 показаны установки режимов взаимодействия с 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 | Вывод напряжения питания записи ячеек Flash памяти. Подача напряжения 12,5 В переводит прибор в режим записи, при подаче напряжения 5 . В прибор переводится в режим чтения. |
VDD/VSS | VDD/VSS | 20/1 (20 выводов) 16/1 (16 выводов) |
I | Выводы напряжения питания логики. |
VDD, В | VPP, В | REG/MEM | Адрес (A15–A0) | RW | Режим |
5 | 5 | 0 | 0000H | 1 | Чтение Flash памяти |
12 | 5 | 0 | 0000H | 0 | Программирование Flash памяти |
12 | 5 | 0 | 0000H | 1 | Проверка Flash памяти |
12 | 5 | 1 | 0E3FH | 0 | Защита Flash памяти от чтения |
Фирма Samsung располагает полностью готовыми, мощными и простыми в использовании средствами поддержки разработки. Система поддержки разработки конфигурируется из хост-системы, средств отладки и ПО поддержки. В качестве хост-системы может быть использован любой стандартный компьютер, работающий под операционной системой MS-DOS.