Программирование PIC16F876A. Собираем схему с плавно мигающим светодиодом / Хабр
Эта статья направлена на новичков в программировании микроконтроллеров семейства PIC16 от Microchip. В нашем случае, я выбрал немного превосходящий микроконтроллер для таких задач, а именно — PIC16F876A. Программирование микроконтроллера будем производить в MPLAB IDE.Цель работы: собрать схему, которая будет мигать светодиодом, внимание, с применением ШИМ.
И так, цель задачи обозначили. Теперь перейдем к реализации наших планов.
Часть 1. Железо.
В первую очередь нам понадобятся компоненты, из которых мы будем собирать схему. А именно:
- Микроконтроллер PIC16F876A
- Рассыпуха к нему
- Светодиод
- Макетная плата
Макетную плату желательно иметь в наличии.
В понятие «рассыпухи» входят такие детали как: пара конденсаторов для кварца и конденсатор на выход модуля CPP (Для того что бы сгладить пульсации).
Собранная схема выглядит следующим образом:
Это типовое включение микроконтроллера, ничего нового я тут не придумывал.
Так же, для программирования микроконтроллера я пользуюсь программатором-отладчиком ICD2. Он подключается к компьютеру по USB и прекрасно работает как на системе Windows, так и на GNU/Linux. В нашем случае будем использовать родной MPLAB IDE в Windows.
Скрин в процессе разработки:
Часть 2. Программная.
Светодиод подключаем на 1й модуль CPP (ШИМ). За настройку модуля в микроконтроллере отвечает регистр CPP1CON. Чтобы модуль у нас заработал, предварительно необходимо инициализировать таймер. Для режима ШИМ используется таймер TMR2. За его конфигурацию отвечает регистр T2CON. Инициализация:
movlw .0
bcf STATUS, 5movwf T2CON ; Помещаем в регистр T2CON - 0
bsf T2CON, 0 ; Устанавливаем бит T2CKPS0 (Предделитель)
bsf T2CON, 2 ; Включаем таймер TMR2 битом TMR2ON
bsf T2CON, 3 ; Устанавливаем бит TOUTPS0 (Постделение)
На этом инициализация таймера закончена. Теперь при включении контроллера от будет служить источником для нашего ШИМ модуля.
Инициализация ШИМ модуля происходит следующим образом:
movlw 00101111b ; Подготавливаем конфигурацию
movwf CPPCON ; Конфигурируем ШИМ
bsf CPPCON, 2 ; Включаем модуль ШИМ
Все, на этом инициализация закончена. Теперь мы можем помещать в регистр CPP1L число от 0 до 255, тем самым меняя скважность выходных импульсов.Полный исходник программы для прошивки нашего микроконтроллера:
STATUS equ 03h
TRISC equ 07h
CPPCON equ 17h
CPP1L equ 15h
T2CON equ 12h
counter equ 23h
tmp equ 25h
org 0
goto start
start
bsf STATUS, 5
movlw .0
movwf TRISC
bcf STATUS, 5
movwf T2CON
bsf T2CON, 0
bsf T2CON, 2
bsf T2CON, 3
movlw 00101111b
movwf CPPCON
bsf CPPCON, 2
movlw .0
movwf CPP1L
movlw .255
movwf tmp
decfsz tmp, 1
goto $+2
goto $+4
call delay10mS
incf CPP1L, 1
goto $-5
movlw .255
movwf tmp
decfsz tmp, 1
goto $+2
goto $+4
call delay10mS
decf CPP1L, 1
goto $-5
goto $-16
delay10mS
movlw .50
movwf counter
loop
call delay200uS
decfsz counter
goto loop
return
delay200uS
movlw .100
addlw -1
btfss STATUS,2
goto $-2
return
end
Краткая заметка по командам, использованных в программе.equ — Присвоение имени на определенный адрес.
goto — Переход программы на метку, либо определенную строку
call — Вызов подпрограммы
movlw — Поместить в регистр W, число
movwf — Переместить из регистра W число
bsf — Установить бит в регистре, в состояние 1
bcf — Установить бит в регистре, в состояние 0
addlw — Прибавить в регистр W число
btfss — Проверить бит в регистре на 1
incf — Инкриминировать регистр (прибавить 1)
decf — Декриминировать регистр (вычесть 1)
decfsz — Вычесть 1 из регистра + проверка на 0
Принцип работы программы.
В начале, происходит инициализация регистров, затем настройка внутренних модулей микроконтроллера.
В переменной tmp мы можем задавать скважность, тем самым меняя максимальную яркость светодиода.
Далее реализована часть программы, которая отвечает за само мигание светодиода, с учетом использования ШИМ. Сначала, инкриминируя CPP1L до значения tmp мы заставляем светодиод медленно начать светиться, а затем делаем обратную операцию.
Часть 3. Финальная
Перед тем как прошивать Ваш контроллер, Вам необходимо установит биты конфигурации микроконтроллера. Без них, ничего работать не будет.
И так:
1) WDT — выключаем. Это сторожевой таймер. Предназначен для аппаратного сброса микроконтроллера в момент непредвиденного зависания.
2) LWP — выключаем. Это низковольтное программирование. Мы используем нормальный программатор, который подает на MCLR 13В.
Часть 4. Бонусная.
Видео для тех, кто еще не программировал/не собирал схемы, но очень хочет увидеть результат:
Часть 5. Информация.
Официальный сайт microchip — www.microchip.com
Цитируемые источники — www.wikipedia.org
Русская документация для микроконтроллеров PIC — www.microchip.ru/lit/?mid=1×0
РадиоКот :: Измеритель ESR/L/C/F/P/t на PIC16F876A
РадиоКот >Схемы >Цифровые устройства >Измерительная техника >Измеритель ESR/L/C/F/P/t на PIC16F876A
Вот и утихли страсти по конкурсным работам, теперь можно спокойно обсудить и собрать понравившиеся конструкции. Я тоже, в свою очередь, поздравляю Радиокота с днем рождения! Как и обещал, предлагаю описание собранного прибора.
Потребность в измерителе параметров конденсаторов возникла около трех лет назад, поэтому был приобретен, не дешевый, специализированный LC-метр (марку не озвучиваю). Но в процессе работы выяснилось, что у него слишком большая погрешность при замерах электролитических конденсаторов, емкостью более 6000 мкФ. Второй отрицательный момент, это «прожорливость» прибора. «Крону» приходилось менять каждый месяц. Решил сделать свой измеритель. В качестве вариантов для изучения и повторения рассматривались несколько разработок:
Измеритель C и ESR+LCF ( Степан Миронюк ( miron63) с сайта pro-radio.ru)
Измеритель C и ESR ( Гинц Олег ( GO ) с сайта pro-radio.ru)
ESR/R/L/C/F meter ( by R2-D2 с сайта vrtp.ru, несколько вариантов)
Все приборы хороши по-своему, но хотелось объединить достоинства каждого в своей конструкции. Только, по моему мнению и для моих задач, лучшим вариантом для повторения и модернизации явился измеритель C и ESR+LCF от Степана Миронюка, тем более, автор любезно поделился с общественностью исходниками прошивки МК, за что ему огромная благодарность. Поэтому, задача что-либо изменить или доработать сильно облегчилась. Были сомнения в необходимости оформлять свою конструкцию в виде отдельной статьи, ведь в сети и так полно похожих измерителей. С другой стороны, возможно, именно этот вариант кому-то оптимально подойдет для изготовления, к тому же, внесено достаточно много изменений и доработок. На авторство схемы и метода измерений не претендую, но некоторые улучшения реализовать удалось. Используемый способ измерения емкости конденсаторов, заряжая их стабильным током за определенное время, позволяет получить достаточно точные замеры, но при условии очень малых собственных токов утечек конденсатора. При значительных утечках, сравнимых с токами заряда, получить достоверные замеры емкости практически невозможно. В этом измерителе я попытался анализировать и ориентировочно вычислять такие токи утечек. Главная задача это выявить подозрительные конденсаторы, а уж отбраковывать можно другими способами и приборами.
Вопросов по переделке схемы не возникло, а вот последующая доработка ПО вытекла в длительный процесс. Менять все было рискованно, поэтому назначение портов МК старался сохранить как в исходной схеме, чтобы в случае неудачи с доработкой, сохранить возможность вернуться к авторской прошивке МК. Это, в свою очередь, не позволило осуществить некоторые дополнительные возможности. Например: управление и вывод информации через UART в порт компьютера, использовать аппаратный ШИМ для формирования отрицательного питания ОУ и др. Без изменений остался только режим счетчика импульсов (на практике никогда еще не потребовался).
Готовый прибор выглядит так:
В моем распоряжении имелся лишний пульт ДУ от видеомагнитофона «Фунай», корпус которого и использовал. Он же определил конструктивные особенности изготовления платы прибора и применяемые детали. С левой стороны имеются входные гнезда для подключения проводов, или панелек под измеряемые компоненты. Лишние отверстия передней панели заклеены декоративной пластиной, на ней расположены ЖКИ и 5 кнопок: «Set», « + » , « — » , вкл./выкл. питания, выбор измерения Cx или Lx. Компоновка и расположение элементов на плате тоже привязано к имеющимся отверстиям в корпусе. ЖКИ установлен под платой, а распайка проводов от него – в соответствующие контактные площадки платы.
Отсек для двух батареек типоразмера АА (аккумуляторов) определил вопрос с питанием. Теоретически допустимое входное напряжение питания не менее 2В и не более 5В. Преобразователь MAX756EPA может запускаться и при 1В, но вот полевые транзисторы при этом работают плохо. В готовом приборе потребляемый ток меняется от 20 до 40 мА при различных режимах работы. В режиме частотомера потребление максимально. Настройка прибора и отладка программы проводилась на уже использованных батарейках от фотоаппарата, с суммарным начальным напряжением 2,5В. Фотик уже отказывался от них работать, а в измерителе они еще послужили около месяца. Так что для питания подойдут самые дешевые китайские батарейки или уже отслужившие свой срок щелочные, которых иногда бывает предостаточно. Есть мысли сделать питание от USB разъема через последовательно включенный диод, или, по крайней мере, подзаряжать аккумуляторы, но это дело будущего. Обычно доводка конструкции до желаемого результата может длиться годами по мере возникновения новых идей.
Схема состоит из нескольких основных функциональных узлов:
1. Питание прибора
2. Цифровая часть (микроконтроллер PIC16F876A, ЖКИ и коммутатор)
3. Блок измерений конденсаторов
4. LC-генератор на LM311
5. Входной формирователь частотомера
Схема питания прибора
Включение и выключение питания производится одной кнопкой KN1. В исходном состоянии VT6 и VT4 закрыты, С15 заряжен до напряжения батареи, питание на схему не подается. При нажатии на кнопку затвор VT4 соединяется с конденсатором С15, открывая оба транзистора, включается DC/DC преобразователь. После инициализации портов на RB6 устанавливается высокий уровень сигнала, удерживая VT4 в открытом состоянии. Конденсатор С15 медленно разряжается через открытый транзистор и R22. Даже если продолжать удерживать кнопку нажатой, то напряжение на затворе не опустится ниже 2.5В, что удержит схему во включенном состоянии. При отпускании кнопки C15 разрядится до минимума. Выключается питание двумя способами: повторным нажатием на кнопку или программно. Выключение кнопкой происходит следующим образом: разряженный конденсатор С15 шунтирует цепь затвора VT4, вызывая его закрытие, а затем закрывается и VT6, снимая питание со схемы DC/DC преобразователя. Выключение питания программным способом осуществляется установкой низкого уровня сигнала на RB6 (автоматическое выключение по времени или при разряде аккумулятора ниже нормы). В преобразователе возможно применение микросхем: MAX756, MAX856, отечественного аналога КР1446ПН1, или вместо DD1 запаять DD5 типа NCP1400ASN50T1. Можно применить и другие аналогичные преобразователи на выходное напряжение +5В.
В качестве ключей питания отдельных узлов схемы использованы полевые транзисторы IRLML6402. Конечно, их стоимость немного выше, чем биполярных, но по параметрам они подходят значительно лучше. Падение напряжения на открытом транзисторе мизерное, да и ток управления затвором нулевой. Несмотря на это, резисторы в цепях затвора пришлось оставить, даже увеличить номинал до 200…470кОм, чтобы «затянуть» время открытия транзисторов (около 300мкС). Иначе бывали сбои в работе МК в моменты переключения режимов измерений, появлялись помехи по питанию при быстром перезаряде шунтирующих емкостей.
Использование микроконтроллера PIC16F876A обусловлено несколькими причинами. Для графического ЖКИ потребовался дополнительный объем памяти (таблицы символов). Так же, наличие встроенного компаратора и цепочки резистивного делителя в формирователе опорного напряжения позволяют отказаться от использования медленного АЦП в некоторых замерах. Программируется МК внутрисхемно, программатором PICkit-2.
Схема цифровой части схемы с «обвязкой» МК
Применение ЖКИ от сотового телефона «Trium mars» связано с его малыми размерами, удобством распайки, ну и, конечно, с наличием такового. С коррекцией прошивки можно применить дисплеи от Nokia 1110i или 1200. ЖКИ от Nokia 3310 подходит хуже всех (маленькое поле 84х48), удобен только тот, у которого на стекле есть позолоченные контакты. Китайский вариант с металлической рамкой не влезал в корпус, а без рамки его подключить почти невозможно. В общем, многое зависит от применяемого корпуса прибора.
После включения питания измеритель переходит в тот режим измерений, в котором он находился до выключения. Соответствующая надпись выводится на ЖКИ в первой строке. Там же отображается знак полноты заряда батареи с числовым значением измеренного напряжения. Последовательным нажатием на кнопку «Set» (или ввод) можем «по кругу» менять режимы измерений:
С/ESR – metr ( измерение емкостей и ЭПС конденсаторов )
Cx-metr / Lx-metr ( измерение малых емкостей или индуктивности катушек )
F- metr / P-metr ( частотомер или счетчик импульсов )
Termo – metr ( термометр, на DS18B20 или термопаре)
Кнопки « + » и « — » служат для установок параметров и значений в сервисных меню, для быстрой установки нуля. В режиме С/ESR-metr при отключенных щупах на ЖКИ выводится название режима, состояние батареи питания, надписи «сканирование» и значение АЦП в десятичном виде. При подключении конденсатора или резистора происходит замер их параметров и в 3-6 строках ЖКИ крупным шрифтом выводятся измеренные значения емкости и сопротивления. Если ток утечки конденсатора превышает уст. порог, то в нижних строках выводится ориентировочное значение сопротивления Rу. в Омах.
Схема измерения ESR конденсаторов и их емкости:
Схема в особых пояснениях не нуждается, хотя методы замера и расчета при одинаковых схемах часто отличаются. В данном приборе, использован способ замера емкости при помощи источника стабильного тока и заданного интервала времени заряда. Этот метод двухточечного замера хорошо описал Степан в своей конструкции. Внесены некоторые изменения в алгоритм самих замеров. Для вычислений емкости и ESR все сводится к измерению двух напряжений за определенные промежутки времени. Исходя из минимального тока заряда и минимального усиления на ОУ, сопротивление резисторов (а так же ESR) измеряется только от 0 до 130 Ом. Этого достаточно, ведь большие сопротивления резисторов можно определить и обычным тестером, а конденсатор с повышенным сопротивлением лучше забраковать.
Для определения емкости конденсатора нужно знать, как изменится на нем напряжение при заряде стабильным током за калиброванный промежуток времени: Сx=I*dt/dU=const/(Umax–Umin)
А вычисление ESR сводится к расчету величины «скачка» напряжения (Ur) на конденсаторе в момент подачи зарядного тока. Причем, расчетная величина не зависит от емкости конденсатора, т.е. с одинаковым успехом можно измерять и обычные резисторы. После подачи тока, независимо от времени, напряжение на резисторе меняться не будет, а значит Umax = Umin (dU=0), тогда
Rx= Ur/I = (Ut2–dU)/I = (Umax – (Umax–Umin))/I=Uadc/I В исходном состоянии (сканирование) циклически проверяется подключение измеряемого элемента. Подается ток заряда 2мА на входные клеммы прибора при минимальном усилении ОУ, через фиксированное время t1 (20мкС) считывается значение АЦП и проверяется на «зашкаливание». Если значение АЦП не превышает порога 4,5В., то производим 50 циклов замеров, и в каждом вычисляются и суммируются соответствующие напряжения (U1 и U2) для последующего усреднения. Каждый цикл начинается с разряда конденсатора (транзистором VT1), затем включается зарядный ток и через время t1 считывается значение АЦП (U1). Затем снова разряжаем конденсатор и включаем ток заряда, но преобразование и считывание АЦП (U2) производится через время t2. Для простоты расчетов время t2 равно удвоенному времени t1. Измерения на всех диапазонах происходят по одинаковому алгоритму. Далее математический расчет dU и Ur для определения емкости конденсатора и его ESR. Если dU менее определенной величины, то возможно подключен конденсатор большой емкости или резистор. Алгоритм замера конденсаторов большой емкости изменять не стал, точность вполне устраивает. Его суть такова: измеряется время заряда конденсатора током 10мА до уровня половины опорного напряжения АЦП (2,5В). Далее аналогично, имея время dt и фиксированное значение dU, вычисляется емкость.
Планирую опробовать аналогичный метод измерений, используя стабильный ток заряда и фиксированную величину напряжения заряда. В этом случае емкость пропорциональна времени заряда конденсатора.
В этом варианте используется компаратор с внутренним источником опорного напряжения. Измерение времени заряда таймером происходит при условии, что напряжение на конденсаторе уже достигло нижнего порога +1,25В и еще не превысило верхнего +3,75В. В этом случае dU всегда будет 2,5В, естественно после усиления ОУ. Этот метод пока не реализован.
Определение тока утечки конденсатора основано на его способности сохранять заряд, в течение фиксированного промежутка времени. Используя встроенный в МК компаратор, заряжаем испытуемый конденсатор до 0,2В. Потом отключается ток заряда и задается выдержка времени, по окончании которой измеряем падение напряжения на конденсаторе. Точно определить токи утечки достаточно сложно, ведь имеем две неизвестные и взаимозависимые величины. Нельзя определить ток утечки пока достоверно не вычислили емкость. А емкость зависит от тока заряда, который, в свою очередь, уменьшается на неизвестный ток утечки, влияющий на замеры. Поэтому меня вполне устроил приблизительный расчет, выраженный как сопротивление утечки. Если это сопротивление более 2 кОм (ток менее 0,2/2000=100мкА), то можно считать, что конденсатор исправен, измеренному значению емкости можно доверять. На ЖКИ выводятся только значения емкости и ЭПС. Если сопротивление менее 2 кОм, то на дисплей дополнительно выводится это сопротивление Rу. Если напряжение на конденсаторе упало почти до нулевого значения, емкость явно рассчитана не верно, отображается надпись «Cx: БРАК»
В приборе осталась возможность измерения сопротивлений при постоянном токе, к тому же, диапазон расширен до максимального значения. Все происходит аналогично замеру ESR, но ток заряда в циклах замеров не отключается. Для измерений в этом режиме нужно удерживать нажатой кнопку «плюс». Обновление показаний замеров на ЖКИ происходит значительно чаще.
Калибровка смещения нуля АЦП происходит автоматически, при нажатии кнопки «минус». При этом щупы или входные гнезда измерителя должны быть замкнуты, иначе будет выведено сообщение об ошибке. Числовые значения смещения условного нуля АЦП (для каждого диапазона) потом используются в расчетах. Они содержат в себе компенсацию сопротивлений проводов, входных контактов разъема, напряжение смещения усилителя. Калибровка делается так: подается ток заряда, считываются 50 замеров АЦП, с суммированием значений. Если условный порог не превышен, то сумма записывается в памяти EEPROM. Аналогично калибруются все 3 диапазона (при выключенном и включенном усилении, токе 10мА и токе 2мА). По окончании на ЖКИ выводится сообщение «Запись EEPROM» и три значения калибровки в десятичном виде. Через 3 секунды прибор возвращается к исходному состоянию и готов к работе.
Для проверки токов заряда включить прибор, удерживая нажатой кнопку «Set» выбрать контролируемый ток (кнопками «+» и «–» ). Миллиамперметр должен быть подключен к входным клеммам прибора. Отклонение токов от номинального значения не должны превышать +/– 5%. Важнее не их абсолютное значение, а стабильность во времени и по температуре.
Установка диапазонов измерения производится по точным и известным величинам компонентов. От них зависит точность самого прибора. Для установки диапазонов измерения сопротивлений включить прибор, удерживая нажатой кнопку «плюс». Далее:
1. подключить резистор малого сопротивления 0,5… 2 Ом к клеммам прибора, кнопками «+» и «–» добиться показаний требуемой величины этого резистора, нажатием кнопки «Set» записать значение в память.
2. подключить резистор сопротивлением 10 … 20 Ом к клеммам прибора, кнопками «+» и «–» добиться показаний требуемой величины этого резистора, нажатием кнопки «Set» записать значение в память.
3. подключить резистор сопротивлением 30 … 100 Ом к клеммам прибора, кнопками «+» и «–» добиться показаний требуемой величины этого резистора, нажатием кнопки «Set» записать значение в память.
Аналогично произвести настройку диапазонов измерения емкостей, для этого включить прибор, удерживая нажатой кнопку «минус». Для настройки использовать конденсаторы 1… 2 мкФ для первого диапазона, 4…20 мкФ для второго, более 1000 мкФ для третьего диапазона.
Схема LC-генератора и входной части частотомера:
Измерение конденсаторов малой емкости и катушек индуктивности при помощи генератора на компараторе хорошо описано в статье «L/C Meter IIB» (с сайта www.aade.com). В схеме LC-генератора следует особое внимание уделить стабильности параметров дросселя Lх1 и конденсатора С22. Дроссель (по рекомендациям от Степана Миронюка) в виде катушки с подстроечным сердечником найти не удалось, да и по габаритам он не поместится в имеющийся корпус. Поэтому пришлось экспериментировать и подбирать из того, что есть. На кольце от мат. платы (зеленое с синим торцом) с размерами 8x4x3 намотал 56 витков провода ПЭВ-2-0.33. Индуктивность получилась 101.2 мкГн, а добротность Q=11,3. При незначительном прогреве готового дросселя уход его индуктивности не обнаружен. В таком варианте дроссель был пропитан лаком и запаян в схему. Конденсатор С22 составлен из нескольких чип-1206 МП0 (трех штук по 200пФ и одного 100пФ). Конденсаторы С21 и С18 так же составные (по 2 шт.), использованы керамические от материнских плат емкостью 4,7мкФ.
Группа разработчиков с сайта vrtp.ru в подобном приборе (ESR/R/L/C/F meter от R2-D2 второй версии) внесли некоторые изменения в схему, что улучшило стабильность работы генератора и расширились измеряемые диапазоны. Сам пока эти улучшения не опробовал.
Принцип измерения индуктивности и малых емкостей конденсаторов основан на расчете частоты колебаний LC контура по формуле: F=1/(2п*sqr(LC))
Можно ее преобразовать в другой вид: F^2=0,025330296/(LC) Отсюда можно вычислить нужные нам величины, измерив частоту генератора на компараторе и LC-контуре. Паразитные значения схемы монтажа (Cs и Ls) вычисляются в программе установки нуля, так же учитываются в расчетах. Настройку LxCx измерителя пока описывать не буду, хочется автоматизировать этот процесс, возможно будут изменения.
Входной формирователь частотомера тоже «без особенностей», многими опробован, работает отлично, нареканий нет, поэтому и изменять в нем ничего не стал. Есть маленький минус, но, возможно, это только у моей конструкции: не получается проверять кварцевые резонаторы на частоте менее 1МГц и более 40МГц. Низкочастотные – не возбуждаются, а высокочастотные – работают на кратных гармониках, например, вместо 48МГц возникает возбуждение на 16МГц. Вообще, такие мелочи можно не учитывать, т.к. это не основная задача прибора.
Настройка частотомера сводится к проверке входного формирователя на прохождение импульсов от входа схемы до 11 вывода МК, а так же подгонке поправочного коэффициента для кварцевого резонатора. Подаем от генератора на вход частотомера сигнал известной, калиброванной частоты, проверяем соответствие измеренного значения и установленного на генераторе. В случае отклонения от заданной величины, входим в режим коррекции времени замера длительным нажатием на кнопку «минус». На дисплее появится сообщение «настройка N=1.000». Далее кнопками «плюс» или «минус» подогнать соответствие показаний измеренного значения частоты входному сигналу. Каждое нажатие на соответствующую кнопку уменьшает или увеличивает измерительный интервал на 1мкС (при частоте кварца 4МГц). Сохранить корректировку нажатием кнопки «Set». Формат вывода измеренной частоты зависит от ее величины. Если частота менее 1МГц, то выводится число в единицах Герц. Если превышен этот порог, то выводится число МГц с разделительной десятичной точкой (возможно, еще придется корректировать).
Режим измерения температуры:
Процесс измерения температуры датчиком DS18B20 хорошо изложен в описании на микросхему. Подключается он по трехпроводной схеме к разъему программатора.
Пока реализовано только измерение температуры и ее вывод на ЖКИ, никаких действий по анализу значений не предусматривал. Имеется распознавание идентификационного кода датчика и вывод его на ЖКИ, чисто для проверки самих микросхем. При отсутствии датчика или ошибки его инициализации, измеритель переключается на замеры термопарой, используя входной усилитель ESR-метра. Для проверки использовал покупную термопару от тестеров. Если и она не подключена, то выводится сообщение «НЕТ ДАТЧИКА». Коэффициент ее температурного преобразования хранится в памяти EEPROM, корректируется для соответствия показаний прибора реальным замерам. Температура холодных концов фиксирована и равна +25 гр.С (учитывать при измерениях).
Примеры замера температуры термопарой:
В памяти EEPROM расположены все калибровочные значения и настройки измерителя.
По начальным адресам записаны калибровки для измерений, их изменять нет смысла, т.к. в процессе настройки они все равно изменятся. С адреса 0x2140 в порядке возрастания ячеек можно включить или выключить требуемые режимы работы:
0x2140 (01h) — включен режим ESR/C измерителя (00h – выключен режим)
0x2141 (01h) — включен режим LxCx метра (00h – выключен режим)
0x2142 (01h) — включен режим частотомера (00h – выключен режим)
0x2143 (64h) — включен термометр, 64h=100 Кус. термопары (проценты)
При нулевом значении в ячейке соответствующий режим работы будет исключен, естественно, эту часть схемы можно не собирать.
Вот на этом пока все. Учитывая длительный период разработки, возможны мелкие несоответствия конструкции и схемы этому описанию.
Файлы:
Архив RAR
Архив RAR
Архив RAR
Архив RAR
Архив RAR
Архив RAR
ESR_LCFPT_metr_PCB
Документ PDF
Документ PDF
Документ PDF
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Микроконтроллеры PIC16F876, PIC16F876A — DataSheet
Однокристальные 8-разрядные FLASH CMOS микроконтроллеры компании Microchip Technology Inc.
- PIC16F873
- PIC16F874
- PIC16F876
- PIC16F877
Тип памяти программ | Flash |
Объем памяти программ (кбайт) | 14 |
Быстродействие (MIPS — миллионов команд в секунду) | 5 |
ОЗУ (байт) | 368 |
EEPROM память данных (байт) | 256 |
Поддерживаемые режимы связи с периферией | 1-UART, 1-A/E/USART, 1-SPI, 1-I2C1-MSSP(SPI/I2C) |
Модуль для формирования и измерения импульсных сигналов | 2 CCP |
Таймеры | 2 x 8-битных, 1 x 16-битный |
АЦП | 10 разрядное, 5 канальное |
Диапазон температур (°C) | от -40 до 85 |
Диапазон рабочего напряжения (В) | от 2 В до 5.5 В |
Количество выводов | 28 |
Тип памяти программ | Flash |
Объем памяти программ (кбайт) | 14 |
Быстродействие (MIPS — миллионов команд в секунду) | 5 |
ОЗУ (байт) | 368 |
EEPROM память данных (байт) | 256 |
Поддерживаемые режимы связи с периферией | 1-UART, 1-A/E/USART, 1-SPI, 1-I2C1-MSSP(SPI/I2C) |
Модуль для формирования и измерения импульсных сигналов | 2 CCP |
Таймеры | 2 x 8-битных, 1 x 16-битный |
Компараторы | 2 |
АЦП | 10 разрядное, 5 канальное |
Диапазон температур (°C) | от -40 до 125 |
Диапазон рабочего напряжения (В) | от 2 В до 5.5 В |
Количество выводов | 28 |
Техническое описание микроконтроллеров PIC16F873,PIC16F874,PIC16F876,PIC16F877 на русском языке.
Актуальное техническое описание микроконтроллеров PIC17F873,PIC17F874,PIC17F876,PIC17F877 на английском языке.
Актуальное техническое описание микроконтроллеров PIC17F873A,PIC17F874A,PIC17F876A,PIC17F877A на английском языке.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Размер основной платы 86×76мм, а платы коммутации 100×80мм. Они изготовлены из одностороннего фольгированного стеклотекстолита и оптимизированы для метода «утюжной» технологии. Большинство элементов использованы в SMD корпусах. Дроссель L1 типа ДМ-0,2. Кварц ZQ1 должен возбуждаться на основной частоте 20 мгц. Транзисторы VT1, VT2 любые NPN в корпусах SOT23 для поверхностного монтажа. Диод VD3 любого типа в таком же корпусе. DD4 в корпусе SOIC, остальные микросхемы — в DIP. Стабилитрон VD1 с напряжением стабилизации 5,1в. Программатор выполнен в корпусе, спаяном из фольгированного гетинакса. Плата коммутации является верхней крышкой, в ней сделаны по месту не показанные на чертеже отверстия для HL1-HL3. Разъем СШ-5 для внутрисхемного программирования и отладки размещается на боковой стенке. Там же монтируется и переключатель SA1. Обращаю внимание, что это именно переключатель, а не кнопка. Кабель связи с компьютером может иметь длину 1…1,5м. Питание осуществляется от любого сетевого адаптера с напряжением 9…15в и током до 100ма. После сборки следует внимательно проверить правильность монтажа, отсутствие короткозамкнутых дорожек и непропаяных соединений. После этого нужно проверить наличие напряжения питания 5в на выходе DA1 и выставить 12…12,5в на выводе 1 DD3 с помощью резистора R10. Диапазон регулирования определяется номиналами R7…R9. Контроллер DD2 перед установкой в схему необходимо запрограммировать. Его прошивка входит в состав MPLAB IDE, она состоит из двух частей — загрузчика и операционной системы. Если MPLAB была установлена в каталог по умолчанию, то путь к файлам прошивки будет C:\Program Files\Microchip\MPLAB IDE\ICD2\. Для работы достаточно записать в память контроллера только загрузчик, операционная система загружается средствами MPLAB. Однако будет меньше проблем при запуске программатора, если предварительно записать в память контроллера оба части. Файл прошивки icd2f876a.hex, содержащий в себе как загрузчик, так и операционную систему можно загрузить из архива icd.zip.. В этом же архиве находятся и дистрибутивы печатных плат в формате Sprint-Layout 4.0. Для программирования можно воспользоваться упоминавшимся ранее PonyProg или обратиться за помощью к друзьям. Слово конфигурации включено в файл прошивки, так что в отличие от AVR, не придется ломать голову над установкой Fuse бит. Если все сделано безошибочно, после подачи питания будет светиться светодиод HL1 «Ready». Теперь можно подключить программатор к COM порту и приступить к тестированию. Фирма Microchip настоятельно рекомендует отключить буфер FIFO для используемого COM порта. Это нужно обязательно сделать. В Windows XP последовательность действий такая. Пуск Панель управления Система Оборудование Диспетчер устройств Порты (COM и LPT) Последовательный порт X Параметры порта Дополнительно Убрать галочку «Использовать буферы FIFO» OK. К сожалению, нигде не упоминается, что после этого компьютер следует перезагрузить. Если не выполнить эту процедуру, программатор не будет работать. А вот при использовании конвертера USB-COM на FT232BM никаких изменений в свойствах порта делать не нужно. Наконец, можно запускать MPLAB-IDE. Желательно использовать версию не ниже 7. Все дальнейшие пояснения будут относиться к версии 7.30. После запуска в меню Debugger Select Tool нужно убедиться, что MPLAB ICD2 не отмечен галочкой. Одновременно выбирать это устройство в качестве отладчика и программатора нельзя. Затем нужно отметить Programmer Select Programmer MPLAB ICD2 и перейти на Programmer MPLAB ICD2 Setup Wizard. Последовательно проходя по открывающимся окнам надо выбрать номер используемого COM порта, а также скорость обмена. Доступны две скорости 19200 и 57600, лучше выбрать вторую. После этого отметить «Power target circuit from MPLAB ICD2». «MPLAB IDE automatically connect to the MPLAB ICD2» лучше не отмечать, а вот последующее предложение автоматически загружать требуемую операционную систему следует принять. Потом эти установки можно будет изменить. Теперь можно устанавливать связь: Programmer Connect. Откроется окно «Output», на которое будут выводиться все сообщения, предупреждения и ошибки. Внимательно читайте все, что там появится. Если нет сообщений, выделенных красным цветом, значит программатор работает корректно. Некоторые сообщения требуют подтверждения, наиболее надоедливые из них можно запретить, поставив соответствующую галочку. Теперь нужно выбрать тип контроллера, с которым предполагается работать Configure Select Device. В случае необходимости требуемая операционная система загрузится автоматически. Если нужно просто запрограммировать HEX файл в контроллер без создания проекта, действия должны быть такими: File Import, затем указание пути к файлу прошивки. Просмотреть и отредактировать, при необходимости, загруженный файл можно, выполнив команду View Program memory или View EEPROM. Изменить биты слова конфигурации — Configure Configuration Bits. Непосредственно запись, чтение, стирание или верификация осуществляются нажатием соответствующих кнопок на панели инструментов. Область памяти, с которой выполняются действия может быть установлена Programmer Settings Program. Более подробно работа с устройством в режиме программатора и отладчика описана в Help Topics MPLAB ICD2, а также в руководстве пользователя «MPLAB ICD2 USER’S GUIDE», которое можно загрузить с сайта http://www.microchip.com, а на http://www.microchip.ru можно найти описание MPLAB IDE на русском языке. Много полезной информации на русском языке есть и в [2]. Пересказывать эту обширную документацию в статье не имеет смысла. Необходимо обратить внимание только на особенности, связанные с тем, что схема прототипа была несколько модернизирована с целью расширения функционалных возможностей программатора. Дело в том, что существует два способа входа в режим программирования PIC.
В разных типах контроллеров Microchip рекомендует использовать один из этих способов, в основном в старых разработках — первый, а в более поздних — второй. В фирменном программаторе ICD2 реализован только первый способ, т.е. напряжение питания контроллера при программировании не отключается. Его можно снять только вручную, поставив или убрав галочку в меню Programmer Settings Power «Power target circuit from MPLAB ICD2». Во-первых, это не удобно, т.к. устанавливать программируемый контроллер в панельку и извлекать из нее лучше при отключенном питании, во-вторых, это накладывает ограничения на конфигурацию вывода MCLR. Его можно сконфигурировать только как вывод сброса, а не как вывод порта. Это может оказаться неприятным сюрпризом для пользователя, т.к. использование вывода сброса как вывода порта допускается для многих типов PIC, такая возможность особенно актуальна для PIC10 и PIC12 с малым числом линий ввода-вывода. В фирменной документации на ICD2 об этой неприятной особенности нет ни слова. Этот недостаток можно было бы легко устранить, вмешавшись в прошивку PIC16F876A, аппаратные возможности для этого есть. Но делать это не разумно, т.к. для разных типов PIC автоматически загружаются разные прошивки, называемые «операционными системами». Всего их более десятка! Да и с выходом новых версий MPLAB они могут изменяться. Пришлось решать эту проблему схемотехнически. Для этого в схему добавлены транзистор VT1, диод VD3 и переключатель SA1. Идея в том, чтобы отключать Vcc, если Vpp, подаваемое на вывод MCLR программируемого контроллера равно нулю. В этот момент контроллер находится в состоянии сброса и питание с него можно снять. Если контакты SA1 разомкнуты, напряжение Vpp появится сразу же, как только на вывод 9 DD4 придет нулевой уровень с управляющего контроллера. Vcc же появится с небольшой задержкой, определяемой номиналом C18. Если SA1 замкнут, Vpp появится после Vcc с задержкой, определяемой номиналом C17. Таким образом, при замкнутом SA1 реализуется первый вариант входа в режим программирования, а при разомкнутом — второй. При этом галочка «Power target circuit from MPLAB ICD2» должна быть снята. Если ее установить, Vcc будет включено постоянно и устройство будет работать в штатном режиме, аналогично фирменному прототипу. Как показала практика, большинство контроллеров корректно программируются без галочки, при замкнутом SA1. Этот переключатель оставлен в схеме исключительно для экспериментальных целей. Если таковые не преследуются, можно левый по схеме вывод C17 просто соединить с «землей». Были протестированы PIC12F629, PIC16F630, PIC16F505, PIC16F628, PIC16F628A, PIC16F73, PIC16F876A, PIC16F877A, PIC16F84A. PIC16F84 без буквы «A» почему-то не входит в список поддерживаемых, но прекрасно программируется, если выбрать PIC16F84A. При программировании некоторых из указанных типов появляются предупреждения об отсутствии напряжения питания или об ошибке самотестирования. К счастью, это только предупреждения, и на них можно не обращать внимания. Просто напряжение Vcc измеряется «не вовремя». Однако, к сожалению, есть и исключения. Например, стирание памяти PIC18F458 при выключенном «Power target circuit from MPLAB ICD2» производится некорректно. Тут уж ничего не поделаешь, придется работать с ним в штатном режиме, манипулируя перед установкой и удалением его из панельки указанной выше галочкой. Возможности MPLAB ICD2 как отладчика весьма ограничены и особо надеяться на них не стоит. Поэтому детально в этой статье они не рассматриваются. Хотя, кое-что может и пригодиться. Все подробности в указанных выше источниках информации о фирменном MPLAB ICD2. Единственное ограничение — напряжение питания пользовательского устройства должно быть 5в. В заключение информация о том, где и по какой цене можно приобрести наиболее дефицитные комплектующие для этого устройства, пассивные SMD компоненты можно извлечь из отработавших свой срок компьютерных плат. Все цены актуальны на начало 2006г. Для сравнения приведена стоимость серийно выпускаемых готовых изделий. |
USB программатор PIC своими руками.
Собираем программатор для микроконтроллеров PIC и микросхем EEPROM
Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа – «прошивка», а также программатор.
И если с первым пунктом нет проблем – готовую «прошивку» обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.
Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).
Основная часть.
Панель установки МК.
Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является «облегчённой» копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite, что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.
Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора. Особо важная функция, которой обладает программатор – это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).
Необходимые изменения.
В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.
Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги). По нему передаются данные, поэтому на схеме панели программирования он помечен словом «Data». При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.
Также добавлен «подтягивающий» резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.
Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.
Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.
В ЖК-телевизорах применяется уже другой тип памяти (Flash-память). О том, как прошить память ЖК-телевизора я уже рассказывал. Кому интересно, загляните.
В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось «допиливать» программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.
Ядром устройства является микроконтроллер PIC18F2550-I/SP.
Это единственная микросхема в устройстве. МК PIC18F2550 необходимо «прошить». Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема «курицы и яйца». Как её решил я, расскажу чуть позднее.
Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.
Название | Обозначение | Номинал/Параметры | Марка или тип элемента |
Для основной части программатора | |||
Микроконтроллер | DD1 | 8-ми битный микроконтроллер | PIC18F2550-I/SP |
Биполярные транзисторы | VT1, VT2, VT3 | КТ3102 | |
VT4 | КТ361 | ||
Диод | VD1 | КД522, 1N4148 | |
Диод Шоттки | VD2 | 1N5817 | |
Светодиоды | HL1, HL2 | любой на 3 вольта, красного и зелёного цвета свечения | |
Резисторы | R1, R2 | 300 Ом | МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги |
R3 | 22 кОм | ||
R4 | 1 кОм | ||
R5, R6, R12 | 10 кОм | ||
R7, R8, R14 | 100 Ом | ||
R9, R10, R15, R16 | 4,7 кОм | ||
R11 | 2,7 кОм | ||
R13 | 100 кОм | ||
Конденсаторы | C2 | 0,1 мк | К10-17 (керамические), импортные аналоги |
C3 | 0,47 мк | ||
Электролитические конденсаторы | C1 | 100 мкф * 6,3 в | К50-6, импортные аналоги |
C4 | 47 мкф * 16 в | ||
Катушка индуктивности (дроссель) | L1 | 680 мкГн | унифицированный типа EC24, CECL или самодельный |
Кварцевый резонатор | ZQ1 | 20 МГц | |
USB-розетка | XS1 | типа USB-BF | |
Перемычка | XT1 | любая типа «джампер» | |
Для панели установки микроконтроллеров (МК) | |||
ZIF-панель | XS1 | любая 40-ка контактная ZIF-панель | |
Резисторы | R1 | 2 кОм | МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги |
R2, R3, R4, R5, R6 | 10 кОм |
Теперь немного о деталях и их назначении.
Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.
Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа «B» (квадратная). В компьютере же используется USB-розетка типа «А». Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.
В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 – 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.
Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.
Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 – это диод Шоттки. Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.
При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.
Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force – с нулевым усилием установки).
Благодаря ей можно «зашить» МК практически в любом корпусе DIP.
На схеме «Панель установки микроконтроллера (МК)» указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.
Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).
А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).
Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).
Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима «Печать» не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении.
Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат, с помощью цапонлака (так делал я) или «карандашным» методом.
Вот рисунок позиционирования элементов на печатной плате (кликабельно).
При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).
«Прошивка» микроконтроллера PIC18F2550.
Файл «прошивки» — PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800.
Ссылка на файл PK2V023200.hex, запакованный в архив rar, дана в конце статьи.
Залить «прошивку» в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).
Также стоит знать, что «прошивка» микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы. Примерный путь расположения файла PK2V023200.hex — «C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex». У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex».
Ну, а если разрешить проблему «курицы и яйца» не удалось предложенными способами, то можно купить уже готовый программатор PICkit3 на сайте AliExpress. Там он стоит гораздо дешевле. О том, как покупать детали и электронные наборы на AliExpress я писал тут.
Обновление «прошивки» программатора.
Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3. Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться — чуть позднее. А пока пару слов о том, что нужно сделать, чтобы обновить «прошивку».
Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer. При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки. Затем в PICkit2 Programmer через меню «Tools» — «Download PICkit 2 Operation System» открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.
После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута. Узнать версию ПО программатора можно через меню «Help» — «About» в программе PICkit2 Programmer.
Это всё по техническим моментам. А теперь о софте.
Работа с программатором. Программа PICkit2 Programmer.
Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer. Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки. Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы – PICkit2 Programmer. Рекомендую.
После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод («питание»), а операционная система опознает устройство как «PICkit2 Microcontroller Programmer» и установит драйвера.
Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.
Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции «Что делать?» на английском.
Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.
Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг.
Необходимые файлы:
Главная » Микроконтроллеры » Текущая страница
Также Вам будет интересно узнать:
Микроконтроллеры и Технологии — Измеритель емкости конденсаторов на PIC16F876A
Дата публикации: .
В статье описан измеритель емкости неполярных и оксидных конденсаторов, выполненный на основе микроконтроллера PIC16F876A. Диапазон измерения емкости — 1…999-10 мкФ — разделен на два поддиапазона. Индикация результатов измерения производится трехразрядным светодиодным цифровым индикатором с автоматической установкой запятой. Некоторое влияние эквивалентного последовательного сопротивления на точность измерения на большем пределе компенсируется при калибровке прибора.
В радиолюбительской практике необходимость измерения больших значений электрической емкости очевидна. Многие современные мультиметры имеют функцию измерения емкости конденсатора, их верхний предел не превышает 20—100 мкФ, а при запредельном расширении диапазона существенно снижается точность измерения. Профессиональные RLC-метры измеряют емкость до 1 Ф и более, но ввиду своей высокой стоимости они мало доступны для большинства радиолюбителей.
Вместе с тем, используя современную элементную базу и основные физические соотношения, можно построить простой прибор, имеющий достаточно высокие метрологические характеристики. В предлагаемом устройстве используется принцип пропорциональности заряда Q электрической емкости С при фиксированном значении напряжения U: С = Q/U; где Q = It. В свою очередь, при заданном токе зарядки заряд конденсатора пропорционален времени протекания зарядного тока.
Технические характеристики
— Диапазон измерения, мкФ .. .1…999-103
— Погрешность во всем диапазоне, %, не более…………..±3
— Время измерения, с, не более ……………………..2,5
— Выбор пределов измерения ………………………автоматический
— Число разрядов индикации………3
— Напряжение питающей сети, В………………..220
— Потребляемая мощность, Вт, не более……………….12
Основу прибора составляет микроконтроллер PIC16F876A , выполняющий все основные функции: управление процессом измерения, вычисление его результатов и отображение полученного значения измеряемой емкости на индикаторе.
Принципиальная схема прибора показана на рис. 1. После включения питания и инициализации микроконтроллера устройство работает в автоматическом режиме. Вывод RA0 сконфигурирован как вход компаратора, RA3 — вход образцового напряжения компаратора, RC0, RC1 — выходы управления источниками зарядного тока, RC2 — выход включения разрядки измеряемого конденсатора.
Цикл измерения начинается с разрядки конденсатора через транзистор VT2 и резистор R5. Затем включается источник зарядного тока, равного 1 мА, на транзисторе VT3. Напряжение на конденсаторе начинает увеличиваться. По достижении им значения примерно 1 В, равного образцовому напряжению на входе RA3, микроконтроллер DD1 останавливает процесс зарядки и фиксирует его продолжительность.
Если напряжение на измеряемом конденсаторе не достигнет образцового в течение 1,2 с, происходит переход на старший предел измерения: включается источник тока, равного 1 А, на транзисторе VT1, индикация «х1000» и измерение повторяется. Далее микроконтроллер вычисляет значение измеряемой емкости по времени зарядки, зарядному току и напряжению на конденсаторе с учетом предела измерения и соответствующего ему калибровочного коэффициента. Цикл измерения периодически повторяется.
Динамическая индикация результатов организована на трехразрядном светодиодном индикаторе HG1—HG3, транзисторах VT5—VT7 и портах микроконтроллера RC3-RC5, RB0-RB7 по классической схеме.
Кнопки SB1—SB3, подключенные к портам RA1, RA2, RA5, служат для ввода калибровочных коэффициентов при настройке и поверке прибора. Кнопка «Режим» — вход в режим калибровки, выбор коэффициента, переход в режим измерения.
Кнопки «+» и «-» — установка значения выбранного коэффициента в пределах от 1 до 255. Калибровочный коэффициент для диапазона «мкФ» отображается без десятичных запятых, для «мкФх1000» — с запятой в разряде единиц. Установленные значения автоматически записываются в память микроконтроллера, сохраняются там после отключения питания и считываются при включении прибора.
Настройку прибора начинают до установки микроконтроллера в панель на плате. Включают питание выключателем SA1 и проверяют наличие и правильность подачи напряжения питания 5 В на контакты панели микроконтроллера. Напряжение на контактах 1-3, 7 должно быть примерно равно напряжению питания, на контактах 14-16 — около 4 В, а на 21-28 напряжение близко к нулю. Затем проверяют работоспособность кнопок SB1— SB3: нажимая их, контролируют появление низкого уровня на входах RA1, RA2, RA5. Цепи динамической индикации проверяют последовательным подсоединением общего провода к соответствующим выводам портов RB0-RB7 и RC3—RC5: при этом наблюдают свечение заданных сегментов в выбранном разряде. Источники тока включают поочередно подачей низкого уровня на контакты 11, 12, при этом амперметр должен быть подключен к гнездам ХЗ, Х4 вместо измеряемого конденсатора. При включении по цепи RC0 ток должен быть в интервале 0,5…1 мА; а по цепи RC1 — 0,5… 1 А. Цепь разрядки проверяют при включенном источнике тока 1 А подачей напряжения +5 В на контакт 13. Показания вольтметра, подключенного к гнездам ХЗ, Х4, при этом должны упасть до нуля.
Далее, после отключения питания, вставляют запрограммированный микроконтроллер в панель и включают прибор. На дисплее должны быть показания, близкие к нулю, индикатор «Цикл» (HL1) светится прерывисто, а индикатор «х1000» (HL2) не светится. Теперь можно произвести пробные замеры для оценки работоспособности прибора в целом.
Полученные результаты могут значительно отличаться от истинных в силу большого разброса параметров источников тока, погрешности установки образцового напряжения, ошибки компаратора, частоты установленного кварцевого резонатора и ряда других менее заметных факторов. Необходима калибровка прибора.
Для калибровки измерителя нужно иметь четыре образцовых конденсатора разных номиналов: два — для диапазона «мкФ» емкостью 100…900 мкФ, два — для диапазона «мкФ х1000» емкостью более 10000 мкФ. Для точно го определения их емкости желательно воспользоваться поверенным промышленным измерителем или каким-либо косвенным методом. Проводя измерения и изменяя калибровочные коэффициенты соответственно показаниям прибора, добиваются совпадения истинного значения емкости калибровочных конденсаторов и показаний прибора. После проведения калибровки прибор готов к эксплуатации
На старшем пределе измерения показания прибора в некоторой степени зависят от эквивалентного последовательного сопротивления (ЭПС) измеряемого конденсатора; это выражается в занижении истинного значения емкости. Чтобы погрешность прибора не превышала указанную, ЭПС не должно превышать 0,1 Ом. Для исправных оксидных конденсаторов емкостью более 1000 мкФ среднестатистическое значение ЭПС находится именно в этих пределах, его влияние компенсируется при калибровке прибора. Для более объективной оценки работоспособности оксидных конденсаторов необходимо совместное измерение емкости и ЭПС — это тема следующей разработки.
Опыт работы с описанным измерителем показал его хорошие потребительские характеристики: точность, долговременную стабильность показаний, удобство эксплуатации. Он позволяет проводить необходимые измерения, возникающие при разработке, изготовлении и ремонте электронного оборудования.
Источник: Радио №2, 2008 г. автор А. Топников, г. Углич Ярославской обл.
Архив для статьи «Измеритель емкости на PIC16F876A» | |
Описание: | |
Размер файла: 13.92 KB Количество загрузок: 1 884 | Скачать |
Микроконтроллеры и Технологии — Блок питания 0 — 25В, 0
Дата публикации: .
Технические характеристики
Напряжение:
— Регулируется в пределах от 0 до 25В при разрешении 100мВ.
Ток: выбор из 4 диапазонов;
— от 0 до 1A с разрешением 1 мА. JP1 и JP2 не замкнуты, C1 = 2000мкФ, R7 = 0,5 Ом, T1 = 24В, 1A.
— от 0 до 2A с разрешением 2 мА. JP1 замкнут на землю, JP2 не замкнут, C1 = 4000мкФ, R7 = 0,25 Ом, T1 = 24В, 2A.
— от 0 до 4A с разрешением 4 мА. JP1 не замкнут, JP2 замкнут на землю, C1 = 8000мкФ, R7 = 0,125 Ом, T1 = 24В, 4A.
— от 0 до 8A с разрешением 8 мА. JP1 и JP2 замкнуты на землю, C1 = 16000мкФ, R7 = 0,0625 Ом, T1 = 24В, 8A.
Рисунок 1. Схема блока питания
Рисунок 2. Печатная плата блока питания
Вывод информации на ЖК-дисплей:
— В верхней строке показаны установленные пользователем максимальный ток и напряжение, не рекомендуется закорачивать выходные клеммы для проверки максимального тока.
— В нижней строке отображается измеренное на данный момент значение тока и напряжения.
— Стрелки в нижней части дисплея по центру указывают на параметр, который находится под контролем, напряжение или ток.
Управление:
— Кнопками U+, U- установка напряжения с шагом 1 В
— Кнопками U++, U— установка напряжения с шагом 0,1 В.
— Кнопками А+, А- установка тока с шагом 1, 2, 4, 8 mA в зависимости от диапазона БП(перемычки JP1 и JP2).
— Кнопками А++, А— установка тока с шагом 50 мА, 100, 200, 400 мА в зависимости от диапазона БП(перемычки JP1 и JP2).
— Запоминание последних настроек в EEPROM перед выключением, перезагрузка с теми же настройками.
Настройка
ЖК-дисплей:
— Отрегулируйте P2 для наилучшего контраста ЖК-дисплея.
НАПРЯЖЕНИЕ:
— Перед тем как установить микроконтроллер отрегулируйте P1, чтобы на выходе стабилизатора IC1 LM317 было напряжение 5.12V.
— Измерить напряжение на выходных клеммах и настроить Р3 для правильного отображения напряжения на ЖК-дисплее.
Ток:
— Подключить резистор 10 Ом последовательно с эталонным амперметром к выходным клеммам.
— Настроить P4 для правильного отображения тока на ЖК-дисплее.
Архив для статьи «Блок питания 0 — 25В, 0 — 8А + LCD на PIC16F876» | |
Описание: Файл прошивки микроконтроллера, макет печатной платы в формате PDF | |
Размер файла: 37.36 KB Количество загрузок: 4 684 | Скачать |
Schematics.com | PIC16F876A Функциональный генератор
Функциональный генератор — это электронные приборы, которые можно использовать для вывода сигналов различной формы. Формы сигналов, которые обычно выводит функциональный генератор, представляют собой синусоидальные, квадратные или треугольные волны. Функциональный генератор может использоваться в аудио- или радиочастотных приложениях. Но сигнал, который он выдает, не совсем идеален для таких приложений. Для аудио- или радиочастотных приложений требуются очень низкие искажения и очень стабильные частотные сигналы. Функциональные генераторы используются при разработке, тестировании и ремонте других электронных схем.Их можно использовать для генерации сигнала для проверки усилителя или для ввода сигнала ошибки в электронную систему и просмотра реакции системы.
Этот эталонный дизайн включает простой генератор функций, созданный из микроконтроллера PIC16F876A и аналого-цифрового и аналогово-цифрового преобразователя PCF8591. PIC16F876A — это 8-битный микроконтроллер, который имеет 14 КБ памяти программ, 256 Б EEPROM и 368 Б ОЗУ. Он имеет 22 контакта ввода-вывода и поддерживает протоколы I2C, SPI и UART / USART. PCF8591 — это устройство, которое может действовать как аналого-цифровой преобразователь или как цифро-аналоговый преобразователь.Когда устройство используется в качестве АЦП, оно обеспечивает четыре аналоговых входа, куда могут быть вставлены аналоговые сигналы, а выход может быть получен через интерфейс шины I2C. Если устройство используется в качестве ЦАП, ввод данных осуществляется через интерфейс I2C, а аналоговый выход поступает на его вывод AOUT. В этой конструкции устройство PCF8591 используется как ЦАП. Микроконтроллер PIC16F876A, который отправляет данные для преобразования, подключен к интерфейсу I2C PCF8591, а выходной сигнал берется с вывода AOUT устройства PCF8591.
Интерфейс между микроконтроллером и ЦАП очень простой. Микроконтроллер отправляет адрес, за которым следует слово конфигурации, для связи с ЦАП. Адрес устройства PCF8591 определяется его контактами A0-A2, которые в этом случае все заземлены (A0 = 0, A1 = 0, A2 = 0). Когда ЦАП подтверждает адрес и конфигурацию, отправленные микроконтроллером, микроконтроллер продолжает отправлять данные, которые дают команду ЦАП генерировать сигнал определенной формы. Заголовки J1, J2 и J3 изменяют форму выходного сигнала всего функционального генератора, в котором, соответственно, подключены выводы RC0, RC1 и RC2 микроконтроллера.Когда RC0 имеет высокий уровень, а RC1 и RC2 — низкий уровень, выход будет треугольным. Если RC0 и RC2 — НИЗКИЙ, а RC1 — ВЫСОКИЙ, выход будет постоянным. Если все они заземлены, на выходе будет синусоида. В этой конструкции единственный способ изменить амплитуду и частоту сигнала — это изменить код. Частота также ограничена несколькими кГц из-за скорости устройства PCF8591.
.% PDF-1.4 % 19885 0 объект > endobj Xref 19885 499 0000000016 00000 н. 0000010360 00000 п. 0000010610 00000 п. 0000010764 00000 п. 0000010809 00000 п. 0000010875 00000 п. 0000010932 00000 п. 0000016619 00000 п. 0000016877 00000 п. 0000016950 00000 п. 0000017079 00000 п. 0000017194 00000 п. 0000017345 00000 п. 0000017409 00000 п. 0000017534 00000 п. 0000017685 00000 п. 0000017857 00000 п. 0000017972 00000 п. 0000018094 00000 п. 0000018287 00000 п. 0000018473 00000 п. 0000018585 00000 п. 0000018770 00000 п. 0000018910 00000 п. 0000019093 00000 п. 0000019214 00000 п. 0000019332 00000 п. 0000019538 00000 п. 0000019663 00000 п. 0000019841 00000 п. 0000020018 00000 п. 0000020186 00000 п. 0000020353 00000 п. 0000020531 00000 п. 0000020696 00000 п. 0000020897 00000 п. 0000021060 00000 п. 0000021208 00000 п. 0000021396 00000 п. 0000021541 00000 п. 0000021705 00000 п. 0000021886 00000 п. 0000022074 00000 п. 0000022260 00000 п. 0000022449 00000 п. 0000022645 00000 п. 0000022842 00000 п. 0000023037 00000 п. 0000023233 00000 п. 0000023421 00000 п. 0000023614 00000 п. 0000023769 00000 п. 0000023960 00000 п. 0000024174 00000 п. 0000024368 00000 п. 0000024569 00000 п. 0000024767 00000 п. 0000024966 00000 п. 0000025129 00000 п. 0000025291 00000 п. 0000025453 00000 п. 0000025618 00000 п. 0000025781 00000 п. 0000025962 00000 п. 0000026127 00000 п. 0000026299 00000 н. 0000026561 00000 п. 0000026683 00000 п. 0000026816 00000 п. 0000026961 00000 п. 0000027176 00000 п. 0000027337 00000 п. 0000027508 00000 п. 0000027675 00000 н. 0000027854 00000 п. 0000028002 00000 п. 0000028146 00000 п. 0000028307 00000 п. 0000028461 00000 п. 0000028605 00000 п. 0000028760 00000 п. 0000028916 00000 п. 0000029082 00000 п. 0000029247 00000 п. 0000029426 00000 п. 0000029601 00000 п. 0000029775 00000 п. 0000029943 00000 н. 0000030110 00000 п. 0000030275 00000 п. 0000030490 00000 п. 0000030637 00000 п. 0000030839 00000 п. 0000030994 00000 п. 0000031136 00000 п. 0000031294 00000 п. 0000031438 00000 п. 0000031652 00000 п. 0000031783 00000 п. 0000031920 00000 п. 0000032084 00000 п. 0000032239 00000 п. 0000032423 00000 п. 0000032569 00000 п. 0000032698 00000 п. 0000032852 00000 п. 0000032994 00000 н. 0000033148 00000 п. 0000033307 00000 п. 0000033450 00000 п. 0000033604 00000 п. 0000033757 00000 п. 0000033905 00000 п. 0000034070 00000 п. 0000034224 00000 п. 0000034374 00000 п. 0000034529 00000 п. 0000034674 00000 п. 0000034849 00000 п. 0000035025 00000 п. 0000035170 00000 п. 0000035311 00000 п. 0000035469 00000 п. 0000035602 00000 п. 0000035761 00000 п. 0000035910 00000 п. 0000036039 00000 п. 0000036230 00000 п. 0000036402 00000 п. 0000036525 00000 п. 0000036656 00000 п. 0000036788 00000 п. 0000036942 00000 п. 0000037138 00000 п. 0000037300 00000 п. 0000037445 00000 п. 0000037591 00000 п. 0000037720 00000 п. 0000037872 00000 п. 0000038053 00000 п. 0000038238 00000 п. 0000038345 00000 п. 0000038527 00000 п. 0000038647 00000 п. 0000038818 00000 п. 0000038944 00000 п. 0000039140 00000 п. 0000039275 00000 п. 0000039416 00000 п. 0000039589 00000 н. 0000039723 00000 п. 0000039922 00000 н. 0000040044 00000 п. 0000040164 00000 п. 0000040297 00000 п. 0000040430 00000 п. 0000040563 00000 п. 0000040698 00000 п. 0000040853 00000 п. 0000041041 00000 п. 0000041228 00000 п. 0000041417 00000 п. 0000041585 00000 п. 0000041746 00000 п. 0000041902 00000 п. 0000042038 00000 п. 0000042184 00000 п. 0000042323 00000 п. 0000042458 00000 п. 0000042623 00000 п. 0000042789 00000 п. 0000042903 00000 п. 0000043090 00000 п. 0000043230 00000 п. 0000043346 00000 п. 0000043506 00000 п. 0000043709 00000 п. 0000043819 00000 п. 0000043998 00000 н. 0000044148 00000 п. 0000044289 00000 п. 0000044477 00000 п. 0000044606 00000 п. 0000044787 00000 п. 0000044934 00000 п. 0000045095 00000 п. 0000045265 00000 п. 0000045467 00000 п. 0000045589 00000 п. 0000045771 00000 п. 0000045905 00000 п. 0000046029 00000 п. 0000046179 00000 п. 0000046328 00000 п. 0000046465 00000 п. 0000046645 00000 п. 0000046786 00000 п. 0000046908 00000 н. 0000047089 00000 п. 0000047224 00000 п. 0000047348 00000 п. 0000047474 00000 п. 0000047616 00000 п. 0000047801 00000 п. 0000047921 00000 п. 0000048162 00000 п. 0000048302 00000 п. 0000048465 00000 п. 0000048609 00000 н. 0000048733 00000 п. 0000048909 00000 н. 0000049098 00000 н. 0000049230 00000 п. 0000049397 00000 п. 0000049510 00000 п. 0000049659 00000 п. 0000049816 00000 п. 0000050006 00000 п. 0000050146 00000 п. 0000050272 00000 п. 0000050398 00000 п. 0000050554 00000 п. 0000050759 00000 п. 0000050928 00000 п. 0000051102 00000 п. 0000051294 00000 п. 0000051472 00000 п. 0000051652 00000 п. 0000051797 00000 п. 0000051948 00000 п. 0000052132 00000 п. 0000052317 00000 п. 0000052499 00000 п. 0000052658 00000 п. 0000052807 00000 п. 0000052970 00000 п. 0000053117 00000 п. 0000053265 00000 п. 0000053457 00000 п. 0000053634 00000 п. 0000053823 00000 п. 0000054014 00000 п. 0000054149 00000 п. 0000054302 00000 п. 0000054471 00000 п. 0000054640 00000 п. 0000054774 00000 п. 0000054929 00000 п. 0000055074 00000 п. 0000055208 00000 п. 0000055365 00000 п. 0000055537 00000 п. 0000055695 00000 п. 0000055881 00000 п. 0000056018 00000 п. 0000056142 00000 п. 0000056292 00000 п. 0000056457 00000 п. 0000056626 00000 п. 0000056812 00000 п. 0000056943 00000 п. 0000057094 00000 п. 0000057262 00000 п. 0000057398 00000 п. 0000057607 00000 п. 0000057741 00000 п. 0000057895 00000 п. 0000058048 00000 п. 0000058217 00000 п. 0000058397 00000 п. 0000058575 00000 п. 0000058753 00000 п. 0000058921 00000 п. 0000059092 00000 п. 0000059226 00000 п. 0000059359 00000 п. 0000059544 00000 п. 0000059689 00000 п. 0000059825 00000 п. 0000059969 00000 н. 0000060157 00000 п. 0000060301 00000 п. 0000060470 00000 п. 0000060627 00000 п. 0000060835 00000 п. 0000061034 00000 п. 0000061154 00000 п. 0000061335 00000 п. 0000061445 00000 п. 0000061617 00000 п. 0000061755 00000 п. 0000061909 00000 п. 0000062049 00000 п. 0000062238 00000 п. 0000062363 00000 п. 0000062540 00000 п. 0000062698 00000 п. 0000062870 00000 п. 0000063004 00000 п. 0000063170 00000 п. 0000063356 00000 п. 0000063480 00000 п. 0000063650 00000 п. 0000063808 00000 п. 0000063995 00000 п. 0000064167 00000 п. 0000064337 00000 п. 0000064499 00000 н. 0000064668 00000 н. 0000064851 00000 п. 0000064981 00000 п. 0000065115 00000 п. 0000065286 00000 п. 0000065420 00000 п. 0000065536 00000 п. 0000065680 00000 п. 0000065811 00000 п. 0000066001 00000 п. 0000066128 00000 п. 0000066263 00000 п. 0000066411 00000 п. 0000066575 00000 п. 0000066748 00000 п. 0000066927 00000 п. 0000067045 00000 п. 0000067176 00000 п. 0000067292 00000 п. 0000067464 00000 п. 0000067635 00000 п. 0000067758 00000 п. 0000067918 00000 п. 0000068084 00000 п. 0000068256 00000 п. 0000068396 00000 п. 0000068552 00000 п. 0000068723 00000 п. 0000068857 00000 п. 0000069024 00000 н. 0000069199 00000 п. 0000069353 00000 п. 0000069496 00000 п. 0000069669 00000 п. 0000069795 00000 п. 0000069884 00000 п. 0000070015 00000 п. 0000070188 00000 п. 0000070330 00000 п. 0000070449 00000 п. 0000070587 00000 п. 0000070725 00000 п. 0000070861 00000 п. 0000071037 00000 п. 0000071205 00000 п. 0000071362 00000 п. 0000071497 00000 п. 0000071621 00000 п. 0000071757 00000 п. 0000071880 00000 п. 0000072031 00000 п. 0000072204 00000 п. 0000072328 00000 п. 0000072484 00000 п. 0000072628 00000 п. 0000072766 00000 п. 0000072935 00000 п. 0000073108 00000 п. 0000073261 00000 п. 0000073420 00000 п. 0000073583 00000 п. 0000073722 00000 п. 0000073878 00000 п. 0000074054 00000 п. 0000074262 00000 п. 0000074394 00000 п. 0000074598 00000 п. 0000074737 00000 п. 0000074921 00000 п. 0000075029 00000 п. 0000075172 00000 п. 0000075284 00000 п. 0000075452 00000 п. 0000075611 00000 п. 0000075763 00000 п. 0000075911 00000 п. 0000076036 00000 п. 0000076172 00000 п. 0000076301 00000 п. 0000076499 00000 н. 0000076670 00000 п. 0000076831 00000 п. 0000077015 00000 п. 0000077174 00000 п. 0000077326 00000 п. 0000077484 00000 п. 0000077643 00000 п. 0000077829 00000 п. 0000077972 00000 н. 0000078107 00000 п. 0000078271 00000 п. 0000078407 00000 п. 0000078596 00000 п. 0000078738 00000 п. 0000078885 00000 п. 0000079020 00000 н. 0000079208 00000 п. 0000079381 00000 п. 0000079526 00000 п. 0000079662 00000 п. 0000079845 00000 п. 0000079979 00000 п. 0000080125 00000 п. 0000080265 00000 п. 0000080417 00000 п. 0000080542 00000 п. 0000080688 00000 п. 0000080823 00000 п. 0000080969 00000 п. 0000081120 00000 н. 0000081270 00000 п. 0000081448 00000 п. 0000081560 00000 п. 0000081731 00000 п. 0000081877 00000 п. 0000082034 00000 п. 0000082224 00000 п. 0000082413 00000 п. 0000082556 00000 п. 0000082692 00000 п. 0000082880 00000 п. 0000082988 00000 п. 0000083173 00000 п. 0000083278 00000 п. 0000083464 00000 п. 0000083571 00000 п. 0000083693 00000 п. 0000083868 00000 п. 0000084016 00000 п. 0000084202 00000 п. 0000084382 00000 п. 0000084506 00000 п. 0000084637 00000 п. 0000084811 00000 п. 0000084942 00000 п. 0000085127 00000 п. 0000085269 00000 п. 0000085372 00000 п. 0000085501 00000 п. 0000085687 00000 п. 0000085862 00000 п. 0000086033 00000 п. 0000086171 00000 п. 0000086306 00000 п. 0000086456 00000 п. 0000086607 00000 п. 0000086760 00000 п. 0000086910 00000 п. 0000087080 00000 п. 0000087244 00000 п. 0000087415 00000 п. 0000087552 00000 п. 0000087689 00000 п. 0000087820 00000 п. 0000087948 00000 п. 0000088078 00000 п. 0000088216 00000 п. 0000088371 00000 п. 0000088522 00000 п. 0000088672 00000 п. 0000088793 00000 п. 0000088948 00000 п. 0000089264 00000 п. 0000090038 00000 п. 0000090251 00000 п. 0000090411 00000 п. 0000090435 00000 п. 0000090960 00000 п. 0000091180 00000 п. 0000091787 00000 п. 0000091811 00000 п. 0000092026 00000 п. 0000092794 00000 п. 0000093275 00000 п. 0000093299 00000 н. 0000093755 00000 п. 0000093779 00000 п. 0000094218 00000 п. 0000094242 00000 п. 0000094675 00000 п. 0000094699 00000 н. 0000095153 00000 п. 0000095177 00000 п. 0000095651 00000 п. 0000095675 00000 п. 0000095817 00000 п. 0000096049 00000 п. 0000099974 00000 п. 0000100183 00000 н. 0000010977 00000 п. 0000016594 00000 п. прицеп ] >> startxref 0 %% EOF 19886 0 объект > endobj 19887 0 объект а_
.% PDF-1.3 % 18318 0 объект > endobj Xref 18318 759 0000000016 00000 н. 0000015560 00000 п. 0000015789 00000 п. 0000015931 00000 п. 0000015966 00000 п. 0000016023 00000 п. 0000021255 00000 п. 0000021496 00000 п. 0000021569 00000 п. 0000021697 00000 п. 0000021812 00000 п. 0000021963 00000 п. 0000022027 00000 н. 0000022153 00000 п. 0000022279 00000 п. 0000022441 00000 п. 0000022589 00000 п. 0000022683 00000 п. 0000022816 00000 п. 0000022958 00000 п. 0000023111 00000 п. 0000023240 00000 п. 0000023367 00000 п. 0000023510 00000 п. 0000023652 00000 п. 0000023784 00000 п. 0000023911 00000 п. 0000024035 00000 п. 0000024163 00000 п. 0000024287 00000 п. 0000024416 00000 п. 0000024590 00000 п. 0000024744 00000 п. 0000024822 00000 п. 0000024971 00000 п. 0000025110 00000 п. 0000025253 00000 п. 0000025389 00000 п. 0000025530 00000 п. 0000025671 00000 п. 0000025807 00000 п. 0000025952 00000 п. 0000026095 00000 п. 0000026232 00000 п. 0000026377 00000 п. 0000026524 00000 п. 0000026670 00000 п. 0000026816 00000 п. 0000026944 00000 п. 0000027074 00000 п. 0000027202 00000 н. 0000027342 00000 п. 0000027478 00000 п. 0000027615 00000 п. 0000027764 00000 н. 0000027911 00000 п. 0000028050 00000 п. 0000028187 00000 п. 0000028324 00000 п. 0000028516 00000 п. 0000028665 00000 п. 0000028799 00000 п. 0000028931 00000 п. 0000029079 00000 п. 0000029246 00000 п. 0000029370 00000 п. 0000029448 00000 п. 0000029568 00000 п. 0000029690 00000 н. 0000029812 00000 п. 0000029933 00000 н. 0000030054 00000 п. 0000030193 00000 п. 0000030313 00000 п. 0000030434 00000 п. 0000030555 00000 п. 0000030684 00000 п. 0000030831 00000 п. 0000030974 00000 п. 0000031124 00000 п. 0000031267 00000 п. 0000031406 00000 п. 0000031548 00000 п. 0000031700 00000 п. 0000031820 00000 н. 0000031940 00000 п. 0000032089 00000 п. 0000032238 00000 п. 0000032367 00000 п. 0000032513 00000 п. 0000032650 00000 п. 0000032780 00000 п. 0000032899 00000 н. 0000033036 00000 п. 0000033164 00000 п. 0000033316 00000 п. 0000033464 00000 п. 0000033609 00000 п. 0000033761 00000 п. 0000033899 00000 н. 0000034025 00000 п. 0000034154 00000 п. 0000034289 00000 п. 0000034447 00000 п. 0000034597 00000 п. 0000034761 00000 п. 0000034932 00000 п. 0000035103 00000 п. 0000035228 00000 п. 0000035357 00000 п. 0000035500 00000 п. 0000035657 00000 п. 0000035798 00000 п. 0000035926 00000 п. 0000036044 00000 п. 0000036166 00000 п. 0000036289 00000 п. 0000036408 00000 п. 0000036535 00000 п. 0000036669 00000 п. 0000036787 00000 п. 0000036905 00000 п. 0000037032 00000 п. 0000037151 00000 п. 0000037289 00000 п. 0000037445 00000 п. 0000037587 00000 п. 0000037720 00000 п. 0000037854 00000 п. 0000037976 00000 п. 0000038099 00000 п. 0000038237 00000 п. 0000038368 00000 п. 0000038494 00000 п. 0000038632 00000 п. 0000038765 00000 п. 0000038905 00000 п. 0000039023 00000 п. 0000039168 00000 п. 0000039290 00000 н. 0000039423 00000 п. 0000039565 00000 п. 0000039705 00000 п. 0000039827 00000 н. 0000039954 00000 п. 0000040097 00000 п. 0000040245 00000 п. 0000040378 00000 п. 0000040543 00000 п. 0000040669 00000 п. 0000040746 00000 п. 0000040872 00000 п. 0000040998 00000 н. 0000041119 00000 п. 0000041238 00000 п. 0000041357 00000 п. 0000041479 00000 п. 0000041601 00000 п. 0000041731 00000 п. 0000041858 00000 п. 0000041988 00000 п. 0000042119 00000 п. 0000042240 00000 п. 0000042363 00000 п. 0000042484 00000 п. 0000042607 00000 п. 0000042730 00000 н. 0000042851 00000 п. 0000042978 00000 п. 0000043110 00000 п. 0000043242 00000 п. 0000043371 00000 п. 0000043508 00000 п. 0000043631 00000 п. 0000043764 00000 п. 0000043885 00000 п. 0000044008 00000 п. 0000044133 00000 п. 0000044273 00000 п. 0000044404 00000 п. 0000044552 00000 п. 0000044680 00000 п. 0000044807 00000 п. 0000044932 00000 п. 0000045063 00000 п. 0000045188 00000 п. 0000045338 00000 п. 0000045530 00000 п. 0000045681 00000 п. 0000045758 00000 п. 0000045910 00000 п. 0000046058 00000 п. 0000046214 00000 п. 0000046373 00000 п. 0000046504 00000 п. 0000046631 00000 п. 0000046780 00000 п. 0000046898 00000 п. 0000047032 00000 п. 0000047167 00000 п. 0000047287 00000 п. 0000047436 00000 п. 0000047575 00000 п. 0000047723 00000 п. 0000047873 00000 п. 0000048023 00000 п. 0000048173 00000 п. 0000048323 00000 п. 0000048457 00000 п. 0000048585 00000 п. 0000048705 00000 п. 0000048821 00000 н. 0000048941 00000 п. 0000049077 00000 н. 0000049214 00000 п. 0000049350 00000 п. 0000049471 00000 п. 0000049596 00000 п. 0000049717 00000 п. 0000049837 00000 п. 0000049958 00000 н. 0000050079 00000 п. 0000050200 00000 н. 0000050323 00000 п. 0000050495 00000 п. 0000050627 00000 п. 0000050705 00000 п. 0000050829 00000 п. 0000050958 00000 п. 0000051088 00000 п. 0000051228 00000 п. 0000051361 00000 п. 0000051510 00000 п. 0000051646 00000 п. 0000051786 00000 п. 0000051924 00000 п. 0000052067 00000 п. 0000052200 00000 п. 0000052351 00000 п. 0000052492 00000 п. 0000052625 00000 п. 0000052752 00000 п. 0000052887 00000 п. 0000053021 00000 п. 0000053155 00000 п. 0000053309 00000 п. 0000053440 00000 п. 0000053589 00000 п. 0000053736 00000 п. 0000053883 00000 п. 0000054010 00000 п. 0000054144 00000 п. 0000054280 00000 п. 0000054407 00000 п. 0000054540 00000 п. 0000054689 00000 п. 0000054815 00000 н. 0000054948 00000 п. 0000055080 00000 п. 0000055218 00000 п. 0000055351 00000 п. 0000055478 00000 п. 0000055609 00000 п. 0000055739 00000 п. 0000055867 00000 п. 0000056000 00000 п. 0000056134 00000 п. 0000056265 00000 п. 0000056389 00000 п. 0000056522 00000 п. 0000056653 00000 п. 0000056813 00000 п. 0000056972 00000 п. 0000057129 00000 п. 0000057290 00000 н. 0000057431 00000 п. 0000057572 00000 п. 0000057720 00000 п. 0000057852 00000 п. 0000057975 00000 п. 0000058109 00000 п. 0000058237 00000 п. 0000058366 00000 п. 0000058494 00000 п. 0000058607 00000 п. 0000058738 00000 п. 0000058865 00000 п. 0000058988 00000 п. 0000059123 00000 п. 0000059254 00000 п. 0000059385 00000 п. 0000059516 00000 п. 0000059636 00000 п. 0000059756 00000 п. 0000059884 00000 п. 0000060029 00000 п. 0000060157 00000 п. 0000060292 00000 п. 0000060428 00000 п. 0000060563 00000 п. 0000060689 00000 п. 0000060823 00000 п. 0000060985 00000 п. 0000061129 00000 п. 0000061207 00000 п. 0000061342 00000 п. 0000061463 00000 п. 0000061589 00000 п. 0000061711 00000 п. 0000061833 00000 п. 0000061954 00000 п. 0000062075 00000 п. 0000062195 00000 п. 0000062320 00000 п. 0000062444 00000 п. 0000062617 00000 п. 0000062741 00000 п. 0000062818 00000 п. 0000062959 00000 п. 0000063112 00000 п. 0000063306 00000 п. 0000063442 00000 п. 0000063537 00000 п. 0000063631 00000 п. 0000063743 00000 п. 0000063908 00000 п. 0000064067 00000 п. 0000064213 00000 п. 0000064351 00000 п. 0000064503 00000 п. 0000064663 00000 п. 0000064826 00000 п. 0000064979 00000 п. 0000065126 00000 п. 0000065265 00000 п. 0000065409 00000 п. 0000065537 00000 п. 0000065678 00000 п. 0000065823 00000 п. 0000065950 00000 п. 0000066071 00000 п. 0000066193 00000 п. 0000066318 00000 п. 0000066439 00000 п. 0000066561 00000 п. 0000066683 00000 п. 0000066805 00000 п. 0000066926 00000 п. 0000067054 00000 п. 0000067173 00000 п. 0000067292 00000 п. 0000067411 00000 п. 0000067530 00000 п. 0000067649 00000 п. 0000067771 00000 п. 0000067890 00000 п. 0000068007 00000 п. 0000068128 00000 п. 0000068247 00000 п. 0000068370 00000 п. 0000068488 00000 п. 0000068607 00000 п. 0000068726 00000 п. 0000068845 00000 п. 0000068964 00000 п. 0000069083 00000 п. 0000069203 00000 п. 0000069321 00000 п. 0000069440 00000 п. 0000069560 00000 п. 0000069680 00000 п. 0000069798 00000 п. 0000069918 00000 н. 0000070036 00000 п. 0000070155 00000 п. 0000070273 00000 п. 0000070392 00000 п. 0000070511 00000 п. 0000070628 00000 п. 0000070745 00000 п. 0000070865 00000 п. 0000070984 00000 п. 0000071104 00000 п. 0000071223 00000 п. 0000071348 00000 п. 0000071493 00000 п. 0000071636 00000 п. 0000071771 00000 п. 0000071925 00000 п. 0000072044 00000 п. 0000072176 00000 п. 0000072304 00000 п. 0000072428 00000 п. 0000072571 00000 п. 0000072693 00000 п. 0000072825 00000 п. 0000072964 00000 п. 0000073107 00000 п. 0000073244 00000 п. 0000073385 00000 п. 0000073522 00000 п. 0000073660 00000 п. 0000073807 00000 п. 0000073931 00000 п. 0000074074 00000 п. 0000074222 00000 п. 0000074377 00000 п. 0000074507 00000 п. 0000074640 00000 п. 0000074767 00000 п. 0000074895 00000 п. 0000075020 00000 п. 0000075163 00000 п. 0000075293 00000 п. 0000075420 00000 п. 0000075554 00000 п. 0000075688 00000 п. 0000075812 00000 п. 0000075953 00000 п. 0000076094 00000 п. 0000076232 00000 п. 0000076401 00000 п. 0000076528 00000 п. 0000076622 00000 п. 0000076716 00000 п. 0000076845 00000 п. 0000076983 00000 п. 0000077123 00000 п. 0000077244 00000 п. 0000077397 00000 п. 0000077526 00000 п. 0000077659 00000 п. 0000077832 00000 п. 0000077976 00000 п. 0000078070 00000 п. 0000078164 00000 п. 0000078306 00000 п. 0000078440 00000 п. 0000078578 00000 п. 0000078721 00000 п. 0000078845 00000 п. 0000078971 00000 п. 0000079112 00000 п. 0000079252 00000 п. 0000079374 00000 п. 0000079503 00000 п. 0000079636 00000 п. 0000079831 00000 п. 0000079983 00000 п. 0000080060 00000 п. 0000080192 00000 п. 0000080324 00000 п. 0000080457 00000 п. 0000080588 00000 п. 0000080718 00000 п. 0000080848 00000 п. 0000081004 00000 п. 0000081158 00000 п. 0000081280 00000 п. 0000081431 00000 п. 0000081556 00000 п. 0000081673 00000 п. 0000081787 00000 п. 0000081901 00000 п. 0000082034 00000 п. 0000082159 00000 п. 0000082290 00000 н. 0000082471 00000 п. 0000082599 00000 н. 0000082676 00000 п. 0000082804 00000 п. 0000082958 00000 п. 0000083098 00000 п. 0000083217 00000 п. 0000083336 00000 п. 0000083470 00000 п. 0000083597 00000 п. 0000083724 00000 п. 0000083851 00000 п. 0000083972 00000 н. 0000084090 00000 п. 0000084243 00000 п. 0000084361 00000 п. 0000084478 00000 п. 0000084594 00000 п. 0000084710 00000 п. 0000084841 00000 п. 0000084972 00000 п. 0000085102 00000 п. 0000085230 00000 п. 0000085353 00000 п. 0000085482 00000 п. 0000085608 00000 п. 0000085733 00000 п. 0000085865 00000 п. 0000085998 00000 п. 0000086125 00000 п. 0000086242 00000 п. 0000086418 00000 п. 0000086564 00000 п. 0000086641 00000 п. 0000086788 00000 п. 0000086967 00000 п. 0000087114 00000 п. 0000087286 00000 п. 0000087411 00000 п. 0000087541 00000 п. 0000087676 00000 п. 0000087807 00000 п. 0000087945 00000 п. 0000088101 00000 п. 0000088226 00000 п. 0000088358 00000 п. 0000088479 00000 п. 0000088604 00000 п. 0000088737 00000 п. 0000088874 00000 п. 0000089014 00000 п. 0000089156 00000 п. 0000089299 00000 п. 0000089427 00000 п. 0000089571 00000 п. 0000089713 00000 п. 0000089859 00000 п. 0000089982 00000 п. 0000090112 00000 п. 0000090242 00000 п. 0000090380 00000 п. 0000090520 00000 н. 0000090660 00000 п. 0000090844 00000 п. 0000091006 00000 п. 0000091131 00000 п. 0000091279 00000 п. 0000091481 00000 п. 0000091679 00000 п. 0000091838 00000 п. 0000092007 00000 п. 0000092176 00000 п. 0000092323 00000 п. 0000092510 00000 п. 0000092691 00000 п. 0000092888 00000 п. 0000093012 00000 п. 0000093225 00000 п. 0000093440 00000 п. 0000093655 00000 п. 0000093841 00000 п. 0000093990 00000 п. 0000094129 00000 п. 0000094275 00000 п. 0000094438 00000 п. 0000094600 00000 п. 0000094762 00000 п. 0000094926 00000 п. 0000095082 00000 п. 0000095227 00000 п. 0000095368 00000 п. 0000095560 00000 п. 0000095704 00000 п. 0000095864 00000 п. 0000096014 00000 п. 0000096144 00000 п. 0000096334 00000 п. 0000096439 00000 п. 0000096641 00000 п. 0000096757 00000 п. 0000096885 00000 п. 0000097031 00000 п. 0000097159 00000 п. 0000097311 00000 п. 0000097448 00000 н. 0000097633 00000 п. 0000097769 00000 п. 0000097888 00000 н. 0000098013 00000 п. 0000098162 00000 п. 0000098335 00000 п. 0000098486 00000 п. 0000098600 00000 п. 0000098720 00000 п. 0000098852 00000 п. 0000098985 00000 п. 0000099121 00000 п. 0000099268 00000 н. 0000099404 00000 п. 0000099540 00000 п. 0000099660 00000 н. 0000099846 00000 н. 0000099965 00000 н. 0000100078 00000 п. 0000100232 00000 н. 0000100472 00000 н. 0000100599 00000 н. 0000100715 00000 н. 0000100857 00000 н. 0000101034 00000 п. 0000101179 00000 п. 0000101283 00000 н. 0000101433 00000 п. 0000101637 00000 н. 0000101812 00000 н. 0000101985 00000 н. 0000102177 00000 п. 0000102309 00000 п. 0000102443 00000 н. 0000102629 00000 н. 0000102767 00000 н. 0000102901 00000 п. 0000103032 00000 н. 0000103174 00000 п. 0000103318 00000 н. 0000103409 00000 н. 0000103597 00000 п. 0000103748 00000 н. 0000103881 00000 п. 0000104060 00000 н. 0000104214 00000 п. 0000104423 00000 п. 0000104557 00000 п. 0000104697 00000 п. 0000104835 00000 н. 0000105000 00000 н. 0000105132 00000 н. 0000105265 00000 н. 0000105448 00000 н. 0000105637 00000 п. 0000105737 00000 п. 0000105925 00000 н. 0000106025 00000 н. 0000106217 00000 н. 0000106332 00000 н. 0000106451 00000 п. 0000106588 00000 н. 0000106799 00000 н. 0000106915 00000 п. 0000107036 00000 п. 0000107172 00000 н. 0000107374 00000 п. 0000107475 00000 п. 0000107609 00000 н. 0000107711 00000 н. 0000107895 00000 н. 0000108028 00000 н. 0000108136 00000 п. 0000108262 00000 н. 0000108395 00000 н. 0000108525 00000 н. 0000108668 00000 н. 0000108778 00000 н. 0000108897 00000 н. 0000109030 00000 н. 0000109140 00000 н. 0000109248 00000 н. 0000109420 00000 н. 0000109575 00000 п. 0000109731 00000 н. 0000109902 00000 п. 0000110010 00000 н. 0000110131 00000 п. 0000110260 00000 н. 0000110379 00000 н. 0000110498 00000 п. 0000110637 00000 п. 0000110773 00000 п. 0000110893 00000 п. 0000111004 00000 н. 0000111138 00000 н. 0000111274 00000 н. 0000111446 00000 н. 0000111575 00000 н. 0000111685 00000 н. 0000111859 00000 н. 0000111987 00000 н. 0000112099 00000 н. 0000112260 00000 н. 0000112417 00000 н. 0000112547 00000 н. 0000112752 00000 н. 0000112913 00000 н. 0000113052 00000 н. 0000113191 00000 п. 0000113388 00000 н. 0000113500 00000 н. 0000113605 00000 н. 0000113753 00000 н. 0000113921 00000 н. 0000114044 00000 н. 0000114177 00000 н. 0000114323 00000 н. 0000114471 00000 н. 0000114596 00000 н. 0000114746 00000 н. 0000114892 00000 н. 0000115040 00000 н. 0000115183 00000 н. 0000115362 00000 н. 0000115487 00000 н. 0000115602 00000 н. 0000115740 00000 н. 0000115879 00000 п. 0000116022 00000 н. 0000116163 00000 п. 0000116291 00000 н. 0000116414 00000 н. 0000116554 00000 н. 0000116689 00000 н. 0000116862 00000 н. 0000117046 00000 н. 0000117157 00000 н. 0000117260 00000 н. 0000117387 00000 н. 0000117558 00000 н. 0000117673 00000 н. 0000117787 00000 н. 0000117918 00000 п. 0000118049 00000 н. 0000118179 00000 н. 0000118309 00000 н. 0000118441 00000 н. 0000118580 00000 н. 0000118717 00000 н. 0000118833 00000 н. 0000118965 00000 н. 0000119091 00000 н. 0000119212 00000 н. 0000119342 00000 п. 0000119462 00000 н. 0000119601 00000 н. 0000119755 00000 н. 0000120243 00000 н. 0000120559 00000 н. 0000121044 00000 н. 0000121398 00000 н. 0000124181 00000 н. 0000124383 00000 п. 0000125474 00000 н. 0000125498 00000 н. 0000126185 00000 н. 0000126393 00000 н. 0000127010 00000 п. 0000127034 00000 н. 0000128123 00000 н. 0000128327 00000 н. 0000128797 00000 н. 0000128821 00000 н. 0000129276 00000 н. 0000129300 00000 н. 0000129698 00000 н. 0000129722 00000 н. 0000130136 00000 п. 0000130160 00000 п. 0000130589 00000 н. 0000130613 00000 п. 0000131038 00000 н. 0000131062 00000 н. 0000131204 00000 н. 0000016068 00000 п. 0000021230 00000 н. прицеп ] >> startxref 0 %% EOF 18319 0 объект > endobj 18320 0 объект а_
.Страница не найдена | MIT
Перейти к содержанию ↓- образование
- Исследовательская работа
- новаторство
- Прием + помощь
- Студенческая жизнь
- Новости
- Alumni
- О MIT
- Подробнее ↓
- Прием + помощь
- Студенческая жизнь
- Новости
- Alumni
- О MIT
Попробуйте поискать что-нибудь еще! Что вы ищете? Увидеть больше результатов
Предложения или отзывы?
,