
- •1. Обзорная часть
- •1.2 Генераторы сигналов произвольной формы
- •2.1 Описание структурной схемы устройства
- •3. Описание элементной базы
- •4. Построение схемы электрической принципиальной
- •5 Разработка печатной платы устройства
- •Предварительная подготовка заготовки
- •Нанесение защитного покрытия
- •Травление
- •Очистка заготовки, сверловка, нанесение флюса, лужение
- •6 Расчетная часть
- •7.2 Разработка алгоритма программы
- •10 Заключение
2.1 Описание структурной схемы устройства
Данное устройство, структурная схема которого представлена на рисунке 2.1, представляет собой генератор сигналов на базе цифро-аналогового преобразователя..
Основные компоненты устройства:
- МК – микроконтроллер,
- ЦАП- цифро-аналоговый преобразователь,
- Б – буферная схема интерфейса SPI,
- И - семисегментный индикатор.
Частота сигнала и его фаза задаются программным способом через ICSP интерфейс. На микроконтроллер (МК) возлагается функция загрузки регистров генератора.
Вначале микроконтроллер (МК) опрашивает клавиатуру, предназначенную для управления, после синхронизируется с индикатором (И) и преобразовывает информацию на вывод в индикатор (И). Далее вычисляет значение кода частоты и отправляет его через буферную схему (Б) интерфейса SPI в цифро-аналоговый преобразователь (ЦАП).
На схеме буфер (Б) предназначен для буферизации шины данных и управления.
Для определения яркости свечения индикатора (И) на сегментики подключены резисторы , также для управления индикатором (И) используются транзисторы.
Для развязки по цепям питания используются керамические конденсаторы емкостью 0,1 мкФ, соединенные параллельно с танталовыми конденсаторами емкостью порядка 10 мкФ.
Рисунок 2.1– Структурная схема генератора сигналов на базе цифро-аналогового преобразователя.
3. Описание элементной базы
Описание микроконтроллера PIC16f877
Микроконтроллер - это устройство, выполняющее ограниченный набор функций. В кристалле микроконтроллера размещено не только ядро вычисления, но также: запоминающее устройство, где хранятся программа контроллера и данные; набор периферийных устройств (ПУ), для полноценного использования микроконтроллера; порты ввода-вывода.
Микроконтроллеры большое распространение получили в области систем автоматического контроля и управления. Микроконтроллеры представляют собой полностью готовые миниатюрные устройства, которые не требуют подключения внешних устройств, для нормальной работы. Возможность программирования микроконтроллеров позволяет использовать их в любых сферах электроники с максимально возможной программной обработкой сигнала.
Производством микроконтроллеров занимаются более 35 компаний, самыми распространенными из которых являются Microchip и Atmel. В ассортименте имеются микроконтроллеры от простейших до супер сложных.
Отличаются они составом периферийных устройств и техническими характеристиками. Благодаря широкому спектру микроконтроллеров, разработчики устройств на микроконтроллерах могут выбрать наиболее подходящий для своего устройства.
При выборе микроконтроллера следует исходить из того, что он будет удовлетворять по некоторым параметрам: тип и габариты корпуса, наличие необходимых периферийных устройств, интерфейсы программирования, способы программирования микроконтроллера, возможность установки защиты кода программы, функция энергопотребления микроконтроллера и другие.
В дипломном проекте используется микроконтроллер PIC16F877.
Таблица 3.1 Характеристики микроконтроллера PIC16F877
ОЗУ данных |
192 |
Сброс (задержка сброса) |
POR, BOR (PWRT, OST) |
Flash-память программ |
4K |
АЦП |
8 каналов |
EEPROM |
128 |
Порты ввода/ вывода |
Порты A, B, C, D, E |
Прерываний |
14 |
Таймер |
3 |
Модуль захват/сравнение/ШИМ |
2 |
Последовательный интерфейс |
MSSP, USART |
Инструкций |
35 |
Частота |
20МГц |
Паралл. интерфейс |
PSP |
Цоколевка:
Рисунок 3.1 – Обозначение выводов PIC16f877
Особенности ядра микроконтроллера:
Высокопроизводительный RISC-процессор;
Всего 35 простых инструкций для изучения;
Все инструкции исполняются за один такт, кроме инструкций перехода, выполняемых за два такта;
Скорость работы: тактовая частота до 20 МГц; минимальная длительность такта 200 нс
Flash-память программ до 4к x 14 слов
Память данных (ОЗУ) до 192 x 8 байт
ЭСППЗУ память данных до 128 x 8 байт
Совместимость цоколевки с PIC16C73/74/76/77
Механизм прерываний (до 14 внутренних/внешних источников)
Восьмиуровневый аппаратный стек
Прямой, косвенный и относительный режимы адресации
Сброс при включении питания (POR)
Таймер сброса (PWRT) и таймер ожидания запуска генератора (OST) после включения питания)
Сторожевой таймер (WDT) с собственным встроенным RC-генератором для повышения надежности работы
Программируемая защита кода
Режим экономии энергии (SLEEP)
Выбираемые режимы тактового генератора
Экономичная, высокоскоростная технология КМОП FLASH/ЭСППЗУ
Полностью статическая архитектура
Программирование на плате через последовательный порт с использованием двух выводов
Для программирования требуется только источник питания 5В
Отладка на плате с использованием двух выводов
Доступ процессора на чтение/запись памяти программ
Широкий диапазон рабочих напряжений питания: от 2,0В до 5,5В
Сильноточные линии ввода/вывода: 25 мА
Коммерческий и промышленный температурные диапазоны
Низкое потребление энергии:
< 2мА при 5В, 4МГц;
20мкА (типичное значение) при 3В, 32 кГц;
< 1мкА (типичное значение) в режиме STANDBY.
Периферия:
Timer0: 8-разрядный таймер/счетчик с 8-разрядным предварительным делителем
Timer1: 16-разрядный таймер/счетчик с предварительным делителем, может вести счет во время спящего режима от внешнего генератора
Timer2: 8-разрядный таймер/счетчик с 8-разрядным регистром периода, предварительным и выходным делителем
2 модуля захват/сравнение/ШИМ:
Захват 16-ти разрядов, максимальное разрешение 12,5нс;
Сравнение 16-ти разрядов, максимальное разрешение 200нс;
ШИМ с максимальным разрешением 10 разрядов
10-битный многоканальный аналого-цифровой преобразователь
Синхронный последовательный порт (SSP) с интерфейсами SPI (с Master-режимом) и I2C (с режимами Master/Slave)
Универсальный синхронно-асинхронный приемопередатчик (USART/SCI) с обнаружением 9-разрядного адреса
Встроенный генератор опорного напряжения
Параллельный 8-битный Slave-порт (PSP) со внешними сигналами управления RD, WR и CS (только в 40/44-выводных корпусах)
Программируемая схема сброса при падении напряжения питания (BOR).
Рис. 3.2. – Структурная схема микроконтроллера pic16f877
Таблица 3.2 Назначение выводов микроконтроллера PIC16F877
Обозначение вывода |
№ выв. DIP |
№ выв. PLCC |
№ выв. QFP |
Тип I/O/P |
Тип буфера |
Описание |
OSC1/CLKIN |
13 |
14 |
30 |
I |
ST/CMOS |
Вход генератора / вход внешнего тактового сигнала |
OSC2/CLKOUT |
14 |
15 |
31 |
O |
— |
Выход генератора. Подключается кварцевый или керамический резонатор. В RC режиме тактового генератора на выходе OSC2 присутствует тактовый сигнал CLKOUT, равный FOSC/4. |
MCLR/VPP |
1 |
2 |
18 |
I/P |
ST |
Вход сброса микроконтроллера или вход напряжения программирования. Сброс микроконтроллера происходит при низком логическом уровне сигнала на входе. |
RA0/AN0 |
2 |
3 |
19 |
I/O |
TTL |
Двунаправленный порт ввода/вывода PORTA. RA0 может быть настроен как аналоговый канал 0 |
RA1/AN1 |
3 |
4 |
20 |
I/O |
TTL |
RA1 может быть настроен как аналоговый канал 1 |
RA2/AN2/VREF- |
4 |
5 |
21 |
I/O |
TTL |
RA2 может быть настроен как аналоговый канал 2 или вход отрицательного опорного напряжения |
RA3/AN3/VREF+ |
5 |
6 |
22 |
I/O |
TTL |
RA3 может быть настроен как аналоговый канал 3 или вход положительного опорного напряжения |
RA4/T0CK |
6 |
7 |
23 |
I/O |
ST |
RA4 может использоваться в качестве входа внешнего тактового сигнала для TMR0. Выход с открытым стоком. |
RA5/SS/AN4 |
7 |
8 |
24 |
I/O |
TTL |
RA1 может быть настроен как аналоговый канал 1 или вход выбора микросхемы в режиме ведомого SPI |
RB0/INT |
33 |
36 |
8 |
I/O |
TTL/ST |
Двунаправленный порт ввода/вывода PORTB. PORTB имеет программно подключаемые подтягивающие резисторы на входах. |
RB1 |
34 |
37 |
9 |
I/O |
TTL |
RB0 может использоваться в качестве входа внешних прерываний. |
RB2 |
35 |
38 |
10 |
I/O |
TTL |
|
RB3/PGM |
36 |
39 |
11 |
I/O |
TTL |
RB3 может использоваться в качестве входа для режима низковольтного программирования. |
RB4 |
37 |
41 |
14 |
I/O |
TTL |
Прерывания по изменению уровня входного сигнала.
|
RB5 |
38 |
42 |
15 |
I/O |
TTL |
Прерывания по изменению уровня входного сигнала. |
RB6/PGC |
39 |
43 |
16 |
I/O |
TTL/ST |
Прерывания по изменению уровня входного сигнала или вывод для режима внутрисхемной отладки ICD. Тактовый вход в режиме программирования. |
RB7/PGD |
40 |
44 |
17 |
I/O |
TTL/ST |
Прерывания по изменению уровня входного сигнала или вывод для режима внутрисхемной отладки ICD. Вывод данных в режиме программирования. |
RC0/T1OSO/T1CKI |
15 |
16 |
32 |
I/O |
ST |
Двунаправленный порт ввода/вывода PORTC. RC0 может использоваться в качестве выхода генератора TMR1 или входа внешнего тактового сигнала для TMR1. |
RC1/T1OSI/CCP2 |
16 |
18 |
35 |
I/O |
ST |
RC1 может использоваться в качестве входа генератора для TMR1 или вывода модуля CCP2. |
RC2/CCP1 |
17 |
19 |
36 |
I/O |
ST |
RC2 может использоваться в качестве вывода модуля CCP1. |
RC3/SCK/SCL |
18 |
20 |
37 |
I/O |
ST |
RC3 может использоваться в качестве входа/выхода тактового сигнала в режиме SPI и I2C. |
RC4/SDI/SDA |
23 |
25 |
42 |
I/O |
ST |
RC4 может использоваться в качестве входа данных в режиме SPI или вход/выход данных в режиме I2C. |
RC5/SDO |
24 |
26 |
43 |
I/O |
ST |
RC5 может использоваться в качестве выхода данных в режиме SPI. |
RC6/TX/CK |
25 |
27 |
44 |
I/O |
ST |
RC6 может использоваться в качестве вывода передатчика USART в асинхронном режиме или вывода синхронизации USART в синхронном режиме. |
RC7/RX/DT |
26 |
29 |
1 |
I/O |
ST |
RC6 может использоваться в качестве вывода приемника USART в асинхронном режиме или вывода данных USART в синхронном режиме. |
RD0/PSP0 |
19 |
21 |
38 |
I/O |
ST/TTL |
Двунаправленный порт ввода/вывода PORTD или ведомый параллельный порт для подключения к шине микропроцессора |
RD1/PSP1 |
20 |
22 |
39 |
I/O |
ST/TTL |
|
RD2/PSP2 |
21 |
23 |
39 |
I/O |
ST/TTL |
|
RD3/PSP3 |
22 |
24 |
41 |
I/O |
ST/TTL |
|
RD4/PSP4 |
27 |
30 |
2 |
I/O |
ST/TTL |
|
RD5/PSP5 |
28 |
31 |
3 |
I/O |
ST/TTL |
|
RD6/PSP6 |
29 |
32 |
4 |
I/O |
ST/TTL |
|
RD7/PSP7 |
30 |
33 |
5 |
I/O |
ST/TTL |
|
RE0/RD/AN5 |
8 |
9 |
25 |
I/O |
ST/TTL |
Двунаправленный порт ввода/вывода PORTE. RE0 может использоваться в качестве управляющего входа чтения PSP или аналогового канала 5 |
RE1/WR/AN6 |
9 |
10 |
26 |
I/O |
ST/TTL |
RE1 может использоваться в качестве управляющего входа записи PSP или аналогового канала 6 |
RE2/CS/AN7 |
10 |
11 |
27 |
I/O |
ST/TTL |
RE2 может использоваться в качестве управляющего входа выбора PSP или аналогового канала 7 |
VSS |
12,31 |
13,34 |
6,29 |
P |
— |
Общий вывод для внутренней логики и портов ввода/вывода |
VDD |
11,32 |
12,35 |
7,28 |
P |
— |
Положительное напряжение питания для внутренней логики и портов ввода/вывода |
NC |
— |
1,17,28, 40 |
12,13, 33,34 |
|
— |
Эти выводы внутри микросхемы не подключены.
|
Обозначения: I = вход, O = выход, I/O = вход/выход, P = питание, - = не используется, TTL = входной буфер ТТЛ, ST = вход с триггером Шмидта. Примечания: 1. Входной буфер с триггером Шмидта при использовании внешних прерываний. 2. Входной буфер с триггером Шмидта при работе в режиме последовательного программирования. 3. Входной буфер с триггером Шмидта при работе в режиме цифровых портов ввода/вывода. В режиме ведомого параллельного порта подключены входные буферы ТТЛ (для совместимости с шиной микропроцессора). 4. Входной буфер с триггером Шмидта в режиме RC генератора и |
CMOS буфер в других режимах.
3.2 Описание цифро-аналогового преобразователя MCP4921
MCP4921 устройство представляет собой одноканальный 12-битный ЦАП, который использует внешний источник опорного напряжения. Это устройство обеспечивает высокую точность и низкое энергопотребление и доступны в различных пакетах. Связь с устройством осуществляется с помощью простого последовательного интерфейса SPI. MCP4921 устройство является частью семейства, которые используют внешний источник опорного напряжения (VREF). Эти устройства обеспечивают очень высокую точность и низкий уровень шумов, и пригодны для потребительских и промышленных приложений. Низкое энергопотребление и малые варианты пакета хорошо подходят для многих портативных и маломощных приложений. Благодаря своим компактным размерам и малой мощности потребления, эти новые ЦАП обеспечивает значительные преимущества в пространстве ограниченных случаях, когда минимальная мощность потребление имеет решающее значение. Режимы программного обеспечения или аппаратного выключения предоставят дополнительную экономию электроэнергии, уменьшение тока в режиме ожидания до 0,5 мкА (тип.) при любом выборе. Связь с MCP4921 осуществляется через 3-проводной SPI протокол.
Отличительные особенности:
разрешение: 12 разрядов;
дифференциальная нелинейность: ±0,2 младшего разряда (тип);
интегральная нелинейность: ±2 младших разряда (тип);
выходы Rail-to-Rail;
SPI-интерфейс с частотой до 20МГц;
синхронные защелки данных на обоих ЦАП;
малое время установления: 4,5мкс;
выбор выходного коэффициента усиления 1х или 2х;
вход для внешнего источника опорного напряжения VREF;
диапазон напряжения питания: 2,7В...5,5В;
количество выводов: 8
тип входа: последовательный
температурный диапазон: -40°C...+125°C;
корпуса: MSOP-8 (MS) и DIP-8 (P).
Цоколевка:
Назначение выводов.
Таблица 3.3 Назначение выводов. MCP4921
VDD
|
Потребляемая мощность питания по отношению к AVSS может варьироваться от 2,7 до 5.5. Развязывающий конденсатор на VDD рекомендуется для достижения максимальной производительности. |
CS |
Вход выбора чипа, который требует активного низкий сигнал для включения последовательных часов и функций данных |
SCK |
SPI совместимый последовательный ввод |
SDI |
SPI совместимый последовательный ввод данных |
LDAC |
Задвижка входа ЦАП. Передача ввода регистров задвижки ЦАП при низком логическом уровне |
VOUTA |
ЦАП усиливает сигнал на выводах в диапазоне AVSS- VDD |
VREFA
|
Аналоговый сигнал на этих выводах используется для установки опорного напряжения на строку ЦАП. Входной сигнал может варьироваться в диапазоне от AVSS к VDD |
AVSS |
Аналоговое заземление |
Рисунок 3.3. Структурная схема MCP4921
3.3 Описание цифрового индикатора
Сегментные цифровые индикаторы предназначены для отображения цифровой информации в электронных устройствах. Преимуществом светодиодных цифровых индикаторов по сравнению с альтернативными жидкокристаллическими являются активное свечение и эргономичность.
Типичная схема подключения светодиода к выводу МК показана на рис. 3.4. В этой схеме светодиоды будут светиться когда МК выдает сигнал «0» (низкое напряжение). Когда вывод работает в качестве входа данных или на него выводится «1», то светодиод будет выключен.
Резистор сопротивлением 220 Ом используется для ограничения тока, т.к. слишком большой ток может вывести из строя МК и светодиод. Некоторые МК содержат ограничители тока на выходных линиях, что устраняет потребность в ограничивающем резисторе. Но все же целесообразно, на всякий случай, включить этот резистор, чтобы гарантировать, что короткое замыкание на «землю» или напряжение питания Vcc, не выведет из строя МК.
Рис.3.4. – Подключение светодиода к микроконтроллеру
Семи сегментный индикатор.
Вероятно, самый простой вывод числовых десятичных и шестнадцатеричных данных – это использование семи сегментного индикатора (ССИ).
Светодиодные индикаторы до сих пор являются полезными приборами, которые могут быть включены в схему без больших усилий для создания программного обеспечения. Включая определенные светодиоды (зажигая сегменты), можно выводить десятичные числа.
Каждый светодиод в индикаторе имеет свой буквенный идентификатор (A, B, C, D, E, F, G), и одна из ножек светодиода подключена к соответствующему внешнему выводу. Вторые ножки всех светодиодов соединены вместе и подключены к общему выводу. Этот общий вывод определяет тип индикатора: с общим катодом или с общим анодом.
Рис.3.5– Семи сегментный индикатор
Подключение индикатора к МК осуществляется весьма просто: обычно индикатор подключают как семь или восемь (если используется десятичная точка) независимых светодиодов. Наиболее важной частью работы при подключении к МК нескольких ССИ является назначения линий вводе вывода для каждого светодиода. Решение этой задачи в начале выполнения проекта упростит вам монтаж разводки и отладку устройств в дальнейшем. Типичный способ подключения нескольких индикаторов состоит в том, чтобы включить их параллельно и затем управлять протеканием тока через общие выводы отдельных индикаторов. Так как величина этого тока обычно превышает допустимое значение выходного тока МК, то для управления оком включается дополнительные транзисторы, которые выбирают, какой из индикаторов будет находиться в активном состоянии.
На рис. 3.6 показано подключение к МК четырех ССИ. В этой схеме МК выдает данные для индикации, последовательно переходя от одного индикатора к другому. Каждая цифра будет высвечиваться в течении очень короткого интервала времени. Это обычно выполняется с помощью подпрограммы обслуживания прерываний таймера. Чтобы избежать мерцания изображения, подпрограмма должна выполняться со скоростью, обеспечивающий включение индикатора, по крайней мере, 50 раз в секунду. Чем больше цифр, тем чаще должны следовать прерывания от таймера. Например, при использовании восьми ССИ цифры должны выводиться со скоростью 400 раз в секунду.
Рис.3.6 Подключение к МК четырех ССИ
В дипломном проекте используется 7-сегментный 4-разрядный цифровой индикатор CC56-12.
Таблица 1.4 Характеристики цифрового индикатора CC56-12
Материал |
GaAlAs |
Цвет свечения |
красный |
Длина волны,нм |
640 |
Минимальная сила света Iv мин.,мКд |
8 |
Максимальная сила света Iv макс.,мКд |
24 |
При токе Iпр.,мА |
10 |
Количество сегментов |
7 |
Количество разрядов |
4 |
Схема включения. |
общ.катод |
Высота знака,мм |
14.2 |
Максимальное прямое напряжение,В |
2.5 |
Максимальное обратное напряжение,В |
5 |
Максимальный прямой ток ,мА |
30 |
Максимальный импульсный прямой ток ,мА |
155 |
Рабочая температура,С |
40…85 |