Программирование микроконтроллеров
Содержание:
- STM32 и USB-HID — это просто
- Простой USB-UART преобразователь с гальванической развязкой
- Создаем хардварный логгер клавиатуры
- GSMout – приём SMS и звонков «как дома»
- Микроконтроллеры серии PIC12
- Сфера применения PIC-микроконтроллеров
- 8-битовые микроконтроллеры
- Наилегчайший старт в STM через «одно место»
- 32-битовые микроконтроллеры
- Для чего нужен файловый формат .PIC?
- Импульсный источник питания
- IoT шлюз Ethernet-RS485 на базе STM32
STM32 и USB-HID — это просто
На дворе 2014 год, а для связи микроконтроллеров с ПК самым популярным средством является обычный последовательный порт. С ним легко начать работать, он до примитивности прост в понимании — просто поток байт.
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?
Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.
У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее
Простой USB-UART преобразователь с гальванической развязкой
В процессе разработки электронных устройств под управлением микроконтроллеров часто возникает задача передать какие-то данные с устройства на компьютер или наоборот. Вероятно самым простым способом является использование USB-UART переходников, которых существует великое множество, но я решил сделать свой «велосипед» и поделиться результатом с вами.
У меня стояла задача сделать для себя любимого простой, дешевый, компактный и главное гальванически развязанный преобразователь USB-UART. Основной кейс для меня — отладка через printf по uart, да да, я в курсе про SWO и иные методы, но мне удобнее работать именно с uart-ом. Наличие изоляции для меня критично, т.к. в основном мне приходится проектировать силовые преобразователи, которые могут легко спалить, например, usb порт моего ноутбука. Правда если у вас в устройствах нет высокого напряжения, то расслабляться тоже не стоит, какие-нибудь 12В так же прекрасно могут вывести из строя ваш ПК. Разумеется не стоит забывать и о помехах, гальваническая развязка частично препятствует попаданию всякой гадости в usb порт.
Как видите у развязанных преобразователей интерфейсов одни плюсы, но тут некоторые возразят: «Зачем? Все же есть на Алиэкспресс». Тут ответ простой — меня не устроили ни цена готового устройства, ни его габариты, ни качество. В итоге за пару часов я «изобрел велосипед», который удовлетворит все мои хотелки и после изготовления получилось вот так:
Хотите обезопасить свои usb порты и узнать зачем так много? Тогда поехали :))
Создаем хардварный логгер клавиатуры
У тебя наверняка не раз возникала ситуация, когда программные логгеры клавы не могли решить поставленных задач. Например, отловить пароль от биоса с помощью программного кейлоггера, загружаемого системой, невозможно. Лично я столкнулся с подобной проблемой, когда мне нужно было узнать админский пароль в локальной сети одной фирмы. Тогда я и подумал, что было бы очень круто сделать «железный» логгер, который бы подключался между клавиатурой и компьютером и ловил все нажатые клавиши, начиная с включения компьютера. В предлагаемой статье изложены принципы работы PS/2 интерфейса, и перехват данных, передаваемых по нему.Парочка аппаратных логгеров клавиатуры
Принципы
Для того чтобы сконструировать подобное устройство, сначала нужно разобраться с тем, как же работает клавиатура. Есть два основных типа клавиатур: АТ (старый стандарт) и PS/2. Отличаются они только разъемами: АТ имеет DIN, а PS/2 — miniDIN. Первый — большой круглый разъемчик с пятью штырьками, второй — маленький, как у мышки, с шестью пинами. По протоколу обмена они полностью совместимы. Наверняка, ты видел переходники с широких старых разъемов на новые маленькие. Этот стандарт появился еще в 1984 году вместе с первым персональным компьютером IBM PC и используется по сей день, практически не претерпев никаких изменений.
GSMout – приём SMS и звонков «как дома»
Рисунок 1
Сегодня практически отсутствуют Интернет-ресурсы, которым бы был не нужен Ваш номер телефона. Верификация номера проходит обычно путём получения SMS с кодом или звонком, где последние цифры номера являются аргументом для подтверждения. Если Вы занимаетесь бизнесом, то наверняка сталкивались с тем, что для совершения тех или иных банковских операций необходимо подписывать их с помощью кода из SMS. Всё хорошо, когда находитесь в домашнем регионе и получить код не составит труда, гораздо сложней ситуация обстоит, если Вы находитесь в другом регионе, где роуминг не работает, т. к. Ваш телефон или SIM-карта не поддерживается местными сотовыми операторами. Одним из элегантных решений является данный проект (рисунок 1). В домашнем регионе Вы оставляете M5Stack с установленной SIM-картой, получаете белый IP у оператора, открываете порт и получаете доступ к журналу входящих SMS и звонков онлайн с любой точки мира, где есть Интернет.
Микроконтроллеры серии PIC12
Микроконтроллеры PIC12 наряду с серией PIC10 занимают нишу маломощных устройств в линейке процессорной продукции Microchip. Минимум периферии и корпус с 8-ю выводами предполагают их применение только в относительно простых приложениях. Эти же факторы и вытекающая из них низкая стоимость, обусловили популярность данных микроконтроллеров среди большого числа радиолюбителей.
Главной особенностью серии PIC12, как уже было сказано выше, является 8-ми выводной корпус. В таком корпусе выпускаются абсолютно все варианты за исключением нового процессора PIC12LF1840T48A со встроенным радиопередатчиком. Пользователю доступно 6 линий ввода вывода, при условии, что одна из них работает только на вход. Так же как и у других процессоров вывода могут выполнять разные функции. Из стандартной периферии доступны таймеры на 8 и 16 бит, компараторы и АЦП.
Ограниченность по выводам привела к тому, что в серии PIC12 сравнительно мало моделей и все они относительно схожи по своим характеристикам. В некоторых случаях, для выбора достаточно определиться только с наличием или отсутствием АЦП и требуемым объемом памяти. Но можно подобрать микросхему и для конкретного, специфического проекта. В частности серия PIC12 может оснащаться встроенным модулем радиопередатчика или модулем шифрования KeeLoq.
В микросхемах семейства PIC12 используются три базовых архитектуры ядер. Наиболее дешевые микросхемы построены на базовой архитектуре (Baseline). 12-ти разрядная шина команд и всего 33 инструкции упрощают освоение этих микроконтроллеров. Микросхемы с базовым ядром оснащаются только одним 8-ми разрядным таймером и не имеют энергонезависимой памяти (исключение PIC12F519). Более совершенные устройства оснащаются ядром средней серии с 14-ти разрядной шиной команд. Эти микроконтроллеры содержат два таймера, один из которых 16-ти разрядный.
Тип |
Flashпамять Кслов |
EEPROM байт |
RAM, байт |
АЦП |
Комп |
Таймер |
Макс. частота МГц |
Встр. генератор МГц |
BOR/ PBOR/ PLVD |
Доп. |
Базовая серия, шина программ 12 бит, 33 инструкции |
||||||||||
PIC12F508 |
0.5 |
— |
25 |
— |
— |
1-8бит, WDT |
4 |
4 МГц |
— |
|
PIC12F509 |
1 |
— |
41 |
— |
— |
1-8бит, WDT |
4 |
4 МГц |
— |
|
PIC12F510 |
1 |
— |
38 |
3×8 бит |
1 |
1-8бит, WDT |
8 |
8 МГц |
— |
ICD |
PIC12F519 |
1 |
64 |
41 |
— |
— |
1-8бит, WDT |
8 |
8 МГц |
— |
ICD |
Средняя серия, шина программ 14 бит, 35 инструкции |
||||||||||
PIC12F609 |
1 |
64 |
— |
1 |
1-8бит, 1-16бит, WDT |
20 |
4 МГц, 8 МГц |
BOR |
||
PIC12F615 |
1 |
64 |
4×10 бит |
1 |
2-8бит, 1-16бит, WDT |
20 |
4 МГц, 8 МГц |
BOR |
ECCP |
|
PIC12F617 |
2 |
128 |
4×10 бит |
1 |
2-8бит, 1-16бит, WDT |
20 |
4 МГц |
BOR |
Selfwrite, ECCP |
|
PIC12F629 |
1 |
128 |
64 |
— |
1 |
1-8бит, 1-16бит, WDT |
20 |
4 МГц |
BOR |
|
PIC12F635 |
1 |
128 |
64 |
— |
1 |
1-8бит, 1-16бит, WDT |
20 |
32кГц, 8МГц |
BOR/ PLVD/ ULPV |
KeeLOQ, nW |
PIC12F675 |
1 |
128 |
64 |
4×10 бит |
1 |
1-8бит, 1-16бит, WDT |
20 |
4 МГц |
BOR |
|
PIC12F683 |
2 |
256 |
128 |
4×10 бит |
1 |
2-8бит, 1-16бит, WDT |
20 |
32кГц, 8МГц |
BOR/ ULPV |
CCP,nW, , Cap Touch |
PIC12F752 |
1 |
64 |
— |
2 |
2-8бит, 1-16бит, WDT |
20 |
8 МГц |
BOR |
Self-write, CCP, DAC, COG |
|
PIC12LF1552 |
2 |
256 |
4×10 бит |
— |
1-8бит, WDT |
20 |
32кГц, 16МГц |
LPBOR |
Selfwrite, SPI, I2C, MSSP, Cap Touch |
|
Улучшенная средняя серия, шина программ 14 бит, 49 инструкции |
||||||||||
PIC12F1501 |
1 |
64 |
4×10 бит |
1 |
2-8бит, 1-16бит, EWDT |
20 |
32кГц, 16МГц |
LPBOR |
Selfwrite, CWG, NCO, CLC, Cap Touch, DAC, PWM |
|
PIC12F1822 |
2 |
256 |
128 |
4×10 бит |
1 |
2-8бит, 1-16бит, EWDT |
32 |
32кГц, 32МГц |
BOR |
Selfwrite, XLP, SPI, I2C, MSSP, Cap Touch |
PIC12F1840 |
4 |
256 |
256 |
4×10 бит |
1 |
2-8бит, 1-16бит, EWDT |
32 |
32кГц, 32МГц |
BOR |
Selfwrite, XLP, SPI, I2C, MSSP, ECCP, ECCP, Cap Touch |
PIC12LF1840T (14 TSSOP with RF Transmitter) |
4 |
256 |
256 |
4×10 бит |
1 |
2-8бит, 1-16бит, EWDT |
32 |
32кГц, 32МГц |
BOR |
Selfwrite, XLP, SPI, I2C, MSSP, ECCP, Cap Touch |
Последние модели микроконтроллеров используют расширенное ядро средней серии, благодаря чему их характеристики и возможности увеличились. В частности повысилась частота внутреннего тактового генератора до 32МГц, возрос объем памяти программ, добавились таймеры, модули ШИМ, а в некоторых моделях появились интерфейсы A/E/USART и MSSP(SPI/I2C) и сенсорный интерфейс mTouch. Увеличенное количество инструкций позволяет создавать более компактный программный код. В некоторых микроконтроллерах может отсутствовать отдельный модуль энергонезависимой памяти, а для сохранения необходимых данных используется Flash-память программ.
Основное направление применения PIC12 – интеллектуальные датчики и простые исполнительные устройства. Также эти процессоры широко используются в системах сигнализации и дистанционного управления. Низкий уровень энергопотребления и широкий диапазон напряжений питания делает процессоры привлекательными для использования в системах с батарейным питанием. Несколько конструкций с использованием PIC12 можно найти в рвзделе Проекты.
You have no rights to post comments
Сфера применения PIC-микроконтроллеров
Как уже было сказано, семейство PIC16 очень любят радиолюбители. К тому же оно хорошо описано в большом количестве литературы. По количеству учебников с семейством PIC, на момент написания статьи, может посоревноваться только семейство AVR.
Давайте рассмотрим несколько схем с применением микроконтроллеров семейства PIC.
Таймер для управления нагрузкой на PIC16f628
Простейшая автоматика на микроконтроллерах PIC – это стихия 8-битного семейства. Их объём памяти не позволяет делать сложных систем, но отлично подходит для самостоятельного выполнения пары поставленных задач. Так и эта схема трёхканального таймера на Pic16f628, поможет вам управлять нагрузкой любой мощности. Мощность нагрузки зависит только от установленного реле/пускателя/контактора и пропускной способности электросети.
Настраивается прибор с помощью набора из 4-х кнопок SB1-SB4, на HG1 выводятся параметры, это дисплей типа LCD на 2 строки по 16 символов. В схеме используется внешний кварцевый резонатор на 4 МГц, а KV1 – это реле, с питанием катушки в 24 В, вы можете использовать любое реле, лишь бы оно подходило по напряжению катушки к вашему БП. МК питается от 5 В стабилизированного источника.
Вы можете использовать от 1 до 3 каналов в управлении нагрузкой, стоит только продублировать схему, добавив реле к выводам RA3, RA4 микроконтроллера.
Часы-будильник на МК PIC16f628A
Такие часы, согласно заявлениям разработчика, получились весьма точными, их погрешность весьма мала – порядка 30 секунд в год.
С незначительными переделками вы можете использовать любые 7-мисегментные индикаторы. Питаются от блока питания на 5В, при этом, при отключении от сети продолжают работать от батареек, что вы можете увидеть в правом верхнем углу схемы.
Регулятор мощности паяльника на PIC16f628A
У начинающих радиолюбителей не всегда есть возможность купить паяльную станцию. Но они могут собрать её сами. На схеме ниже представлен регулируемый блок питания на PIC16f628, для работы паяльника. В основу схемы вложено фазоимпульсное управление. Это, по сути, доработанный и осовремененный аналог классического тиристорного регулятора, но с микроконтроллерным управлением.
Схема довольно простая, в нижней части реализация светодиодной индикации. Главный силовой элемент – тиристор BT139, а MOC3041 – нужен для гальванической развязки МК от сети и управления тиристором с помощью логического уровня в 5 В.
8-битовые микроконтроллеры
8-битовые микроконтроллеры имеют модифицированную гарвардскую архитектуру и делятся на два больших семейства: PIC10/12/16 и PIC18.
8-битовые микроконтроллеры PIC10/12/16/18
Ядра 8-битовых микроконтроллеров PIC10/12/16 могут быть построены одной из двух архитектур: BASELINE и MID-RANGE.
Архитектура базового (BASELINE) семейства
Архитектуру BASELINE имеют ядра контроллеров семейства PIC10 и часть контроллеров семейств PIC12 и PIC16. Отличительные черты:
- разрядность: 12 бит;
- количество поддерживаемых машинных инструкций: 35;
- количество выводов (контактов): от 6 до 28;
- дешевизна (по сравнению с другими решениями фирмы Microchip);
- поддержка широкого диапазона напряжений питания;
- возможность работы при низких напряжениях (применимо, например, в батарейных устройствах);
- низкое потребление тока;
- малые габаритные размеры корпуса;
- наличие встроенной flash-памяти для программ.
Архитектура среднего (MID-RANGE) семейства
Архитектуру MID-RANGE имеют ядра микроконтроллеров серий PIC12 и PIC16. Отличительные черты:
- разрядность: 14 бит;
- количество поддерживаемых машинных инструкций: 35;
- количество выводов: от 6 до 64;
- работа в диапазоне напряжений питания от 2.0 до 5,5 В;
- малый ток потребления;
- поддержка системных прерываний;
- аппаратная поддержка стека;
- наличие встроенной flash-памяти для программ;
- наличие энергонезависимой памяти типа EEPROM для данных;
- поддержка периферии (USB, SPI, I²C, USART, LCD, компараторов, АЦП и т. п.);
- производительность: 5 MIPS.
Расширенную архитектуру MID-RANGE имеют ядра новых микроконтроллеров семейств PIC12 и PIC16. Отличительные черты:
- разрядность: 8 бит;
- количество поддерживаемых машинных инструкций: 35 основных и 14 дополнительных (оптимизированных под компилятор языка C);
- увеличенный объём памяти программ и данных;
- более глубокий и улучшенный аппаратный стек;
- дополнительные источники сброса;
- поддержка периферийных устройств с модулем mTouch (используется для создания сенсорных пользовательских интерфейсов);
- уменьшенное время входа в прерывание;
- производительность увеличена на 50 %;
- размер кода снижен на 40 %.
- разрядность: 8 бит;
- возможность подключения следующей периферии: 10-битовых АЦП, компараторов, ШИМ, захват/сравнение, драйверов, ЖКИ, периферии с интерфейсами USB, CAN, I²C, SPI, USART, Ethernet, TCP/IP, ZigBee и др.;
- производительность: до 16 MIPS;
- объём памяти программ: до 128 кБ;
- количество выводов: от 18 до 100;
- поддержка технологии NanoWatt;
- наличие программируемого генератора;
- поддерживаемые напряжения питания: 3 и 5 В;
- совместимость (программная, по выводам, по периферийным модулям) с другими контроллерами этого семейства и с 16-битовыми контроллерами других семейств.
Наилегчайший старт в STM через «одно место»
Уже, наверное, прошло время религиозных войн AVR против STM, но нет-нет да наблюдаются вспышки столкновений двух лагерей. Практически у любой публикации на тему поделок на AVR обязательно будет каммент вроде «Да сколько уже можно лохматить бабушку, давно пора перейти на STM», дальше вариации на тему цены, количества ног и таймеров. Если STMщик более продвинут, обязательно будет указание, что DMA в AVR нет и не будет, по этому AVR должна умереть. Зачем простому блинку-вольтметру-градуснику DMA, гора 16 разрядных таймеров, 100 ног и 12 битный АЦП никто как правило не объясняет. Зачем нужен такой комбайн в устройстве, которое легко вывозит Tiny13, которая при этом не загружена даже на треть своих ресурсов никто не будет разбираться. Просто надо переходить на STM32, и баста. Ибо вот.
И надо сказать, есть у людей тяга к новизне. А действительно, может попробовать? А вдруг понравится? Вот только Референс Мануал на популярный STM32F103C8T6, на котором основана самая массовая Голубая таблетка в 1126 страниц что-то как-то не очень располагает к «быстрому старту». Даже отдельную утилиту, так ненавидимый аксакалами «калокуб», и ту надо изучать, что там к чему. Да и вникнув в Cube, стартовать за 5 минут вряд ли получится, генерируемая им портянка не самое доступное чтиво на ночь, просто «в лоб» врубиться, о чём там речь получится не у каждого.
32-битовые микроконтроллеры
Отличительные черты семейства 32-разрядных микроконтроллеров PIC32:
- разрядность: 32 бита;
- ядро: MIPS32 M4K;
- частота тактирования ядра: до 120 МГц (для серии MX) и до 200 МГц (для серии MZ)[источник не указан 1510 дней];
- выполнение большинства команд за 1 такт генератора;
- производительность: 1.53 Dhrystone MIPS/МГц;
- порты ввода-вывода относятся к основному частотному диапазону, таким образом, к примеру, можно дёргать портами с тактовой частотой;
- дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делителя, таким образом, частота тактирования периферии может быть снижена для снижения энергопотребления;
- количество выводов: 28, 44, 64 и 100;
- объём SRAM: до 128 кБ;
- объём flash-памяти: 512 кБ с кэшем предвыборки;
- совместимость по выводам и отладочным средствам с 16-битовыми контроллерами фирмы Microchip;
- аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения;
- набор расширенных 16-битовых инструкций MIPS16e, позволяющий уменьшить размер кода некоторых программ на 40 %;
- независимый от основного ядра контроллер USB.
Семейство 32-разрядных микроконтроллеров PIC32 выделяется значительно увеличенной производительностью и объёмом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC. Контроллеры PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы — те же, что у PIC24, и 16-битовый параллельный порт, который может использоваться, например, для обслуживания внешних микросхем памяти и жидкокристаллических TFT-индикаторов.
Семейство PIC32 построено на ядре MIPS32, отличающегося низким потреблением энергии, быстрой реакцией на прерывания, функциональностью средств разработки и лидирующим в своём классе быстродействием 1.53 Dhrystone MIPS/МГц. Такое быстродействие достигнуто благодаря эффективному набору инструкций, 5-ступенчатому конвейеру, аппаратному умножителю с накоплением и несколькими (до 8) наборами 32-разрядных регистров ядра.
Для чего нужен файловый формат .PIC?
Чаще всего расширение .pic относится к формату изображений QuickDraw платформы Macintosh, обычно обозначаемому PICT. Это проприетарный файловый формат, разработанный Apple Computer для графической подсистемы QuickDraw в классической ОС Macintosh. PICT использовал тот же внутренний формат данных, что и системный буфер обмена, и выступал в качестве стандартного формата метафайла Apple Mac OS (в Mac OS X его заменил PDF). Для обозначения файлов формата PICT вне Apple Mac OS традиционно используется расширение .pic и другие (.pict, .pct).
Файл .pic представляет собой метафайл QuickDraw, графическое изображение в формате PICT. Наряду с векторной и растровой графикой, подобные файлы (.pic и др.) могут содержать текст. В Mac OS формат PICT поддерживался на системном уровне, а в Mac OS X для совместимости его поддержка сохранена на уровне приложений. В Майкрософт Windows файлы .pic (.pict, .pct) можно непосредственно открыть и просмотреть с помощью нескольких универсальных просмотрщиков изображений с возможностью конвертации в стандартные форматы.
Кроме того, расширение .pic также обозначает файловый формат изображений «Расширенного динамического диапазона» (High Dynamic Range, HDR) Radiance, также известный как формат RGBE, разработанный Дж.Уордом в рамках Radiance — созданного им открытого программного инструментария моделирования и визуализации условий освещения. Помимо .pic, изображения HDR могут использовать и другие расширения вроде .rgbe, .hdr и .xyze. Формат HDR предусматривает хранение 32-разрядных данных вместе со значениями яркости с плавающей запятой в виде двоичного файла с RLE-сжатием и сигнатурой «#?RADIANCE» в заголовке. Изображения HDR (.pic и др.) импортируются несколькими графическими редакторами и системами трехмерного моделирования, а непосредственный их просмотр возможен с помощью автономных HDR-просмотрщиков.
Другой случай использования расширения .pic связан с типом/форматом файлов «Сканированное изображение Bio-Rad» (.pic), который служит базовым форматом сохранения снимков, полученных при помощи конфокальных микроскопов Bio-Rad (напр., Bio-Rad MRC-500). Формат PIC предусматривает хранение в едином файле множественных скан-снимков с несколькими 8- или 16-битными каналами (т.н. «скан-стопки»). Сделанные микроскопом снимки PIC обрабатываются с помощью ПО LaserSharp (Bio-Rad) или непосредственно импортируются другим ПО для анализа изображений научного профиля.
В дополнение к этому расширение .pic служит для обозначения текстовых файлов с исходным кодом, используемых при программировании микроконтроллеров PIC/PICmicro (Microchip Technology). Файл .pic содержит в себе исходный код программы, написанной специально для определенной микросхемы PIC (напр., PIC16F628A). Перед программированием флеш-памяти PIC нужно скомпилировать исходный код в файле .pic в шестнадцатеричный формат (.hex).
Как сокращение от «Picture» (рисунок, картинка) расширение .pic часто выступает в качестве типового ярлыка для файлов изображений (.pic), создаваемых различными программами. Поскольку данное расширение лишь в общем смысле определяет файл как изображение, подобные файлы PIC могут встречаться во множестве отличных друг от друга форматов. Открываться такие файлы будут в том приложении, с помощью которого они были созданы.
Импульсный источник питания
Еще один пример использования конфигурируемых логических ячеек совместно со встроенными компараторами.
Таймер TMR периодически устанавливает RS-триггер и открывает силовой транзистор. Ток начинает течь через индуктивность, напряжение на резисторе R1 линейно увеличивается. При достижении напряжения на R1 порогового значения срабатывает компаратор COMP1 и сбрасывает триггер, транзистор закрывается. Ток через индуктивность не может прерваться мгновенно, поэтому ток начинает течь через диод D1 и заряжает выходной конденсатор. По срабатыванию таймера триггер снова устанавливается и процесс повторяется.
Рис.17a. Простейший импульсный источник питания.
На рисунке приведена схема повышающего источника, но для других топологий (см. рис. 17b) работа схемы будет аналогичной, поэтому выходной каскад далее рисовать не буду.
схема | описание |
---|---|
повышающий | |
понижающий | |
Sepic |
Рис.17b. Различные топологии импульсных источников питания
Приведенная на рис. 17a схема выполняет функцию преобразования энергии и работает по пиковому значению тока в индуктивности. Можно ввести еще контур регулирования выходного напряжения. Наиболее просто сделать гистерезисное управление: когда напряжение на выходе ниже нормы – происходит накачка источника, когда напряжение выше – выдача управляющих импульсов на силовой транзистор блокируется.
Рис.17c. ИИП с гистерезисным управлением
Включение силового транзистора будет генерировать помеху, которая может приводить к преждевременному срабатыванию компаратора COMP1. Для избавления от этого можно включить RC-фильтр в цепь между R1 и компаратором, а можно добавить рассматриваемый ранее блок бланкирования (формирование импульса по фронту, см. рис 8а, или рис. 14а), который после включения транзистора будет блокировать сброс триггера на короткий интервал времени.
Рис.17d. Помеха при коммутации силового ключа
Рис.17e. ИИП с гистерезисным управлением и бланкированием помехи переключения.
Элементы U1 и U2 можно привести к реализации на элементах ИЛИ и отнести к входу CLC1, тогда вся логическая часть схемы реализуется на трех ячейках CLC (обычно в микроконтроллерах Microchip имеется 4 ячейки).
Все что на схеме изображено левее силового ключа – находится внутри микроконтроллера, связи периферийных модулей так же осуществляются внутри кристалла микроконтроллера. Напряжения порогов Ref и Ref1 могут задаваться встроенными источниками опорного напряжения или ЦАП. Таким образом, импульсный источник питания с регулируемым выходным напряжением можно реализовать на периферийных модулях микроконтроллера. После первоначального конфигурирования схема будет работать полностью аппаратно без необходимости участия ядра в поддержании функции преобразователя. Ядро может заниматься интерфейсными задачами, индикации контроля и др.
Вообще, для построения импульсных источников питания в новых семействах PIC16F17xx микроконтроллеров Microchip есть дополнительные аналоговые (операционные усилители) и специализированные периферийные модули: модули пилообразной компенсации (Slope Compensation) и программируемый рамп-генератор (Programmable Ramp Generator, PRG), операционные усилители, модуль формирования комплементарных выходных сигналов (COG), HLT таймера. Но об этих частях ПНЯ постараемся рассказать в следующий раз.
Периферия независимая от ядра интересна сама по себе, но наибольшую пользу может принести возможность синтеза функциональных блоков, т.е. совместное использование нескольких периферийных модулей для решения конкретных задач. В этом случае тактовая частота, быстродействие и разрядность ядра уходят на второй план – аппаратная часть выполняет специализированные функции, а ядро занимается программной поддержкой работы изделия.
IoT шлюз Ethernet-RS485 на базе STM32
Из песочницы
Привет, Хабр!
Данный пост посвящён DIY разработке Ethernet-RS485 шлюза. Цель данного шлюза – обеспечение централизованного управления нодами Mysensors со стороны контроллера умного дома.
Недавно меня таки достали провода, дюпоны, навесная пайка и т.п. и было принято давно оттягиваемое решение — сделать свои платы с нуля, т.е. всё по серьёзному. 🙂
Сказано — сделано!
Первым делом была разработана и нарисована принципиальная схема шлюза, в которой я постарался учесть все свои хотелки и пожелания. Далее произведена компоновка и подгонка платы под требуемые размеры (50×50мм). И последний этап, это заказ плат на производстве. Я заказывал на фабрике JLCPCB, 5 плат — 2$ + доставка.
Данный шлюз построен на базе МК STM32F103CB(8)T6. В качестве Ethernet чипа выступает достаточно известная микросхема от WIZnet — W5500. Транспортом данного шлюза в сети Mysensors является проводной интерфейс RS485. В качестве драйвера RS485 был выбран чип — MAX13488EESA+T, в том числе и в связи с наличием у него режима автоматического выбора направления приёма/передачи.