Магда ю.с. микроконтроллеры pic: архитектура и программирование

Pic 12f629 / 12f675. мигающий светодиод | arduinokit

Datasheets

PIC12F629/675Data Sheet8-Pin, Flash-Based 8-BitCMOS Microcontrollers  2010 Microchip Technology Inc. DS41190G Note the following details of the code protection feature on Microchip devices:• Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in theintended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to ourknowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s DataSheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does notmean that we are guaranteeing the product as “unbreakable.” Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of ourproducts. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such actsallow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding deviceapplications and the like is provided only for your convenienceand may be superseded by updates. It is your responsibility toensure that your application meets with your specifications.MICROCHIP MAKES NO REPRESENTATIONS ORWARRANTIES OF ANY KIND WHETHER EXPRESS ORIMPLIED, WRITTEN OR ORAL, STATUTORY OROTHERWISE, RELATED TO THE INFORMATION,INCLUDING BUT NOT LIMITED TO ITS CONDITION,QUALITY, PERFORMANCE, MERCHANTABILITY ORFITNESS FOR PURPOSE. Microchip disclaims all liabilityarising from this information and its use. Use of Microchipdevices in life support and/or safety applications is entirely at …

Настройка платы EasyPIC5

Для сборки схемы на PIC12F629 требуется установить МК в соответствующее гнездо на плате. При этом все остальные контроллеры должны быть удалены.

Вторым действием должна стать перестановка перемычек линий программирования Socket Selection.

Также необходимо определить способ генерации тактовой частоты. В случае использования внешнего генератора, потребуется установить кварцевый резонатор в гнездо OSC2. Микроконтроллер PIC
12F
629 может работать и от внутреннего генератора частоты. В этом случае устанавливаются перемычки OSC2, в положение I/O подключающее выхода микроконтроллера к элементам платы. На этом подготовка к работе закончена.

Прошиваем AVR вручную

Tutorial

Картинка для привлечения внимания — xkcd
Представьте себе, что вы попали на необитаемый остров. И вам жизненно необходимо запрограммировать микроконтроллер. Зачем, спросите вы? Ну, допустим, чтобы починить аварийный радиомаяк, без которого шансы на спасение резко падают.
Радуясь, что еще не забыли курс ассемблера, вы кое-как написали программу палочкой на песке. Среди уцелевших вещей каким-то чудом оказалась распечатка документации на контроллер (хорошо, что вы еще не успели пустить её на растопку!), и программу удалось перевести в машинные коды. Осталась самая ерунда — прошить её в контроллер. Но в радиусе 500 километров нет ни одного программатора, не говоря уже о компьютерах. У вас только источник питания (батарея из картошки кокосов) и пара кусков провода.
Как же прошить МК фактически голыми руками?

Контроль батарейного питания

При работе системы от батареи важно знать, когда напряжение батареи снижается ниже допустимого уровня. Обычно для этого используется модуль PLVD (Programmable Low Voltage Detect)

Однако, если его нет составе периферии контроллера, то можно построить простейшую схему на основе встроенного компаратора и нескольких внешних элементов. При питании микроконтроллера стабилизированным напряжением используется схема, указанная на рисунке 1, при нестабилизированном питании используется схема на рисунке 2.

Пример (стабилизированное питание):Минимально допустимое напряжение VBATT = 5,7 ВVDD = 5 В, R1 = 33 кОм, R2 = 10 кОм, R3 = 39 кОм, R4 = 10 кОм

Резисторы R1 и R2 выбираются такими, чтобы напряжение на неинвертирующем входе компаратора было порядка 0,25 VDD; R3 и R4 – такими, чтобы напряжение на инвертирующем входе было таким же, как и на

неинвертирующем при минимальном допустимом напряжении батареи.

Пример (нестабилизированное питание):Минимально допустимое напряжение VBATT = 3 ВR1 = 33 кОм, R2 = 10 кОм и R3 = 470 Ом

Резистор R3 выбирается таким, чтобы диод был открыт при минимально допустимом напряжении батареи, а резисторы R1 и R2 задают напряжение на инвертирующем входе равное падению напряжения на диоде.

Принцип управления нагрузкой через Ардуино

На плате есть много выходов, как цифровых, имеющих два состояния — включено и выключено, так и аналоговых, управляемых через ШИМ-controller с частотой 500 Гц.

Но выходы рассчитаны на ток 20 – 40 мА с напряжением 5 В. Этого хватит для питания индикаторного RGB-светодиода или матричного светодиодного модуля 32×32 мм. Для более мощной нагрузки это недостаточно.

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

  • Реле. Кроме отдельных реле с напряжением питания 5В есть целые сборки с разным количеством контактов, а также со встроенными пускателями.
  • Усилители на биполярных транзисторах. Мощность таких устройств ограничена током управления, но можно собрать схему из нескольких элементов или использовать транзисторную сборку.
  • Полевые или MOSFET-транзисторы. Они могут управлять нагрузкой с токами в несколько ампер и напряжением до 40 – 50 В. При подключении мосфета к ШИМ и электродвигателю или к другой индуктивной нагрузке, нужен защитный диод. При подключении к светодиодам или LED-лампам в этом нет необходимости.
  • Платы расширения.

Режим ожидания (свет выключен)

Устройство питается от сетевого напряжения, через резистивную нагрузку (лампочку). Схема потребляет очень мало энергии. Основным потребителем является ИК-приемник TSOP, но вы также можете использовать маломощные TSOP, такие как TSOP38238, если хотите снизить потребление тока до менее чем 1 мА.

В этом состоянии микроконтроллер (PIC12F629/PIC12F675) ожидает ИК-сигнала от TSOP или нажатия от настенного выключателя. Имейте в виду, что настенный выключатель больше не должен быть классическим выключателем включения/выключения — он должен быть заменен кнопочным выключателем, который замыкает контакты только тогда, когда вы продолжаете нажимать на него.

Восстановление калибровочной константы PIC12f629 и PIC12f675

Собрав ниже приведенную схему и установив в панельку исследуемый микроконтроллер PIC12f629 или PIC12f675 можно с точностью до 1% определить КК.

Для калибровки внутреннего генератора микроконтроллера требуется заведомо известная опорная частота. К счастью, для этого мы не должны собирать отдельно стабильный генератор сигнала. Для этого можно воспользоваться переменным напряжением электросети частотой 50 Гц (в некоторых странах частота может быть 60 Гц). Данный сигнал можно снять со вторичной обмотки сетевого трансформатора.

Частота внутреннего генератора в микроконтроллере PIC12F629 и PIC12F675 может незначительно меняется от изменения температуры и напряжения питания. По мере увеличения напряжения питания, частота его немного уменьшается. Когда переключатель  SB1 не замкнут, напряжение питания 5 вольт, пройдя через два диода, которые создают падение напряжения около 1,6 вольта, поступает на вывод питания ПИКа (3,4 вольт). С замкнутыми контактами  SB1, микроконтроллер работает от 5 вольт. С помощью данной схемы появляется возможность для калибровки либо на 3,4 вольт, либо на 5 вольт питания.

Еще раз:

  •  SB1 разомкнут — калибровка происходит при 3,4 вольта.
  •  SB1 замкнут — калибровка происходит при 5 вольт.

Два диода создают падение напряжения, а резистор R1 создает достаточный ток для стабильности напряжения на диодах.

Опорный сигнал подается с вторичной обмотки трансформатора (от 6 до 12 вольт) через диод VD3, резистор R4 и транзистор VT1. Транзистор любой типа NPN.

Внимание. Переменное напряжение на транзистор следует подавать только через трансформатор

Ни в коем случае не напрямую от электросети!

Процесс определения калибровочной константы

  • Программируем PIC12F629 или PIC12F675 прошивкой, которая приведена в конце статьи.
  • Переключатель  SB2 оставляем незамкнутым для сети 50 Гц, и замыкаем если частота в электросети равна 60 Гц. Для успешно проведения работ, данный сигнал должен быть подан до начала калибровки.
  • Вставляем МК в панельку, переключатель  SB1 замыкаем, тем самым подаем питание 5 вольт.

Если все нормально светодиоды мигнут один раз.

Если опорный сигнал не будет обнаружен на выводе 5 МК, то загорится красный светодиод, а зеленый будет мигать до появления сигнала. Если это произойдет, то выключите питание и включите снова.

В процессе калибровки оба светодиода выключены. Калибровка по времени занимает не более 5 секунд.

Если калибровка не удалась — загорится красный светодиод.

Если калибровка прошла успешно загорится зеленый светодиод, и на выводе 6 МК появится тестовый сигнал с частотой 5 кГц. Замерив, данный сигнал частотомером, можно убедиться в корректной калибровке внутреннего генератора микроконтроллера.

Следующим этап – необходимо прочитать программатором EEPROM микроконтроллера.

Возможны три варианта данных по адресам 0x00 и 0x01 в EEPROM:

  1. Если в обоих адресах 0xFF – калибровка не удалась.
  2. Если в обоих адресах 0x00, необходимо убедиться, что опорная частота выбрана правильно.
  3. В адресе 0x00 содержится 0x34 и в адресе 0x01 содержит 0xNN, где NN и является наша новая константа калибровки.

Описание RGB контроллера на PIC12f629

Управление светодиодами на микроконтроллере обеспечивается путем непрерывного изменения интенсивности свечения по каждому каналу. Поскольку цикл включения — выключения немного отличается у каждого из 3 каналов, то это позволило обеспечить отображение большого количества оттенков.

Система управления интенсивности свечения построена на ШИМ (широтно-импульсная модуляция). Этот метод очень эффективен, потому что выходные транзисторы работают в режиме насыщения, т.е. переключения, рассеивая очень мало энергии насебя, обеспечивая высокую производительность.

В схеме применен микроконтроллер Microchip PIC12F629. Поскольку программа написана без использования каких-либо специальных функций микроконтроллера (Таймер, АЦП и т.д..), программа может быть адаптирована под другой микроконтроллер Microchip с незначительными изменениями.

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

Микроконтроллер PIC12F629 имеет только восемь выводов: 2 для питания и 6 входов / выходов. Их 6 оставшихся выводов задействованы только 4: 3 выход для каждого из каналов и один для считывания значения переменного резистора.

Для успешной работы мощных MOSFET транзисторов, необходимо добавить еще три транзистора BC548. Схема питается от 12 вольт. Регулятор напряжения 78L05 обеспечивает питание микроконтроллера. При подключении длинных светодиодных лент возрастает нагрузка на MOSFET транзисторы, поэтому их желательно установить на теплоотвод.

Скачать прошивку и печатную плату

Подробное описание pic12f629

PIC12F629 является 8-битным микроконтроллером семейства PIC от компании Microchip Technology. Он поддерживает архитектуру RISC и имеет 1024 байта программной памяти flash и 128 байт ОЗУ.

Одной из главных особенностей PIC12F629 является наличие 16-битного таймера счетчика для работы с импульсными сигналами и интегрированного счетчика шагов для управления двигателями.

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

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

Для управления PIC12F629 используется язык программирования C, а также существует множество интегрированных сред разработки (IDE) и компиляторов, которые облегчают процесс разработки и отладки программного обеспечения.

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

Видео 1

Для управления мощностью двигателей предусмотрены входы ENA и ENB. ENA привязан к IN1, IN2, а ENB регулирует мощность двигателя, управляемого через IN3, IN4. В простейшем случае, когда нет необходимости в регулировании оборотов двигателя, эти входы замкнуты перемычками на шину питания. Для управления скоростью вращения электромоторов используется ШИМ , соответственно необходимо подключать к данным входам драйвера те порты Arduino, которые поддерживают данный режим. При этом для управления одним двигателем в данном режиме понадобится три порта Arduino (программа L298N_2, взята из ).

Особенности программирования

PIC
12F
629 имеет только один порт ввода/вывода под названием GPIO
. На плате линии этого порта подключены к штыревому разъему PORTA/PORTGP
и другим элементам, связанным с ним. Это позволяет производить разработку устройств и отладку программ, точно также как и для других МК. Выход температурного датчика DS18B20, имеющий возможность подключения к линии RA
5 с гнездом для PIC
12F
629 не связан.

При запуске среды разработки открывается проект, где в первую очередь, необходимо установить используемый тип генератора частоты. Наиболее востребованным вариантом для данного кристалла будет использование внутреннего генератора. Это позволяет использовать линии GP4 и GP5 для ввода/вывода. Внутренний генератор имеет обозначение INTR_OSC_NOCLOCKOUT. Также устанавливаются другие биты конфигурации, в зависимости от требований схемы. При необходимости установки калибровочной константы, сделать это можно после запуска программы программатора microICD.

Написание программы мало отличается от этого действия для других контроллеров при учете особенностейPIC
12F
629. Главная – название порта ввода/вывода. В IDE MicroPascal его глобальное определение GPIO
, а регистр конфигурации обозначается TRISIO
. Дополнительно при инициализации нужно определить назначение выводов GP
0 и GP
1. По умолчанию они являются входами аналогового компаратора. При использовании в качестве цифровых линий необходимо выполнить команду CMCON:=7. С ее помощью данные вывода настраиваются как линии дискретного ввода/вывода. Ну и не стоит забывать, что вывод GP
3 работает только как вход. В остальном программирование PIC
12F
629 ничем не отличается от других контроллеров PICmicro
.

Описание работы ШИМ диммера для светодиода

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

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

Если палец пользователя коснулся датчика, в результате чего он получает заряд и спустя совсем короткое время разряжается через сопротивление R1. В течение этого интервала времени микроконтроллер воспринимает это как высокий уровень (нажатие кнопки).

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

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

Далее управляющий сигнал через резистор R2 поступает на базу биполярного транзистора Q1. Светодиоды подключены в 4 параллельные группы, каждая из которых содержит 3 последовательно соединенных светодиодов и балластный резистор на 200 Ом. Этот резистор ограничивает ток, протекающий через светодиоды, и его значение зависит от их параметров. Как рассчитать этот резистор читайте здесь.

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

Для подключения большого количества светодиодов, транзистор Q1 необходимо заменить на более мощный, сохраняя базовый ток ниже 20 мА для защиты микроконтроллера от повреждений.

Скачать прошивку (1,1 KiB, скачано: 983)

Паяльный фен YIHUA 8858
Обновленная версия, мощность: 600 Вт, расход воздуха: 240 л/час…

Подробнее

Принципиальная схема

Схема построена на основе недорогого микроконтроллера PIC12F629. Для плавного изменения яркости светодиодов использован метод широтно-импульсной модуляции. Данный микроконтроллер не имеет PWM-блока, поэтому ШИМ здесь реализован программным способом.

Данный микроконтроллер имеет небольшой объем памяти, поэтому её пришлось экономить. В результате было решено отказаться от ручной регулировки яркости свечения, и использовать низкочастотную ШИМ с частотой 400Гц.

После подачи питания микроконтроллер инициализирует свои внутренние регистры и периферийные устройства и загружает последний режим работы. Выводы 5, 6 и 7 посылают сигналы на полевые транзисторы Q1, Q2 и Q3, которые управляют цветами светодиодной ленты.

Для питания светодиодной ленты обычно применяется 12-вольтовый источник питания. Поэтому для обеспечения питания микроконтроллера в схеме установлен стабилизатор напряжения 5V на микросхеме А1.

Режим ожидания (свет выключен)

Устройство питается от сетевого напряжения, через резистивную нагрузку (лампочку). Схема потребляет очень мало энергии. Основным потребителем является ИК-приемник TSOP, но вы также можете использовать маломощные TSOP, такие как TSOP38238, если хотите снизить потребление тока до менее чем 1 мА.

В этом состоянии микроконтроллер (PIC12F629/PIC12F675) ожидает ИК-сигнала от TSOP или нажатия от настенного выключателя. Имейте в виду, что настенный выключатель больше не должен быть классическим выключателем включения/выключения — он должен быть заменен кнопочным выключателем, который замыкает контакты только тогда, когда вы продолжаете нажимать на него.

Сравнение микроконтроллеров pic12f629 и pic12f675

Основные характеристики

Микроконтроллер pic12f629 и pic12f675 относятся к семейству PIC12F и имеют 8-разрядную архитектуру. Оба устройства имеют 1024 байта встроенной программной памяти и различное количество оперативной памяти: 64 байта для pic12f629 и 128 байт для picf12f675.

Однако, pic12f675 имеет большее количество периферийных модулей, таких как ADC (аналогово-цифровой преобразователь), PWM (широтно-импульсная модуляция) и USART (универсальный синхронный/асинхронный приемопередатчик). В отличие от этого, pic12f629 имеет только ADC и немного меньшее количество выводов для подключения периферийных устройств.

Энергопотребление

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

Заключение

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

Понравилась статья? Поделиться с друзьями:
Зинг-Электро
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: