Сайт радиолюбителей Республики Коми.
Микроконтроллеры MOTOROLA семейства MC68HC08GpххА.
На главнуюГлавная

Микроконтроллеры семейства MC68HC08GPххА компании MOTOROLA широко используются в различной бытовой технике, в том числе и в электронных модулях стиральных машин. Основой этого модуля является микроконтроллер MC68HC08GP32А, входящий в состав этого семейства процессоров. Предлагаемый информационный материал позволит читателям более подробно ознакомиться с этим микроконтроллером — его структурой и возможностями.

Общее описание

Микросхемы MC68HC08GPххА принадлежат к классу недорогих, 8-разрядных микроконтроллеров (МК) семейства M68HC08, выпускаемых компанией MOTOROLA. Основной чертой этого семейства является то, что все входящие в него МК построены на базе одного вычислительного ядра (центрального процессора) CPU08 и отличаются большим разнообразием типов и размеров памяти, периферии и конструктивным исполнением.

Маркировка МК

Назначение групп в маркировке микроконтроллеров семейства MC68HC08GPxxAyzz следующее:

  • MC — фирма-производитель (MOTOROLA);
  • 68HC08 — тип МК;
  • GPxxA — семейство;
  • y — температурный диапазон (C: – 40…+85°C, V: – 40…+105°C, M: – 40…+125°C);
  • zz — тип корпуса (B — SDIP, 42 вывода; FB — QFP, 44 вывода).

Расположение и назначение выводов МК MC68HC08GPxxA в корпусе QFP показаны на рис. 1.

Рис. 1. Расположение и назначение выводов микроконтроллеров семейства МС68НС08GpxxA

Основные особенности МК семейства MC68HC08GPххА

Перечислим особенности МК семейства MC68HC08GpххА:

  • высокопроизводительная архитектура M68HC08 оптимизирована для C-компиляторов;
  • полная совместимость с объектным кодом для семейств М6805, М146805, М68НС05;
  • частота внутренней системной шины составляет 8 МГц;
  • тактовый генератор с системой ФАПЧ, стабилизированный кварцевым резонатором частотой от 30 до 100 кГц (в рассматриваемом варианте — 32768 Гц);
  • низкое потребление питания (режимы ожидания и остановки);
  • механизм системной защиты с последующим сбросом (неверный код операции, неверный адрес, пониженное питание);
  • встроенное ОЗУ объемом 512 байт;
  • встроенное ПЗУ:
  • для МК MC68HC08GP16А — объемом 15872 байт;
  • для МК MC68HC08GP32А — объемом 32256 байт;
  • последовательный интерфейс периферийных устройств (SPI);
  • последовательный коммуникационный интерфейс (SCI);
  • двухканальный 16-разрядный интерфейс таймеров с ШИМ-модулятором (TIM1, TIM2);
  • восьмиканальный 8-разрядный АЦП.

Перечислим особенности вычислительного ядра CPU08:

  • улучшенная программная модель НС05;
  • расширенные функции контроля циклов;
  • 16-разрядная адресация;
  • 16-битный индексный регистр и указатель стека;
  • быстрые инструкции умножения в формате 88;
  • быстрые инструкции деления в формате 16/8;
  • двоично-десятичные инструкции;
  • оптимизация для применения в МК;
  • эффективная поддержка языка С.

Функциональная схема

Функциональная схема МК семейства МС68НС08GpxxA показана на рис. 2.

Рис. 2. Функциональная схема микроконтроллеров в семействе МС68НС08GpxxA

Рассмотрим подробнее назначение основных модулей этой микросхемы.

Модуль ЦП (Central Processor Unit)

Данный модуль является основным вычислительным блоком МК. В его задачи входит обработка всей поступающей информации в соответствии с кодом программы, записанной в ПЗУ. В состав блока входит арифметико-логическое устройство (АЛУ), предназначенное для выполнения последовательности арифметических и логических операций алгоритма, а также набор регистров для хранения промежуточных данных и конечных результатов.

Модуль тактового генератора (Clock Generator Module)

Данный модуль предназначен для синхронизации работы всех блоков в составе МК. В состав этого модуля входят три субмодуля:

  • тактовый генератор (его частота стабилизирована внешним кварцевым резонатором), формирующий основную тактовую частоту CGMXCLK;
  • система ФАПЧ, которая предназначена для генерации программно управляемой частоты CGMVCLK;
  • схема выбора тактовой частоты, представляющая собой программно-управляемую цепь, выбирающую частоты CGMXCLK, CGMXCLK/2, CGMVCLK, CGMVCLK/2 или CGMOUT.

Модуль памяти (Memory Map Module)

CPU08 может адресовать до 64 КБайт адресного пространства. Карта памяти МК включает в себя следующие области:

  • ПЗУ (ROM) объемом 32256 байт (для MC68HC08GP32А) и 15872 байт (для MC68HC08GP16А);
  • ОЗУ (RAM) объемом 512 байт;
  • векторы прерывания, определяемые пользователем (36 байт);
  • контрольное ОЗУ (307 байт).

Аналого-цифровой преобразователь (8 bit Analog-to-Digital Converter Module)

Данный модуль представляет собой 8-канальный 8-битный АЦП с программируемой частотой дискретизации. Он предназначен для преобразования входного аналогового сигнала, поступающего по 8-ми внешним входам PTB7/AD7-PTB0/AD0, в цифровую форму. Мультиплексор на входе АЦП позволяет выбирать один из каналов в качестве опорного напряжения VADIN. После завершения оцифровки результат операции помещается в регистр модуля АЦП, и после этого выставляется соответствующий флаг или генерируется прерывание.

Модуль контроля работы (Computer Operating Properly)

Данный модуль представляет собой, по сути, сторожевой таймер. В его состав входит автономный счетчик, который генерирует сброс при переполнении, таким образом, помогая программе восстановить свою работу при различных сбойных ситуациях. Данный модуль можно отключить, установив бит COPD в регистре COPCTL.

Модуль внешних прерываний (Single External Interrupt Module)

Данный модуль предназначен для регистрации прерывания от внешних устройств. Каждый раз, при поступлении сигнала низкого уровня на вывод IRQ, срабатывает защелка и в МК на обработку поступает прерывание. Управляющим регистром внешних прерываний является INTSCR, здесь же можно задать программно тип сигнала (срабатывание по заднему фронту или по уровню) установкой бита MODE.

Модуль прерываний от клавиатуры (8-bit Keyboard Interrupt module)

Данный модуль поддерживает до восьми независимых маскируемых прерываний, доступных через порты PTA0-PTA7. Когда порт открыт для работы с прерыванием, например от клавиатуры, внешнее устройство становится активным. Запись определенного бита KBIE7-KBIE0 в регистре INTKBIER делает активным тот или иной вывод порта A. Регистрация прерывания происходит в том случае, когда одна из линий клавиатуры (или любого другого внешнего устройства) меняет свой уровень с высокого на низкий. Для настройки типа сигнала, по которому происходит регистрация прерывания, необходимо установить бит MODEK регистра INTKBSCR в соответствующее значение (0 — срабатывание только по переднему фронту, 1 — по заднему фронту и низкому уровню).

Модуль последовательного интерфейса (Serial Communication Interface Module)

Данный модуль предназначен для обмена данными в высокоскоростном дуплексном асинхронном режиме с внешними устройствами или другим МК. В режиме передачи данных модуль ЦП следит за текущим статусом последовательного интерфейса, подготавливает данные для передачи и обрабатывает принятые. Скорость работы модуля задается программно — установкой требуемого значения биту SCIBDSRC в регистре MOR2 (1 — тактирование от внутреннего генератора, 0 — от внешнего).

Модуль начального сброса (Power on Reset Module)

Данный модуль предназначен для инициализации МК при включении питания. При наличии положительного напряжения на выводе VDD, не превышающего значения VPOR, происходит сброс по питанию. В результате этого, по истечении 4096 тактов CGMXCL стабилизации тактового генератора, происходит запуск ЦП и остальных модулей.

Модуль временного стробирования (Timebase Module)

Данный модуль служит для периодической генерации прерываний. Частота появления прерываний вычисляется путем деления частоты внутреннего тактового генератора CGMXCLC на один из коэффициентов (8, 16, 32, 64, 128, 2048, 8192, 32768). Коэффициент деления задается программно, путем установки требуемого значения битам TBR2-TBR0 и TBMCLKSEL.

Модуль останова выполнения программы (Single Breakpoint Break Module)

Данный модуль предназначен для генерации прерывания, которое останавливает нормальный ход выполнения программы, начиная с указанного адреса. При совпадении текущего адреса команды с адресом, прописанном в регистрах BRKL и BRKH, модуль формирует сигнал, который выдает ЦП команду загрузить регистр команд с опцией программного прерывания (SWI). Выход из данного режима осуществляется при поступлении команды возврата из обработки прерывания (RTI).

Модуль мониторинга (Monitor Module)

Данный модуль выполняет функции отладки программного обеспечения (ПО) и программирования МК с помощью управляющего персонального компьютера (ПК). В режиме мониторинга МК может выполнять код программы, загруженной в ОЗУ, в то время как остальные выводы микросхемы могут выполнять свои обычные функции. Связь с управляющим ПК осуществляется через вывод PTA0 в режиме „монтажного ИЛИ” (wired-OR), поэтому для интерфейса дополнительно требуется схема преобразователя уровня, а также мультиплексор.

Модуль защиты от пониженного напряжения (Low-Voltage Inhibit)

Данный модуль следит за уровнем напряжения на выводе VDD и в случае, если текущий уровень находится ниже порогового значения VTRIPF, формирует сигнал сброса МК. Для запуска такого режима контроля необходимо установить биты LVIPWRD и LVIRSTD в состояние „0”. Данный модуль может быть программно настроен на работу с 5- и 3-вольтовым источником питания. Для этого необходимо установить бит LVI5OR3 в „1” или „0” соответственно.

Модуль таймера (Timer Interface Module)

В данном МК имеется два двухканальных таймера (TIM1 и TIM2). Каждый из таймеров предназначен для обеспечения функций захвата входной информации, сравнения результата и ШИМ обработки. В основу работы таймера положен 16-разрядный счетчик, который может функционировать как в автономном режиме, так в режиме счетчика по модулю 2. Значение счетчика может быть прочитано в любой момент времени без остановки его работы.

Модуль последовательного периферийного интерфейса (Serial Peripheral Interface Module)

Данный модуль реализует дуплексный синхронный интерфейс между МК и периферийными устройствами, включая другие МК. Обмен данными с периферийным устройством ведется через порт D, используя следующие выводы: (ведомый/ведущий), SPSCK (тактовая частота), MOSI (ведущий — на выход, ведомый — на вход), MISO (ведущий — на вход, ведомый — на выход). Настройка работы данного модуля осуществляется через регистр SPCR.

Регистры маски (Mask Option Register)

Данные регистры содержат основные настройки, необходимые для работы всех модулей МК. Регистры маски (MOR1, MOR2) расположены по 16-ричным адресам 001E и 001F и доступны только для чтения. Их содержимое можно изменить лишь во время записи кода основной программы в ПЗУ.

Порты ввода/вывода (IO Ports)

Данный микроконтроллер имеет 5 портов ввода/вывода, которые выведены на 33 вывода микросхемы. Порт А (PTA7-PTA0) — 8-разрядный, и предназначен для работы с прерываниями от клавиатуры (KBI). Порт B (PTB7-PTB0) также 8-разрядный, предназначен для работы с АЦП.

Порт С (PTC0-PTC6) — 7-разрядный порт ввода-вывода общего назначения. Порт D (PTD0-PTD7) является 8-разрядным портом специального назначения. Разряды PTD0-PTD3 используются для работы с последовательным периферийным интерфейсом, а разряды PTD4-PTD7 — для работы с таймерами TIM1, TIM2. Порт Е (PTE0-PTE1) является 2-разрядным портом специального назначения. Он предназначен для работы с последовательным асинхронным интерфейсом.

Модуль безопасности (Security Module)

Основное назначение этого модуля — запретить несанкционированное чтение и запуск кода программы из ПЗУ во время работы в режиме мониторинга. Механизм защиты состоит в записи кодовой последовательности из 8 байт по адресам FFF6-FFFD. При работе в режиме мониторинга после начального сброса (см. выше) МК ждет, когда управляющий ПК передаст ему кодовую последовательность.

Если полученная кодовая последовательность совпадает с той, что находится по адресам FFF6-FFFD — пользователь получает доступ к информации, хранящейся в ПЗУ. В противном случае продолжается работа в режиме мониторинга, но при этом доступ к информации, хранящейся в ПЗУ, остается закрытым. Для соблюдения режима безопасности рекомендуется не оставлять диапазон адресов $FFF6-$FFFD незаполненным.

В таблице приведено назначение выводов МК семейства MC68HC08GPххА.

Номер вывода

Обозначение

Описание

Корпус QFP

Корпус SDIP

1

6

 

Внешний сброс

2

7

PTC0

Порт ввода-вывода общего назначения (порт С)

3

8

PTC1

4

9

PTC2

5

10

PTC3

6

11

PTC4

7

PTC5

8

PTC6

9

12

PTE0/TxD

Порт ввода-вывода общего назначения / последовательный асинхронный интерфейс (порт Е)

10

13

PTE1/RxD

11

14

 

Асинхронное внешнее прерывание

12

15

PTD0/

Порт ввода-вывода общего назначения / последовательный периферийный интерфейс (порт D)

13

16

PTD1/MISO

14

17

PTD2/MOSI

15

18

PTD3/SPSCK

16

19

VSS

Общий цифровой части

17

20

VDD

Напряжение питания цифровой части

18

21

PTD4/T1CH0

Порт ввода-вывода общего назначения / таймеры (порт D)

19

22

PTD5/T1CH1

20

23

PTD6/T2CH0

21

24

PTD7/T2CH1

22

25

PTB0/AD0

Порт ввода-вывода общего назначения / интерфейс АЦП (порт B)

23

26

PTB1/AD1

24

27

PTB2/AD2

25

28

PTB3/AD3

26

29

PTB4/AD4

27

30

PTB5/AD5

28

31

PTB6/AD6

29

32

PTB7/AD7

30

33

VDDAD/VREFH

Напряжение питания АЦП / Верхнее опорное напряжение АЦП

31

34

VSSAD/VREFL

Общий АЦП / Нижнее опорное напряжение АЦП

32

35

PTA0/

Порт ввода-вывода общего назначения / прерывания от клавиатуры (порт А)

33

36

PTA1/

34

37

PTA2/

35

38

PTA3/

36

39

PTA4/

37

40

PTA5/

38

41

PTA6/

39

42

PTA7/

40

1

VDDA

Напряжение питания аналоговой части

41

2

VSSA

Общий аналоговой части

42

3

CGMXFC

Фильтр тактового генератора

43

4

OSC2

Кварцевый резонатор

Евгений Кузнецов

РС6-2006

На главнуюГлавная
Rambler's Top100 Rambler's Top100 спортивное питание . представлены стиральные машины Miele, Electrolux, AEG . Широкий модельный ряд стиральных машин любых брендов.
Hosted by uCoz