Разработка и изготовление лабораторного блока для программирования микроконтроллеров
ДИПЛОМНАЯ РАБОТА
РАЗРАБОТКА И ИЗГОТОВЛЕНИЕ ЛАБОРАТОРНОГО БЛОКА ДЛЯ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ
СОДЕРЖАНИЕ
Введение
Глава 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-разрядного АЦП с программируемым временем выборки.
Сдвоенный аналоговый компаратор с мультиплексированием входов.
Специальные опции микроконтроллера:
Структура, оптимизированная под компилятор С, с расширенным набором команд.
100000 циклов перезаписи памяти программ.
1000000 циклов перезаписи памяти данных 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 |
||
300000h |
CONFIG1L |
— |
— |
USBDIV |
CPUDV1 |
CPUDIVO |
PLLDIV2 |
PLLDIV1 |
PLLDIVO |
-00 0000 |
|
300001h |
CONFIG1H |
IESO |
FCMEN |
— |
— |
FOSC3 |
FOSC2 |
F0SC1 |
FOSCO |
00- 0101 |
|
300002h |
CONFIG2L |
— |
— |
VREGEN |
BOR1 |
BORVO |
BOREN1 |
BORENO |
PWRTEN |
-01 1111 |
|
300003h |
CONFIG2H |
— |
— |
— |
WDTPS3 |
WDTPS2 |
WDTPS1 |
WDTPSO |
WDTEN |
—1 1111 |
|
300005h |
CONFIG3H |
MCLE |
— |
— |
— |
— |
LPT10SC |
PBADEN |
CCP2MX |
1— —- |
|
300006h |
CONFIG4L |
DEBG |
XINST |
ICPRT |
— |
— |
LVP |
— |
STVREN |
100—1-1 |
|
300008h |
CONFIG5L |
— |
— |
— |
— |
CP3 |
CP2 |
CP1 |
CPO |
—- 1111 |
|
300009h |
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 |
00010010 |
Регистр конфигурации 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:32786
1110 = 1:16384
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 (006000 — 007FFFh) не защищен 0 = Блок 3 (006000 — 007FFFh) защищен
Примечание 1: Не применяется в кристаллах PIC18FX455. В этом случае всегда оставляйте его сброшенным.
bit2 CP2 бит защиты кода
1 = Блок 2 (004000 — 005FFFh) не защищен
0 = Блок 2 (004000 — 005FFFh) защищен
bitl CP1 бит защиты кода
1 = Блок 1 (002000 — 003FFFh) не защищен
0 = Блок 1 (002000 — 003FFFh) защищен
bitO CP0 бит защиты кода
1 = Блок 0 (000800 — 001 FFFh) не защищен
0 = Блок 0 (000800 — 001 FFFh) не защищен
Регистр конфигурации CONFIG5H (старший байт регистра конфигурации 5)
bit7 CPD бит защиты памяти данных EEPROM
1 = память данных EEPROM не защищена
0 = память данных EEPROM защищена
bit6 СРВ бит защиты кода загрузочного блока
1 = Загрузочный блок (000000 — 0007FFh) не защищен
0 = Загрузочный блок (000000 — 0007FFh) защищен
bit5-0 He используется, читается, как «0»
Регистр конфигурации CONFIG6L (младший байт регистра конфигурации 6)
bit3 WRT3 бит защиты кода от записи
1 = Блок 3 (006000 — 007FFFh) не защищен
0 = Блок 3 (006000 — 007FFFh) защищенПримечание 1: Не применяется в кристаллах PIC18FX455.В этом случае всегда оставляйте его сброшенным.
bit2 WRT2 бит защиты кода от записи
1 = Блок 2 (004000 — 005FFFh) не защищен
0 = Блок 2 (004000 — 005FFFh) защищен
bitl WRT1 бит защиты кода от записи
1 = Блок 1 (002000 — 003FFFh) не защищен
0 = Блок 1 (002000 — 003FFFh) защищен
bitO WRT0 бит защиты кода от записи
1 = Блок 0 (000800 — 001 FFFh) не защищен
0 = Блок 0 (000800 — 001 FFFh) не защищен
Регистр конфигурации CONFIG6H (старший байт регистра конфигурации 6)
bit7 WRTD бит защиты EEPROM от записи
1 = память данных EEPROM не защищена от записи 0 = память данных EEPROM защищена от записи
bit6 WRTB бит защиты от записи в загрузочный блок
1 = Загрузочный блок (000000 — 0007FFh) не защищен
0 = Загрузочный блок (000000 — 0007FFh) защищен
bit5 WRTC бит защиты от записи в регистр конфигурации
1 = регистры конфигурации (300000 — 3000FFh) не защищены от записи
0 = регистры конфигурации (300000 — 3000FFh) защищены от записиПримечание 1: В обычном режиме этот бит доступен только для чтения, его состояние может быть изменено только в режиме программмирования.
bit4-0 He используется, читается, как «0»
Регистр конфигурации CONFI7L (младший байт регистра конфигурации 7)
bit7-4 He используется, читается, как «0»
bit3 EBTR3 бит защиты блока от табличного чтения’1‘
1 = Блок 3 (006000 — 007FFFh) не защищен от табличного чтения издругих блоков
0 = Блок 3 (006000 — 007FFFh) защищен от табличного чтения издругих блоков
Примечание 1: Не применяется в кристаллах PIC18FX455. В этом случае всегда оставляйте его сброшенным.
bit2 EBTR2 бит защиты блока от табличного чтения
1 = Блок 2 (004000 — 005FFFh) не защищен от табличного чтения издругих блоков
0 = Блок 2 (004000 — 005FFFh) защищен от табличного чтения издругих блоков
bitl EBTR1 бит защиты блока от табличного чтения
1 = Блок 1 (002000 — 003FFFh) не защищен от табличного чтения из другихблоков
0 = Блок 1 (002000 — 003FFFh) защищен от табличного чтения из другихблоков
bitO EBTR0 бит защиты блока от табличного чтения
1 = Блок 0 (000800 — 001 FFFh) не защищен от табличного чтения издругих блоков
0 = Блок 0 (000800 — 001 FFFh) защищен от табличного чтения из другихблоков
Регистр конфигурации CONFIG7H (старший байт регистра конфигурации 7)
bit7 He используется, читается, как «0»
bit6 EBTRB бит защиты загрузочного блока от табличного чтения
1 = загрузочный блок (000000 — 0007FFh) не защищен от табличного чтения из других блоков.
0 = загрузочный блок (000000 — 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=0x800
#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 |
Нужна похожая работа?
Оставь заявку на бесплатный расчёт