Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Курсова робота
з курсу „ Мікропроцесорні системи ”
Проектування мікрокомп’ютера
Львів – 2006
Зміст
1. Початкові дані на проектування 3
2.1. Основні технічні харакетристики мікроконтролера 56F8323 4
2.2. Внутрішня структура 8
2.3. Реалізація в різних корпусах 18
2.4. Функціональне призначення виводів 18
3. Розробка схеми електричної функціональної 25
3.1. Загальна схема мікрокомп'ютера 25
3.2. Підключення зовнішніх пристроїв вводу/виводу 25
4. Проектування принципової схеми мікрокомп'ютера 26
4.1. Вузол синхронізації 26
4.2. Вузол формування сигналу RESET 26
4.3. Пам'ять програм 26
4.4. Пам'ять даних 27
4.5. Зовнішня пам'ять 27
4.6. Вузли вводу/виводу 27
5. Початкова ініціалізація мікрокомп'ютера 31
5.1. Набір команд 31
5.2. Опис алгоритму 31
Висновки 32
Використана література та інші джерела 33
Додатки
Додаток А. Програма початкової ініціалізації
Додаток B. Схема функціональна
Додаток C. Електрична принципова схема
Додаток D. Перелік елементів
1. Початкові дані на проектування
1. Тип мікропроцесора: 56F8323 (на ядрі DSP56800E).
2. Постійна пам’ять: вбудована на кристалі.
3. Оперативна пам’ять: вбудована на кристалі.
4. Підсистема вводу-виводу (периферійні пристрої):
- сенсор магнітного поля,
- послідовний інтерфейс RS-232 на основі мікросхеми MAX232,
- рідкокристалічний дисплей на основі контролера HD44780.
2. Архітектура мікроконтролера
2.1. Основні технічні харакетристики мікроконтролера 56F8323
Загальний опис мікроконтролера 56F8323:
• До 60 MIPS при частоті ядра 60MHz
• Функціональність сигнального процесора (DSP) та мікроконтролера (MCU)
• 32KB Flash пам’яті програм
• 4KB ОЗП пам’яті програм
• 8KB Flash пам’яті даних
• 8KB ОЗП пам’яті даних
• 8KB Flash пам’яті початкового завантаження
• Один 6-канальний модуль PWM
• Два 4-канальних 12-розрядних АЦП
• Температурний сенсор
• Один квадратурний декодер
• Один модуль FlexCAN
• До двох послідовних комунікаційних інтерфейсів (SCI)
• До двох послідовних периферійних інтерфейсів (SPI)
• Два лічильника загального призначення
• Модуль Комп’ютер працює правильно (COP) / Сторожовий таймер
• Вбудований тактовий генератор
• JTAG/Enhanced On-Chip Emulation (OnCE™) для незалежної відладки в реальному часі
• До 27 ліній вводу/виводу загального призначення (GPIO)
• 64-контактний корпус LQFP
Мікропроцесор MC56F8323 – це 16-розрядний цифровий сигнальний процесор побудований на ядрі DSP56800E – дешевий, малопотужний мікропроцесор, який поєднує силу DSP та паралелізм з MCU-сумісною простотою програмування. Ядро DSP56800E - це універсальний центральний процесор, розроблений для ефективної обробки цифрових сигналів та для великої кількості управляючих операцій.
Основні характеристиками мікропроцесорів з ядром DSP56800E:
1. Швидкодія - DSP56800E підтримує більшість програм цифрової обробки сигналів.
2. Точність – дані, якими оперує DSP56800E є 16-розрядними, що забезпечує 96 dB динамічного діапазону; проміжні результати зберігаються в 36-розрядних акумуляторах, це дозволяє зберігати дані діапазону до 216 dB.
3. Паралелізм – кожен операційний блок вбудований на кристалі, пам’ять, та периферія оперують незалежно і паралельно з іншими блоками через складну систему шин. Арифметико-логічний пристрій (ALU), пристрій генерації адрес (AGU) та програмний контролер оперують паралельно дому наступні дії можуть бути виконані паралельно за одну інструкцію:
- Попередня вибірка інструкції
- Множення двох 16-розрядних операндів
- 36-розрядне додавання
- Дві операції переміщення даних
- Дві операції зміни адресних вказівників
- Відсилання та отримання даних по послідовних портах у повнодуплексному режимі
- Всі таймери продовжують рахувати паралельно
4. Гнучкість – в той час, коли багато процесорів цифрової обробки сигналів потребують зовнішні кола комунікації для взаємодії з периферією (такою як АЦП, ЦАП або головним процесором), DSP56800E містить вбудовані послідовні та паралельні інтерфейси, які можуть підтримувати різні конфігурації пам’яті та периферійних модулів. Периферія взаємодіє з ядром DSP56800E через інтерфейсну шину периферії, яка розроблена для забезпечення загального інтерфейсу для багатьох різних периферійних пристроїв.
5. Великі можливості відладки – вбудована технологія емуляції (OnCE) дає можливість простого та незалежного від швидкості доступу до внутрішніх регістрів для виконання відладки. OnCE дає розробникам програмного забезпечення для DSP56800E точну інформацію про стан та вмістиме регістрів, областей пам’яті і навіть останню команду, яка була виконана.
6. Синхронізація, базована на системі фазової автопідстройки частоти (PLL) - дозволяє мікропроцесору використовувати майже будь-які доступні зовнішні системи синхронізації для роботи на повній швидкості, в той же час видаючи вихідні синхроімпульси до синтезованого внутрішнього генератора ядра.
7. Невидимий конвейер – трьохстановий конвейер інструкцій є недоступним програмісту, що дозволяє пряму розробку програм як в асемблерних мовах так і в мовах високого рівня, таких як C або C++.
8. Набір інструкцій – мнемоніка команд є MCU-подібною, що робить перехід від програмування процесорів до програмування мікросхем дуже простим.
9. Низька споживана потужність – базовані на компліментарних металооксидних напівпровідниках КМОН (CMOS), мікропроцесори DSP56800E мають дуже малу споживану потужність. Два додаткових режими пониженого споживання, зупинка та очікування, додатково зменшують розхід енергії. Режим очікування мікропроцесора DSP56800E полягає в тому, що ядро є виключеним, але периферія та контролер переривань продовжують оперувати, тому переривання може вивести мікропроцесор зі стану очікування. В режимі зупинки більшість модулів DSP56800E є відключеними від живлення для найменшого споживання.
Гібридне ядро контролера:
• Ефективне 16-розрядне ядро сімейства 56800E з подвійною гарвардською архітектурою
• До 60 мільйонів команд за секунду (MIPS) на частоті ядра 60MHz
• Одно-цикловий 16х16-розрядів паралельний Помножувач-Акумулятор (MAC)
• Чотири 36-розрядні акумулятори, в тому числі з розрядами розширення
• Пристрій багаторозрядного арифметичного і логічного зсуву
• Паралельна система команд з унікальними способами адресації
• Апаратно реалізовані цикли DO і REP
• Три внутрішні адресні шини
• Чотири внутрішні шини даних
• Система команд підтримує як функції сигнального процесора так і контролера
• Ефективний компілятор C з підтримкою локальних змінних
• Програмний стек для процедур та переривань, глибина якого обмежується тільки пам'яттю
• Інтерфейси JTAG/EOnCE для відлагоджування та програмування
Пам’ять
• Гарвардська архітектура дозволяє до трьох паралельних звертань до пам’яті програм і даних
• Захист Flash пам’яті від несанкціонованого доступу до її вмісту
• Вбудована пам’ять, зокрема дешеві рішення великого об’єму на основі Flash
— 32KB Flash пам’яті програм
— 4KB ОЗП пам’яті програм
— 8KB Flash пам’яті даних
— 8KB ОЗП пам’яті даних
— 8KB Flash пам’яті початкового завантаження
• Вся пам’ять працює на частоті 60Мгц (нуль станів очікування) поза температурним діапазоном (-40° до +125°C), без будь-яких додаткових програмних чи апаратних засобів
• Можливість емуляції EEPROM
Живлення
• Виготовлено на високо інтегрованому КМОН з 5 В, ТТЛ-сумісними рівнями цифрових входів
• Вбудований перетворювач напруги з 3.3V до 2.6V для живлення внутрішньої логіки та пам’яті
• Вбудовані в кристалі регулятори цифрових та аналогових електричних схем для зниження ціни та рівня шумів
• Доступні режими енергозбереження Wait і Stop
• «Розумне» керування потужністю АЦП
• Кожен периферійний пристрій можна окремо відключати для збереження енергії
2.2. Внутрішня структура
Подвійна гарвардська архітектура пам’яті
DSP56800E має подвійну Гарвардську архітектуру із окремими пам’яттю програм і пам’яттю даних, що показано на Рис 2.2.1. Така архітектура дозволяє одночасне звертання до пам’яті програм і пам’яті. В той же час інтерфейс пам’яті даних також підтримує дві одночасних операції читання, що в сумі забезпечує до трьох паралельних операцій звертання до пам’яті.
Рис 2.2.1. Подвійна гарвардська архітектура пам’яті DSP56800E
Блок пам’яті, що містить вектори скиду і переривань, може бути будь-якого розміру і міститися у довільному місці пам’яті програм.
Периферійні регістри відображаються в пам’яті у області розміром 64 слова у довільному місці пам’яті даних. Зазвичай область периферійних регістри для IP-BUS розміщають так, щоб вона не перетиналась з пам’яттю даних ПЗП і ОЗП.
Програмна модель ядра DSP56800E
Регістри є частиною програмної моделі ядра DSP56800E, яка зображена на Рис. 2.2.2. Опис регістрів подано в таблиці 2.2.1. Регістри для вбудованих периферійних пристроїв відображаються на 64-позиційний блок пам’яті даних.
Рис. 2.2.2. Програмна модель ядра DSP56800E
Регістри ядра DSP56800E
Таблиця 2.2.1
Пристрій
Назва регістру
Розмір (розр.)
Опис
ALU
(АЛП – Арифметико-логічний пристрій)
Y1
16
Регістр даних (старші 16 розрядів 32-розрядоного регістра Y).
Y0
16
Регістр даних (молодші 16 розрядів 32-розрядного регістра Y).
Y
32
Один довгий регістер, що містить 2 конкатенованих 16-розрядних регістрів, Y1:Y0. Цей регістр поміщається у стек при обробці швидкого переривання.
X0
16
Регістр даних.
A2
4
Регістр розширення акумулятора А—розряди акумулятора від 35 до 32.
A1
16
Найбільш вагома частина регістру акумулятора (MSP)—розряди акумулятора від 31 до 16.
A0
16
Найменш вагома частина регістру акумулятора (LSP)— розряди акумулятора від 15 до 0.
A10
32
Довга частина акумулятора—від розряда акумулятора 31 до 0, містить конкатеновані регістри: A1:A0.
A
36
Акумулятор —Містить три конкатенованих регістри: A2:A1 :A0.
B2
4
Регістр розширення акумулятора В—розряди акумулятора від 35 до 32.
B1
16
Найбільш вагома частина регістру акумулятора (MSP)—розряди акумулятора від 31 до 16.
BO
16
Найменш вагома частина регістру акумулятора (LSP)— розряди акумулятора від 15 до 0.
B10
32
Довга частина акумулятора—від розряда акумулятора 31 до 0, містить конкатеновані регістри: B1:B0.
B
36
Акумулятор —Містить три конкатенованих регістри: B2:B1 :B0.
C2
4
Регістр розширення акумулятора С—розряди акумулятора від 35 до 32.
C1
16
Найбільш вагома частина регістру акумулятора (MSP)—розряди акумулятора від 31 до 16.
C0
16
Найменш вагома частина регістру акумулятора (LSP)— розряди акумулятора від 15 до 0.
C10
32
Довга частина акумулятора—від розряда акумулятора 31 до 0, містить конкатеновані регістри: C1:C0.
C
36
Акумулятор —Містить три конкатенованих регістри: C2:C1:C0.
D2
4
Регістр розширення акумулятора D—розряди акумулятора від 35 до 32.
D1
16
Найбільш вагома частина регістру акумулятора (MSP)—розряди акумулятора від 31 до 16.
DO
16
Найменш вагома частина регістру акумулятора (LSP)— розряди акумулятора від 15 до 0.
D10
32
Довга частина акумулятора — розряди акумулятора 31 від 0, містить конкатеновані регістри: D1:D0.
D
36
Акумулятор — містить три конкатенованих регістри: D2:D1:D0.
AGU
(Пристрій формування адреси)
R0
24
Регістр адреси—Цей регістр також затінено для швидкої обробки переривань.
R1
24
Регістр адреси—Цей регістр також затінено для швидкої обробки переривань.
R2
24
Регістр адреси.
R3
24
Регістр адреси.
R4
24
Регістр адреси.
R5
24
Регістр адреси.
N
24
Регістр зміщення, також може використовуватись як вказівник або індекс — цей регістр також затінено для швидкої обробки переривань.
SP
24
Вказівник стеку.
N3
16
Регістр зміщення для другого читання — знак поширюється на 24 розряди і використовується як зміщення для оновлення вказівника R3 в операціях подвійного читання.
M01
16
Регістр модифікатор—Використовується для включення модульної арифметики для R0 і R1
Program Controller
(Контролер виконання програми)
PC
21
Програмний лічильник—Складений із спеціалізованого 16-розрядного регістру (розряди 15-0 програмного лічильника) і 5 розрядів, які зберігаються в старшому байті регістра снану.
LA
24
Адреса циклу—Містить адресу останнього слова команди в апаратному циклі DO.
LA2
24
Адреса циклу 2—Зберігає адреса циклу для зовнішнього циклу.
HWS
24
Апаратний стек—Забезпечує доступ до апаратного стеку як двонаправлений LIFO буфер.
OMR
16
Регістр режиму роботи—Встановлює режим роботи ядра.
SR
16
Регістр стану — містить біти стану, контролю, і 5 старших бітів регістра програмного лічильника.
LC
16
Лічильник циклів—містить кількість циклів при апаратному зацикленні.
LC2
16
Лічильник циклів 2—Зберігає кількість циклів для зовнішнього зациклення.
Типи даних та способи адресації
DSP56800E містить великий набір регістрів і типів даних, що надає можливість реалізації ефективних алгоритмів цифрової обробки сигналів та алгоритмів керування загального призначення. Доступні звертання до пам’яті по байтам, словам та довгим. Великий набір режимів адресування покращує швидкість виконання та скорочує розмір коду.
Типи даних DSP56800E
Архітектура DSP56800E підтримує цілі типи даних байт (8 розрядів), слово (16 розрядів), і довге слово (32 розряди). Також підтримує дробові типи даних слово, довге слово та слово акумулятора (36 розрядів). Дробове і ціле зображення числа відрізняються в розташуванні десяткової (або двійкової) крапки. Для дробової арифметики, десяткова (або двійково) крапка завжди знаходиться відразу справа за старшим розрядом вагомішої частини. Для цілих значень, десяткова крапка завжди знаходиться справа від молодшого розряду.
Формати даних
16-розрядне ядро DSP підтримує 4 типи двокомпонентних формати даних:
• ціле зі знаком
• ціле без знаку
• дробове зі знаком
• дробове без знаку
Цілочисельні типи даних придатні для обчислень загального призначення, вони відомі для програмістів мікропроцесорів та мікроконтролерів. Дробові типи даних дозволяють реалізацію потужних чисельних алгоритмів та алгоритмів цифрової обробки сигналів.
Архітектура системи і периферійний інтерфейс
Програмний контролер, пристрій формування адреси (AGU) і арифметико-логічний пристрій даних (ALU) містять свої власні набори регістрів і контролюючу логічну схему, що дозволяє їм діяти незалежно і паралельно, що збільшує продуктивність. Є також незалежний пристрій розрядного маніпулювання, який реалізує ефективні операції маніпулювання розрядами. Кожні функціональний вузол взаємодіє з іншими пристроями, пам’яттю, і периферією, відображеною на пам’ять через внутрішні шини адреси і даних ядра. Див. рис. 2.2.3.
Рис. 2.2.3. Блок-схема ядра 56800E
Виконання команд конвеєризується щоб скористатись перевагами паралельних пристроїв, що суттєво знижує час виконання кожної команди
Основні компоненти ядра:
• Шини адрес
• Шини даних
• Арифметико логічний пристрій (ALU)
• Пристрій формування адреси (AGU)
• Програмний контролер (Program Controller)
• Пристрій порозрядних маніпуляцій (Bit-Manipulation Unit)
• Покращений вбудований пристрій емуляції (Enhanced OnCE Unit)
1) Адресні шини (address buses)
Адреси надаються внутрішній пам’яті даних X по двум однонаправленим 16-розрядним шинам, шині 1 адрес пам’яті X (XAB1) та шині 2 адрес пам’яті X (XAB2). Адреси програмної пам’яті подаються по 16-розрядній шині адрес програм (PAB). Шина XAB1 може подавати адреси для доступу як до внутрішньої, так і зовнішньої пам’яті, в той час коли шина XAB2 може подавати тільки адреси для доступу до внутрішньої пам’яті.
2) Шини даних (data buses)
Всередині мікропроцесора дані передаються одним з наступними шинами:
• Дві однонаправлені 32-розрядні шини:
— Шина даних ядра для читання (CDBR)
— Шина даних ядра для запису (CDBW)
• Дві однонаправлені 16-розрядні шини:
— Другорядна шина даних пам’яті X (XDB2)
— Програмна шина даних (PDB)
• Інтерфейс IP-BUS
Передача даних між АЛП та пам’ятю даних X використовує шини CDBR і CDBW коли виконується один доступ до пам’яті. Коли виконуються два одночасних читання з пам’яті, передача виконується по шинам CDBR та XDB2. Всі інші передачі даних використовують шини CDBR і CDBW, за виключенням передачі до периферійних пристроїв та з них, останні використовують шину даних периферійних пристроїв IP-BUS. Вибірка слова інструкції виникає одночасно по PDB. Структура шин даних підтримує основні операції переміщень типу регістр-регістр, регістр-пам’ять, а також пам’ять-регістр та може передавати до трьох 16-розрядних слів в одному командному циклі. Передачі даних між шинами виконуються в пристрої порозрядного керування шинами. При читанні будь-якого регістра меншого за 16 розрядів невикористані розряди заповнюються нулями.
3) Арифметико-логічний пристрій (ALU)
ALU виконує всі логічні та арифметичні операції над даними. Він складається з наступних частин:
• Трьох 16-розрядних вхідних регістра (X0, Y0 та Y1)
• Чотирьох 32-розрядних акумуляторних регістра (A, B, C і D)
• Одного блоку помножувача-акумулятора (MAC)
• Однорозрядного пристрою зсуву акумулятора
• Одного багаторозрядного пристрою арифметичного та логічного зсуву
• Двох 4-розрядних акумуляторних розширюючих регістра (A2 та B2)
• Одного обмежувача виходу MAC
• Одного обмежувача даних
Арифметико-логічний пристрій допускає виконання операцій множення, множення з накопиченням (з позитивним або негативним накопиченням), додавання, віднімання, зсуву та логічних операцій за один командний цикл. Операнди, що подаються до АЛП можуть бути 16, 32 або 36-розрядними та можуть братися з вхідних регістрів, областей пам’яті, безпосередніх даних або акумуляторів. Результати отримані в АЛП зберігаються в одному з акумуляторів. Додатково, деякі арифметичні інструкції зберігають свої 16-розрядні результати в одному з трьох вхідних регістрів або примо в пам’яті
4) Блок генерування адрес (address generation unit - AGU)
Блок генерування адрес (AGU) виконує всі операції обрахунків ефективних адрес та зберігання адрес. AGU працює паралельно з іншими блоками для зменшення накладки генерування адреси. Блок генерування адрес вміщує два АЛП, що дозволяє генерування двох 16-розрядних адрес за кожен командний цикл: одну для шини адрес пам’яті X1 (XAB1) або програмної шини адрес (PAB) та одну для шини адрес пам’яті X2 (XAB2). АЛП може напряму проадресувати 65,536 комірок в XAB1 або XAB2 та 65,536 комірок в PAB, він підтримує повний набір режимів адресування.
Блок генерування адрес вміщує наступні регістри:
• Чотири адресних регістри (R0-R3)
• Вказівник на стек (SP)
• Регістр зміщення (N)
• Регістр модифікатора (M01)
• Блок модульної арифметики
• Блок інкрементування/декрементування
Адресні регістри – це 16-розрядні регістри, котрі можуть містити адресу або дані. Кожен адресний регістр може містити адресу як для шини адрес пам’яті Х1 (XAB1) так і для програмної шини адрес (PAB). Регістри модифікатора та зміщення є 16-розрядними та контролюють модифікацію адресних регістрів. Регістр зміщення може також використовуватись для зберігання 16-розрядних даних.
5) Програмний контролер та блок апаратного циклу
Програмний контролер виконує наступні дії:
• Попередню вибірку інструкцій
• Декодування інструкцій
• Контролювання апаратного циклу
• Обробку переривання та виключних ситуацій
Програмний контролер складається з:
• Блоку лічильника команд
• Блоку вибірки та декодування інструкцій
• Логічних схем контролю за апаратним циклом
• Логічних схем контролю за перериваннями
• Регістрів контролю та статусу
Також всередині програмного контролера знаходиться:
• Чотири доступних користувачу регістра:
- Регістр циклічної адреси (LA)
- Регістр лічильника циклу (LC)
- Регістр статусу (SR)
- Регістр режиму роботи (OMR)
• Програмний лічильник (PC)
• Апаратний стек (HWS)
В додаток до перелічених операцій, програмний контролер контролює відображення пам’яті та режим роботи.Апаратний стек (HWS) це окремий внутрішній LIFO буфер, який складається з двох 16-розрядних слів, що зберігають адресу першої інструкції в апаратному циклі DO. Коли починається новий апаратний цикл, після виконання інструкції DO, адреса першої інструкції циклу заштовхується в вершину HWS, та встановлюється розряд LF в регістрі статусу SR.
6) Пристрій маніпулювання розрядами (bit-manipulation unit)
Передача даних між внутрішніми шинами виконується в пристрої маніпулювання шиною. Пристрій маніпулювання шинами схожий на матричний перемикач та може з’єднати будь-які з трьох внутрішніх шин без вводу затримок. Це дає можливість переміщення даних з програмної пам’яті в пам’ять даних. Пристрій маніпулювання шиною використовується також для передачі даних до PGDB на пристрої, що використовують його для під’єднання до вбудованої периферії.
Пристрій маніпулювання розрядами виконує операції над розрядними полями в словах пам’яті даних X, регістрах периферії, та всіх регістрах всередині ядра мікропроцесора DSP56800E. Пристрій маніпулювання розрядами допускає тестування, встановлення, очищення, або інвертування будь-яких розрядів, зазначених в 16-розрядній масці. Для інструкції “перехід по розрядному полю” (branch-on-bit-field), цей блок тестує розряди верхнього або нижнього байта 16-розрядного слова.
7) Покращений вбудований пристрій емуляції
(Enhanced On-Chip Emulation unit - Enhanced OnCE)
Вбудований пристрій емуляції (Enhanced OnCE) дає користувачу можливість взаємодіяти за допомогою засобів відлагодження з ядром мікропроцесора DSP56800E та його периферійними пристроями. Його можливості включають перевірку регістрів, регістрів вбудованих периферійних пристроїв або пам’яті, встановлення точок переривання в пам’яті даних або програм, а також покрокове виконання або трасування інструкцій. Вбудований пристрій емуляції забезпечує простий, дешевий та незалежний від швидкості доступ до внутрішніх блоків ядра мікропроцесора DSP56800E шляхом взаємодії з користувацьким інтерфейсом програми запущеної на робочій станції для складної відладки та економічного проектування системи.
Зовнішні блоки ядра DSP56800E
Пристрої на основі ядра DSP56800E містять кілька додаткових блоків пам’яті і периферійних пристроїв. Ці блоки забезпечують функціональнісь, необхідну для повної працездатної системи на одному кристалі.
Блок-схему мікропроцесора 56F8323 із всіма внутрішніми периферійними вузлами подано на рис. 2.2.3.Рис. 2.2.3. Блок-схема мікропроцесора 56F8323
Program Memory (Пам’ять програм)
Програмна пам’ять (RAM або ROM) може бути надана на кристалі в архітектурі DSP56800E. Шина PAB використовується для вибору адрес програмної пам’яті, вибірка інструкцій виконується через шину PDB. Запис 16-розрядних даних в програмну пам’ять виконується через шину CDBW.
Таблиця векторів переривань та перезавантаження може бути будь-якого розміру та розміщена будь-де в програмній пам’яті. Розмір таблиці визначається номером периферійних пристроїв та вимогами виконуваної пристроєм задачі.
Програмна пам’ять може бути розширена за межами кристалу, з максимальною адресацією 221 (2Mб) комірок (не доступно в 56F8323).
Data Memory (Пам’ять даних)
Вбудована на кристалі програмна пам’ять (RAM або ROM) може бути надана в архітектурі пристрою DSP56800E. Адреси в пам’яті даних вибираються по шинам XAB1 та XAB2. Передача даних розміром в байт, слово, та довге слово виконується по шинам CDBR та CDBW. Друга операція 16-розрядного читання може бути виконана паралельно по шині XDB2.
Регістри периферійних пристроїв відображені в адресний простір пам’яті даних. Набір інструкцій оптимізує доступ до регістрів периферійних пристроїв за допомогою спеціального режиму периферійного адресування, котрий робить можливим зробити доступ до 64-розрядних ділянок адресного простору периферійних пристроїв більш ефективним. Типовий діапазон адрес периферійних пристроїв лежить в адресах від $00FFC0 до $00FFFF, але деякі пристрої на основі мікропроцесора DSP56800EE можуть розмістити їх будь-де в області адрес пам’яті даних. Верхні 12 комірок адресного простору периферійних пристроїв зарезервовані архітектурою системи для ядра, пріоритету переривання та для регістрів конфігурування контролю за шинами.
Спеціальний режим адресації також існує для перших 64 комірок пам’яті даних. Так же як і в режимі адресації периферійних пристроїв, доступ до цих комірок може бути організований за допомогою використання одного слова, одного командного циклу.
Пам’ять даних може бути розширена за межами кристалу, з максимальною адресацією 224 комірок (16Mб) (не доступно в 56F8323).
Bootstrap Memory
(Пам’ять для зберігання програми початкового завантаження)
Пам’ять ROM для зберігання програми початкового завантаження зазвичай надається для пристроїв, що виконують програми з вбудованої пам’яті RAM а не з пам’яті ROM. Дана пам’ять використовується для завантаження прикладної програми в пам’ять RAM після сигналу Reset. Архітектура мікропроцесора DSP56800E забезпечує режим зберігання програми початкового завантаження, який вибирає інструкції з пам’яті ROM і конфігурує пам’ять RAM в режим тільки для читання. Регістр режиму роботи може бути потім перепрограмований на вибірку інструкцій з пам’яті RAM.
Інтерфейс зовнішньої шини
Інтерфейс зовнішньої шини в даній моделі мікроконтролера відсутній.
2.3. Реалізація в різних корпусах
Мікроконтролер 56F8323 поставляється в низькопрофільному квадратному плоскому (планарному) корпусі LQFP із 64-ма виводами, напруга живлення 3.0 - 3.6 В, номінальна частота ядра 60 МГц.
Випускається два варіанти даного мікропроцесора із різними дозволеними температурними режимами роботи:
Звичайний діапазон від -40° до + 105° C (код для замовлення MC56F8323VFB60)
Розширений діапазон від -40° до + 125° C (код для замовлення MC56F8323MFB60)
Зображення корпуса подано на Рис. 2.3.1.
Рис. 2.3.1. 64-котактний LQFP-корпус 56F8323, вигляд зверху
2.4. Функціональне призначення виводів
Номери, назви і призначення виводів, їх типи та стан після скиду подано в таблиці 2.4.1. Після скиду кожен вивід автоматично конфігурується на виконання своєї основної функції (записана першою). Будь-яка інша функція повинна програмуватися.
Функціональне призначення виводів 56F8323
Таблиця 2.4.1
Назвасигналу
Номер ніжки
Тип
Стан під час скиду
Опис сигналу
VDD_IO
6
живлення
Живлення входів/виходів — постачає живлення 3.3V до інтерфейсу вводу/виводу, а також до ядра процесора через вбудований стабілізатор напруги, якщо він дозволений.
VDD_IO
20
VDD_IO
48
VDD_IO
59
VDDA_OSC_PLL
42
живлення
Живлення кварцового генератора і PLL — постачає 3.3V до OSC і до внутрішнього стабілізатора, що в свою чергу живить PLL. Повинно бути під’єднано до чистого аналогового джерела живлення.
VDDA_ADC
41
живлення
Живлення АЦП — постачає 3.3V до модулів АЦП. Повинно бути під’єднано до чистого аналогового джерела живлення.
VSS
11
живлення
Земля — виводи забезпечують заземлення для логіки та пристрою керування портами вводу/виводу.
VSS
17
VSS
44
VSS
60
VSSA_ADC
39
живлення
Аналогова земля АЦП — забезпечує аналогове заземлення для модулів АЦП.
VCAP1
57
живлення
живлення
VCAP1-4 — Коли OCR_DIS підключено до VSS (стабілізатор дозволено), треба під’єднати кожен вивід до шунтуючих конденсатторів (2.2мкФ або більше), щоб шунтувати стабілізатор напруги ядра, що вимагається для належної роботи мікросхеми.
Коли OCR_DIS підключено до VDD, (стабілізатор заборонено), ці виводи стають VDD_CORE і повинні бути під’єднаними до стабілізованого джерела живлення 2.5V.
Зауваження: Цей шунт потрібний, навіть якщо мікросхема живиться від зовнішнього джерела.
VCAP2
23
VCAP3
5
VCAP4
43
OCR_DIS
45
Заборона вбудованого стабілізатора — підключити цей вивід до VSS, щоб дозволити вбудований стабілізатор, до VDD — щоб заборонити його використання.
Потенціял на цьому виводі повинен бути сталим. Не пробуйте перемикати цей вивід під час роботи для збереження енергії.
EXTAL
46
вхід
Шмітта
вхід
Вхід зовнішнього кварцового генератора — вхід може бути підключено до зовнішнього генератора 8MHz. Якщо зовнішній генератор використовується, то XTAL має використовуватись як вхід і EXTAL має бути підключеним до VSS.
Вхідний генератор може бути обраним для подачі сигналу прямо до ядра, а також до вбудованого PLL.
(GPIOCO)
вхід/вихід
вхід
Порт C GPIO — може бути незалежно запрограмовано як вхід чи вихід.
XTAL
47
вихід
Шмітта
вихід
Вихід тактового генератора — може бути підключено до зовнішнього генератора 8MHz. Якщо зовнішній генератор використовується, то XTAL має використовуватись як вхід і EXTAL має бути підключеним до VSS.
(GPIOC1)
вхід/вихід
вхід
Порт C GPIO — може бути незалежно запрограмовано як вхід чи вихід.
TCK
53
вхід Шмітта
вхід, вн. підтягнутий до низького рівня
Вхід тестового генератора синхроімпульсів — вхід забезпечує синхроімпульси, щоб синхронізувати випробувальну логічну схему і змістити послідовні дані в порт JTAG/EOnCE. Вхід через тригер Шмітта використовується для захисту від шумів.
TMS
54
вхід Шмітта
вхід, внутрішньо підтягнутий до високого рівня
Вхід вибору тестового режиму — використовується щоб керувати машиною станів контролера JTAG TAP. Вибірка проводиться по зростаючому фронту TCK.
TDI
55
вхід Шмітта
вхід, внутрішньо підтягнутий до високого рівня
Вхід тестових даних — забезпечує ввід потоку послідовних даних до порту JTAG/EOnCE. Вибірка проводиться по зростаючому фронту TCK.
TDO
56
вихід
3-ій стан
Вихід тестових даних — цей трьох-становий вихід забезпечує вивід потоку послідовних даних з порту JTAG/EOnCE. Керується станами shift-IR і shift-DR контролера і змінюється по спадаючому фронту TCK.
TRST
58
вхід Шмітта
вхід, внутрішньо підтягнутий до високого рівня
Тестовий скид — низький рівень на цьому вході передає сигнал скиду контролеру JTAG TAP. Щоб забезпечити повний апаратний скид, TRST треба встановлювати, щоразу, коли встановлено RESET. Єдине виключення – режим відлагодження – треба встановити RESET, але не встановлювати TRST. Щоб відключити внутрішній підтягуючий резистор, встановіть біт JTAG в регістрі SIM_PUDR.
PHASEAO
52
вхід Шмітта
вхід
Phase A — Квадратурний декодер 0, вхід PHASEA
(TAO)
вхід/вихід Шмітта
вхід
TAO — лічильник A, канал 0
(GPIOB7)
вхід/вихід Шмітта
вхід
Порт B GPIO — може бути незалежно запрограмовано як вхід чи вихід.
(oscillator_clock)
вихід
вихід
Вивід синхроімпульсів – може використовуватись для спостерігання за синхроімпульсами внутрішнього генератора (регістр вибору CLKO, SIM_CLKOSR).
PHASEB0
51
вхід Шмітта
вхід
Phase B — Квадратурний декодер 0, вхід PHASEB
(TA1)
вхід/вихід Шмітта
вхід
TA1 — лічильник A , канал 1
(GPIOB6)
вхід/вихід Шмітта
вхід
Порт B GPIO — може бути незалежно запрограмовано як вхід чи вихід.
(SYS_CLK2)
вихід
вихід
Вивід синхроімпульсів – може використовуватись для спостерігання за внутрішнім сигналом SYS_CLK2.
INDEX0
50
вхід
Шмітта
вхід
Index — Квадратурний декодер 0, вхід INDEX
(TA2)
вхід/вихід Шмітта
вхід
TA2 — лічильник A, канал 2
(GPIOB5)
вхід/вихід Шмітта
вхід
Порт B GPIO — може бути незалежно запрограмовано як вхід чи вихід.
(SYS_CLK)
вихід
вихід
Вивід синхроімпульсів – може використовуватись для спостерігання за внутрішнім сигналом SYS_CLK.
HOMEO
49
вхід Шмітта
вхід
Home — Квадратурний декодер 0, вхід HOME
(TA3)
вхід/вихід
Шмітта
вхід
TA3 — лічильник A, канал 3
(GPIOB4)
вхід/вихід
Шмітта
вхід
Порт B GPIO — може бути незалежно запрограмовано як вхід чи вихід.
(prescaler_clock)
вихід
вихід
Вивід синхроімпульсів – може використовуватись для спостерігання за внутрішнім сигналом prescaler_clock
SCLKO
25
вхід/вихід
Шмітта
3-ій стан
Синхроімпульси SPI 0 — в режимі master, цей вивід видає синхроімпульси підпорядкованим слухачам. В режимі, це вивід служить входом для синхроімпульсів.
(GPIOB3)
вхід/вихід
Шмітта
вхід
Порт B GPIO — може бути незалежно запрограмовано як вхід чи вихід.
MOSIO
24
вхід/вихід
Шмітта
3-ій стан
SPI 0 Master Out/Slave In — цей послідовний контакт даних є виходом від master-пристрою і входом для slave-пристрою. Master-пристрій встановлює дані на лінії MOSI за півтакту до фронту імпульсу, який slave-пристрій використовує, щоб закріпити дані.
(GPIOB2)
вхід/вихід
Шмітта
вхід
Порт B GPIO — може бути незалежно запрограмовано як вхід чи вихід.
MISOO
22
вхід/ихід
Шмітта
вхід
SPI 0 Master In/Slave Out — цей послідовний контакт даних є входом для master-пристрою і виходом від slave-пристрою. Лінія MISO slave-пристрою встановлюється у високоімпедансний стан якщо slave-пристрій не вибрано. Slave-пристрій встановлює дані на лінію MISO за пів півтакту до фронту імпульсу, який master-пристрій використовує, щоб закріпити дані.
(RXD1)
вхід
Шмітта
вхід
Вхід приймання даних SCI1
(GPIOB1)
вхід/вихід
Шмітта
вхід
Порт B GPIO — може бути незалежно запрограмовано як вхід чи вихід.
SSO
21
вхід Шмітта
вхід
SPI 0 Slave Select — SSO використовується, щоб вказати модулю SPI, що поточна передача зараз буде прийнята.
(TXD1)
вихід
3-ій стан
Вихід передачі даних — SCI1
(GPIOBO)
вхід/вихід Шмітта
вхід
Порт B GPIO — може бути незалежно запрограмовано як вхід чи вихід.
PWMAO
3
вихід
3-ій стан
PWMAO — це 1 з 6 виходів PWMA.
(GPIOAO)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
PWMA1
4
вихід
3-ій стан
PWMA1 — це 1 з 6 виходів PWMA.
(GPIOA1)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
PWMA2
7
вихід
3-ій стан
PWMA2 — це 1 з 6 виходів PWMA.
(SS1)
вхід
Шмітта
вхід
SPI1 Slave Select — використовується, щоб вказати модулю SPI, що передача зараз буде прийнята.
(GPIOA2)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
PWMA3
8
вихід
3-ій стан
PWMA3 — це 1 з 6 виходів PWMA.
(MIS01)
вхід/вихід Шмітта
вхід
SPI1 Master In/Slave Out — цей послідовний контакт даних є входом для master-пристрою і виходом від slave-пристрою. Лінія MISO slave-пристрою встановлюється у високоімпедансний стан якщо slave-пристрій не вибрано. Slave-пристрій встановлює дані на лінію MISO за пів півтакту до фронту імпульсу, який master-пристрій використовує, щоб закріпити дані.
(GPIOA3)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
PWMA4
9
вихід
3-ій стан
PWMA4 — це 1 з 6 виходів PWMA.
(MOSI1)
Шмітта вхід/вихід
3-ій стан
SPI1 Master Out/Slave In — цей послідовний контакт даних є виходом від master-пристрою і входом для slave-пристрою. Master-пристрій встановлює дані на лінії MOSI за півтакту до фронту імпульсу, який slave-пристрій використовує, щоб закріпити дані.
(GPIOA4)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
PWMA5
10
вихід
3-ій стан
PWMA5 — це 1 з 6 виходів PWMA.
(SCLK1)
вхід/вихід Шмітта
вхід
SPI1 Serial Clock — в режимі master, цей вивід видає синхроімпульси підпорядкованим слухачам. В режимі, це вивід служить входом для синхроімпульсів.
(GPIOA5)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
FAULTAO
13
вхід
Шмітта
вхід
FAULTAO — цей вхід збою використовується для відключення вибраних виходів PWMA у випадках, коли in збій відбувся поза мікросхемою.
(GPIOA6)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
FAULTA1
14
вхід Шмітта
вхід
FAULTA1 — цей вхід збою використовується для відключення вибраних виходів PWMA у випадках, коли збій відбувся поза мікросхемою.
(GPIOA7)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
FAULTA2
15
вхід Шмітта
вхід
FAULTA2 — цей вхід збою використовується для відключення вибраних виходів PWMA у випадках, коли in збій відбувся поза мікросхемою.
(GPIOA8)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
ISA0
16
вхід Шмітта
вхід
ISAO — цей контакт поточного стану ніжки використовується для корекції ширини нижніх/верхніх імпульсів у додатковому режимі роботи каналу для PWMA.
(GPIOA9)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
ISA1
18
вхід Шмітта
вхід
ISA1 — цей контакт поточного стану ніжки використовується для корекції ширини нижніх/верхніх імпульсів у додатковому режимі роботи каналу для PWMA.
(GPIOA10)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
ISA2
19
вхід Шмітта
вхід
ISA2 — цей контакт поточного стану ніжки використовується для корекції ширини нижніх/верхніх імпульсів у додатковому режимі роботи каналу для PWMA.
(GPIOA11)
вхід/вихід Шмітта
вхід
Порт A GPIO — може бути незалежно запрограмовано як вхід чи вихід.
ANAO
26
вхід
вхід
ANA0 - 3 — аналогові входи АЦП ADCA, канал 0.
ANA1
27
ANA2
28
ANA3
29
ANA4
30
вхід
вхід
ANA4 - 7 — аналогові входи АЦП ADCA, канал 1.
ANA5
31
ANA6
32
ANA7
33
VREFH
40
вхід Шмітта
вхід
VREFH — висока аналогова опорна напруга.
VREFP
37
вхід/вихід
вхід/ вихід
VREFP, VREFMID і VREFN — внутрішні виводи для опорної напруги, виведені назовні для можливості їх шунтування. Під’єднати до керамічного ESR-конденсатора 0.1 нФ.
VREFMID
36
VREFN
35
VREFLO
38
вхід Шмітта
вхід
VREFLO — низька аналогова опорна напруга. Звичайно повинно під’єднуватись до низько-шумової землі VSS.
TEMP_SENSE
34
вихід
вихід
Температурний сенсор діод — цей вивід підключено до внутрішнього термодіода, що може підключатися до одного з входів АЦП і використовуватись для спостерігання за температурою кристалу. Повинен шунтуватися конденсатором 0.01 нФ
CAN_RX
61
вхід Шмітта
вхід
Приймання даних FlexCAN — це вхід CAN. Цей вхід має внутрішній.
(GPIOC2)
вхід/вихід Шмітта
вхід
Порт C GPIO — може бути незалежно запрограмовано як вхід чи вихід.
CAN_TX
62
вихід
3-ій стан
FlexCAN передача даних — вихід CAN.
(GPIOC3)
вхід/вихід Шмітта
вхід
Порт C GPIO — може бути незалежно запрограмовано як вхід чи вихід.
TCO
1
вхід/вихід
Шмітта
вхід
TCO — лічильник C, канал 0.
(TXDO)
вхід
3-ій стан
Вихід передачі даних SCIO.
(GPIOC6)
вхід/вихід Шмітта
вхід
Порт C GPIO — може бути незалежно запрограмовано як вхід чи вихід.
TC1
64
вхід/вихід Шмітта
вхід
TC1 — лічильник C, канал 1.
(RXDO)
Шмітта
вхід
вхід
Вхід приймання даних SCIO.
(GPIOC5)
вхід/вихід Шмітта
вхід
Порт C GPIO — може бути незалежно запрограмовано як вхід чи вихід.
TC3
63
вхід/вихід Шмітта
вхід
TC1 — лічильник C канал 3.
(GPIOC4)
вхід/вихід Шмітта
вхід
Порт C GPIO — може бути незалежно запрограмовано як вхід чи вихід.
IRQA
12
вхід Шмітта
вхід
Запит на зовнішнє переривання A — вхід IRQA є асинхронним запит на зовнішнє переривання у режимах Stop і Wait. У інших режимах роботи, вхід є синхронізованим і показує, що зовнішній пристрій вимагає обслуговування. Він може бути перепрограмованим на чутливість до рівнів сигналу, або на спрацювання по задньому фронту.
(VPP)
вхід
н/д
VPP — для відлагодження Flash-пам’яті.
RESET
2
вхід Шмітта
вхід
Reset — цей вхід є прямим апаратним скидом процесора. Коли RESET встановлюється у низький рівень, пристрій ініціалізується і встановлюється у стан скиду. Вхід через тригер Шмітта використовується для захисту від шумів. Внутрішній сигнал скиду буде знято синхронно з внутрішніми синхроімпульсами після встановленого числа імпульсів.
Щоб забезпечити повний апаратний скид, RESET і TRST повинні встановлюватись разом. Єдине виключення – режим відлагодження, необхідний апаратний скид пристрою, але модуль JTAG/EOnCE скидати не потрібно. В цьому випадку треба встановити RESET, а...