характеристика и архитектура 32-разрядных ARM-микроконтроллеров

Описание:
таких инструкций существенно ускоряет работу программы, и минимизируют размер кода.В состав системы команд входят так же инструкции обращения к аппаратному сопроцессору. Это позволяет разработчикам микроконтроллеров на базе ARM расширять возможности базовой архитектуры, добавляя свои сопроцессоры в случае необходимости.
Доступные действия
Введите защитный код для скачивания файла и нажмите "Скачать файл"
Защитный код
Введите защитный код

Нажмите на изображение для генерации защитного кода

Текст:

СОДЕРЖАНИЕ

ВВЕДЕНИЕ  3

1.     ТЕОРЕТИЧЕСКАЯ ЧАСТЬ  4

1.1      Общая характеристика 32-разрядных ARM-микроконтроллеров  4

1.2      Архитектура, принцип работы и возможности 32-разрядных ARM-микроконтроллеров серии STM 32 F100 C4  6

1.3      Схема включения STM32 F100 C4  9

1.4      Порты общего назначения GPIO   10

1.5      Организация памяти в микроконтроллерах STM32  13

1.6      Универсальный последовательный порт USART  16

1.7      Микропроцессорная система на базе 32-разрядного AVR-микроконтроллера серии STM32  24

2.     РАСЧЕТНАЯ ЧАСТЬ  28

2.1      Рекомендации по включению микроконтроллера pic16f84a  28

2.2      Расчет принципиальной схемы устройства на базе микроконтроллера PIC16F84A   31

2.3      Разработка блок схемы алгоритма работы микроконтроллера  35

2.4      Разработка программы и hex-файла программы   36

2.5      Разработка печатной платы устройства  37

ЗАКЛЮЧЕНИЕ  42

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ   43


ВВЕДЕНИЕ

Целью данной курсовой работы является получение новых и закрепление ранее приобретенных теоретических знаний в области микроконтроллеров, программ на языке Assembler для этих микроконтроллеров, изучение их архитектуры, общих характеристик, организации памяти. Главной цель данной курсовой работы является разработка устройства на основе микроконтроллера PIC16F84A, а также написание программного обеспечения выполняющего попеременное мигание трех светодиодов с частотой в 3 Гц. Для данного устройства должна быть разработана принципиальная схема, написан листинг программы для микроконтроллера и составлена печатная плата.


1.           ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

1.1      Общая характеристика 32-разрядных ARM-микроконтроллеров

Микроконтроллер (англ. Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи. Популярностью у разработчиков пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, 16-битные MSP430 фирмы TI, а также 32-битные микроконтроллеры, архитектуры ARM, которую разрабатывает фирма ARM Limited и продаёт лицензии другим фирмам для их производства. При проектировании микроконтроллеров приходится соблюдать баланс между размерами и стоимостью с одной стороны и гибкостью и производительностью с другой. Для разных приложений оптимальное соотношение этих и других параметров может различаться очень сильно. Поэтому существует огромное количество типов микроконтроллеров, отличающихся архитектурой процессорного модуля, размером и типом встроенной памяти, набором периферийных устройств, типом корпуса и т. д. В отличие от обычных компьютерных микропроцессоров, в микроконтроллерах часто используется гарвардская архитектура памяти, то есть раздельное хранение данных и команд в ОЗУ и ПЗУ соответственно.

Как описывалось во введении, микроконтроллер - микросхема, предназначенная для управления электронными устройствами. В данном случае рассматриваются 32-разрядные ARM-микроконтроллеры.

Сокращение ARM происходит от названия английской компании Advanced RISC Machines, основанной в 1990 г. в результате сотрудничества компаний Acorn и Apple Computer"s. Фирма поставляет свои разработки в электронном виде, на основе которых клиенты конструируют свои собственные микропроцессоры и микроконтроллеры. В настоящее время архитектура ARM занимает лидирующие позиции и охватывает 75% рынка 32-разрядных встраиваемых RISC микропроцессоров. Фактически можно говорить об архитектуре ARM как о промышленном стандарте. Распространённость ядра предоставляет возможность разработчику более гибко использовать свои и сторонние программные наработки как при переходе на новое процессорное ARM ядро, так и при «миграциях» между разными типами ARM микроконтроллеров.

Архитектура ARM отражает собственную философию компании, суть которой – максимальное удовлетворение требованиям встраиваемых систем. Для этого разработчики не стали замыкаться в формальных рамках RISC архитектуры, а в одном продукте реализовали идеи, ранее считавшиеся несовместимыми.

Хотя в своей основе ядро ARM отталкивается от идеологии RISC архитектуры (ограниченный набор команд, очередь выборки инструкций, активное использование регистров и ограниченный доступ к памяти), оно не является «чистым» представителем RISC.

Не все инструкции ARM выполняются за один цикл. Например, есть инструкции, позволяющие переслать между памятью и регистрами 16 слов по 32 разряда. Поскольку подобные операции активно используются компиляторами при каждом вызове и возврате из функций, введение таких инструкций существенно ускоряет работу программы, и минимизируют размер кода.В состав системы команд входят так же инструкции обращения к аппаратному сопроцессору. Это позволяет разработчикам микроконтроллеров на базе ARM расширять возможности базовой архитектуры, добавляя свои сопроцессоры в случае необходимости.

Дополнительно к ARM архитектуре могут интегрироваться несколько расширений:

-         Thumb® – 16разрядный набор инструкций, улучшающий эффективность использования памяти программ;

-         DSP – набор арифметических инструкций для цифровой обработки сигналов;

-         Jazelle™ – расширение для аппаратного непосредственного исполнения Java инструкций;

-         Media – расширение для 2-4 кратного увеличения скорости обработки аудио и видеосигналов.

1.2      Архитектура, принцип работы и возможности 32-разрядных ARM-микроконтроллеров серии STM 32 F100 C4

STM32 – это микроконтроллер, построенный на ядре ARM Cortex-M3. Данное ядро имеет много преимуществ, которые будут перечислены ниже, но его основное преимущество на сегодняшний день – универсальность. За два года Cortex-M3 стал индустриальным стандартом. Об этом говорит количество производителей, присоединившихся к данной архитектуре. Все основные производители микроконтроллеров, которые присутствуют в России, кроме Microchip, имеют или развивают решения на основе этой архитектуры: STMicroelectronics, TexasInstrument, NXP, ATMEL, AnalogDevices, Renesas и т.д. Компания ST одна из первых выпустила свои микроконтроллеры Cortex-M3 (2007 г.) и быстро стала доминирующим игроком на этом рынке.

В 32-битном сегменте разработчики редко работают с ассемблером, они в основном используют языки высокого уровня, например, язык C. Поэтому если вдруг понадобится переход с одного производителя на другой (срыв поставок, отсутствие нужных библиотек, новые функциональные требования, увеличения цен, и т.д.), то часть программного кода, связанная с ядром, даже не потребует изменения. Необходима будет только работа на уровне драйверов периферии. В итоге получается, что если писать программный код с четким делением между ядром и периферией, то можно обеспечить условия для очень быстрого перехода с одного производителя на другой.

Семейство STM32 - это не только микроконтроллеры на ядре Cortex-M3. Архитектура Сortex-M включает в себя также ядра Сortex-M0 и Cortex-M4.

Одна из причин мировой популярности семейства STM32 – максимальный комфорт разработчика. Если универсальность ядра STM32 позволяет менять производителя c минимальными затратами на программный код, то pin-to-pin совместимость внутри семейства STM32 позволяет менять объем памяти (флэш-память и ОЗУ) и периферию (Ethernet, USB, CAN, и т.д.), не трогая печатную плату. «Pin-to-pin совместимость» означает, что для одного размера корпуса все сигналы сохраняются на тех же самых вводах/выводах для разных вариантов микроконтроллеров семейства.

Основные характеристики линейки STM32F100х:

-         Максимальная тактовая частота 24 МГц (30 DMIPS)

-         Умножение и деление за 1 такт

-         Напряжения питания 2.0 – 3.6 В

-         От 4 до 8 Кб ОЗУ

-         От 16 до 128 Кб флэш-памяти

-         Два встроенных и откалиброванных тактовых генератора на 40 КГц и 8 МГц

-         7-канальный DMA контроллер

-         16-канальный 12-битный АЦП (1.2 мкс) с датчиком температуры

-         Два 12–битных ЦАП

-         До 80 быстрых портов ввода – вывода (есть совместимость с 5 В)

-         16 внешних прерываний

-         Два сторожевых таймера (IWDG и WWDG)

-         До 10 таймеров общего и расширенного назначений

-         До 2х I2C(SMBus/PMBus), до 3х USART (Lin, IrDa, modem control), до 2 SPI(2 Мбит/с), HDMI (CEC), RTC

-         Управление питанием и сбросом (3 режима низкого потребления, PVD, BOR)

-         Аппаратный расчет CRC

-         96–битный уникальный идентификатор (ID)

На рисунке 1.2.1 показана архитектура контроллера STM32F100 в области GPIO и RCC

Рисунок 1.2.1 - архитектура контроллера STM32F100 в области GPIO и RCC


1.3      Схема включения STM32 F100 C4

В момент подачи питания на микроконтроллер или после сигнала сброса, независимо от других обстоятельств, ядро тактируется от внутреннего RC-генератора частотой 8 мГц. При этом PLL (умножитель частоты) отключен, а время задержки чтения из FLASH (latencytime) равно нулю.

Такая схема включения гарантирует, что микроконтроллер запустится и начнёт работать всегда, даже если внешний кварц неисправен. Запуск кварца осуществляется вручную, программным способом. Запуск можно проконтролировать и в случае неисправности кварца, обработать ошибку и оставаться затактированным от внутреннего RC.

Микроконтроллер STM32 имеет в своём составе ещё одну схему защиты, когда при сбое внешнего кварца он может автоматически переключиться на внутренний RC и продолжить работу, сигнализируя об ошибке. По умолчанию эта возможность отключена.

Чтобы вывести микроконтроллер на проектную мощность - одноцикловый режим на частоте 72 мГц, нужно выполнить три простых шага. Включить усилители кварцев и дождаться их стабилизации. Включить умножитель PLL и дождаться его стабилизации. Затем переключить тактирование с внутреннего RC на PLL. В случае, если вы используете кварц на 8 мГц, PLL должен быть настроен на 9-кратное умножение частоты. Когда питание на усилитель кварца подано, нужно дождаться стабилизации частоты.

На рисунке 1.3.1 указана схема управления током и напряжением на выходе лабораторного источника.

Рисунок 1.3.1 – схема управления током и напряжением наSTM32F100C4

1.4            Порты общего назначения GPIO

GPIO (GeneralPurposeInput-Output) — это выводы общего назначения, ноги микроконтроллера, доступные для прямого управления. Это обычно довольно дефицитный ресурс во многих популярных МК, но с STM32 эта проблема теряет актуальность: в самом мелком корпусе (LQFP48) доступно 37 GPIO, а в самом большом (LQFP176) — 140 GPIO. На рисунке 1.4.1 показана схема порта вывода STM32F100.

Рисунок 1.4.1 - схема порта вывода STM32F100

МК питаются 3.3 В, но до сих пор ещё активно используются 5-вольтовые микросхемы и логика, их нужно подключить. Поэтому в STM32 большинство выводов «толерантны» к 5 В. То есть, они могут принимать на вход 5 В без какой-либо угрозы их целостности.

Толерантный пин отличается от обычного тем, что у него верхний защитный диод подключён к Vdd_ft вместо Vdd. Из этой схемы становится понятно, что хоть выводы и толерантны к 5 В на вход, но вот выдавать 5 В на выход не могут — для этого нужен транзистор. Если нужно получить логическую единицу, то 3.3 В вполне распознаются 5-вольтовой логикой как 1, но если нужно именно 5 В, то для этого применяется режимOpen-drain у GPIO.

У STM32F100хх имеется 8 режимов GPIO:

Выход общего назначения:

-         Push-pull - стандартный выход: при 0 в выходном регистре получается низкий уровень на выходе, при 1 — высокий.

-         Open-drain - (открытый сток, аналог открытого коллектора): вывод подключен к стоку N-MOS полевика в то время, как P-MOS полевик заперт, что позволяет управлять нагрузкой с большим напряжением, чем Vdd (3.3 В).

-         Вывод с альтернативной функцией (для периферии типа SPI, UART):

-         Push-pull

-         Open-drain

-         Вход:

-         Analog - аналоговый высокоимпендансный: подтягивающие резисторы и триггер Шмитта отключены. Используется при работе с АЦП.

-         Floating - обычный высокоимпендансный: подтягивающие резисторы отключены, триггер Шмитта включен.

-         Pull-up - вход с подтяжкой к питанию.

-         Pull-down - вход с прижатием у к «земле».

Линии GPIO объединены в порты, в STM32 — по 16 линий, поэтому нумеруются они с 0 по 15: PA0, PA1… PA15 — это линии порта A, например. Линии порта управляются программно с помощью нескольких регистров.

GPIOx_CRL и GPIOx_CRH — регистры конфигурации, содержат настройки режима (вход/выход) и частоты GPIO. Доступны на чтение и запись.

GPIOx_IDR и GPIOx_ODR — входной и выходной регистры: в первом хранится считанное со входов порта значение, во второй записывается новое состояние выводов. GPIOx_IDR доступен только на чтение, а GPIOx_ODR — на чтение и запись.

GPIOx_BSRR и GPIOx_BRR — регистры атомарного изменения битов в GPIOx_ODR.

Обычно, если нужно установить бит в регистре периферии, то его сначала нужно прочитать, потом применить побитовое "ИЛИ" к считанному значению и битовой маске, после чего записать новое значение назад в регистр. То же и со сбросом битов, только маску нужно инвертировать и применить побитовое "И". А вот запись значений в GPIOx_BSRR и GPIOx_BRR изменяет только те биты выходного регистра, которые были установлены в единицу, притом происходит это за 1 такт, так что прерывание не сможет всё испортить.

1.5            Организация памяти в микроконтроллерах STM32

Основное предназначение flash памяти микроконтроллера – хранение кода программы. Именно отсюда извлекаются команды, которые затем выполняются ядром микроконтроллера. Весь алгоритм поведения микроконтроллера, каким его придумал разработчик программы, то, каким образом микроконтроллер реагирует на внешние воздействия, настройка всех периферийных модулей и т.д. – все это хранится во встроенной flash памяти.

Основной объем встроенной flash памяти занимает, конечно же, область, предназначенная для хранения кода программы, но кроме нее есть часть памяти, предназначенная для других целей. Сама память программ разделена на фрагменты меньшего размера, число этих фрагментов и их размер зависит от серии микроконтроллера. Структура flash памяти будет рассмотрена на примере микроконтроллеров серий STM32F100, поскольку это один из наиболее распространенных и популярных типов.

В общем виде структуру flash памяти можно представить состоящей из следующих областей:

-         Mainmemory — память программ. Содержит основной код программы, который исполняется ядром микроконтроллера. Эта область разделена на страницы определенного размера, количество и размер страниц зависит от типа микроконтроллера и размера его памяти программ. Кроме того, для некоторых микроконтроллеров область памяти программ кроме страниц может быть поделена еще и на несколько секторов. Сектор содержит какое-то число страниц определенного размера. В другом секторе размер страниц может отличаться.

-         EEPROM – энергонезависимая перепрограммируемая область памяти. Из всех вышеперечисленных серий имеется только в микроконтроллерах низкопотребляющей серии STM32L1xx. Обычно используется для хранения пользовательских данных, различных настроек устройства, т.е. всего того, что не должно потеряться при отключении питания или сбросе микроконтроллера. Хоть это также область flash памяти, но имеет некоторые отличия от области памяти программ. Эта область памяти будет рассмотрена в одной из следующих частей.

Information block содержит две области памяти: System memory и Option bytes.

-         Systemmemory – это область загрузчика. Позволяет программировать микроконтроллер через внешний интерфейс (для вышеперечисленных семейств — USART). К этой области пользователь не имеет доступа, производитель «прошивает» в нее встроенный загрузчик при производстве микроконтроллера. Поэтому стереть или повредить данные в этой области случайными действиями невозможно.

-         Optionbytes – область памяти, где устанавливается защита от записи/чтения отдельных страниц памяти программ, а также некоторые другие пользовательские настройки.

И в самом конце расположены регистры интерфейса flash памяти

(FLITF — Flash memory interface). Всеми операциями записи/чтения управляет отдельный модуль – контроллер записи и чтения flash памяти FPEC (FlashProgram/Erase Controller). Микроконтроллеры с наибольшим размером памяти выделяются тем, что имеют по два банка памяти программ. Это позволяет хранить в микроконтроллере две версии прошивки, программировать один из банков памяти, в то время как второй является рабочим и в нем выполняется программа.

Для достижения высокой производительности ST Micro electronics разработала и внедрила адаптивный ускоритель реального времени для Flash-памяти (ART Accelerator). Это своего рода контроллер КЭШа (применяемый в микропроцессорных системах), ориентированный на программы, исполняемые из Flash-памяти. Сама Flash-память имеет 128-битную организацию, поэтому одна операция чтения состоит из четырех 32-битных инструкций.

Для уменьшения задержек при изменениях в потоках инструкций, вызванных ветвлениями, вызовами подпрограмм, системными вызовами и прерываниями, ART Accelerator использует очередь предварительной выборки и КЭШ ветвления. Если программный счетчик перенаправления указывает на недавно использованный адрес, инструкции, по всей вероятности, находятся еще в КЭШе, и будут немедленно загружены в очередь предварительной выборки для исполнения, экономя при этом машинные циклы. Более интеллектуальное (адаптивное) управление КЭШ с помощью встроенной логики должно давать более положительные результаты (скорость работы), чем простые технологии.

Интегрированный модуль часов реального времени включает в себя 4 КБайт SRAM с возможностью резервного хранения данных в режиме экстремально низкого потребления. Дополнительно доступно однократно программируемое ПЗУ размером 528 Байт для хранения серийного номера, MAC адреса, криптографических ключей, калибровочных данных и другой уникальной для устройства информации.

Микроконтроллеры STM32 также содержат 7-уровневую высокоскоростную матричную шину AHB, обеспечивающую одновременную передачу данных между ведущими устройствами (ARM процессор, DMA, коммуникационные интерфейсы) и ведомыми (различная периферия и память).

В линейку микроконтроллеров с ядрами Cortex-M0 и Cortx-M3 входят устройства с самой различной конфигурацией – от дешевых «облегченных» до высокоскоростных и производительных устройств с развитой периферией, а также модели с ультранизким потреблением. В настоящее время STMicroelectronics занимает 45% рынка процессоров на основе Cortex-M.

На рисунке 1.5.1 приведена структура flash памяти для микроконтроллеров типа STM32F100 (medium-densityvaluelinedevices)

Рисунок 1.5.1 – структура flash памяти для микроконтроллеров типа STM32F100

1.6            Универсальный последовательный порт USART

Наряду с портами ввода-вывода GPIO универсальный синхронно-асинхронный последовательный приёмопередатчик USART (Universal Synchronous Asynchronous Receiver Transmitter) является одним из самых востребованных портов для связи любого микроконтроллера с внешними устройствами. С помощью порта USART можно легко организовать связь микроконтроллера с компьютером, провести его программирование, а также связать микроконтроллеры между собой по интерфейсам RS-232, RS-485, RS-422 и т.д. Преимуществами порта USART являются простота в использовании, а также, в отличие от интерфейса USB, гибкость в настройке и надёжность работы.

Микроконтроллеры STM32 имеют обычно несколько портов USART. Например, STM32F103RBT имеет три последовательных порта, обозначаемых USART1, USART2 и USART3. Кроме обычного асинхронного режима работы с использованием сигналов RXD и TXD, порты USART STM32 поддерживают несколько расширенных режимов работы. В отличие от стандартных портов USART они могут:

-         работать с однопроводной полудуплексной линией связи;

-         поддерживать интерфейсы Smart карт стандарта ISO7618-3, LIN (local interconnection network) и IrDA (infrared data association);

-         связываться с внешними устройствами, оснащёнными SPI-совместимым интерфейсом, по 3-проводной линии.

К особенностям порта USART микроконтроллеров STM32 также относится возможность дробного деления тактовой частоты для формирования заданной скорости работы. Благодаря этому можно получить стандартные скорости связи порта при любой частоте тактового сигнала. Кроме того, с помощью блока DMA (Direct Memory Access) для любого порта USART может быть организован прямой доступ к памяти, как для приёма, так и для передачи данных. Порты USART STM32 способны поддерживать скорость обмена до 4,5 Мбит/с. Формат слова USART может составлять 8 или 9 бит данных и 0,5; 1; 1,5 или 2 стоповых бит. Дробные значения стоповых бит применяются в режиме порта Smartcard. Первым передаётся и принимается младший бит данных. Некоторые порты USART STM32 можно программно переназначать на другие выводы микроконтроллера.

В микроконтроллерах STM32 для настройки каждого порта USART и работы с ним имеется по 7 регистров:

-         USART_SR – регистр статуса, указывающий на состояние порта USART;

-         USART_DR – регистр данных для записи передаваемых и чтения принимаемых данных;

-         USART_BRR – регистр, определяющий скорость обмена;

-         USART_CR1 – первый управляющий регистр;

-         USART_CR2 – второй управляющий регистр;

-         USART_CR3 – третий управляющий регистр;

-         USART_GTPR – регистр делителя и задержки.

Каждый кадр начинается со стартового бита, после которого следует несколько бит информации, бит паритета, если он задан, и стоповые биты.

Регистр статуса USART_SR хранит разряды, отображающие текущее состояние порта USART. Разряд 0 PE отображает ошибку паритета при приёме байта. Данный разряд устанавливается в единичное состояние при аппаратном выявлении ошибки паритета, т.е. несовпадении числа единиц в принимаемом байте с ожидаемым чётным или нечётным количеством, заданным для контроля. Разряд 1 FE указывает на ошибку кадра при приёме байта. Ошибкой кадра является, например, отсутствие стопового бита или несоответствие их количества заданному при настройке порта значению. Данный разряд также устанавливается аппаратно. Разряд 2 NE фиксирует наличие шума в кадре. Шумом считается изменение состояния линии связи в середине приёма очередного бита информации. Разряд 3 ORE отображает ошибку переполнения приёмного буфера. Разряд 4 IDLE фиксирует обнаружение кадра ожидания. Кадром ожидания является отсутствие очередного стартового бита после стоповых бит. Следующая группа флагов позволяет определить окончание передачи или приёма данных. Разряд 5 RXNE фиксирует приём данных в регистр USART_DR. Разряд 6 TC сигнализирует о завершении передачи очередного байта данных, записанных в регистр данных USART_DR. Разряд 7 TXE сообщает о том, что сдвиговый регистр передачи данных пуст. Порт USART передаёт данные из сдвигового регистра, в который они поступают из регистра USART_DR. После записи данных в USART_DR они находятся в нём до тех пор, пока сдвиговый регистр не освободится. Как только данные передаются, сдвиговый регистр освобождается, и в него переписывается информация из USART_DR. При этом устанавливается флаг TXE, означающий, что регистр данных пуст. Если же очередные данные не будут записаны в регистр данных USART_DR, то после освобождения сдвигового регистра будет установлен также флаг TC. Разряд 8 LBD фиксирует обнаружение разрыва связи. Разряд 9 CTS отображает изменение состояния сигнала CTS. Разряды 10…31 зарезервированы для будущих версий микроконтроллеров.

Очищаются все разряды программно, последовательностью операций чтения регистра USART_SR, с последующим чтением регистра USART_DR.

Регистр USART_DR содержит байт принятых или передаваемых данных. Несмотря на то, что в программе производится обращение к одному и тому же регистру USART_DR как для приёма данных, так и для их передачи, на самом деле при чтении информация поступает из регистра приёмника порта USART, а при записи данные заносятся в регистр передатчика порта USART. Для работы с регистром данных используются следующие операторы: USART1->DR = tx1; // Передать байт переменной tx1 через USART rx1 = USART1->DR; // Считать принятый байт из USART в переменную rx1.

Регистр USART_BRR служит для задания скорости обмена через порт USART и содержит определяющую эту скорость переменную USARTDIV с фиксированной точкой. Данная переменная состоит из двух частей: целой 12-разрядной части DIV_mantissa и дробной 4-разрядной части DIV_fraction. Дробная часть позволяет довольно точно подстроить скорость обмена для любой частоты тактового сигнала.

Регистр USART_CR1 имеет следующие разряды:

-         разряд 0 SBK управляет отправкой символа разрыва связи (0 – не посылать, 1 – посылать).

-         разряд 1 RWU определяет режим приёмника USART (0 – приёмник активен, 1 – приёмник в «спящем» режиме);

-         разряд 2 RE разрешает работу приёмника;

-         разряд 3 TE разрешает работу передатчика;

-         разряд 4 IDLEIE разрешает прерывания от флага IDLE регистра USART_SR;

-         разряд 5 RXNEIE разрешает прерывания от флага RXNE регистра USART_ SR;

-         разряд 6 RXNEIE разрешает прерывания от флага RXNE регистра USART_ SR, когда в регистр данных перемещён принятый байт;

-         разряд 7 TXEIE разрешает прерывания от флага TXE регистра USART_SR, т.е. когда регистр передачи пуст;

-         разряд 8 PEIE разрешает прерывание при обнаружении ошибки паритета;

-         разряд 9 PS управляет типом паритета (0 – чётный, 1 – нечётный);

-         разряд 10 PCE разрешает контроль паритета (0 – отключён, 1 – включён);

-         разряд 11 WAKE определяет метод «пробуждения» порта (0 – по состоянию линии связи, 1 – по выделению адреса);

-         разряд 12 M определяет длину посылки данных (0 – 8 бит данных, 1 – 9 бит данных);

-         разряд 13 UE разрешает работу USART (0 – отключён, 1 – включён);

-         разряды 14–31 зарезервированы. Для наглядности в таблице 2 приведён формат кадра данных USART в зависимости от установки разрядов M и PCE.

-         Ниже представлено назначение разрядов регистра USART_CR2:

-         разряды 3…0 ADD[3:0] задают адрес узла USART для многопроцессорной связи с целью его пробуждения при обнаружении данного адреса;

-         разряд 4 зарезервирован и всегда имеет нулевое состояние;

-         разряд 5 LBDL определяет длину обнаружения разрыва LIN (0 – 10 бит, 1 – 11 бит);

-         разряд 6 LBDIE разрешает прерывание от флага LBD в регистре USART_SR;

-         разряд 7 зарезервирован и всегда имеет нулевое состояние;

-         разряд 8 LBCL управляет последним синхроимпульсом порта в режиме SPI (0 – не влияет, 1 – определяет синхроимпульс);

-         разряд 9 CPHA определяет фазу синхроимпульсов порта в режиме SPI (0 – по фронту, 1 – по спаду);

-         разряд 10 CPOL определяет полярность синхроимпульсов порта в режиме SPI (0 – пассивен низкий уровень, 1 – пассивен высокий уровень);

-         разряд 11 CLKEN активирует выход CK (0 – пассивен, 1 – активен);

-         разряды 13 и 12 STOP определяют формат стоп-битов (00 – 1 стоп-бит, 01 – 0,5 стоп-бита, 10 – 2 стоп-бита, 11 – 1,5 стоп-бита);

-         разряд 14 LINEN разрешает режим LIN USART (0 – запрещён, 1 – разрешён);

-         разряды 15…31 зарезервированы.

-         Разряды CPOL, CPHA и LBCL не должны изменяться во время активности передатчика.

-         Регистр USART_CR3 содержит следующие разряды:

-         разряд 0 EIE разрешает прерывания от ошибок;

-         разряд 1 IREN разрешает режим работы порта IrDA;

-         разряд 2 IRLP осуществляет выбор между нормальным и низко потребляющим режимом IrDA (0 – нормальный режим, 1 – низко потребляющий режим);

-         разряд 3 HDSEL разрешает полудуплексный режим для однопроводного интерфейса;

-         разряд 4 NACK разрешает формирование сигнала NACK в режиме Smartcard;

-         разряд 5 SCEN разрешает работу порта в режиме Smartcard;

-         разряд 6 DMAR разрешает работу приёмника через DMA;

-         разряд 7 DMAT разрешает работу передатчика через DMA;

-         разряд 8 RTSE разрешает формирование сигнала RTS;

-         разряд 9 CTSE разрешает формирование сигнала CTS;

-         разряд 10 CTSIE разрешает прерывания от флага CTS регистра USART_SR;

-         разряды 11…31 зарезервированы. Некоторые разряды регистров USART могут быть использованы для формирования прерывания.

-         Последний регистр порта USART_CTPR содержит следующие разряды:

-         разряды 7…0 PSC[7:0] определяют величину предварительного делителя для задания скорости порта в режиме IrDA и Smartcard;

-         разряды 15…8 GT[7:0] задают значение таймера защиты для работы порта USART в режиме Smartcard;

-         разряды 31…16 зарезервированы.

После знакомства с назначением регистров порта USART рассмотрим пример его инициализации. Допустим необходимо настроить порт USART1 для связи с компьютером со скоростью обмена 9600 бод. Определим формат кадра порта с длиной посылки данных 8 бит, одним стоп-битом, без контроля паритета.

Частоту тактового сигнала примем равной 24 МГц.

Вначале необходимо включить тактирование порта USART и портов GPIO с помощью следующего набора команд: RCC->APB2ENR | = RCC_APB2ENR_ USART1EN; //. Включить тактирование порта USART1 RCC->APB2ENR | = RCC_APB2ENR_ IOPAEN; //. Включить тактирование GPIO RCC->APB2ENR | = RCC_APB2ENR_ AFIOEN; //. Включить тактирование альтернативных функций GPIO. Далее следует рассчитать скорость обмена для порта и записать полученное значение в регистр USART1_BRR.

Итак: USARTDIV = fck / (16 × baud) = 24 000 000/(16 × 9600) = 156,25. Переменная DIV_Mantissa составляет 156 = 0x9C, а переменная DIV_Fraction = 0,25 ×16 = 4. Запись значения скорости в регистр USART1_BRR выполняется с помощью команды: USART1->BRR = 0x09с4;// Задать скорость обмена порта USART1 равную 9600 бод Количество стоп-битов задаётся командой:

USART1->CR2=∼USART_CR2_STOP;//.Значение STOP = 00 соответствует 1 стоп-биту. Разрешение работы приёмника, передатчика и порта можно задать одной командой: USART1->CR1 = USART_CR1_RE | USART_ CR1_TE | USART_CR1_UE. Теперь инициализация порта выполнена.

Для передачи данных через порт USART необходимо записать передаваемый байт в регистр USART_DR конкретного порта: USART1->DR = data;//. Передать байт данных, прежде чем передавать следующий байт, необходимо дождаться окончания передачи предыдущего байта, анализируя состояние разряда TC регистра USART_SR: while((USART1->SR  USART_ SR_TC)==0) {} //. Ждать окончания передачи USART1->SR   = ∼USART_SR_TC; //. Очистить флаг окончания передачи. Приём информации от порта можно осуществлять следующим образом: while((USART1->SR  USART_SR_ RXNE)==0) {} //. Ждать приёма информации temp = USART1->DR; //. Считать принятый байт.

В данном случае сброс флага окончания приёма производится автоматически после чтения регистра данных. Обмен информацией через порт USART с помощью ожидания установки флагов является неэффективным и приводит к значительным потерям производительности микроконтроллера, а порой и к зависанию программы. Во избежание этих проблем рекомендуется использовать работу с портом USART по прерываниям. Для работы по прерываниям необходимо написать функцию обработчика прерывания, в которой будет проводиться анализ причины прерывания, а также будут выполняться необходимые операции для его обработки. Такая функция может иметь следующий вид: void USART1_IRQHandler(void) { unsignedchartemp; // Временная байтовая переменная if((USART1->SR  USART_SR_RXNE)!=0) //  Если приём завершен { temp = USART1->DR; // Считать принятый байт … // Выполнить необходимые действия } if((USART1->SR  USART_SR_TC)!=0) // Если передача завершена { USART1->SR  = ∼USART_SR_TC; // Сбросить флаг … // Выполнить необходимые действия } } Для активации прерываний от порта USART необходимо сначала их разрешить и затем задать события, которые будут генерировать прерывания с помощью следующих команд: NVIC_EnableIRQ (USART1_IRQn); // Разрешить прерывания от USART1 USART1->CR1 | = USART_CR1_TCIE; //  Разрешить прерывание по окончанию передачи USART1->CR1 | = USART_CR1_RXNEIE; //  Разрешить прерывание по приёму данных Использование прерываний освобождает процессор микроконтроллера от необходимости постоянной проверки флагов и позволяет высвободить его ресурсы для других действий.

1.7            Микропроцессорная система на базе 32-разрядного AVR-микроконтроллера серии STM32

AVR — семейство восьмибитных микроконтроллеров фирмы Atmel, разработанных в 1996 году. Микроконтроллеры AVR имеют гарвардскую архитектуру (программа и данные находятся в разных адресных пространствах) и систему команд, близкую к идеологии RISC. Процессор AVR имеет 32 8-битных регистра общего назначения, объединённых в регистровый файл. В отличие от «идеального» RISC, регистры не абсолютно ортогональны:

-         Некоторые команды работают только с регистрами r16…r31. К ним относятся команды работающие с непосредственным операндом: ANDI/CBR, ORI/SBR, CPI, LDI, LDS(16-бит), STS(16-бит), SUBI, SBCI, а также SER и MULS;

-         Команды увеличивающие и уменьшающие 16-битное значение (в тех моделях, где они доступны) с непосредственным операндом (ADIW, SBIW) работают только с одной из пар r25:r24, r27:r26 (X), r29:r28 (Y), или r31:r30 (Z);

-         Команда копирования пары регистров (в тех моделях, где доступна) работает только с соседними регистрами начинающимися с нечётного (r1:r0, r3:r2, …, r31:r30);

-         Результат умножения (в тех моделях, в которых есть модуль умножения) всегда помещается в r1:r0. Также, только эта пара используется в качестве операндов для команды самопрограммирования (где доступна);

-         Некоторые варианты команд умножения принимают в качестве аргументов только регистры из диапазона r16…r23 (FMUL, FMULS, FMULSU, MULSU).

-         Система команд микроконтроллеров AVR весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций.

-         Большинство команд занимает только 1 ячейку памяти (16 бит). Большинство команд выполняется за 1 такт.

-         Всё множество команд микроконтроллеров AVR можно разбить на несколько групп:

-         команды логических операций;

-         команды арифметических операций и команды сдвига;

-         команды операции с битами;

-         команды пересылки данных;

-         команды передачи управления;

-         команды управления системой.

Управление периферийными устройствами осуществляется через адресное пространство данных. Для удобства существуют «сокращённые команды» IN/OUT.

AVR32 — 32 битные микроконтроллеры архитектуры RISC, анонсированные фирмой Atmel в 2006 году. Призваны конкурировать с архитектурами фирмы ARM. Может использоваться в КПК и других мобильных высокопроизводительных устройствах. Обладает примечательным соотношением производительность/тактовая частота. Имеет 2 семейства: AVR32 AP и AVR32 UC3.

Большинство инструкций выполняется за один такт. Арифметическое устройство может выполнять операции типа 32-бит * 16-бит + 48-бит за два цикла (результат задержки).

Архитектура AVR состоит из нескольких микроархитектур, более известные из них это AVR32A и AVR32B, которые фиксируют особенности как конфигурации регистров, использование команд и данных кэша.

Архитектура AVR32 используется исключительно в собственных продуктах Atmel. Впервые Atmel представила платформу на ядре AP7 на базе архитектуры AVR32B с 7-уровневым конвейером и кэшем.

На рисунке 1.7.1 показана структура микроконтроллера AVR.

Рисунок 1.7.1 – структура микроконтроллера AVR.

2.           РАСЧЕТНАЯ ЧАСТЬ

2.           

2.1            Рекомендации по включению микроконтроллера PIC16F84A

Данная простейшая микропроцессорная система  строится согласно задания на основе микроконтроллера PIC16F84A. Данный микроконтроллер является базовой моделью микроконтроллера среднего уровня фирмы Microchipи имеет корпус с 18  выводами, 14-ти разрядное процессорное ядро, 8-ми разрядную шину данных и 2 порта: portA и portB.

Серия PIC16F84 подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.).

Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию микроконтроллеров пригодной для портативных приложений.   Низкая   цена, экономичность, быстродействие, простота использования и гибкость ввода/вывода делает PIC16F84 привлекательным даже в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.

Следует добавить, что встроенный автомат программирования EEPROM кристалла PIC16F84 позволяет легко подстраивать программу и данные под конкретные требования даже после завершения ассемблирования и тестирования. Эта возможность может быть использована как для тиражирования, так и для занесения калибровочных данных уже после окончательного тестирования.

Обзор характеристик микроконтроллера pic16f84a:

-         14- битовые команды;

-         8- битовые данные;

-         1024 х 14 электрически перепрограммируемой программной памяти на кристалле (EEPROM);

-         36 х 8 регистров общего использования;

-         15 специальных аппаратных регистров SFR;

-         64 x 8 электрически перепрограммируемой EEPROM памяти для данных;

-         восьмиуровневый аппаратный стек;

-         прямая, косвенная и относительная адресация данных и команд;

-         четыре источника прерывания.

Данный микроконтроллер спроектирован в dip корпусе с 18-выводами и имеет следующий вид:

Обозначение выводов и их назначение указаны в таблице 1:

Таблица 1 - подключение микроконтроллера pic16f84a

Обозначение

Нормальный режим

1

RA0 - RA3

Двунаправленные линии ввода/вывода. Входные уровни ТТЛ

2

RA4/RTCC

Вход через триггер Шмидта. Ножка порта ввода/вывода с открытым стоком или вход частоты для таймера/счетчика RTCC

3

RB0/INT

Двунаправленная линия порта ввода/ вывода или внешний вход прерывания. Уровни ТТЛ

4

RB1 - RB5

Двунаправленные линии ввода/ вывода. Уровни ТТЛ

5

RB6

Двунаправленные линии ввода/ вывода. Уровни ТТЛ.

6

RB7

Двунаправленные линии ввода/ вывода. Уровни ТТЛ.

7

MCLR/Vрр

Низкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий.

8

OSC1/CLKIN

Для подключения кварца, RC или вход внешней тактовой частоты

9

OSC2/CLKOUT

Генератор, выход тактовой частоты в режиме RC генератора, в остальных случаях - для подкл. кварц

10

Vdd

Напряжение питания

11

Vss

Общий(земля)

Pic микропроцессорной системы её необходимо запитать. МикроконтроллерыPic16f84aтребуют напряжения питания в основном в диапазоне от 4-6 В. Во многих приложениях используется батарейное питание. При подключении микроконтроллеровpic16f84a  к источнику питания необходим сглаживающий фильтр емкостью 0.1mFмежду выводами «+»Vddи «-»Vssрекомендуется керамический или тонталовый конденсатор, имеющий малые потери. Этот конденсатор обеспечивает повышенный выход выходного тока.


2.2            Расчет принципиальной схемы устройства на базе микроконтроллера PIC16F84A

MPLAB — интегрированная среда разработки, представляющая собой набор программных продуктов, предназначенная для облегчения процесса создания, редактирования и отладки программ для микроконтроллеров семейства PIC, производимых компанией Microchip Technology. Среда разработки состоит из отдельных приложений, связанных друг с другом и включает в себя компилятор с языка ассемблер, текстовый редактор, программный симулятор и средства работы над проектами, также среда позволяет использовать компилятор с языка C. MPLAB работает под управлением операционных систем семейства Windows. Текущая версия среды разработки — MPLAB IDE v8 (8.92).

MPLAB состоит из следующих основных модулей:

-         MPLAB Project Manager — средства работы на проектами;

-         MPLAB-SIM Software Simulator — моделирование поведения программы с целью поиска и удаления ошибок в алгоритме;

-         MPLAB Editor — полноценный текстовый редактор файлов ASM;

-         MPASM Universal Macro Assembler — компилятор с ассемблера, компоновщик;

-         MPLAB-ICE 2000 — моделирование поведения программы в реальном времени.

Assembler — машинно-ориентированный язык низкого уровня с командами, не всегда соответствующими командам машины, который может обеспечить дополнительные возможности вроде макрокоманд; автокод, расширенный конструкциями языков программирования высокого уровня, такими как выражения, макрокоманды, средства обеспечения модульности программ.
Автокод — язык программирования, предложения которого по своей структуре в основном подобны командам и обрабатываемым данным конкретного машинного языка.

Язык ассемблера — система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и памяти, а также задавать удобные для себя схемы адресации (например, индексную или косвенную). Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант и даёт возможность помечать строки программы метками с символическими именами с тем, чтобы к ним можно было обращаться (по именам, а не по адресам) из других частей программы (например, для передачи управления).

Перевод программы на языке ассемблера в исполнимый машинный код (вычисление выражений, раскрытие макрокоманд, замена мнемоник собственно машинными кодами и символьных адресов на абсолютные или относительные адреса) производится ассемблером — программой-транслятором, которая и дала языку ассемблера его название.

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

Для работы МК необходимо подать напряжение в диапазоне 9-12В на стабилизатор КР142ЕН5А, который понижает напряжение до фиксированного значения 5В. Конденсатор С1 емкостью 470мкФ сглаживает пульсации напряжения, а С4 - конденсатор развязки емкостью 0.1 мкФ между шинами питания Vdd и земли GND, так как при переключении больших выходных токов в схеме могут возникать значительные импульсные помехи. Схема питания PICMicro представлена на рисунке 2.2.1.

Рисунок 2.2.1 – Схема питания PICMicro

Светодиод надо подключать через резистор. Прямое сопротивление светодиода очень мало, если не ограничивать ток через него, то он просто может сгореть. Либо, что вероятней, пожечь вывод микроконтроллера. А для нормального свечения обычному светодиоду надо около 3…15мА.

Напряжение на выводе МК около 5 вольт, падение напряжения на светодиоде около 2 вольт.

Для подключения к МК будут использоваться 3 светодиода красного цвета АЛ112А с параметрами:

Uпр= 2В             Iпр = 10mA

Таким образом, напряжение которое должен взять на себя ограничительный резистор будет 5-2= 3В.

Ток 10мА

По закону Ома рассчитаем номинал ограничительного резистора:

R=U/I= 3/10 = 300Ом.

R1=R2=R3 = 300Ом

Исходя из расчетов для резисторов R1-8 должны быть по 300 Ом.

Разработанная схема с номиналами компонентов приведена на рисунке 2.2.3.

Рисунок 2.2.2 – Принципиальная схема устройства разработанная в среде Splan.

Рисунок 2.2.3 – Принципиальная схема устройства разработанная в среде DipTrace.

2.3            Разработка блок схемы алгоритма работы микроконтроллера

Прежде чем разрабатывать программу на языке Assembler, составим блок схему алгоритма работы микроконтроллера. Вначале мы произведем настройку нашего микроконтроллера, затем настройку подпрограммы прерывания по переполнению таймера. После чего будет запрос прерываний. Если ответ положительный, то мы переключаем Д1, затем производим опрос кнопки, если же нет, то производим опрос кнопки. Если во время опроса кнопки она нажата, то Д2 будет гореть, если же нет, то Д2 не будет гореть. После чего цикл повторяется снова, пока программа не будет отключена пользователем. В соответствии с высказанным блок схема алгоритма работы МК будет иметь следующий вид, представленный на рисунке 2.3.1.

Рисунок 2.3.1 – блок схема алгоритма работы МК


2.4            Разработка программы и hex-файла программы

LIST

P=16F84A;

INCLUDE

;

__CONFIG _WDT_OFF & _CP_OFF  &  _XT_OSC &  _PWRTE_ON;  XT кварцосцилятор, WDT выключен, PWRTE выключен, защита кода отключена

CBLOCK

0CH;

_W

_STATUS

ENDC

ORG

0;

GOTO

START;

С первой команды подпрограммы START

OUH

NOP

NOP

ORG

4;

GOTO

INT;

Безусловный переход

START

BSF

STATUS,5;

Заносим 1 в разряд 5 регистра STATUS

MOVLW

B’11110111’;

8-ми разрядную константу заносим в регистр W

MOVWF

TRISB;

TRISBзаписываем в регистр F

MOVLW

B’11100111’;

MOVWF

OPTION_REG;

BCF

STATUS,5;

Заносим 0 в разряд 5 регистра STATUS

BCF

PORTB,0;

CLRF

TMRO;

Заноси 0 во все рязряды регистра F

MOVLW

B’10100000’;

MOVWF

INTCON;

LOOP

BTFSC

PORTB,5;

Если значение разряда 5, то выполняется NOP

GOTO

SETBIT;

Переход по адресу SETBIT

BCF

PORTB,8;

GOTO

LOOP;

SETBIT

BSF

PORTB,8;

GOTO

LOOP;

INT

MOVWF

_W;

MOVF

STATUS,W;

MOVWF

_STATUS;

BCF

INTCON,2;

MOVLW

.1;

XORWF

PORTB;

MOVF

_STATUS,W;

MOVWF

STATUS;

SWAPF

_W;

Все разряды _W  заносятся в W

SWAPF

_W,W;

RETFIE;

Возврат из прерывания

END

2.5            Разработка печатной платы устройства

         DipTrace — САПР для проектирования печатных плат. В пакет включено четыре программы: Schematic — разработка принципиальных схем; PCB Layout — разводка плат, ручная и автоматическая трассировка; ComEdit — редактор корпусов; SchemEdit — редактор компонентов.

Рисунок 2.5.1 – пример принципиальной схемы разработанной в DipTrace


         Чтобы хоть как то оправдать свое присутствие на этом замечательном ресурсе, возникла идея рассказать и показать на деле мой опыт использования DipTrace по стандартам ГОСТ и ЕСКД. Это будет первая статья из целого ряда статей которые мне хотелось бы здесь представить.
         Вообще говоря о DipTrace от себя лично, хотелось бы отметить, что это простой и в тоже время функциональный САПР, относящийся к EDA – системам. 
         Первое, на мой взгляд, что примечательно – так это то, что это ПО, насколько мне известно, разрабатывается нашими соотечественниками, и большинство специалистов трудящихся над этой системой русскоязычные люди.

Второе, это очень большая коллекция компонентов, предоставляющая пользователям практически весь список современных электронных элементов разных фирм.

Рисунок 2.5.2 – библиотеки элементов в DipTrace

Третье, удобный интерфейс, в целом на много отличающийся по простоте использования, от уже давно всеми полюбившегося P-CAD.


 Рисунок 2.5.3 – интерфейс DipTrace


      DipTrace как и большинство подобных продуктов, является платным программным обеспечением, но цены на данное ПО весьма умеренные по сравнению с другими системами. Хочется отметить что Новарм (являющиеся основными и если я не ошибаюсь единственными разработчиками DipTrace), не позабыли и об обычных любителях электроники, и в ряде своих продуктов предлагает урезанную версию этого САПР. Ограничения заключается в использование (создании) схем всего на 300 выводов и 2 слоя, в принципе этого вполне достаточно для “домашних поделок”.
      Перечислять все достоинства DipTrace перед другими подобными системами, на мой взгляд нет смысла, так – как попользовавшись этим ПО вы все сами поймете, и возможно не захотите переходить на предыдущие системы (естественно это относится к пользователям которые не работали с этим ПО).
      Но среди всех достоинств, я выделил и несколько недостатков:
      Отсутствие компонентов соответствующих требованиям ГОСТа.
Чтобы исправить эту ситуацию, было решено создать библиотеку ГОСТовских компонентов.
      Отсутствие возможности представления списка компонентов в виде дерева, с строгой типизацией по функциональному назначению.
      Отсутствие печати в редакторах корпусов и компонентов.
      Отсутствие возможности произвольного выбора наименования списка компонентов (по типу, номиналу, корпусу, ну и т.д).

Рисунок 2.5.4 – печатная плата устройства расположением элементов  в масштабе 1:3

Рисунок 2.5.5 – печатная плата устройства в масштабе 1:1

Рисунок 2.5.6 – разработанная печатная плата устройства в 3D

Рисунок 2.5.7 – разработанная печатная плата устройства в 3D


ЗАКЛЮЧЕНИЕ

При выполнении курсовой работы была составлена программа на языке ассемблер MPASM для микроконтроллера PIC16F84A, обеспечивающая попеременное мигание 3-х светодиодов и производящая опрос кнопочного переключателя. Мерцание светодиодов реализовано с помощью программного таймера

Была составлена принципиальная схема устройства, по которой видны месторасположение и номиналы компонентов, специально собранных с учетом всех требований и параметров микроконтроллера.

Также составлена блок схема и программный листинг по ней, обеспечивающий работоспособность устройства путем задачи команд микроконтроллеру.

В выполнении поставленных задач поспособствовало специализированное программное обеспечение, а именно: MPLAB IDE Xv.2.30, DipTracev.2.4.0.2.


СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1.       Современная Электроника №9, 2013 г., СТА-Пресс

2.       http://www.kit-e.ru/articles/micro/2008_3_125.php

3.       http://habrahabr.ru/post/219803/

4.       http://www.rlocman.ru/review/article.html?di=113377

5.       http://chipspace.ru/stm32-flash-structure/

6.       https://ru.wikipedia.org/

Информация о файле
Название файла характеристика и архитектура 32-разрядных ARM-микроконтроллеров от пользователя Гость
Дата добавления 5.5.2020, 18:31
Дата обновления 5.5.2020, 18:31
Тип файла Тип файла (zip - application/zip)
Скриншот Не доступно
Статистика
Размер файла 1.16 мегабайт (Примерное время скачивания)
Просмотров 520
Скачиваний 59
Оценить файл