Современная электроника №2/2022
ИНЖЕНЕРНЫЕ РЕШЕНИЯ 31 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2022 у МК EFM8LB12). А увеличение площа- ди платы на порядок приводит к тако- му же повышению её стоимости; кро- ме того, больший размер платы требует соответствующего увеличения разме- ра корпуса под неё, что также увеличи- вает стоимость устройства. Избежать подобных аппаратных и вышеупомянутых программных средств позволяет одно интересное новшество, которое в последнее время стали вводить в состав МК. Речь идёт о встроенных в МК конфигурируемых логических элементах – Configurable Logic Unit, сокращённо CLU. Такие CLU работают абсолютно автономно, совер- шенно не требуют участия процессора МК и, кроме того, могут даже обходить- ся вообще без тактирования, т.е. рабо- тать в асинхронном режиме. Помимо CLU, в состав МК включают таймеры, обладающие новыми свой- ствами. Например, в МК EFM8LB12 имеются два таймера (Т3 и Т4), кото- рые можно включить один за другим и получить из двух 16-разрядных тай- меров один 32-разрядный; его с успе- хом можно применить для измерения временны ′ х интервалов (см. выше). Информация об особенностях CLU крайне скудна. Что в руководстве поль- зователя МК EFM8LB12 [1], что в при- мере применения CLU [2] не описаны даже все функции CLU, не говоря уже способах их применения и особенно- стях. Кроме того, путём экспериментов автором обнаружено несколько багов при совместной работе CLU и таймеров. Поэтому для того, чтобы было понят- но дальнейшее изложение, ниже в крат- ком виде приводятся все функции CLU и особенности их применения при совместной работе с таймерами. Итак, в МК EFM8LB12 имеются четы- ре CLU: CLU0, CLU1, CLU2 и CLU3. Каж- дый CLU имеет 3 входа: A, B и C – и один выход. Входы A и B – стандарт- ные логические входы (как, напри- мер, два стандартных входа у 561ЛА7 – рис. 1), а вход C – дополнительный вход переноса (carry) с выхода предыдуще- го CLU. Например, вход C CLU1 – это выход CLU0, вход C CLU0 – выход CLU3 и т.п., т.е. они как бы расположены по кругу. Функции каждого CLU – основ- ные функции логических элементов: И (AND), ИЛИ (OR), исключающее ИЛИ (XOR) и НЕ (NOT). Записываются функ- ции следующими значками: «&» – И, «|» – ИЛИ, «^» – исключающее ИЛИ, « ~ » – НЕ. Кроме того, используются знач- ки скобок «(», «)» и символы «A», «B» и «C». Например, чтобы получить один логи- ческий элемент 2И-НЕ, как, например, в 561ЛА7 (рис. 1), необходимо запи- сать: « ~ (A & B)». При этом соответству- ющий CLU будет выполнять эту функ- цию, а перенос C учитываться не будет (поскольку C в выражение не входит). Входы каждого CLUможно подключить: к внешним выводам (портам) МК (их, правда, ограниченное количество), к выходу этого же либо другого CLU, к выходам таймеров (например, Т3, Т4). Выходы каждого CLU можно вывести на внешние выводыМК (порты) напрямую (автономный или асинхронный режим работы), причём для каждого выхо- да CLU существует один-единствен- ный порт, изменить который нельзя. Например, для выхода CLU2 предус- мотрен порт P2.2, а для выхода CLU3 – порт P2.5 (для EFM8LB12-QFN32). Кроме того, выходы каждого CLU можно под- ключить ко входу данных (D) встроен- ного D-триггера, который может такти- роваться по входу C либо системной тактовой частотой (SYSCLK), либо тай- мером (ALTCLK), а выход Q этого триг- гера уже подключить к внешнему пор- ту. Этот режим называется (в описании МК) синхронным. По поводу таймеров. Входы (тактиро- вание) таймеров (Т2…Т5) можно под- ключить (в том числе) либо к систем- ной тактовой частоте, делённой на 12 (SYSCLK/12), либо к выходу внешне- го генератора и тактировать с часто- той этого генератора, делённой на 8 (EXTCLK/8). Таймер Т4 можно такти- ровать (в том числе) таймером Т3. Теперь о нескольких багах, обнару- женных автором: ● если таймер Т3 тактируется от внешнего тактового генератора (EXTCLK/8), а Т4 – от Т3, то Т4 не запу- скается и не работает. Работа Т4 при тактировании от Т3 возможна толь- ко при тактировании Т3 системной тактовой частотой, делённой на 12 (SYSCLK/12); ● если ко входу CLU подключён выход таймера Т3 или Т4, а выход CLU – к внешнему порту, то при переполне- нии этих таймеров на выходе CLU (и соответственно на выходе пор- та) появляется очень короткий им- пульс, который непригоден, напри- мер, для тактирования PCA таймера по его входу ECI; ● как следует из описания МК EFM8LB12 [1], он может тактиро- ваться (в том числе) от внутреннего генератора № 1 с системной такто- вой частотой SYSCLK = 72 МГц либо от внешнего генератора (EXTCLK) с максимальной частотой до 50 МГц. Однако, как показала практика, МК прекрасно работает от внешнего ге- нератора с частотой EXTCLK = 72 МГц. Теперь, после вышеупомянутых пояс- нений и багов, обнаруженных автором, несложно уже будет понять функцио- нальные схемы тестируемого устрой- ства, предназначенного для точного измерения временны ′ х интервалов. Эти функциональные схемы приведе- ны далее. Дальнейшее изложение будет постро- ено следующим образом. Вначале будут приведены функцио- нальные схемы устройства, затем – его принципиальные схемы. Далее будет приведена разводка платы внешне- го генератора и внешний вид платы устройства. После этого будут описа- ны программные средства (настройка всех устройств МК, описание основной программы и программы для калибров- ки частоты внешнего тактового генера- тора). В конце статьи будут приведены результаты работы устройства. Функциональные схемы Основная идея измерения временно ′ го интервала с помощью 3 таймеров – Т3, Т4 и PCA-таймера, включённых один за другим, – меж- ду нажатием кнопки с фиксацией и её отжатием заключается в следующем (рис. 2). После первого нажатия кноп- ки по срезу сигнала, поданного с выхо- да антидребезговой схемы на вход Б частотомера, измеряющего длитель- ность (время), запускаются таймеры, которые считывают входные импульсы, поступающие с внешнего генератора фиксированной и известной частоты (72 МГц). После того как кнопка отжа- та, на частотомере отражается время (длительность нажатого состояния кнопки), а таймеры останавливаются. Далее программа на МК снимает содер- жимое всех трёх таймеров и через опре- делённый порт (P1.6) выводит коли- чество импульсов, равное количеству импульсов, поступивших в таймеры, на второй вход частотомера (А), пред- назначенный для счёта импульсов. По второму нажатию кнопки выводится количество импульсов, подсчитанное Т3. Далее, когда закончен вывод импуль- сов с Т3, кнопка отжимается, а показа- ния частотомера записываются. По тре- тьему нажатию кнопки на частотомер выводится количество импульсов, рав-
RkJQdWJsaXNoZXIy MTQ4NjUy