Разработка и изготовление лабораторного блока для программирования микроконтроллеров

Тип работы:
Дипломная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

ДИПЛОМНАЯ РАБОТА

РАЗРАБОТКА И ИЗГОТОВЛЕНИЕ ЛАБОРАТОРНОГО БЛОКА ДЛЯ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ

СОДЕРЖАНИЕ

Введение

Глава 1. Микроконтроллер PIC18F2550

1.1 Характеристика микроконтроллера

1.2 Корпуса и выводы микроконтроллера

1.3 Перечень битов конфигурации и идентификаторов

Глава 2. Разработка и изготовление лабораторного блока для программирования микроконтроллеров

2.1 Разработка блок схемы устройства

2.2 Проектирование принципиальной электрической схемы

2.3 Разработка, изготовление печатной платы

Глава 3. Лабораторная работа по программированию микроконтроллера

3.1 Алгоритм программирования бутлоадера в микроконтроллер

3.2 Алгоритм программирования демонстрационной программы в микроконтроллер

Заключение

Список информационных источников

Приложения

ВВЕДЕНИЕ

Актуальность работы

Все в мире меняется. В компьютерной отрасли все совершенствуется, меняются компьютеры, интерфейсы, а значит что-то уходит в прошлое. Именно по этой причине появилась идея создания устройства программируемого по современному интерфейсу связи с персональным компьютером. При программировании PIC контроллеров данные подаются в последовательном виде, следовательно и интерфейс должен быть последовательным и должен быть легкий доступ к нему. К таким последовательным интерфейсам можно отнести COM (RS-232), FireWire (IEC-1394), USB. Первому уже лет практически столько же, сколько и самому термину «персональный компьютер», и он постепенно уходит в прошлое, а второй пока еще большая экзотика и остается последний вариант-это USB. В настоящее время наиболее популярным протоколом обмена данными между компьютером и периферийными устройствами является протокол шины. Это вполне удовлетворяет наши требования.

USB интерфейс

Шина USB (Universal Serial Bus — универсальная последовательная шина) появилась по компьютерным меркам довольно давно — версия первого утвержденного варианта стандарта появилась 15 января 1996 года. Разработка стандарта была инициировна весьма авторитетными фирмами — Intel, DEC, IBM, NEC, Northen Telecom и Compaq.

Основная цель стандарта, поставленная перед его разработчиками — создать реальную возможность пользователям работать в режиме Plug& Play с периферийными устройствами. Это означает, что должно быть предусмотрено подключение устройства к работающему компьютеру, автоматическое распознавание его немедленно после подключения и последующей установки соответствующих драйверов. Кроме этого, желательно питание маломощных устройств подавать с самой шины. Скорость шины должна быть достаточной для подавляющего большинства периферийных устройств. Попутно решается историческая проблема нехватки ресурсов на внутренних шинах IBM PC совместимого компьютера — контроллер USB занимает только одно прерывание независимо от количества подключенных к шине устройств.

Высокая скорость обмена (full-speed signaling bit rate) — 12 Mb/s

Максимальная длина кабеля для высокой скорости обмена — 5 m

Низкая скорость обмена (low-speed signaling bit rate) — 1.5 Mb/s

Максимальная длина кабеля для низкой скорости обмена — 3 m

Максимальное количество подключенных устройств (включая размножители) — 127

Возможно подключение устройств с различными скоростями обмена

Отсутствие необходимости в установке пользователем дополнительных элементов, таких как терминаторы для SCSI

Напряжение питания для периферийных устройств — 5 V

Максимальный ток потребления на одно устройство — 500 mA

Поэтому целесообразно подключать к USB практически любые периферийные устройства, кроме цифровых видеокамер и высокоскоростных жестких дисков. Особенно удобен этот интерфейс для подключения часто подключаемых/отключаемых приборов, таких как цифровые фотокамеры. Конструкция разъемов для USB рассчитана на многократное сочленение/расчленение.

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

Питание непосредственно от USB возможно только для устройств с малым потреблением, таких как клавиатуры, мыши, джойстики и т. п.

Целью дипломной работы являлось создание лабораторного блока для программирования микроконтроллера, в котором объединены JDM программатор, USB программатор для программирования микроконтроллеров серии PIC18Fх550 фирмы Microchip и тестовый блок, которое служит для изучения и наглядной демонстрации.

Для осуществления поставленной цели необходимо было решить следующие задачи:

1. Изучить радиотехническую литературу и на основе этого выбрать тип используемого микроконтроллера.

2. Разработать электрическую принципиальную схему устройства.

3. Разработать и изготовить печатную плату лабораторного блока.

4. Провести испытания лабораторного блока.

Научная новизна данной работы состоит в том, что устройство собранное на базе изучаемого микроконтроллера будет связываться и питаться посредством соединения с USB портом, такой лабораторный блок обладает существенными преимуществами по сравнению с аналогами:

— простота и надежность в использовании;

— заметное упрощение технологии выполнения лабораторных работ;

— увеличение скорости программирования микроконтроллера.

Практическая значимость

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

Глава 1. Микроконтроллер PIC18F2550

1.1 Характеристика микроконтроллера

Для изготовления программатора была выбрана серия PIC18Fxxxx микроконтроллеров и проанализирована. После анализа микроконтроллеров было принято решение остановиться на модели PIC18F2550. Так как этот микроконтроллер имеет 19 программируемых выводов, поддерживает USB режимы программирования и не очень сложен для изучения линейки микроконтроллеров поддерживающих USB режимы.

Основными достоинствами микроконтроллерf PIC18F2550 является функциональная наполненность и низкое энергопотребление на основе различных программируемых опций энергосбережения и фирменной технологии nanoWattтм.

Параметры модуля USB:

Совместимость с USB V2.0.

Поддержка низкоскоростного (1.5 Мбит/с) и высокоскоростного (12 Мбит/с) режимов.

Поддержка управляющей, по прерыванию, изохронной и пакетной передачи.

Поддержка до 32 конечных точек (16 двунаправленных). 1 кБ ОЗУ двойного доступа для нужд USB.

Встроенный трансивер USB.

Встроенный источник питания USB.

Возможность подключения внешнего трансивера USB.

Потоковый порт SPP для ввода-вывода потока параллельных данных через USB.

Режимы управления энергопотреблением:

Run: процессор включен, периферия включена.

Idle: процессор остановлен, периферия включена.

Sleep: процессор и периферия выключены.

Типовой потребляемый ток в режиме Idle до 5,8 мкА.

Типовой потребляемый ток в режиме Sleep до 0,1 мкА.

Генератор модуля Timer1: потребление до 1,1 мкА при 32кГц, 2 В.

Сторожевой таймер: до 2,1 мкА.

Гибкая структура генератора тактовых импульсов:

Четыре режима внешнего тактирования, до 48 МГц

Блок встроенного генератора:

— 8 выбираемых пользователем частот, от 31 кГц до 8 МГц;

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

Вторичный генератор, на основе генератора модуля Timer1, 32 кГц.

Возможность независимого тактирования процессора и модуля USB/

Мониторинг тактовых импульсов:

— возможность безопасного останова при попадании импульсов основного тактового генератора.

Опции периферии:

Втекающий и вытекающий ток до 25 мА

Три внешних прерывания

Четыре модуля таймеров

До двух модулей захвата/сравнения /ШИМ:

— захват 16 бит, с разрешением до 6,25 нс (Tcy/16)

— сравнение 16 бит, с разрешением до 100 нс (Tcy)

ШИМ с разрешением от 1 до 10 бит

Расширенный модуль захвата/сравнения/ШИМ (ЕССР):

— различные входные режимы;

— полярность по выбору;

— программируемая «мертвая зона»;

— автоотключение и авторестарт;

Расширенный модуль USART (EUSART):

— поддержка шины LIN.

Модуль ведущего синхронного последовательнго порта (MSSP) с поддержкой SPI (все четыре режима) и I2C (ведущий и ведомый).

До 13 модулей 10-разрядного АЦП с программируемым временем выборки.

Сдвоенный аналоговый компаратор с мультиплексированием входов.

Специальные опции микроконтроллера:

Структура, оптимизированная под компилятор С, с расширенным набором команд.

100 000 циклов перезаписи памяти программ.

1 000 000 циклов перезаписи памяти данных EEPROM.

Срок хранения памяти программ и данных более 40 лет.

Возможность самопрограммирования (смены прошивок).

Наличие приоритетов прерываний.

Аппаратный умножитель 8×8.

Расширенный сторожевой таймер:

— программируемый период от 41 мс до 131 с

Программируемая защита кода

Внутрисхемное программирование по двум проводам

Одно напряжение программирования 5 В (ICSP)

Внутрисхемная отладка по двум проводам (ICD)

Широкий диапазон напряжений питания, от 2,0 до 5,5 В

1.2 Корпуса и выводы микроконтроллера

Для изготовления программатора понадобится не планарный тип корпуса т.к. плата будет двухсторонней. К таким видам относится тип корпуса PDIP. Рисунок такого типа корпуса представлен ниже.

Рис 1. Корпус PDIP28 выводов

Рис 2. Расположение и назначение выводов микроконтроллера

Назначение выводов PIC18F2550

Обозначение вывода

Номер

Тип

Буфер

Описание

MCLR/Vpp/RE3

MCLR

VPP

RE3

1

I

Р

I

ST

ST

Вход общего сброса или напряжения

программирования

Общий сброс низким уровнем

Вход напряжения программирования

Цифровой вход

OSC1/CLKI

OSC1

CLKI

9

I

I

A

A

Подключение резонатора или вход внешних тактов

Кристалл резонатора или вход внешних тактов

Только вход внешних тактов: всегда ассоциирован с функцией вывода OSC1 (см. также вывод OSC2)

OSC2/CLKO/

RA6

OSC2

CLKO

RA6

10

0

0

I/O

-

-

TTL

Подключение резонатора или выход тактовых импульсов

Подключен к кварцу в режиме кварцевого генератора

Выход импульсов частотой % от входной на OSC1

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

RAO/ANO

RAO

ANO

2

I/O

I

TTL A

Цифровой вход/выход

Аналоговый вход 0

RA1/AN1

RA1

AN1

3

I/O

I

TTL A

Цифровой вход/выход

Аналоговый вход 1

RA2/AN2/Vref-/

CVREF

RA2

AN2

Vref-

CVref

4

I/O

I

I

0

TTL A

A

A

Цифровой вход/выход

Аналоговый вход 2

Вход опорного напряжения АЦП (низкое)

Выход опорного уровня компаратора

RA3/AN3/VREF+

RA3

AN3

Vref-

5

I/O

I

I

TTL A

A

Цифровой вход/выход

Аналоговый вход 3

Вход опорного напряжения АЦП (высокое)

RA4/T0CKI/C1OUT /RCV

RA4

TOCKI

C10UT

RCV

6

I/O

I

0

I

ST

ST

-

TTL

Цифровой вход/выход

Вход внешних счетных импульсов модуля Timer0

Выход компаратора 1

Вход RCV USB-трансивера

RA5/AN4/SS/ HLVDIN/C20UT

RA5

AN4

SS

HLVDIN

C20UT

7

I/O

I

I

I

O

TTL

A

TTL

A

-

Цифровой вход/выход

Аналоговый вход 4

Вход выбора SPI

Вход модуля обнаружения перепада «High/Low»

Выход компаратора 2

«RB0/AN12/INT0/

FLT0/

SDI/SDA

RBO

AN12

INTO

FLTO

SDI

SDA

21

I/O

I

I

I

I

I/O

TTL

A

ST

ST

ST

ST

Цифровой вход/выход

Аналоговый вход 12

Внешнее прерывание 0

Вход ошибки ШИМ (модуль ССР1)

Вход данных SPI

Вход/выход данных 12С

RB1/AN10/INT1/

SCK/SCL

RB1

AN10

INT1

SCK

SCL

22

I/O

I

I

I/O

I/O

TTL

A

ST

ST

ST

Цифровой вход/выход

Аналоговый вход 10

Внешнее прерывание 1

Вход/выход синхроимпульсов для режима SPI

Вход/выход синхроимпульсов для режима l2C

RB2/AN8/INT2/

VMO

RB2

AN8

INT2

VMO

23

I/O

I

I

0

TTL

A

ST

-

Цифровой вход/выход

Аналоговый вход 8

Внешнее прерывание 2

Выход VMO USB-трансивера

RB3/AN9/CCP2/

VPO

RB3

AN9

CCP2(1)

VPO

24

I/O

I

I/O

0

TTL

A

ST

-

Цифровой вход/выход

Аналоговый вход 9

Вход Capture2/ выход Compare2/ выход PWM2

RB4/AN11/KBI0

RB4

AN11

KBIO

25

I/O

I

I

TTL

A

TTL

Цифровой вход/выход

Аналоговый вход 11

Вывод прерывания по изменению состояния

RB5/KBI1/PGM

RB5

КВI1

PGM

26

I/O

I

I/O

TTL TTL

ST

Цифровой вход/выход

Вывод прерывания по изменению состояния

Включение низковольтного программирования ICSP

RB6/KBI2/PGC

RB6

KBI2

PGC

27

I/O

I

I/O

TTL TTL

ST

Цифровой вход/выход

Вывод прерывания по изменению состояния

Внутрисхемная отладка и тактирование ICSP

RB7/KBI3/PGD

RB7

KBI3

PGD

28

I/O

I

I/O

TTL TTL

ST

Цифровой вход/выход

Вывод прерывания по изменению состояния

Внутрисхемная отладка и данные ICSP

RC0/T1OSO/T13CKI

RCO

T10SO

T13CKI

11

I/O

О

I

ST

-

ST

Цифровой вход/выход

Вход генератора Timer1

Вход внешних импульсов Timer1/ Timer3

RC1/T10SI/CCP2/ UOE

RC1

T10SI

ССР2(2)

UOE

12

I/O

I

I/O

-

ST

CMOS

ST

-

Цифровой вход/выход

Вход генератора Timer1

Вход Capture2/ выход Соmpaге2/выход

PWM2

Выход ОE внешнего USB-трансивера

RC2/CCP1

RC2

ССР1

13

I/O

I/O

ST

ST

Цифровой вход/выход

Вход Capturel/выход Comparel/выход

PWM1

RC4/D-/VM

RC4

D-

VM

15

I

I/O

I

TTL TTL

Цифровой вход/выход

Отрицательная диф. линия USB (вход/выход)

Вход VM внешнего USB-трансивера

RC5/D+/VP

RC5

D+

VP

16

I

I/O

О

TTL

-

TTL

Цифровой вход/выход

Положительная диф. линия USB (вход/выход)

Вход VP внешнего USB-трансивера

RС6/TХ/СК

RC6

ТХ

СК

SDO

17

I/O

О

I/O

O

ST

-

ST

-

Цифровой вход/выход

Асинхронная передача EUSART

Синхронные такты EUSART (см. RX/DT)

Выход данных SPI

RС7/RХ/DT/SDO

RC7

RX

DT

SDO

18

I/O

I

I/O

O

ST

ST

ST

-

Цифровой вход/выход

Асинхронная передача EUSART

Синхронные данные EUSART (см. RX/DT)

Выход данных SPI

Vusb

14

0

-

Встроенный регулятор USB 3. 3V

Vss

8,9

P

-

«Земля» для логики и портов ввода/вывода

VDD

20

P

-

Напряжение питания для логики и портов

Обозначения: TTL — совместимый по уровням с TTL логикой; CMOS — совместимый с CMOS;

ST — триггер Шоттки на входе, с уровнями CMOS; О — выход, I — вход, Р- питание.

Примечания:

1. Подключено к ССР2, когда бит конфигурации ССР2МХ сброшен.

2. По умолчанию подключен к ССР2, когда бит конфигурации установлен.

Рис 3. Внутренняя структура PIC18F2450/2550 (28 выводов)

1. 3 Перечень битов конфигурации и идентификаторов

Обозна-чение

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit0

Default/UnprogrammedValue

30 0000h

CONFIG1L

-

-

USBDIV

CPUDV1

CPUDIVO

PLLDIV2

PLLDIV1

PLLDIVO

-00 0000

30 0001h

CONFIG1H

IESO

FCMEN

-

-

FOSC3

FOSC2

F0SC1

FOSCO

00- 0101

30 0002h

CONFIG2L

-

-

VREGEN

BOR1

BORVO

BOREN1

BORENO

PWRTEN

-01 1111

30 0003h

CONFIG2H

-

-

-

WDTPS3

WDTPS2

WDTPS1

WDTPSO

WDTEN

--1 1111

30 0005h

CONFIG3H

MCLE

-

-

-

-

LPT10SC

PBADEN

CCP2MX

1--- ----

30 0006h

CONFIG4L

DEBG

XINST

ICPRT

-

-

LVP

-

STVREN

100--1−1

30 0008h

CONFIG5L

-

-

-

-

CP3

CP2

CP1

CPO

---- 1111

30 0009h

CONFIG5H

CPD

СРВ

-

-

-

-

-

-

11-- ----

30000Ah

CONFIG6L

-

-

-

-

WRT3

WRT2

WRT1

WRTO

---- 1111

30000Bh

CONFIG6H

WRTD

WRTB

WRTC

-

-

-

-

-

111- ----

30000Ch

CONFIG7L

-

-

-

-

EBTR3

EBTR2

EBTR1

EBTRO

----1111

30000Dh

CONFIG7H

EBTRB

-1-- ----

3FFFFEh

DEVID1

DEV2

DEV1

DEVO

REV4

REVS

REV2

REV1

REVO

xxxxхххх

SFFFFFh

DEVID2

DEV10

DEV9

DEV8

DEV7

DEV6

DEV5

DEV4

DEV3

10 010

Регистр конфигурации C0NFIG1L (младший байт регистра конфигурации 1)

bit7−6 He используются, читаются, как «О»

bit5 USBDIV бит выбора частоты USB

(используется только в режиме полноскоростного USB; UCFG: FSEN = 1)

1 = тактовые импульсы USB получаются из 96 МГЦ ФАПЧ делением на 2

0 = тактовые импульсы USB поступают напрямую от первичного источника

bit4−3 CPUDIV1: CPUDIV0 биты выбора постделителя системных тактов.

Для режимов XT, HS, ЕС и ЕСЮ

11 = частота первичного генератора делится на 4 для тактирования ядра

10 = частота первичного генератора делится на 3 для тактирования ядра

0 1 = частота первичного генератора делится на 2 для тактирования ядра

00 = импульсы поступают от первичного генератора напрямую

Для режимов XTPLL, HSPLL, ECPLL и ЕСРЮ

11 = частота ФАПЧ 96 МГц делится на 6 для тактирования ядра

10 = частота ФАПЧ 96 МГц делится на 4 для тактирования ядра

01 = частота ФАПЧ 96 МГц делится на 3 для тактирования ядра

00 = частота ФАПЧ 96 МГц делится на 2 для тактирования ядра

bit2−0 PLLDIV2: PLLDIV0 биты выбора предделителя ФАПЧ

111= деление на 12 (вход генератора 48 МГц)

110 = деление на 10 (вход генератора 40 МГц)

101 = деление на 6 (вход генератора 24 МГц)

100 = деление на 5 (вход генератора 20 МГц)

011 = деление на 4 (вход генератора 16 МГц)

010 = деление на 3 (вход генератора 12 МГц)

001 = деление на 2 (вход генератора 8 МГц)

000= деления нет, колебания 4 МГц поступают на ФАПЧ напрямую

Регистр конфигурации CONFIG1H (старший байт регистра конфигурации 1)

bit7 IESO бит переключения внешнего/внутреннего генератора

1 = режим переключения «внешний/внутренний генератор» разрешен.

0 = режим переключения «внешний/внутренний генератор» запрещен.

bit6 FCMEN бит включения монитора тактового генератора

1 = монитор тактового генератора включен.

0 = монитор тактового генератора выключен.

bit5−4 He используется, читается, как «0»

bit3−0 FOSC3: FOSC0 биты выбора генератора

111х = генератор HS, ФАПЧ включена (режим HSPLL)

110х = генератор HS (режим HS)

1011 = внутренний генератор, для USB используется генератор HS (INTHS)

1010 = внутренний генератор, для USB используется генератор XT (INTXT)

1001 = внутренний генератор, CLKO на RA6, для USB исп. ЕС (INTCKO)

1000 = внутренний генератор, RA6 как порт, для USB исп. ЕС (INTIO)

0111 = генератор ЕС, ФАПЧ включена, CLKO на RA6 (режим ECPLL)

0110 = генератор ЕС, ФАПЧ включена, порт на RA6 (режим ECPIO)

0101 = генератор ЕС, CLKO на RA6 (режим ЕС)

0100 = генератор ЕС, порт на RA6 (режим ЕСЮ)

001х = генератор XT, ФАПЧ включена (режим XTPLL)

000х = генератор XT (режим XT)

Примечание: В режимах XT, HS и ЕС микроконтроллер и модуль USB оба используют выбранный генератор, как источник тактовых импульсов. Модуль USB использует указанный генератор XT, HS или ЕС как источник тактов всегда, когда микроконтроллер использует внутренний источник. Т. е. даже если микроконтроллер тактируется от внутреннего источника, при использовании модуля USB необходим внешний генератор.

Регистр конфигурации C0NFIG2L (младший байт регистра конфигурации 2)

bit7−6 He используется, читается, как «0»

bit5 VREGEN бит включения внутреннего регулятора напряжения USB

1 = встроенный регулятор включен

0 = встроенный регулятор выключен

bit4−3 BORV1: BORV0 биты настройки сброса по перепаду напряжения

11 = минимальная установка

00 = максимальная установка

bit2−1 BOREN1: BOREN0 биты включения сброса по перепаду напряжения

11 = сброс по перепаду включен только аппаратно (бит SBOREN отключен)

10 =сброс по перепаду включен аппаратно и отключен в режиме Sleep

01 = сброс по перепаду включен и управляется программно (битомSBOREN)

00 = сброс по перепаду отключен как программно, так и аппаратно

bit0 PWRTEN бит включения таймера задержки на установление питания

1 = таймер PWRT выключен

0 = таймер PWRT включен

Примечание 1: См. электрические характеристики

Примечание 2: Таймер PWRTотключен от модуля сброса по перепаду питания, что позволяет управлять этими опциями раздельно.

Регистр конфигурации C0NFIG2H (старший байт регистра конфигурации 2)

bit7−5 He используются, читаются, как «0»

bit4−1 WDTPS3: WDTPS0 биты настройки постделителя сторожевого таймера

1111 = 1: 32 786

1110 = 1: 16 384

1101 = 1: 8192

1100 = 1: 4096

1011 = 1: 2048

1010 = 1: 1024

1001 = 1: 512

1000 = 1: 256

0111 = 1: 128

0110 = 1: 64

0101 = 1: 32

0100 = 1: 16

0011 = 1: 8

0010 = 1: 4

0001 = 1: 2

0000 = 1: 1

bit0 WDTEN бит включения сторожевого таймера

1 = сторожевой таймер включен

0 = сторожевой таймер выключен

Регистр конфигурации C0NFIG3H (старший байт регистра конфигурации 3)

bit7 MCLRE бит включения вывода MCLR

1 = вывод MCLR включен, входRE3 выключен

0 = вход RE3 включен, MCLR выключен

bit6−3 Не используется, читается, как «0»

bit2 LPT1OSC бит включения экономичного режима модуля Timerl

1 = Timerl сконфигурирован для экономичного режима

0 = Timerl сконфигурирован в обычный режим потребления

bit1 PBADEN бит включения входов АЦП на выводы PORTB (влияет на состояние ADCON1 по сбросу. ADCON1, в свою очередь,

управляет конфигурацией выводов PORTB< 4:0>)

1 = PORTB< 4:0> сконфигурированы, как аналоговые каналы АЦП по сбросу

0 = PORTB< 4:0> сконфигурированы, как цифровые порты по сбросу

bit0 CCP2MX бит мультиплексора ССР2

1 = вход/выход ССР2 мультиплексирован к RC1

0 = вход/выход ССР2 мультиплексирован к RB3

Регистр конфигурации CONFIG4L (младший байт регистра конфигурации 4)

bit7 DEBUG бит включения фонового отладчика

1 = отладчик выключен, выводы RB6 и RB7 работают в штатном режиме

0 = отладчик включен, RB6 и RB7 используются для внутрисхемнойотладки

bit6 XINST бит включения поддержки расширенного набора команд

1 = расширение команд и индексная адресация включены

0 = расширение команд и индексная адресация выключены

bit5 ICPRT бит включения специального порта отладки/программирования (ICPORT)

1 = ICPORT включен

0 = ICPORT выключен

Примечание: Опция доступна только в кристаллах PIC18F4455/4550. В остальных кристаллах бит ICPRT следует всегда оставлять сброшенным.

bit4−3 He используются, всегда читаются, как «О»

bit2 LVP бит включения одиночного питания ICSP

1 = одиночное питание ICSP включено

0 = одиночное питание ICSP выключено

bitl He используется, читается, как «О»

bit0 STVREN бит включения сброса по заполнению/опустошению стека

1 = заполнение/опустошение стека приводит к сбросу

0 = заполнение/опустошение стека не вызывает сброс

Регистр конфигурации CONFIG5L (младший байт регистра конфигурации 5)

bit7−4 He используется, читается, как «О»

bit3 СРЗ бит защиты кода(1)

1 = Блок 3 (6 000 — 007FFFh) не защищен 0 = Блок 3 (6 000 — 007FFFh) защищен

Примечание 1: Не применяется в кристаллах PIC18FX455. В этом случае всегда оставляйте его сброшенным.

bit2 CP2 бит защиты кода

1 = Блок 2 (4 000 — 005FFFh) не защищен

0 = Блок 2 (4 000 — 005FFFh) защищен

bitl CP1 бит защиты кода

1 = Блок 1 (2 000 — 003FFFh) не защищен

0 = Блок 1 (2 000 — 003FFFh) защищен

bitO CP0 бит защиты кода

1 = Блок 0 (800 — 001 FFFh) не защищен

0 = Блок 0 (800 — 001 FFFh) не защищен

Регистр конфигурации CONFIG5H (старший байт регистра конфигурации 5)

bit7 CPD бит защиты памяти данных EEPROM

1 = память данных EEPROM не защищена

0 = память данных EEPROM защищена

bit6 СРВ бит защиты кода загрузочного блока

1 = Загрузочный блок (0 — 0007FFh) не защищен

0 = Загрузочный блок (0 — 0007FFh) защищен

bit5−0 He используется, читается, как «0»

Регистр конфигурации CONFIG6L (младший байт регистра конфигурации 6)

bit3 WRT3 бит защиты кода от записи

1 = Блок 3 (6 000 — 007FFFh) не защищен

0 = Блок 3 (6 000 — 007FFFh) защищенПримечание 1: Не применяется в кристаллах PIC18FX455. В этом случае всегда оставляйте его сброшенным.

bit2 WRT2 бит защиты кода от записи

1 = Блок 2 (4 000 — 005FFFh) не защищен

0 = Блок 2 (4 000 — 005FFFh) защищен

bitl WRT1 бит защиты кода от записи

1 = Блок 1 (2 000 — 003FFFh) не защищен

0 = Блок 1 (2 000 — 003FFFh) защищен

bitO WRT0 бит защиты кода от записи

1 = Блок 0 (800 — 001 FFFh) не защищен

0 = Блок 0 (800 — 001 FFFh) не защищен

Регистр конфигурации CONFIG6H (старший байт регистра конфигурации 6)

bit7 WRTD бит защиты EEPROM от записи

1 = память данных EEPROM не защищена от записи 0 = память данных EEPROM защищена от записи

bit6 WRTB бит защиты от записи в загрузочный блок

1 = Загрузочный блок (0 — 0007FFh) не защищен

0 = Загрузочный блок (0 — 0007FFh) защищен

bit5 WRTC бит защиты от записи в регистр конфигурации

1 = регистры конфигурации (300 000 — 3000FFh) не защищены от записи

0 = регистры конфигурации (300 000 — 3000FFh) защищены от записиПримечание 1: В обычном режиме этот бит доступен только для чтения, его состояние может быть изменено только в режиме программмирования.

bit4−0 He используется, читается, как «0»

Регистр конфигурации CONFI7L (младший байт регистра конфигурации 7)

bit7−4 He используется, читается, как «0»

bit3 EBTR3 бит защиты блока от табличного чтения'1'

1 = Блок 3 (6 000 — 007FFFh) не защищен от табличного чтения издругих блоков

0 = Блок 3 (6 000 — 007FFFh) защищен от табличного чтения издругих блоков

Примечание 1: Не применяется в кристаллах PIC18FX455. В этом случае всегда оставляйте его сброшенным.

bit2 EBTR2 бит защиты блока от табличного чтения

1 = Блок 2 (4 000 — 005FFFh) не защищен от табличного чтения издругих блоков

0 = Блок 2 (4 000 — 005FFFh) защищен от табличного чтения издругих блоков

bitl EBTR1 бит защиты блока от табличного чтения

1 = Блок 1 (2 000 — 003FFFh) не защищен от табличного чтения из другихблоков

0 = Блок 1 (2 000 — 003FFFh) защищен от табличного чтения из другихблоков

bitO EBTR0 бит защиты блока от табличного чтения

1 = Блок 0 (800 — 001 FFFh) не защищен от табличного чтения издругих блоков

0 = Блок 0 (800 — 001 FFFh) защищен от табличного чтения из другихблоков

Регистр конфигурации CONFIG7H (старший байт регистра конфигурации 7)

bit7 He используется, читается, как «0»

bit6 EBTRB бит защиты загрузочного блока от табличного чтения

1 = загрузочный блок (0 — 0007FFh) не защищен от табличного чтения из других блоков.

0 = загрузочный блок (0 — 0007FFh) защищен от табличного чтения из других блоков.

bit5−0 He используется, читается, как «0»

Описанные далее регистры-идентификаторы используются для автоматического распознавания типа микросхемы программатором.

Регистр идентификатора DEVID1 для кристаллов PIC18F2455/2550/4455/4550

bit7−5 DEV2: DEV0 младшие биты идентификатора

011 =PIC18F2455

010 = PIC18F2550

001 = PIC18F4455

000 = PIC18F4550

bit4−0 REV4 — REV0 биты версии (ревизии) микросхемы

Эти биты содержат номер технологической версии (ревизии) кристалла

Регистр идентификатора DEVID2 для кристаллов PIC18F2455/2550/4455/4550

bit7−0 DEV10: DEV3 старшие биты идентификатора

Эти биты используются совместно с битами DEV2: DEV0 регистра DEVID1 для идентификации номера микросхемы.

В данном случае: 0001 0010 = PIC18F2455/2550/4455/4550

Внимание! Эти значения DEV10: DEV3 могут совпадать с идентификаторами других микроконтроллеров Microchip. Для однозначного определения типа микросхемы необходимо использовать полный идентификатор DEV10: DEV0, составленный из содержимого двух регистров.

лабораторный программирование бутлоадер микроконтроллер

Глава 2. Разработка и изготовление лабораторного блока для программирования микроконтроллеров

2.1 Разработка блок схемы устройства

Программатор был создан на базе микроконтроллера PIC18F2550. Для его программирования и проверки работоспособности в программаторе находятся следующие элементы и модули:

— программатор с COM-портом, который служит для программирования микроконтроллера от ПК в режиме HVP;

— программатор с USB портом, который служит для программирования микроконтроллера от ПК;

— блок кнопок для перехода в режим программирования и обратно;

— блок питания для автономной работы;

— светодиод для индексации режимов питания;

— светодиод для тестирования;

— переключатель режимов питания USB — 9 В.

/

/

Рис 4. Блок схема программатора

2.2 Проектирование принципиальной электрической схемы

При разработке электрической схемы программатора для микроконтроллера PIC18F2550, было решено совместить высоковольтный программатор (HVP) и низковольтный (LVP).

HVP — (Hard Voltage Programming) высоковольтное программирование.

LVP — (Low Voltage Programming) низковольтное программирование.

Это пришлось сделать по ряду причин:

1) Посредством HVP в микроконтроллер вносится небольшая программка, БУТЛОАДЕР — интерфейс к персональному компьютеру, находящийся внутри микропроцессора, который позволяет программировать микроконтроллер через USB порт, а так же позволяющий стирать и программировать основную программу, не затрагивая сам бутлоадер.

2) Если бутлоадер был запрограммирован на LVP программаторе, то порт RB7 к которому подсоединяется кнопка BOOT, работать как программируемый порт не будет (на этом выводе постоянно будет логическая единица). Эту проблему можно решить путем программирования на HVP программаторе.

3) Программировать, стирать и считывать основную программу через USB возможно только через LVP программатор.

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

Принципиальная электрическая схема автомата, разработанная нами представлена на рисунке 5, и в приложении 1. Также в приложении 4 приведена спецификация радиоэлементов, использованных в программаторе.

Рис 5. Принципиальная электрическая схема программатора

2.3 Разработка, изготовление печатной платы

С помощью САРПР PCAD по принципиальной электрической схеме нами была разработана печатная плата программатора. Результаты этой работы представлены в приложении 2.

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

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

В начале проектирования мы располагали следующим:

— на диске ПК имелся набор программ системы PCAD;

— было известно техническое задание на проектирование электронных блоков;

— имелись библиотеки радиоэлементов, причем, параметры символьных отображений компонентов (файлы *. sym, соответствующие изображениям радиоэлементов на принципиальной схеме) должны находиться в соответствии с аналогичными параметрами конструкторско-технологических образов этих компонентов (файлы *. prt, соответствующие изображениям корпусов радиоэлементов на печатной плате). Элементы, которых нет в библиотеке, создавались вручную, и заносились в библиотеку.

Для создания и вывода на печать изображения печатных плат использовался лазерный принтер и программа PC-CARDS и PC-PRINT из пакета программ САПР PCAD соответственно. Изображение печатных плат со стороны расположение элементов выводиться на печать в зеркальном отображении.

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

После того как готова заготовка печатной платы и напечатаны изображения с обеих сторон, прорисовываем перманентным маркером дорожки на заготовке.

После этого производят травление платы. Травят плату обычно в растворе хлорного железа. Нормальной концентрацией раствора можно считать 20…50%. Разводят, примерно, 500 г порошка хлорного железа в горячей кипяченой воде до получения общего объема раствора, равного 1 л. Раствор переливается в обычную ванночку (например использовать фотографический кювет). Продолжительность травления — 10…60 мин, она зависит от температуры, концентрации раствора, толщины медной фольги. Травление проводят под вытяжкой или в хорошо проветриваемом помещении.

Промытую плату просушивают, рассверливают отверстия под выводы радиоэлементов (при этом используются сверла диаметром 0,8…1,0 мм.), зачищают мелкозернистой наждачной бумагой, протирают салфеткой, смоченной спиртом или ацетоном, а затем покрывают канифольным лаком (раствор канифоли в спирте).

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

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

Плата программатора выполнена из двухстороннего фольгированного стеклотекстолита, имеет размеры 123×113мм.

Глава 3. Лабораторная работа по программированию микроконтроллера.

3.1 Алгоритм программирования бутлоадера в микроконтроллер

Чтобы запрограммировать бутлоадер в микроконтроллер надо сделать следующие шаги:

1) Вставить микроконтроллер в изготовленный программатор

2) Установить программу WinPic800 (желательно версии 3. 60) и запустить.

— На вкладке выбора серии микроконтроллера выбрать PIC18, далее на вкладке выбора микроконтроллера выбрать pic18f2550;

— На вкладке «настройки» выберите «адаптер»

— Оказавшись в аппаратных настройках выберите адаптер «JDM Programmer»

3) Подключить программатор к компьютеру при помощи COM кабеля.

4) На вкладке «Device» выбрать пункт «Определить тип Device» (Должно высветиться, что обнаружен — pic18f2550)

5) Открываем файл бутлоадера C: Microchip SolutionsUSB Precompiled DemosFactory HEX Files for Microchip USB Demo Boardspicdemfsusb. hex и на вкладке «Device» выбираем пункт «программировать все». Для проверки считайте что запрограммировалось в микроконтроллер командой «читать все».

6) Отсоединить COM кабель. Следующий раз он понадобится, если появиться потребность смены бутлоадера.

На этом алгоритм программирования бутлоадера закончен.

3.2 Алгоритм программирования демонстрационной программы в микроконтроллер

Для демонстрации работы разработанного лабораторного блока с помощью него была разработана программа мигания светодиода. Листинг программы приведен ниже.

1) Запустите MPLAB и затем «мастер проекта». Project/ Project Wizard… На появившейся заставке мастера нажмите «далее» и в следующем диалоге выберите модель МК, который хотите использовать.

2) В третьем шаге укажите компилятор C18. Если компилятора не окажется в списке, то найдите его вручную и укажите.

3) В следующем шаге — окне нажмите «Browse» и создайте папку для проекта. Откройте созданную папку, дайте название проекту и нажмите «Сохранить».

4) В MPLAB создайте новый файл — меню File/ New и сохраните его File/ Save под именем, соответствующем имени проекта.

5) Далее необходимо добавить файл в проект. Project/ Add Files to Project

6) Выполните компиляцию проекта. Project/ Build All

В окне «Output» выводятся все сообщения о ходе работы инструментов пакета MPLAB. Если при компиляции возникли ошибки или предупреждения, то они тоже выводятся в это окно.

В папке проекта появились новые файлы.

7) Подключаем изготовленный программатор через USB кабель

8) На запрос установки драйвера указываем путь вручную C: Microchip SolutionsUSB ToolsMCHPUSB Custom DriverMCHPUSB DriverRelease. (На компьютере надо лишь один раз установить драйвер.)

9) Запускаем программу PDFSUSB. C: Microchip SolutionsUSB ToolsPdfsusbPDFSUSB. exe

10) Нажимаем кнопку «BOOT» и удерживаем ее, при этом нажимаем и отпускаем кнопку «RESET». Появится звуковой сигнал подключения устройства к компьютеру.

11) На вкладке «Bootload Mode» выбираем «PICDEM FS USB 0 (Boot)».

12) «Load HEX File» загружаем созданный. hex файл.

13) «Program Device» программируем устройство

#pragma code myprog=0×800

#include «p18f2550. h»

void Delay10_us (unsigned char t);

void Delay100_us (unsigned char t);

void Delay_ms (unsigned char t);

void Delay10_ms (unsigned char t);

void main (void)

{

PORTA=0; TRISA=0;

PORTB=0; TRISB=0;

PORTC=0; TRISC=0b00000111;

ADCON1=15;

INTCON2=0;

PORTA=0b00000000;

while (1) // бесконечный цикл

{

PORTA=0b00000010;

Delay10_ms (50); //задержка 0,5 сек.

PORTA=0b00000000;

Delay10_ms (50);

}}

void Delay10_us (unsigned char t)

{ do

{{_asm nop nop nop nop nop nop nop nop nop nop

nop nop nop nop nop nop nop nop nop nop

nop nop nop nop nop nop nop nop nop nop

nop nop nop nop nop nop nop nop nop nop

nop nop nop nop nop nop nop nop nop nop

nop nop nop nop nop nop nop nop nop nop

nop nop nop nop nop nop nop nop nop nop

nop nop nop nop nop nop nop nop nop nop

_endasm};

} while (t--);

}

void Delay100_us (unsigned char t)

{ do

{

Delay10_us (10);

} while (t--);

}

void Delay_ms (unsigned char t)

{ do

{

Delay100_us (10);

} while (t--);

}

void Delay10_ms (unsigned char t)

{ do

{

Delay_ms (10);

} while (t--);

}

ЗАКЛЮЧЕНИЕ

1) Результаты, достигнутые при выполнении дипломной работы:

2) Проанализирована радиотехническая литература и выбран тип микроконтроллера

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

4) На основе структурной схемы спроектирована принципиальная электрическая схема блока.

5) Разработана и изготовлена печатная плата устройства.

6) Разработана демонстрационная программа.

7) Проведены испытания изготовленного устройства.

Цель дипломной работы была достигнута: разработан и создан лабораторный блок для программирования микроконтроллера (фото см. в приложении 3). Разработанный лабораторный блок планируется использовать в практикуме по микропроцессорной технике специализации «Информатика и микропроцессорная техника» специальности «Технология и предпринимательство».

СПИСОК ИНФОРМАЦИОННЫХ ИСТОЧНИКОВ

Программные средства:

1. PCAD

2. MPLAB IDE

3. WinPic800

4. Microchip MCHPFSUSB

5. Microsoft Word

Список литературы:

1. Яценков В. С. Микроконтроллеры Microchip с аппаратной поддержкой USB. — М.: Горячая линия — Телеком, 2008. — 400 с.: ил.

2. Китайгородский М. Д. Программирование микроконтроллеров. Лабораторный практикум. Сыктывкар, 2006. — 64 с.: ил.

3. Китайгородский М. Д. Основы автоматизированного проектирования принципиальных электрических схем и печатных плат. Сыктывкар, 2001. — 44 с.: ил.

4. Китайгородский М. Д. Сельков Д.М. Проектирование и изготовление устройств на микроконтроллерах. Сыктывкар 2008. — 56с.: ил.

Информационные источники Internet:

1. http: //microchip. ru

2. http: //radiokot. ru

3. http: //rlocman. ru

4. http: //remexpert. com

5. http: //RadioSpec. ru

6. http: //pology. zp. ua

ПРИЛОЖЕНИЕ 1

Принципиальная электрическая схема

ПРИЛОЖЕНИЕ 2

Печатная плата

Рис 6. Расположение элементов на плате

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

Рис 8. Разводка металлизированных дорожек на плате со стороны радиоэлементов

ПРИЛОЖЕНИЕ 3

Рис 9. Фото программатора

ПРИЛОЖЕНИЕ 4

Спецификация радиоэлементов

Позиционное обозначение

Наименование

Количество

R5,R6,R3,R2

R1,R4

R7

Резисторы:

10K Ом

1K Ом

1. 5K Ом

4

2

1

C1,C2

C3,C5,C7

C4,C10

C6

C8

C9

Конденсаторы:

33 пФ

0.1 мкФ

1 мкФ 50В

К50−16−35В-100 мкФ

100 нФ

100 мкФ

2

3

2

1

1

1

D1,D2,D3

Диоды:

1N4148

3

D4

D5

Стабилитроны:

KC151A

KC212A

1

1

VT

Транзистор

КТ3102А

1

DA

Стабилизатор

KP142EH5

1

Z

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

20 МГц

1

H1

H2

Светодиоды:

АЛ307А

АЛ307B

1

1

J1

J2

J3

J4

Разъем интерфейса USB

Разъем интерфейса RS232

Разъем питания

Перемычка

1

1

1

1

CPU

Микроконтроллер

PIC18F2550

1

SB1,SB2

Кнопки

2

ПоказатьСвернуть
Заполнить форму текущей работой