Проектування мікрокомп’ютера

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Комп'ютерна інженерія
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2016
Тип роботи:
Курсова робота
Предмет:
Мікропроцесорні системи
Група:
КІ 31

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ Курсова робота з предмету: «Мікропроцесорні системи» на тему: «Проектування мікрокомп’ютера» Підготував: ст. гр. КІ-41 Прийняв: доц. каф. ЕОМ Пуйда В.Я. Львів 2016 Анотація В даній курсовій роботі розроблено мікрокомп’ютер на базі мікропроцесора ATxmega128A3. Для роботи з великим обсягом даних підключено зовнішню пам'ять типу F-RAM. Розроблено вузол синхронізації та вузол скиду. Спроектовано функціональну та принципову електричні схеми та реалізовано програмну частину системи. Вступ З розвитком сучасної науки, промислових та мобільних технологій виникає потреба в обробці великих масивів даних. Із підвищенням вимог до надійності та швидкості роботи, від мікроконтролерів вимагають високу обчислювальну потужність, збільшену пам'ять програм та даних а також низьке енергоспоживання. Сучасні мікроконтролери повністю задовольняють усі ці вимоги та дозволяють реалізувати проект практично будь-якої складності - від вимірювальних пристроїв до технічних систем спеціального призначення (військова промисловість, авіація, автомобілі і т.д). Основною метою курсової роботи є розробка високопродуктивної мікропроцесорної системи, здатної ефективно вирішувати поставлені перед нею завдання. Реалізація поставленого завдання проводиться за допомогою процесора ATxmega128A3, постійної та оперативної пам’яті а також периферійного вузла І2С. Така реалізація є доцільною, оскільки технічні характеристики даної конфігурації повністю задовільняють вимоги розроблюваної системи. Дане технічне рішення може застосовуватися у різноманітних галузях, зокрема у промисловості, побутовій та комп’ютерній техніці. Зміст 1. Початкові дані на проектування 4 2. Опис мікроконтролера 5 2.1. Мікроконтролер 5 2.1.1. Основні характеристики 5 2.1.2. Внутрішня структура 7 2.1.3. Ядро 9 2.1.4. Програмна модель 12 2.1.5. Структура пам’яті 13 2.1.6. Коротка характеристика системи команд 14 2.1.7. Вузол синхронізації (PLL) 17 2.1.8. Вузол початкової установки (Reset) 18 2.1.9. Пiдсистема вводу-виводу (інтерфейс I2C) 20 2.1.10. Призначення контактів 21 2.1.11. Конструктивне зображення мікросхеми 23 3. Розробка схеми електричної функціональної 24 4. Розробка схеми електричної принципової 26 4.1. Проектування вузла синхронізації 26 4.2. Проектування вузла скиду 26 4.3. Зовнішня пам'ять 28 4.4. Проектування інтерфейсу I2C 32 5. Програма початкової ініціалізації 34 5.1. Опис алгоритму 34 5.2. Блок-схема алгоритму 35 Висновок 36 Література 37 Додатки 38 1. Початкові дані на проектування 1. Тип мiкроконтролера - ATxmega128A3; 2. Оперативна пам’ять: тип м/сх - FM24СL64 (RAM 64Kx8); 3. Периферійний пристрій –I2C. 2. Опис мікроконтролера 2.1. Мікроконтролер Сімейство megaAVR є найбільш різноманітним з точки зору характеристик мікроконтролерів, наприклад обсягів пам'яті, кількості виходів, набору периферійних пристроїв, можливість повторного використання коду в різних проектах. Ці пристрої оптимізовані для скорочення циклу розробки і володіють найефективнішою в галузі архітектурою для програмування мовою С і асемблері. Мікроконтролери megaAVR оснащені вбудованою флеш-пам'яттю, пам'яттю SRAM, внутрішньою пам'яттю EEPROM, інтерфейсами SPI, TWI (I2C), USB, CAN, LIN, USART, сторожовим таймером, зовнішнім або внутрішнім прецизійним генератором і контактами для введення / виведення даних загального призначення, що спрощує проектування і скорочує перелік використовуваних в системі компонентів. 2.1.1. Основні характеристики • Висока продуктивність, низьке енергоспоживання; • Незалежність програми і пам'яті даних: - 64 КБ - 256 КБ Flash-пам’ять; - 4 КБ - 8 KB розділ завантаження коду з незалежними бітами блокування; - 2 КБ - 4 КБ EEPROM; - 4 КБ - 16 КБ Внутрішня SRAM; • Периферійні функції: - Чотири канали DMA-контролера з підтримкою зовнішніх запитів; - Восьмиканальна система подій; - Сім 16-розрядних таймерів / лічильників; Чотири таймера / лічильника з 4 виходами компаратора або каналів введення Три таймер / лічильники з 2 результатами порівняння чи каналами введення Високі розширення дозволів на всіх таймерах / лічильниках - Сім USART; Розширення IrDA 1 USART; - AES і DES Crypto Engine; - Два двопровідних інтерфейси з подвійною парою адрес (I2C і SMBus сумісний); - Три SPI (Serial Peripheral Interface); - 16-розрядний лічильник реального часу з окремим генератором; - Два восьмиканальних, 12-бітних, 2 Мс аналого-цифрових перетворювачів; - Один двоканальний, 12-бітний, 1 Мс цифрово-аналоговий перетворювач; - Чотири аналогових компаратора з вікном функції порівняння; - Зовнішні переривання на всі контакти введення / виведення загального призначення; - Програмований сторожовий таймер з Separate On-chip Ultra Low Power Oscillator • Спеціальні функції мікроконтролера - Power-on Reset and Programmable Brown-out Detection; - Параметри внутрішнього і зовнішнього годинник з ФАПЧ (Фазове автопідстроювання частоти); - Програмований багаторівневий контролер переривань; - Режими сну: Idle, Power-down, в режимі очікування, економії енергії, Extended Standby; - Розширене програмування, тестування і налагодження інтерфейсу; JTAG (IEEE 1149.1 сумісний) - інтерфейс для тестування, налагодження та програмування; PDI (Програма і інтерфейс налагодження) - для програмування, тестування і налагодження; • I / O і пакети - 50 ліній програмованих входів / виходів; - 64-вихідний TQFP; - 64-накладка QFN; • Робоча напруга - 1.6 - 3.6V • Швидкодія - 0 - 12 МГц @ 1.6 - 3.6V - 0 - 32 МГц @ 2,7 - 3,6V 2.1.2. Внутрішня структура ATxmega128A3 містить наступні елементи: 64 КБ внутрішньосистемно програмованої флеш-пам'яті з підтримкою читання під час запису, 2 КБ EEPROM, 4 КБ статичного ОЗП, 50 ліній універсального введення-виводу, 32 універсальних робочих регістра, лічильник реального часу (RTC), три гнучких таймера-лічильника з режимами порівняння і I2C, USART, двопровідний послідовний інтерфейс орієнтований на передачу байт, два 8-канальних 12-розрядних АЦП, програмований сторожовий таймер з внутрішнім генератором, послідовний порт SPI, а також шість програмно вибраних режимів зменшення потужності. Режим холостого ходу (Idle) зупиняє ЦПУ, але при цьому підтримуючи роботу статичного ОЗП, таймерів-лічильників, SPI-порту і системи переривань. Режим виключення (Powerdown) дозволяє зберегти вміст регістрів, при зупиненому генераторі і виключенні вбудованих функцій до наступного переривання або апаратного скидання. В економічному режимі (Power-save) асинхронний таймер продовжує роботу, дозволяючи користувачеві зберегти функцію відліку часу в той час, коли інша частина контролера знаходиться в стані сну. Режим зменшення шумів АЦП зупиняє ЦПУ і всі модулі введення-виведення, крім асинхронного таймера й АЦП для мінімізації імпульсних шумів у процесі перетворення АЦП. В черговому режимі (Standby) кварцовий/коробку резонатора генератор продовжують роботу, а інша частина мікроконтролера знаходиться в режимі сну. Даний режим характеризується малою споживаною потужністю, але при цьому дозволяє досягти найшвидшого повернення в робочий режим. Мікроконтролер виробляється за технологією високощільної енергонезалежної пам'яті компанії Atmel. Вбудована внутрішньосистемно програмована флеш-пам'ять дозволяє перепрограмувати пам'ять програм безпосередньо усередині системи через послідовний інтерфейс SPI за допомогою простого програматора або за допомогою автономної програми в завантажувальному секторі. Завантажувальна програма може використовувати будь-який інтерфейс для завантаження прикладної програми у флеш-пам'ять. Програма в завантажувальному секторі продовжує роботу в процесі відновлення прикладної секції флэш-пам'яті. Читання під час запису. За рахунок поєднання 8-розрядної RISC ЦПУ з внутрисистемно самопрограмованою флеш- пам'яттю в одній мікросхемі ATxmega128A3 є потужним мікроконтролером, що дозволяє досягти високої ступеня гнучкості й ефективної вартості при проектуванні більшості додатків вбудованого управління. ATxmega128A3 підтримується повним набором програмних і апаратних засобів для проектування, в т. ч.: Сі- компілятори, макроасемблери, програмні відлагоджувачі/симулятори, внутрішньосистемні емулятори і оціночні набори. / Рис. 2.1. Архітектура ATxmega128A3 2.1.3. Ядро Основна функція ядра ЦП полягає в гарантуванні коректності виконання програми. Крім цього, ЦП повинен мати можливість адресуватися до різних видів пам'яті, виконувати обчислення, управляти периферійними пристроями і обробляти переривання. / Рис. 2.2. Функціональна схема ядра З метою досягнення максимальної продуктивності і паралелізму у AVR-мікроконтролерів використовується Гарвардська архітектура з роздільними пам'яттю і шинами програм і даних. Команди в пам'яті програм виконуються з однорівневою конвеєризацією. У процесі виконання однієї інструкції наступна попередньо зчитується з пам'яті програм. Дана концепція дозволяє виконувати одну інструкцію за один машинний цикл. Пам'ять програм являє собою внутрисистемно програмовану флеш-пам'ять. Регістровий файл зі швидким доступом містить 32x8-бітних робочих регістрів загального призначення з однотактовим циклом доступу. Завдяки цьому досягнута однотактність роботи арифметико-логічного пристрою (АЛП). При звичайній роботі АЛП спочатку з регістрового файлу завантажується два операнда, потім виконується операція, а після результат відправляється назад у регістровий файл і все це відбувається за один машинний цикл. 6 регістрів з 32 можуть використовуватися як три 16-бітні регістра непрямої адреси для ефективної адресації в межах пам'яті даних. Один з цих покажчиків адреси може також використовуватися як покажчик адреси для доступу до таблиці перетворення у флеш-пам'яті програм. Дані 16-бітні регістри називаються X-регістр, Y-регістр і Z-регістр. АЛП підтримує арифметичні і логічні операції між регістрами, а також між константою і регістром. Крім того, АЛП підтримує дії з одним регістром. Після виконання арифметичної операції регістр статусу обновлюється для відображення результату виконання операції. Процес виконання програми забезпечується умовним та безумовним переходом і команд виклику, які в змозі безпосередньо адресувати ціле адресний простір. У більшості інструкцій AVR є єдиний 16-розрядний формат слова. Кожна адреса пам'яті програм містить 16- або 32-розрядну інструкцію. Флеш-пам'ять програм розділена на дві секції: секція програми початкової завантаження і секція прикладної програми. Обидві секції мають роздільні біти захисту від запису і читання/запису. Інструкція SPM (запис у секцію прикладної програми) повинна використовуватися тільки усередині секції програми початкової завантаження. При генерації переривання і виклику підпрограм адреса повернення з програмного лічильника записується в стек. Стек ефективно розподілений у статичному ОЗП пам'яті даних і, отже, розмір стека обмежений загальним розміром статичного ОЗП і використовуваним його обсягом. В будь-якій програмі відразу після скидання повинна бути виконана ініціалізація покажчика стека (SP) (тобто перед виконанням процедур обробки переривань або викликом підпрограм). Покажчик стека - SP - доступний для читання і запису у просторі введення-виведення. Доступ до статичного ОЗП даних може бути легко здійснений через 5 різних режимів адресації архітектури AVR. Простір пам'яті в архітектурі AVR - лінійний і безперервний. Гнучкий модуль переривань містить свої керуючі регістри в просторі введення-виведення і має додатковий біт загального дозволу роботи системи переривань у регістрі статусу. У всіх переривань є свій вектор переривання відповідно до таблиці векторів переривань. Переривання мають пріоритет згідно з позицією їх вектора. Переривання з меншою адресою переривання мають більш високий пріоритет. Простір пам'яті введення-виведення містить 64 адреси периферійних функцій ЦП як Регістри Управління, SPI, та інші функції вводу-виводу. До Пам'яті вводу -виведення можна отримати доступ безпосередньо, або як до пам'яті даних наступна за регістрами за адресами 0x20 - 0x5F. 2.1.4. Програмна модель Рис. 2.3. Програмна модель / Рис. 2.4. Структура 32 регістрів загального призначення в ЦПУ 2.1.5. Структура пам’яті Пам'ять AVR-мікроконтролера розділена на дві області: пам'ять даних і пам'ять програм. Крім того, ATxmega128A3 містить пам'ять на EEPROM для енергонезалежного зберігання даних. Всі три області пам'яті є лінійними і рівномірними. / Рис. 2.5. Розподіл адрес пам’яті програм / Рис. 2.6. Карта пам’яті даних 2.1.6. Коротка характеристика системи команд Синтаксис більшості команд асемблерної мови складається з мнемонічного позначення функції, за яким йдуть операнди, які вказують методи адресації і типи даних. Різні типи даних або режими адресації визначаються встановленими операндами, а не змінами мнемонічних позначень. Систему команд умовно можна розбити на такі групи: Арифметичні команди; Логічні команди; Команди передачі даних; Команди бітового процесора; Команди розгалуження та передачі управління. Типи адресації операндів-джерел: Реєстрова адресація Пряма адресація Побічно-реєстрова адресація Безпосередня адресація Таблиця 2.1. Системи команд ATxmega128A3 Позначення Функція  ADC Скласти з перенесенням  ADD Скласти без переносу  ADIW Скласти безпосереднє значення зі словом  AND Виконати логічне AND  ANDI Виконати логічне AND c безпосереднім значенням  ASR Арифметично зрушити вправо  BCLR Очистити прапор  BLD Завантажити T прапор біт регістра  BRBC Перейти якщо біт в регістрі статусу очищений  BRBS Перейти якщо біт в регістрі статусу встановлений  BRCC Перейти якщо прапор переносу очищений  BRCS Перейти якщо прапор переносу встановлений  BREQ Перейти якщо одно  BRGE Перейти якщо більше або дорівнює (з урахуванням знака)  BRHC Перейти якщо прапор полупереноса очищений  BRHS Перейти якщо прапор полупереноса встановлений  BRID Перейти якщо глобальне переривання заборонено  BRIE Перейти якщо глобальне переривання дозволено  BRLO Перейти якщо менше (без знака)  BRLT Перейти якщо менше ніж (зі знаком)  BRMI Перейти якщо мінус  BRNE Перейти якщо не одно  BRPL Перейти якщо плюс  BRSH Перейти якщо дорівнює або більше (без знака)  BRTC Перейти якщо прапор T очищений  BRTS Перейти якщо прапор T встановлений  BRVC Перейти если переполнение очищено  BRVS Перейти якщо переповнення встановлено  BSET Встановити прапор  BST Переписати біт з регістра під прапор T  CALL Виконати довгий виклик підпрограми  CBI - Очистити біт в регістрі I/O  CBR Очистити біти в регістрі  CLC Очистити прапор переносу  CLH Очистити прапор полупереноса  CLI Очистити прапор глобального переривання  CLN Очистити прапор від'ємного значення  CLR Очистити регістр  CLS Очистити прапор знака  CLT Очистити прапор T  CLV Очистити прапор переповнення  CLZ Очистити прапор нульового значення  COM Виконати доповнення до одиниці  CP Порівняти  CPC Порівняти з урахуванням перенесення  CPI Порівняти константою c  CPSE Порівняти і пропустити якщо одно  DEC Декрементировать  EOR Виконати виключає OR  ICALL Викликати підпрограму побічно  IJMP Перейти побічно  IN Завантажити дані з порту I/O в регістр  INC Инкрементировать  FMUL Дробове незнаковое множення  FMULS Дробове множення зі знаком  FMULSU Дробове знакового множення з незнайомим  JMP Перейти  LD Rd,X Завантажити побічно  LD Rd,X+ Завантажити побічно инкрементировав згодом  LD Rd,-X Завантажити побічно декрементировав попередньо  LDI Завантажити безпосереднє значення  LDS Завантажити безпосередньо з СОЗУ  LPM Завантажити байт пам'яті програм  LSL Логічно зрушити вліво  LSR Логічно зрушити вправо  MOV Копіювати регістр  MUL Перемножити  NEG Виконати доповнення до двох  NOP Виконати команду холосту  OR Виконати логічне OR  ORI Виконати логічне OR з безпосереднім значенням  OUT Записати дані з регістра в порт I/O  POP Завантажити регістр з стека  PUSH Помістити в регістр стек  RCALL Викликати підпрограму щодо  RET Повернутися з підпрограми  RETI Повернутися з переривання  RJMP Перейти щодо  ROL Зрушити вліво через перенесення  ROR Зрушити вправо через перенесення  SBC Відняти з перенесенням  SBCI Відняти безпосереднє значення з перенесенням  SBI Встановити біт в регістр I/O  SBIC Пропустити якщо біт в регістрі I/O очищений  SBIS Пропустити якщо біт в регістрі I/O встановлений  SBIW Відняти безпосереднє значення слова  SBR Встановити біти в регістрі  SBRC Пропустити якщо біт в регістрі очищений  SBRS Пропустити якщо біт в регістрі встановлений  SEC Встановити прапор переносу  SEH Встановити прапор полупереноса  SEI Встановити прапор глобального переривання  SEN Встановити прапор від'ємного значення  SER Встановити всі біти регістра  SES Встановити прапор знака  SET Встановити прапор T  SEV Встановити прапор переповнення  SEZ Встановити прапор нульового значення  SLEEP Встановити режим SLEEP  ST X,Rr Записати побічно  ST Y,Rr Записати побічно з регістра в СОЗУ з використанням індексу Y  ST Z,Rr Записати побічно з регістра в СОЗУ з використанням індексу Z  STS Завантажити безпосередньо в СОЗУ  SUB Відняти без переносу  SUBI Відняти безпосереднє значення  SWAP Поміняти місцями нибблы  TST Перевірити на нуль або мінус  WDR Скинути сторожовий таймер     2.1.7. Вузол синхронізації (PLL) Не обов'язково вся синхронізація повинна працювати в один час. В цілях зниження енергоспоживання тактування використовуваних модулів може бути припинено шляхом переведення в різні режими сну. XTAL1 і XTAL2 - вхід і вихід, відповідно, інвертуючого підсилювача, який може бути налаштований для використання в якості вбудованого генератора. Для завдання частоти може використовуватись або кварцовий або керамічний резонатор. Конфігураційний біт CKOPT вибирає один з двох режимів підсилювача генератора. Якщо CKOPT запрограмований, то амплітуда коливань вихідного сигналу генератора буде обмежена рівнями живлення. Цей режим рекомендується використовувати при високому рівні навколишніх шумів або при використанні виходу XTAL2 в якості джерела синхронізації зовнішньої схеми. Даний режим характеризується широким частотним діапазоном. Якщо CKOPT - незапрограмований, то амплітуда вихідних коливань генератора знижується. Використання даного режиму дозволяє істотно знизити споживану потужність, але при цьому обмежений частотний діапазон і не можна XTAL2 використовувати для зовнішньої синхронізації. При використанні резонаторів максимальна частота дорівнює 12 МГц, якщо CKOPT - незапрограмований, і 32 МГц, якщо CKOPT - запрограмований. C1 і C2 повинні бути завжди рівні незалежно від використання кварцового або керамічного резонатора. Оптимальне значення ємностей конденсаторів залежить від використання кварцового або керамічного резонатора, від значення паразитної ємності і від навколишнього рівня електромагнітного шуму. Якщо необхідно тактувати мікроконтролер від зовнішнього джерела, то його необхідно підключити до виходу XTAL1. У цьому випадку зовнішня синхронізація має бути дозволена записом в конфігураційні біти СКСЕЛ значення "0000". Якщо запрограмувати конфігураційний біт CKOPT, то між XTAL1 і GND буде підключений внутрішній конденсатор номіналом 36 пФ. 2.1.8. Вузол початкової установки (Reset) В процесі скидання у всі регістри вводу-виводу записуються їх початкові значення і виконання програми починається з вектора скидання. По вектору скидання повинна зберігатися інструкція абсолютного переходу JMP на мітку процедури обробки скидання. Якщо в програмі не використовуються джерела переривання, то вектори переривань не використовуються, а зарезервовані під них комірки пам'яті можуть використовуватися для рівномірного розташування коду програми. Є також випадок, коли вектор скидання розташований у секції прикладної програми, а вектори переривань знаходяться в завантажувальному секторі або навпаки. Після припинення дії всіх джерел скидання набирає чинності лічильник затримки, що подовжує внутрішнє скидання. Дана послідовність вимагається для гарантування запуску мікроконтролера при досягненні напругою живлення стабільного рівня. Тривалість затримки при старті визначається конфігураційними бітами CKSEL. ATxmega128A3 має чотири джерела скидання: • Скидання при подачі живлення. Мікроконтролер переходить в стан скидання, якщо напруга живлення нижче порога скидання при подачі живлення (VPOT). • Зовнішнє скидання. Мікроконтролер переходить в стан скидання, якщо на вихід RESET подати низький логічний рівень на час довше, ніж мінімальна тривалість імпульсу скидання. • Скидання по сторожовому таймері. Якщо дозволена робота сторожового таймера і стек період його спрацьовування, то мікроконтроллер скидається. • Скидання при зниженні живлення. Мікроконтролер скидається, якщо напруга живлення VCC стає нижче порогового значення (VBOT) та дозволена робота схеми контролю живлення BOD. / Рис. 2.7. Логіка скиду 2.1.9. Пiдсистема вводу-виводу (інтерфейс I2C) Послідовна шина даних (ПШД), призначена для організації гнучкої послідовної зв'язку. Відмінні особливості: • Повнодуплексна робота (роздільні регістри послідовного прийому і передачі) • Асинхронна або синхронна робота • Провідне або підлегле тактирование зв'язку в синхронному режимі роботи • Висока роздільна здатність генератора швидкості зв'язку • Підтримка формату переданих даних з 5, 6, 7, 8 або 9 бітами даних і 1 або 2 стоп-битами • Апаратна генерація і перевірка біта паритету (парність / непарність) • Визначення переповнення даних • Визначення помилки в структурі посилки • Фільтрація шуму з виявленням помилкового старт-біта і цифровим ФНЧ • Три роздільних переривання по завершенні передачі, звільненні регістра переданих даних і завершенні прийому • Режим многопроцессорной зв'язку • Режим подвоєння швидкості зв'язку в асинхронному режимі 2.1.10. Призначення контактів / Рис. 2.8. Корпус і призначення виводів Таблиця 2.2. Призначення виводів VCC Напруга живлення цифрових елементів  GND Загальний  Port B (PB7..PB0) XTAL1/XTAL2/TOSC1/TOSC2 Порт B - 8-разр. порт двонаправленого вводу-виводу з внутрішніми резисторами. Вихідні буфери порту мають симетричну вихідну характеристику з однаковими впливаючими і випливаючими струмами. При введенні, лінії порту B будуть діяти як джерело струму, якщо зовні діє низький рівень і включені резистори. Виводи порту B знаходяться в третьому стані при виконанні умови скидання, навіть якщо синхронізація не запущена. В залежності від налаштувань фюзів генератора PB6 може бути як інверсний вхід генератора так і введено до внутрішнього годинника через операційний підсилювач. Якщо Внутрішній Калібрований RC генератор використовується в якості тактового джерела мікросхеми, PB7.. 6 використовується в якості TOSC2.. 1 введення Асинхронного Таймера/Counter2, якщо біт AS2 в ASSR встановлений.  Port C (PC5..PC0) Порт C - 7-разр. порт двонаправленого вводу-виводу з внутрішніми резисторами. Вихідні буфери порту C мають симетричну вихідну характеристику з однаковими впливаючими і випливаючими струмами. При введенні, лінії порту C будуть діяти як джерело струму, якщо зовні діє низький рівень і включені резистори. Виводи порту C знаходяться в третьому стані при виконанні умови скидання, навіть якщо синхронізація не запущена.  PC6/RESET Якщо фьюз RSTDISBL запрограмований, PC6 використовується в якості контакту вводу-виводу. Електричні характеристики PC6 відрізняються від інших контактів Порту C. Якщо фьюз RSTDISBL не програмується, PC6 використовується в якості введення Скидання. Низький рівень на цьому контакті довше ніж мінімальна довжина імпульсу генерує Скидання, навіть якщо генератор не буде працювати. Більш короткі імпульси, не гарантують, генерацію Скидання.  Port D (PD7..PD0) Порт D - 8-разр. порт двонаправленого вводу-виводу з внутрішніми резисторами. Вихідні буфери порту D мають симетричну вихідну характеристику з однаковими впливаючими і випливаючими струмами. При введенні, лінії порту D будуть діяти як джерело струму, якщо зовні діє низький рівень і включені резистори. Виводи порту D знаходяться в третьому стані при виконанні умови скидання, навіть якщо синхронізація не запущена. Порт D використовується для різних спеціальних функцій ATxmega128A3.  RESET Вхід скидання. Якщо на цей вхід подати низький рівень тривалістю понад мінімально необхідної буде генероване скидання незалежно від роботи синхронізації. Дія імпульсу меншої тривалості не гарантується генерація скидання.  AVCC Вхід живлення аналого-цифрового перетворювача Порт C (3.. 0), і ADC (7.. 6).. Він повинен бути зовні пов'язаний з VCC, навіть якщо АЦП не використовується. При використання АЦП цей вивід пов'язаний з VCC через фільтр низьких частот. Порт C (5.. 4)може бути виходом цифрової напруги VCC.  AREF Вхід підключення джерела опорної напруги АЦП.  ADC7..6 (TQFP and QFN/MLF Package Only) В TQFP і корпусі QFN/MLF, ADC7.. 6 служать аналоговими входами до конвертора A/D. Ці аналогові контакти і служать 10-бітовими каналами ADC.   2.1.11. Конструктивне зображення мікросхеми / / Рис. 2.9. Кунструктивне зображення Таблиця 2.3. Розміри корпусу / 3. Розробка схеми електричної функціональної Мікрокомп’ютер складається з зовнішньої пам’яті, мікропроцесора, вузла скиду і синхронізації, а також з вузла периферії . Вузол скиду призначений для затримки сигналу на деякий час, для того щоб мікропроцесорні пристрої встигли перезавантажитись та встановитись в початковий режим роботи. Сигнал RESET спрацьовує по високому логічному рівні та використовується для початкового скидання та ініціалізації процесора. Вузол синхронізації призначений для формування тактових сигналів, які забезпечують функціонування усіх вузлів мікропроцесора. Він під’єднюється до мікропроцесора за допомогою виводів XTAL1 і XTAL2. На рисунку 3.1 зображено фрагмент електричноїфункціональної схеми з підключенням вузлів синхронізації та скиду. / Рис. 3.1. Фрагмент мікрокомп’ютера з вузлами синхронізації та скиду Підключення зовнішньої оперативної памяті: В даному мікрокомп’ютері використовуються оперативний запам’ятовуючий пристрій DD2 з організацією 64К. Записавши дані в пам'ять, їх можна використовувати для пересилання через певну периферію. У даному випадку це здійснюється через порт I2C. Для цього використовуємо програмну реалізацію I2C-інтерфейсу, тобто передачу даних з пам’яті на I2C буде здійснювати спеціальна програма, яка буде доступатись до пам’яті та передаватиме дані із неї. Алгоритм роботи такої передачі даних буде зображений у наступних розділах. На рисунку зображено 3.2 підключення ОЗП. / Рис. 3.2. Підключення ОЗП Вузол периферії: Для підключення МП до I2C порту будемо використовувати програмну реалізацію I2C інтерфейсу, тобто передачу даних з пам’яті на I2C порт буде здійснювати спеціальна програма. Для цього використовуємо сигнали RXD та TXD мікроконтролера, яким відповідають сигнали I2C порту TX та RX відповідно. / Рис 3.3. Підключення I2C 4. Розробка схеми електричної принципової 4.1. Проектування вузла синхронізації В мікроконтролері ATxmega128A3 XTAL1 і XTAL2 є входом і виходом, відповідно, інвертуючого підсилювача, який з використанням кварцового кристала або керамічного резонатора працює як вбудований генератор, як показано на рисунку 4.1. / Рис. 4.1. Схема вузла синхронізації Кварцовий кристал генератора таймера під'єднується безпосередньо до виведень XTAL1 і XTAL2. Додаткові зовнішні конденсатори не потрібні. Генератор оптимізований під часовий кварц з частотою 32,768 КГц. Зовнішній тактовий сигнал, який подається на ці виводи, поступає на підсилювач зі смугою пропускання 256 КГц. Таким чином частота зовнішнього сигналу повинна знаходитися в діапазоні від 0 до 256 КГц. 4.2. Проектування вузла скиду При ввімкненні живлення мікроконтролер ATxmega128A3 виконує операцію початкового скидання автоматично, при чому посилає сигнал RESET всій системі. Така операція називається “power-on-reset” ”(POR), часова діаграма її виконання зображена на рисунку. / Рис. 4.2. Часова діаграма виконання сигналу початкового скидання Затримка POR забезпечує достатній час, щоб дозволити ініціювати коректно всі складові частини процесора після ввімкнення живлення. Для виконання скиду потрібно утримувати низький рівень на вході на протязі двох машинних циклів. Reset має найвищий пріоритет з усіх переривань і перериває будь-яку операцію, що виконується. Лічильник команд PC встановлюється в значення 0000H і вибірка команд відбувається з зовнішньої пам'яті програм за цією адресою. Щоб реалізувати схему «ручного» скиду мікроконтролера потрібно під'єднати до входу Reset, як показано на рисунку 4.3, відповідний перемикач К1. / Рис. 4.3. Схема „ручного” формування сигналу Reset 4.3. Зовнішня пам'ять Мікроконтролер ATxmega128A3 працює з пам'яттю програм. На рисунку показана схема під’єднання ОЗП до мікроконтролера. / Рис. 4.4. Схема під'єднання зовнішньої пам'яті до мікроконтролера FM24CL64 - енергонезалежна пам'ять ємністю 64Кбіт, виконана за сегнетоелектричною технологією. Сегнетоелектричний оперативний запам'ятовуючий пристрій або FRAM є енергонезалежним і виконує операції читання і запису подібно ОЗП. Вона забезпечує надійне зберігання інформації протягом 10 років, при усуненні проблем пов'язаних зі складністю, обмеженим швидкодією запису і рівнем системної надійності EEPROM та іншої незалежної пам'яті. FM24C64 виконує операцію запису на швидкості шини. При цьому не виникає ніяких затримок при записі. Наступний цикл шини може бути розпочати негайно без необхідності опитування даних. Крім того, пам'ять має зносостійкість, яка на багато перевищує зносостійкість EEPROM. Також FRAM споживає набагато меншу потужність при записі, ніж EEPROM, якому потрібно додаткове джерело живлення схеми програмування. Дані можливості роблять FM24CL64 ідеальним для додатків з енергонезалежним зберіганням інформації, де потрібно часто і швидко записувати даних. Приклади таких додатків простягаються від накопичувачів даних, де час запису може бути критичним параметром, до промислового управління, де затримки при записі в EEPROM можуть привести до втрати інформації. У сукупності дані переваги дозволяють записувати дані з більшою частотою, не викликаючи при цьому незручності в програмуванні. Для користувачів EEPROM , які хочуть перейти на дану технологію, FM24СL64 пропонує можливість безпосередньої апаратної заміни EEPROM. FM24CL64 випускається в стандартному 8-вив. корпусі SOIC і використовує стандартний 2-дротовий інтерфейс. Виконання технічних характеристик гарантується для всього промислового температурного діапазону: -40°C… +85°C. Структура пам’яті наведена на рисунку 4.5: / Рис. 4.5. Блок-схема пристрою пам’яті FM24СL64 Таблиця 4.1. Опис виводів FM24CL64 Найменування виводу Опис  A0-A2 Входи завдання адреси пристрою на послідовній шині  ПДД Введення / висновок послідовних даних / адреси  SCL Вхід тактування послідовної зв'язку  WP Вхід захисту від запису  VSS Земля  VDD Напруга живлення  / Рис. 4.6. Типова схема підключення пам’яті FM24СL64 до мікроконтролера / Рис. 4.7. Протокол передачі даних пам’яті FM24СL64 Умова завершення Умова завершення вказує шині SDA змінити рівень від низького до високого в той час як сигнал SCL повинен мати високий рівень. Всі операції з використанням FM24CL64B повинні закінчитися станом завершення. Якщо операція виконується , коли з’являється стан завершення - операція буде перервана. Master повинен мати контроль над SDA (не читання з пам'яті), щоб створити умову завершення. Умова старту Стартова умова вказує шині SDA змінити рівень від високого до низького, а сигнал SCL повинен мати високий рівень. Умова старту повинна передувати всім командам роботи з пам’яттю. Завершення стартового сигналу переводить FM24CL64B в режим готовності для нової операції. Якщо під час роботи блоку живлення падає нижче заданого мінімального VDD, система повинна видавати стартову умову перед виконанням іншої операції. Дані / Адреса передачі Всі передачі даних (включаючи адреси) мають місце в той час як сигнал SCL високий. За винятком двох описаних вище умов, сигнал SDA не повинно змінюватися в той час як SCL високий. Підтвердження Підтвердження, має місце після того, як 8-й біт даних був переданий. У цьому стані передавач повинен звільнити шину SDA. Адреса Slave Перший байт, що FM24CL64B очікує після умовою старту є адреса Slave. Як показано на малюнку 4.6, адреса веденого містить тип пристрою або ID, пристрій вибрати адресу біта, біт адреси сторінки, який визначає, тип транзакції читання або запису. Біти 7-4 є тип пристрою (ID) і повинен бути встановлений на 1010B для M24CL64B. Ці біти дозволяють іншим видам функції знаходяться на 2-провідний шини в ідентичних діапазону адрес. Біти 3-1 вказують біти адреси. Вони мають збігатися з відповідним значенням на зовнішніх контактів адреси, щоб вибрати пристрій. До восьми FM24CL64B пристроїв можуть знаходитися на одній двопровідній шині, призначивши іншу адресу для кожного з них. Біт 0 читання / запису біта. R / W = 1 вказує на операції читання і R / W = 0 вказує на операцію запису. / Рис. 4.8. Адреса Slave / Рис. 4.9. Часові діаграми читання і запису пам’яті 4.4. Проектування інтерфейсу I2C / Рис. 4.10. Підключення I2C Для підключення МП до I2C порту будемо використовувати програмну реалізацію SPI інтерфейсу, тобто передачу даних з пам’яті на I2C порт буде здійснювати спеціальна програма. Для цього використовуємо сигнали RXD та TXD мікроконтролера, яким відповідають сигнали I2C порту 1,2 відповідно. Якщо використовується режим синхронного зв'язку (UMSEL = 1
Антиботан аватар за замовчуванням

31.10.2016 19:10-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!