VBAT Overview
The PIC16(L)F19197 family of devices come equipped with a VBAT pin that provides users with the ability to use an external backup power source to ensure that the SOSC and RTCC modules continue running if the VDD supply voltage were to fail. Utilizing the VBAT functionality of the module can be beneficial in applications that use the RTCC module, by helping to ensure that the time keeping values are retained when the VDD power supply is lost. The VBAT hardware determines when the VDD power supply to the RTCC and SOSC modules are no longer sufficient. When the supply drops below the required VDD voltage level, the RTCC and SOSC modules will automatically switch their supply voltage to run from the available VBAT power supply.
The RTCC and SOSC modules were designed with low power consumption in mind to help prolong battery life. The VBATBOR and BOR bits of the Power Control register set (PCONx) can be used to indicate whether a Brown-out Reset (BOR) occurred and to determine if a VBAT Brown-out Reset occurred, specifically. Table 3-1 summarizes the behavior that the PIC microcontroller will inhibit in the event of a Brown-out Reset when VBAT is utilized as a battery backup.
Для чего используется контакт Vbat в разъеме micro usb у Samsung ?
Вычитал распиновку в интернете для разъема micro usb для Samsung S5660 а так же для Samsung Galaxy S Plus.
1 — VBUS 5V
2 — DATA-
3 — DATA+
4 — USB ID
5 — GND
6 — VBAT
7 — GND
Подскажите для Galaxy Note (GT-N7000) она такая же?
Для чего может использоваться контакт 6 — vbat и 7 — gnd?
Могу ли я подать на них питание во время включенного otg режима для зарядки или работы устройства от сети?
Если да то сколько вольт подавать: 5в или 4,2в максимум?
vbat это же я так понимаю плюс клемы аккумулятора?
Порядок контактов на плате как я понял 1-6-2-3-4-7-5 ?
dervish
- 2/8/16
- #2
flashmax
- 2/8/16
- #3
Rizon4ik86
dervish
- 3/8/16
- #5
pasha_zv
- 3/8/16
- #6
flashmax
- 3/8/16
- #7
не всегда
иногда стоит "ключик"
Rizon4ik86
Rizon4ik86
pasha_zv
- 5/8/16
- #10
верно думаешь.
не более 4ю2 вольта.
и вдобавок — в среднем тело при работе (звонок+экран) потребляет 200-400 мА.
а вот импульсы при передаче стреляют до одного ампера.
просто подать — либо с ЛБП, либо. думайте. в общем.
ЗЫ. а зачем ВСЁ это?
если знать задачу , то ее решить можно разными способами.
. можно пихать в пасть коту горчицу, а можно намазать ему жопу.
результат будет один : КОТ ПОЕСТ ГОРЧИЦЫ
а вот трудо-время-затраты — разные )))
Rizon4ik86
Задача подключить жесткий диск к коммуникатору, таким образом что все это дело питалось от сети (если при этом будет еще и аккум заряжаться вообще супер.)
А вот чем к телефону в разъем подключить ума не приложу. Где этот 7-ми пиновый штекер найти? почему то я думал что без проблем можно в интернете его заказать. Подскажите пожалуйста где встречается данный штекер?
pasha_zv
- 7/8/16
- #12
flashmax
- 7/8/16
- #13
Rizon4ik86
Да! Именно так всё сейчас у меня и работает, Но! не идет зарядка на телефон. Проблема заключается в том, что Vbus в режиме otg работает на отдачу питания а не на прием, а мне нужно использовать коммуникатор с жестким диском дольше, чем хватает на то аккумулятора.
Вобщем мне нужно знать где взять самсунговский штекер 7 pin. Ведь раз выпускают разъем, значит должны выпускать и штекер. Наверняка его устанавливают на какие то виды кабелей, перепрошивальщиков или док станций.
Спасибо pasha_zv воспользуюсь советом.
PS: А вот небольшое руководство для тех, кто все же решит сделать otg кабель с запитом жесткого без запитки\зарядки на телефон. У меня получалось это сделать двумя способами:
1) Первый свой otg кабель я сделал без разрыва проводов в кабеле. Взял обычный отг кабель, разобрал штекер кабеля micro usb, подпаял туда два небольших проводка на 1-ый — V-Bus и 5-ый — GND контакты для подключения дополнительного питания. Ну так вот, чтобы эта схема заработала — сначала нужно перемкнуть контакты 4 и 5 (на стандартном китайском кабеле какой я и купил они там уже перемкнуты, нужно просто вставить штекер в телефон), чтобы определился otg кабель, а лишь затем подать питание 5в на 1 и 5 контакты (Если сделать наоборот сначала подать питание, потом перемкнуть контакты 4, 5 (вставить кабель в телефон), то режим отг включится только при отключении питания, ну и соответственно только после определения кабеля как otg — последующего подключения питания обратно).
На разных форумах пишут, что при такой схеме подключения можно подобрать "правильное" сопротивление между 4-ым и 5-ым контактами и тогда зарядка пойдет. Для моей модели это оказалось полной ерундой — в режиме otg разъем может работать только на отдачу.
2) А вот доработанный вариант otg кабеля с разрывом минусового провода питания, который можно подключать к смартфону/жесткому диску/блоку питания в любой последовательности: для его изготовления отсоедините минус (5 — gnd ) от штекера который идет в смартфон и тогда всё заработает как надо! Питание с блока питания пойдет на жесткий. При спаянных 4 и 5 контактах кабель определится как otg. Данные между смартфоном и жестким диском будут передаваться. (Если же отрезать от смартфона еще и Vbus тоже, то данные передаваться не будут, проверено! Ни жесткий, ни мышка, ни клава даже не стартуют это при наличии на них внешнего питания, и правильно подключенных контактах шины передачи данных от смартфона (то есть 2-ой — DATA- и 3-ий — DATA+.), ну и конечно же включенном режиме otg (перемкнутых 4-ым и 5-ым контактами). )
Да! конечно же блок питания должен быть как тут уже и писали достаточной мощности для жесткого диска. Если мощность не достаточная — это можно понять по звуку работы жесткого диска — он будет щелкать, пытаться стартовать, но у него это не будет получаться или то немного разгоняться и опять сбрасывать скорость. Можно приложить к уху и послушать. А вообще я думаю минимум с которого стоит начинать подобные эксперименты — 2 ампера, а лучше всё же взять блок питания на 3 или даже на 5 ампер. Ну и конечно же не стоит забывать о сечении и длине проводов. Чем провода тоньше и длиннее тем больше просадка по напряжению и току.
Vbat на схеме что это
Для питания любого МК требуются, как минимум, два провода: положительный («плюс», «Power supply») и отрицательный («минус», «Ground reference»). Обозначают их в даташитах и на схемах следующими сокращениями (Рис. 2.8):
- Vcc (Voltage Collector-to-Collector) или VDD (Voltage Drain-to-Drain);
- GND (GrouND) или Vss (Voltage Source-to-Source).
Внутреннее сопротивление МК обозначается переменным резистором Rx. Почему переменным? Потому, что ток потребления МК варьируется по мере исполнения программы. Зависит он также от режима работы, напряжения питания, температуры, тактовой частоты, нагрузки на выходные линии. В «спящем» режиме ток составляет единицы микроампер, в рабочем — десятки миллиампер, в максимально нагруженном — 0.1 . 0.3 А. Конкретные значения приводятся в даташите.
Таблица 2.4. Варианты обозначения выводов питания МК
Пары условных обозначений в даташитах
Несколько замечаний о принятых в международной инженерной практике условностях [2-3]. Напряжение на выводе биполярного транзистора по отношению к общему проводу GND обозначается буквой «V» (англ. «Voltage») и одним из подстрочных индексов: «В» (англ. «Base», база), «С» (англ. «Collector», коллектор), «Е» (англ. «Emitter», эмиттер). К примеру, Vc — это напряжение на коллекторе относительно GND. Напряжение между двумя выводами транзистора обозначается двойным индексом: VCE — это напряжение между коллектором и эмиттером.
Индекс, образованный двумя одинаковыми буквами указывает на источник питания: Vcc — положительный, VEE — отрицательный контакт. Образно можно представить себе транзистор проводимости п—р—п, у которого коллектор соединяется с питанием (С-С), а эмиттер с «массой» (Е-Е). Транзисторы проводимости р—п—р в эту стройную теорию не помещаются, сказывается тот факт, что они изначально по технологическим причинам были меньше распространены.
Для полевых ^-канальных транзисторов существуют аналогичные названия, соответственно, VDD (плюс питания, напряжение «сток — сток», «Drain-to-Drain») и Vss (минус питания, напряжение «исток — исток», «Source-to-Source»).
Поскольку современные МК состоят из полевых транзисторов, то логично было бы их выводы питания обозначить парой «^dd’^ss^» а не «^cc’GND», как у микросхем ТТЛ-логики. Однако, здесь начинается самое интересное (Табл. 2.4). Единообразие отсутствует даже в М К одной фирмы и одного семейства.
Пример 1. Микросхема Z86L33 фирмы Zilog, выполненная в корпусе с 28 выводами, имеет название цепей питания «^dq-^ss»’ а та же микросхема в корпусе с 40 выводами — «KCC-GND».
Пример 2. В семействе ATmega фирмы Atmel принято обозначение «KCC-GND» (далее в книге как основное), а в семействе ARM той же фирмы «Kdd-GND».
Пример 3. МК К1816ВЕ49 имеет два вывода питания, один из них Vcc является основным, а другой VDD служит для подключения резервной батареи.
Наверное, дальше всех в казуистике названий продвинулась микросхема TMS320F фирмы Texas Instruments, имеющая вывод общего провода с «двойной фамилией» KSS1AGND.
Тем, кто часто работаете разными семействами МК, пригодится простое мнемоническое правило — поскольку за буквой «С» латинского алфавита сразу следует буква «D», значит Vcc и VDD относятся к одной и той же цепи, т.е. к питанию. Вывод GND ни с чем не спутаешь, это «земля», «общий провод». Остаётся обозначение Vss, которое методом исключения приравнивается к GND.
Кстати, слово «вывод» (англ. «pin» — булавка) употребляется в электронике для микросхем, транзисторов, конденсаторов, диодов, резисторов, оптопар, катушек индуктивности. Слово «контакт» — для разъёмов, переключателей, джамперов, реле, перемычек, а вот сленговые названия «ноги, ножки» более характерны человеку, нежели электронному изделию.
Организация питания в МК
Двухпроводное питание современным МК досталось по наследству от «прадедушек» i8048/i8051. Сейчас оно в основном применяется в малогабаритных МК с числом выводов 6. 18, например, в Atmel ATtiny, Microchip PIC10/12. Мера вынужденная, т.к. свободных выводов катастрофически не хватает.
С развитием технологии в состав М К стали вводить аналоговые узлы АЦП/ЦАП, которые весьма чувствительны к помехам. Произошёл естественный переход на трёх- (Рис. 2.9), четырёх- (Рис. 2.10, а. в) и многопроводные (Рис. 2.11, а, б) схемы питания.
Добавление цепей AVCC (Analog УСС) и AGND (Analog GND) позволяет развязать между собой аналоговые и цифровые части микросхемы, уменьшить импульсные помехи, повысить инструментальную точность каналов АЦП и ЦАП.
Переменные резисторы ЯА и RD отличаются между собой по сопротивлениям. Во времени они тоже изменяются по разным законам. Например, в рабочем режиме «цифровой» ток значительно больше «аналогового». Следовательно, RA больше, чем Rd. В ждущем режиме ситуация может измениться с точностью до наоборот.
Резисторы Rg, Ry — это омические сопротивления, непосредственно измеренные тестером между выводами микросхем. Их наличие или отсутствие не поддаётся логическому предсказанию и обычно не указывается в даташитах. Например, в одном и том же семействе Atmel ATmega у микросхем ATmega8 и ATmega 16 питание выполняется, соответственно, по схемам, изображённым на Рис. 2.10, в и Рис. 2.10, б.
В каждом конкретном случае разобщённость внутренних цепей надо проверять экспериментально, не надеясь на знаменитый славянский «авось». Абсолютные значения сопротивлений резисторов RG, Rw у разных фирм отличаются, что связано с особенностями технологии изготовления.
Многопроводные схемы особенно характерны для 16- и 32-битных МК, у которых питание разделяется на несколько потоков. А именно: ядро процессора, периферийные буферы, аналоговая часть, система фазовой автоподстройки частоты (ФАПЧ), генераторный блок и т.д. Названия цепей встречаются самые экзотические: VDDA2, KDD18, KDDC0RE, К33, DVCC, VDDAKSS4, DVSS, KSSA. Рекордсменом в этой области можно считать М К семейства Atmel АТ91 САР, где в одном корпусе насчитывается 12 неповторяющихся названий выводов питания и 8 вариаций названий общего провода. Каждая из силовых цепей в свою очередь продублирована несколькими одноимёнными выводами с разных сторон четырёхгранного корпуса, что позволяет равномернее распределить токовую нагрузку.
Фильтрация помех
Если посмотреть на осциллограмму тока потребления МК, то в ней можно заметить низкочастотную (НЧ) и высокочастотную (ВЧ) составляющие. Как следствие, колебания тока приводят к появлению НЧ- и ВЧ-помех на зажимах питания. Для их ослабления используют стандартные решения в виде связки конденсаторов (Рис. 2.12, Рис. 2.13), 1С- и ДС-фильтров (Рис. 2.14, Рис. 2.15).
Неполярные конденсаторы С1, C3 ослабляют ВЧ-помехи. Их наличие обязательно возле любого МК, причём максимально близко от выводов питания (не более 50 мм). Конденсаторы должны быть керамические, например, К10-17 или поверхностно монтируемые чип-коденсаторы ходовых размеров 0603. 1206.
Базовый номинал ёмкости 0.1 мкФ выбран условно, как легко запоминающийся. Устройство будет нормально функционировать и при 0.068 мкФ, и при 0.15. 0.22 мкФ. Иногда параллельно конденсатору С1 ставят ещё одну неполярную ёмкость 1000 пФ, которая снижает уровень радиоизлучений. Обычно такой способ применяют в профессиональной аппаратуре, чтобы войти в допуск при проверках изделия на электромагнитную совместимость и радиопомехи.
Полярный конденсатор С2 желательно использовать танталовый (а не алюминиевый), поскольку он лучше подавляет импульсные помехи. При выборе ёмкости можно руководствоваться эмпирическим правилом, которое заимствовано из многолетней практики применения сетевых источников питания — 1000 мкФ на каждый ампер тока нагрузки. К примеру, если цифровая часть МК потребляет ток 10. 30 мА, то достаточно поставить конденсатор С2 ёмкостью 10. 30 мкФ с рабочим напряжением не менее 6.3 В. Знатоки рекомендуют выбирать более высоковольтные конденсаторы с напряжением 10. 16 В, поскольку повышается надёжность в эксплуатации и, главное, снижается внутренний импеданс, что позволяет лучше фильтровать помехи.
Конденсатор С2 обязателен при батарейном питании в качестве накопителя энергии, а также при значительных колебаниях и скачках напряжения. В некоторых случаях его функцию выполняет конденсатор фильтра сетевого выпрямителя или стабилизатора напряжения. Как вариант, конденсатор С2 может физически размещаться вблизи других цифровых микросхем и косвенно воздействовать на цепь питания МК.
Катушка индуктивности L1 развязывает цифровую и аналоговую части по высокой частоте. Если её не ставить, то может ухудшиться точность измерения АЦП и стабильность порога срабатывания аналогового компаратора. Как ни парадоксально, но значительную часть помех по питанию создают внутренние цифровые узлы МК, поэтому 1С- и /?С-фильтры защищают контроллер от . самого себя. Номинал индуктивности L1 не особо критичен и может варьироваться в широких пределах.
Ферритовая «бусинка» FBI (Ferrite Bead) представляет собой проводник, пропущенный через ферритовое кольцо или цилиндр. Этот элемент способствует снижению высокочастотных излучений, которые можно зафиксировать лишь специальными измерительными радиоприёмниками в экранированной «безэхо-вой» камере. Такие испытания обязательны при сертификации продукции.
В любительской практике фильтр FBI ставится редко, разве что в связной спортивной аппаратуре, где помехи от МК могут существенно повлиять на качество принимаемого радиосигнала и значительно ухудшить чувствительность.
Объяснение схемы VBAT
Как вы можете видеть, линия VBAT имеет много конденсаторов 100 нФ. Это сделано для имитации батареи? Если да, то не лучше ли поставить между ними диод для защиты от обратного тока утечки?
100 нФ конденсаторов в сумме дают 0,8 мкФ, что почти равно 1 мкФ. Почему бы не использовать конденсаторы 1 мкФ по обе стороны от R26? Эта большая сеть используется для лучшей фильтрации шумов?
Для чего нужен R26? Он имеет значение 0 Ом.
Этот вопрос имеет 1 ответ на английском, чтобы прочитать их войдите в свой аккаунт.
Это стандартные развязывающие колпачки для каждого VDD, и еще пара для надежности. По какой-то причине дизайнер решил собрать их все в одном месте схемы рядом с VBAT, вместо того чтобы распределить их по контактам питания, которые они развязывают.
R26 находится там предположительно для того, чтобы его можно было убрать (или оставить без места), если предпочтительна работа MCU от батарей.
Это для имитации батареи?
Нет, это развязывающие конденсаторы. Это хорошая практика иметь развязывающий конденсатор возле каждого вывода VDD / VBAT микросхемы.
Развязывающие конденсаторы необходимы для большинства ИС, особенно цифровых, поскольку почти все они используют КМОП-логику, а эта логика имеет привычку получать импульс тока от питания при переключении. Когда ИС работает на частоте 8 МГц, это происходит 8 миллионов раз в секунду (8 МГц). Развязывающие конденсаторы обеспечивают путь для этих импульсов и стабилизируют напряжение питания. Без них работа микросхемы была бы ненадежной.
*Почему не один большой конденсатор?
Потому что тогда соединения с некоторыми выводами будут длиннее, и развязка будет менее эффективной.
R26 может быть там просто для отладочных целей или для дополнительной развязки питания (если необходимо) для вывода Vbat. Тогда R26 может быть, например, 100 Ом, и это обеспечит повышенную фильтрацию питания для Vbat.
Элементная база блоков питания
В блоках питания помимо использования обыкновенных резисторов используются два типа специализированных резисторов — Варистор и Термистор.
Также, кроме обыкновенных конденсаторов используются специализированные помехоподавляющие конденсаторы: конденсаторы типа Y и конденсаторы типа X (их еще называют конденсаторы класса защиты X/Y)
В качестве примера приведем кусок реальной схемы до выпрямительного мостика, хочется повторится – схема реальная, хотя впечатление такое, что этот шедевр — сборище пассивных элементов защиты от ВЧ помех со страниц какого то учебника по борьбе с помехами.
Рис. Пример реального участка схемы блока питания — фильтра от ВЧ помех.
Варистор
Варистор – полупроводниковый резистор, сопротивление которого изменяется при изменении приложенного напряжения. Основная задача варистора в блоках питания – защита цепей от перенапряжения.
Рис. Принцип работы варистора в блоках питания, увеличение скорости срабатывания предохранителя или защита от импульсных бросков напряжения.
Варистор включается параллельно входному напряжению 220В, и фактически постоянно находится под этим напряжением, однако ток в этом состоянии через варистор очень мал. В случае возникновения выброса по напряжению, сопротивление варистора резко падает и шунтирует защищаемые цепи, ток в этом состоянии может достигать нескольких тысяч ампер. Несмотря на свою эффективность варистор в блоках питания АТХ довольно редкий гость, чаще его можно увидеть в сетевых фильтрах или в некомпьютерных блоках питания.
Рис. Для увеличения скорости срабатывания защиты, предохранитель и варистор объеденяют вместе.
Обозначение варистора на плате.
VZ (Принтер) | MV (Источник бесперебойного питания) | ZNR (Блок питания АТХ) |
MOV (Источник бесперебойного питания) | Z (Блок питания светодиодного прожектора) | DNR |
фото отсутствует | фото отсутствует | фото отсутствует |
RU | RV | VAR |
фото отсутствует | ||
VDR |
Обозначение варистора на схеме.
Рис. Условное обозначение варистора на схеме
Особенности применения варисторов.
- Варисторы являются безинерционным элементом. Полностью восстанавливает свои свойства мгновенно, в результате чего чрезвычайно эффективен при борьбе с импульсными выбросами напряжения.
- Количество импульсов прикладываемых к варистору ограничено, фактически это значит, что со временем варистор теряет свои свойства.
Терморезистор
Терморезистор – полупроводниковый резистор, сопротивление которого изменяется при изменении температуры.
Различают два вида терморезисторов
Термистор (NTC-термистор) — сопротивление терморезистора с повышением температуры уменьшается.
Позистор (PTC-позистор) — сопротивление терморезистора с повышением температуры увеличивается
Применение терморезисторов в блоках питания
Рис. Принцип работы NTC-термистора в блоках питания, мягкий пуск.
Основная задача термистора в блоках питания — ограничение пускового тока. При включении блока питания термистор имеет температуру окружающей среды и сопротивление в несколько Ом. Конденсатор выпрямителя в момент включения представляет из себя короткозамкнутую нагрузку, в цепи происходит скачок тока, но термистор не даёт ему подняться выше предела, зависящего от сопротивления термистора. При прохождении тока через термистор, последний разогревается и его сопротивление падает почти до десятых долей Ома, и далее он не влияет на работу устройства. Происходит так называемый мягкий пуск.
Обозначение термистора на плате.
TH | THR | TR |
RTH | RT | PTC |
Обозначение термистора на схеме.
Рис. Условное обозначение терморезистора на схеме
На практике может встречаться комбинация состоящая, из двух или более приведенных обозначений.
Рис. Пример комбинации при обозначении терморезистора
Особенности применения термисторов.
- Термисторы являются инерционным элементом. Полностью восстанавливает свои свойства только через 5-10 мин. Фактически при кратковременном отключении питания, при повторном пуске термистор не работает как элемент защиты.
- Выводы термистора являются радиаторами, необходимо оставлять выводы как можно длиннее.
- Температура термистора в состоянии сопротивления близкого к нулю может доходить до 250 градусов, нежелательно устанавливать корпус термистора в непосредственной близости от других элементов.
Помехоподавляющие конденсаторы
Помехоподавляющие конденсаторы делятся на два типа X и Y, для подавления синфазной и противофазной составляющей помехи. Каждый тип для своего типа помехи.
Как практик, могу сказать, название помехи не играет большой роли на принцип борьбы с помехой. Как теоретик, лично я, всегда путаю термины синфазной и противофазной помехи между собой, поэтому дальше обе помехи мы будем разделять по принципу возникновения. |
Конденсатор X типа
Конденсатор X типа – конденсатор для подавления помехи возникающей между фазой и нулем (не путать с заземлением). Задача Х конденсатора не пропускать помеху из внешней сети в блок питания, а так же не выпускать помеху созданную блоком питания во внешнюю сеть.
Рис. Принцип работы Х конденсатора.
Обозначение X конденсатора на плате.
Cx | С |
Обозначение X конденсатора на схеме.
Обосначается как обычный конденсатор, с суффиксом x, например Cx
Рис. Обозначение Х конденсатора на схеме .
Особенности применения Х конденсаторов.
- Конденсатор невозгораемый при любых условиях
- Неисправность конденсатора не приведет к поражению электрическим током.
- Емкость Х конденсатора, чем больше — тем лучше.
- X2 конденсатор с рабочим напряжением 250В, выдерживают импульс до 2.5кВ.
- Какая бы не была емкость Х конденсатора, полностью помеху убрать невозможно, можно только ее уменьшить.
Конденсатор Y типа
Конденсатор Y типа – конденсатор для подавления помехи возникающей между
- фазой и землей (не путать с нулем)
- нулем и землей.
Рис. Принцип работы Y конденсатора.
Обозначение Y конденсатора на плате.
Нет изображения | Нет изображения |
CY | С |
Обозначение Y конденсатора на схеме.
Обозначается как обычный конденсатор, с суффиксом Y, например Cy рядом с номиналом может стоять напряжение.
Рис. Обозначение Y конденсатора на схеме .
Особенности применения Y конденсаторов.
- Конденсатор в случае пробоя уходит в обрыв
- Неисправность конденсатора может привести к поражению электрическим током.
- Емкость Y конденсатора, чем меньше — тем лучше.
- Y2 конденсатор с рабочим напряжением 250В, выдерживают импульс до 5кВ.
- Y конденсатор можно применять вместо X конденсатора, наоборот нет.
- Какая бы не была емкость Y конденсатора, полностью помеху убрать невозможно, можно только ее уменьшить.
Быстродействующие диоды.
В блоках питания используются два типа выпрямительных диодов – общего назначения и импульсные. Импульсные диоды можно отнести к быстродействующим.
ARM. STM32 быстрый старт
Данная статья, которая является еще одним «быстрым стартом» в освоении ARM-контроллеров, возможно поможет сделать первые шаги в освоении 32-битных контроллеров ARM на базе ядра Cortex-M3 — STM32F1xxx серии. Возможно данная статья (которых на эту тему появляется как грибов после дождя) станет для кого-то полезной.
Введение
Почему ARM?
1. Есть из чего выбрать (разными производителями сегодня выпускается более 240 ARM-контроллеров)
2. Низкая цена (например за 1$ можно получить 37хI / O, 16K Flash, 4K RAM, 2xUART, 10x12bitADC, 6x16bitPWM).
А начнем нашу работу с контроллеров фирмы ST Microelectronics. Контроллеры на основе ядра ARM Cortex-M3 характеризуются широким набором периферии, высоким уровнем рабочих характеристик, низкой цене
P.S. В самом начале создается впечатление, что ARM’ы это какие-то страшные (в пайке, разводке, программировании) существа. Но это только на первый взгляд 🙂 и вы в этом сами убедитесь.
Итак, изучать ARMы будем на примере контроллеров STM32F1. Одновременно эта серия имеет несколько линеек:
- Value line STM32F100 — 24 МГц CPU, motor control, CEC.
- Access line STM32F101 — 36 МГц CPU, до 1 Mб Flash
- USB access line STM32F102 — 48 МГц CPU with USB FS
- Performance line STM32F103 — 72 МГц, до 1 Mб Flash, motor control, USB, CAN
- Connectivity line STM32F105/107 — 72 МГц CPU, Ethernet MAC, CAN, USB 2.0 OTG
Также существует следующая классификация:
STM32F101xx, STM32F102xx, STM32F103xx
STM32F101xx, STM32F102xx, STM32F103xx
Connectivity line devices
Придется часто лазить здесь
Еще скажу несколько слов об этом ресурсе. Ясное дело, выбираем нужный контроллер и попадаем на страницу с кучей файлов в формате. рdf. (вкладка Design support). Можно читать все, но достаточно ознакомиться с такими файлами:
1. REFERENCE MANUAL (содержит полную спецификацию на контроллер).
2. ERRATA SHEET (содержит описание ошибок, которые могут возникать при работе с периферией).
3. Остальные документы содержат примеры работы с периферией, вопросы, связанные с программированием, описание некоторых библиотек, а с самого низа страницы можно найти EVARM-проекты демоплат и подобное ПО.
Архитектура
Итак, наш контроллер STM32 содержит в себе Cortex-M3 процессор (M означает серию для бюджетных устройств). Для того, чтобы начать программировать ARMы и не пользоваться только default’ными примерам и настройками нужно иметь представление об их архитектуре. Для начала:
1) 32-битный МК, выполненный по Гарвардской архитектуре (память программ и данных разделены),
2) имеет несколько отдельных шин и 3-ступенчатый конвейер и более 10 регистров общего назначения, что позволяет выполнять операции параллельно и (большинство) — за один такт.
3) набор инструкций — Thumb-2 (смесь 16 — и 32-битных команд, ориентированный на компиляторы C / C + +).
Рассмотрим упрощенную блок-схему шинной архитектуры STM32:
Архитектура на примере линейки Connectivity devices
Итак, давайте коротко пройдемся по основам основ:
Матрица шин (bus matrix) — контроллер высокоскоростных шин, обеспечивающий независимую связь и арбитраж (в случае одновременного доступа к одному ресурсу) между системной шиной и шиной данных ядра, DMA, Ethernet (masters) и периферией — SRAM, FLASH, AHB (slaves) .
Шины ядра:
ICode bus — 32-битная шина инструкций — обеспечивает связь ядра с интерфейсом инструкций Flash.
DCode bus — шина данных — обеспечивает связь ядра с интерфейсом данных во Flash.
System bus — системная шина ядра — обеспечивает связь ядра и периферии
Flash interface (FLITF) интерфейс Flash-памяти — обеспечивает чтение, запись, стирание, чтение с буфером предварительной выборки, защиту памяти (от записи или чтения).
AHB system bus (Advanced High-performance Bus) — шина, которая связывает матрицу шин и периферийные шины APB (Advanced Peripheral Bus (Bridge)). Шина AHB, предназначена для управления, например, регистрами системной периферии (GPIO ЦАП и т.п.). Надо сказать, что шины APB1,2 работают на разных частотах: так APB2 может работать на частоте ядра, а быстродействие APB1 ограничено 36 МГц. Поэтому, на APB2 и висит скоростная периферия (АЦП, некоторые таймеры порты ввода / вывода и т.д.)
DMA (Direct Memory Access) — обеспечивает прямой доступ к памяти в обход ядра (нужно лишь задать что, откуда и куда передать, а DMA сам все возьмет и передаст кому надо через матрицу шин)
Reset & Clock Control (RCC) — обеспечивает тактирование ядра и периферии (которая по дефолту отключена от тактового сигнала) и сброс контроллера.
Стандартная схема подключения
И здесь для начинающих возникает вопрос в чем и как рисовать и разводить печатные платы для, например, 144-ногого микроконтроллера (48-ноги еще куда не шло). Однако ничего страшного в рисовании схемы, разводке и пайке данных контроллеров нет. Для этого можно пользоваться программой Eagle (она содержит библиотеку компонентов ST или в крайнем случае можно поискать в Интернете или скачать внизу статьи), можно попробовать рисовать платы в старом добром Sprint-е (хотя, первый вариант мне кажется более надежным). Ниже приведены стандартные схемы включения контроллеров семейства Value line STM32F100С4 и Connectivity line STM32F105
Привожу базовую схему подключения контроллеров STM32F1 и некоторые их нюансы:
- Корпус: контроллеры STM32 помещены в корпусах LQFP с числом лапок от 48 до 144, при этом распиновка ножек контроллеров в одинаковых корпусах — совпадает, что не может не радовать.
- Питание:
- Контроллер питается от источника в 3.3 В (хотя можно подключать 2-3.6 В).
- Хотя напряжение питания равно 3.3В, много ножек контроллера толерантны к 5В сигналов (см. в спецификации лапки с пометкой FT).
- Vbat — используется для подключения резервного источника питания. Если в схеме резервный источник не используется, то Vbat надо посадить на общий источник питания.
- Vdd_1 . 4 подтягиваем к «+», Vss_1 . 4 сажаем на «-» источника питания.
- Спецификация на контроллер советует поставить параллельно источнику питания 5 конденсаторов в 100нФ (поближе к контроллеру) и один на 4.7мкФ (ближе к Vdd_3). Во многих схемах авторы часто не ставят их, думаю, если контроллер питается от чистого стабилизированного источника их можно не ставить.
- Питание АЦП (он питается напряжением 2,4-3,6 В) и цифровой части схемы в STM32 разделены (для большей надежности, очевидно) и если мы не используем отдельный источник для АЦП, Vdda / Vssa сажаем на соответствующие выводы общего источника, иначе схема может работать некорректно и непредсказуемо. В 100-пиновых корпусах есть еще дополнительные лапки опорного источника АЦП Vref + / Vref-. Vref- нужно повесить на Vdda, а на Vref + можно бросить от 2,4 В до Vdda.
- Внутреннего высокочастотного генератора на 8 МГц (HSI).
- Внутреннего низкочастотного источника тактовых импульсов 40 кГц (LSI).
- Внешнего высокочастотного осциллятора (HSE).
- Внешнего низкочастотного осциллятора на 32,768 кГц (LSE-генератор может работать вместе с HSE или синхросигналом и обеспечивает синхронизацию часов реального времени и работу оконного сторожевого таймера).
- Внешнего сигнала синхронизации (его частота должна быть целым делителем максимальной рабочей частоты контроллера).
- «заземлив» лапку NRST. Стоит сказать, что разработчик постарался и уже включил подтягивающий резистор этой лапки. (external reset)
- С помощью одного из сторожевых таймеров независимого или оконного (IWDG или WWDG reset).
- С помощью схемы слежения за низким напряжением (low-power management reset)
- при входе в режим Standby
- при входе в режим Stop
- Программно — установкой определенного бита
Для удобства пайки LQFP корпусов, существуют переходники. Продаются на eBay, бывают универсальные и под фиксированное количество ножек. Средняя цена: 1$ за штуку, посмотреть можно здесь.