Большинство микроконтроллеров STM32 (MCU) снабжено внутренним 12-разрядным ЦАП (Digital-to-Analog Converter, DAC), который может работать на скорости до 1 Msps (мегасемплов в секунду). В некоторых приложениях было бы полезно получить от DAC возможность работы на более высоких скоростях. В этой статье (перевод апноута AN4566 [1]) рассматриваются вопросы повышения производительности с помощью применения внешнего операционного усилителя (ОУ). Пример реализации рассматривает генерацию синусоидального сигнала с частотой выборок 5 Msps. Описание применимо к микроконтроллерам серий STM32F0, STM32F1, STM32F2, STM32F3, STM32F4, STM32F7, STM32G0, STM32G4, STM32H7, STM32L0, STM32L1, STM32L4, STM32L4+, STM32L5.
DAC STM32 может быть смоделирован как управляемый цифровыми данными источник напряжения с определенным выходным сопротивлением, как показано на рис. 1. Выходное сопротивление DAC постоянное, оно не зависит от входного цифрового сигнала.
Рис. 1. Эквивалентная схема DAC.
Примечание: обычно VREF+ равно напряжению питания +3.3V, а VREF- соединяется в землей GND (равно 0V).
Когда выходной буфер DAC отключен, DACINT и DACOUT соединены через резистор Rb, поэтому выходное сопротивление DAC равно Ra + Rb (Rb = Ra), и RDAC = 2 * Ra (при отключенном буфере ключи S1 и S2 разомкнуты).
Когда буфер разрешен, ОУ конфигурируется как инвертирующий усилитель с коэффициентом усиления Av = -1, и выходное сопротивление почти равно нулю благодаря петле обратной связи.
Примечание: по умолчанию выходной буфер разрешен. Он отключается, если установить в лог. 1 бит BOFF1 (для канала 1) и BOFF2 (для канала 1). Оба этих бита находятся в регистре управления DAC_CR (подробнее см. [2]).
Скоростные параметры DAC
. Когда на выходе DAC разрешен буфер, быстродействие преобразования определяется производительностью этого буфера. Время установки выходного напряжения DAC можно узнать через параметр Tsettling или Update rate даташита на используемый STM32.Когда выходной буфер запрещен, скорость нарастания выходного сигнала зависит просто от постоянной времени RC, определяемой выходным сопротивлением DAC RDAC (которое равно 2*Ra) и емкостью, которой нагружена ножка выхода DACOUT.
Например, STM32F407 определяет выходное сопротивление при выключенном буфере максимальным значением 15 кОм. Если принять за паразитную емкость типовое значение 10 пФ (это включает паразитную емкость копуса и кристалла STM32F407 на ножке DACOUT), то для получения ±1 LSB конечного значения (переход от самого малого кода к самому большому коду) мы получим:
Вычислим T:
T = CR · N · ln 2 = 0.693 CR · N = 1.8 мкс
Следовательно, в этой конфигурации время преобразования не может быть меньше 1.8 мкс (что эквивалентно частоте 555 кГц).
Этот анализ не включает какой-либо эффект скорости переключения самого DAC и влияение его переходного процесса. При высокоскоростном преобразовании эти факторы игнорировать нельзя, они снижают производительность ЦАП.
[Реализация на внешнем ОУ]
Как упоминалось выше, время преобразования на выходе DAC определяется встроенным выходным буфером, когда он разрешен. Когда буфер запрещен, выходное сопротивление и емкость DACOUT (Cp) будут определять время преобразования.
Существует конфигурация, в которой можно игнорировать емкость DACOUT. При использовании внешнего ОУ в режиме инверсии в цепи DACOUT будет фиксированным, и равным постоянному напряжению на выходе делителя R2R3, как показано на рис. 2.
Рис. 2. DAC с внешним операционным усилителем (ОУ).
Примечание *: такое поведение схемы обеспечивается операционным усилителем в присутствии обратной связи (R1).
В конфигурации по схеме рис. 2 влияние константы RC незначительное, основное ограничение по производительности определяется только скоростью внешнего ОУ (усилением в полосе пропускания и скоростью нарастания напряжения на выходе) и скоростью обновления цифровых данных DAC. Однако эта схема имеет некоторые недостатки. Резистор обратной связи R1 должен быть равен RDAC кристалла STM32 (должен быть точно подобран), иначе получится ошибка усиления DAC.
Внутренние встроенные резисторы кристалла обычно имеют широкий разброс по своему абсолютному значению, и значительные изменения в зависимости от температуры, поэтому необходимо откалибровать ошибку усиления (это обсуждается далее в секции «Калибровка усиления по выходу»).
Также можно использовать внешний ОУ в режиме повторитель напряжения (включение в виде не инвертирующего буфера). Это незначительно повысит выходную полосу частот и скорость изменения напряжения на выходе, однако выходное сопротивление RDAC и паразитная емкость DACOUT будут формировать RC-фильтр, ограничивающий скорость преобразования. Но для режима повторителя напряжения ОУ не требуется калибровка усиления.
Скорость обновления цифровых данных. Данные STM32 DAC должны записываться в регистр хранения DHR (существует несколько разных регистров DHR: DHR12Rx, DHR12Lx, DHR8Rx, предназначенные для разных выравниваний и разрядности. Подробнее см. [2]), которые затем переносятся в выходной регистр DAC (DOR1 или DOR2, в зависимости от канала DAC, см. [2]) для осуществления преобразования.
Обычно данные для преобразования сохраняются в RAM, и программа CPU с нужной частотой перемещает эти данные из RAM в DAC.
При использовании DMA [3,4] общая производительность всей системы повышается, потому что ядро CPU освобождается от действий по копированию данных из памяти в DAC (этим занимается аппаратура DMA). В результате процессорное время CPU высвобождается для выполнения других операций.
Запуск преобразования может происходить программно, внешними триггерами или по сигналу (триггеру) таймера (событие обновления TIM6 или TIM7). Для высоких скоростей преобразования рекомендуется использовать триггер таймера в комбинации с DMA.
Скорость передачи из памяти в DAC ограничивается несколькими факторами, среди которых:
• Тактовая частота APB или AHB (т. е. тактовая частота DAC).
Для примера, когда DAC микроконтроллера STM32F407x работает на шине APB1:
• 3 такта после триггера, в течение которых данные DHR перемещаются в регистр DOR.
• В то же самое время генерируется запрос DMA от DAC.
• Передача DMA занимает как минимум 1 такт шины APB.
Таким образом, требуется 4 такта шины APB для обновления данных DOR. На максимальной частоте APB1 42 МГц (для ST32F407x) получается максимальная скорость обновления 10.5 Msps для выходного регистра DAC, когда для обновления используется триггер таймера и DMA. Минимальный цикл передачи данных DMA для DAC не одинаковый для всех моделей микроконтроллеров STM32, потому что у них могут отличаться как тактовые частоты, так и конфигурации шины.
Режим двойной скорости DMA. Некоторые преобразователи DAC микроконтроллеров STM32 поддерживают режим двойной скорости DMA (DMA double data mode). Когда контроллер DMA используется в нормальном режиме (Normal mode), запрос DMA передает данные только порциями по 8 или 12 бит (байт или полуслово). Благодаря тому, что микроконтроллеры STM32 внутри имеют 32-битную шину данных, режим DMA double data передает два полуслова на одну операцию (две 12-битные порции данных, что дает снижение загрузки шины по сравнению с нормальным режимом.
В таблице 2 показаны максимальные частоты выборок для разных моделей MCU STM32.
Таблица 2. Максимальные частоты преобразования для разных STM32(1).
MCU | Max скорость шины, МГц |
Max частота дискр. DAC, Msps |
STM32F0 серия | 48 | 4.8 |
STM32F100xx | 24 | 2.4 |
STM32F101xx STM32F103xx STM32F105xx STM32F107xx |
36 | 4.5 |
STM32F2 серия | 30 | 7.5 |
STM32F3 серия | 36 | 4.5 |
STM32F40x STM32F41x |
42 | 10.5 |
STM32F42x | 45 | 11.25 |
STM32F7 серия | 54 | 13.5 |
STM32G0 серия | 64 | 8.0 |
STM32G4 серия | 150 | 16.67 30(2) |
STM32H7 серия | 100 | 18.18 |
STM32L0 серия | 32 | 4.0 |
STM32L1 серия | 32 | 3. 2 |
STM32L4 серия | 80 | 10 |
STM32L4+ серия | 120 | 12 |
STM32L5 | 110 | 11 |
Примечания:
(1) Значения, показанные в таблице 2, были получены в лабораторных условиях на стенде, когда шина STM32 не была нагружена другими операциями. Поэтому в реальных приложениям может понадобиться ввести некоторое ограничение по скорости, чтобы оставить запас полосы пропускания шины для других нужд.
(2) Режим DMA double data.
Как можно увидеть, при использовании внешнего ОУ можно значительно повысить скорость преобразования, и получить скорость намного большую, чем заявленные 1 Msps (см. описание примера далее).
[Пример использования ОУ для повышения быстродействия DAC]
При выборе операционного усилителя следует учитывать следующие параметры.
• Скорость нарастания уровня на выходе (Slew Rate).
• Полоса пропускания по усилению (gain bandwidth, GBW).
• Усиление при отсутствии обратной связи.
• Диапазон напряжения питания.
• Параметры изменения выходного напряжения.
• Диапазон синфазного напряжения на входе.
• Минимальное стабильное усиление.
В случае перехода от самого малого до самого большого кода на частоте выборок 5 Msps и опорном напряжении VREF 3.3V, у операционного усилителя должна быть slew rate больше чем 3.3 · 5 · 106 = 16.5 V/мкс.
Если STM32 DAC работает на 3.3V, можно использовать напряжение питания 3.3V для ОУ (также можно использовать и другие напряжения питания, 3.3V здесь выбрано только в качестве примера).
Рекомендуется иметь по крайней мере двукратный запас по усилению в полосе пропускания по сравнению с частотой выборок DAC. Например, если частота выборок 5 Msps, то GBW должна быть шире 10 МГц.
Чтобы обеспечить хорошую линейность DAC, усиление ОУ при разомкнутой петле обратной связи должно быть больше 60 dB.
Если нужно получить выходное напряжение близким к напряжению питания, то диапазон изменения выходного напряжения ОУ желательно выбрать rail to rail. Иначе, если напряжение преобразования приблизится к напряжению питания или к уровню земли, произойдет насыщение усилителя, и в результате выходной сигнал будет искажен.
Даже когда инверсный вход ОУ зафиксирован на уровне опорного напряжения, необходимо проверить диапазон допустимого синфазного напряжения, чтобы он перекрывал с запасом уровень опорного напряжения.
Используемое усиление ОУ порядка -1, поэтому он при таком усилении должен быть стабилен.
С учетом всех перечисленных выше критериев подойдут операционные усилители LMH6645/LMH6646/LMH6647 компании Texas Instruments:
• slew rate: 22 V/мкс;
• gain band width: 55 МГц;
• усиление при отсутствии обратной связи: 87 dB;
• диапазон напряжения питания: 2.5V .. 12 V;
• диапазон синфазного напряжения по входу на 0. 3V превышает уровни шин питания;
• диапазон изменения выходного напряжения 20 mV ниже уровней питания;
• стабильность усиления, начиная с +1.
Для этого примера используется STM32F407, запитанный от напряжения 3.3V.
Подготовка шаблона синусоиды. Как было описано в апноуте AN3126 [3], данные для шаблона синусоиды должны быть подготовлены по формуле:
2Pi 0xFFF + 1
ySineDigital(x) = (sin(x · ——) + 1) · (————)
ns 2
Цифровые входные данные преобразуются в выходные напряжения линейно в диапазоне от 0 до VREF+. Аналоговое напряжение на выходе каждого канала DAC определяется следующим образом:
DOR
DACOutput = VREF · ————————-
DAC_MaxDigitalValue + 1
Вычислить форму синусоидального аналогового сигнала можно по формуле:
ySineDigital(x)
ySineAnalog(x) = 3. 3V · —————
0xFFF + 1
Таблица заранее подготовленной формы сигнала может быть сохранена в память и передана в DAC через DMA [3,4]. Передача каждой выборки в DAC запускается тем же самым таймером, который запускает DAC.
Установка частоты синусоидального сигнала. Чтобы установить частоту синусообразного сигнала на выходе, необходимо соответствующим образом установить частоту таймера, генерирующего сигнал триггера. Частота генерируемого синусообразного сигнала определяется по формуле:
fSinewave = fTimerTRGO / nS
Если частота триггера TIMx_TRGO равна 5 МГц (nS = 25), то частота синусоидального сигнала на выходе DAC получится 200 кГц.
Чтобы получить точную частоту на выходе, необходимо подстроить тактовую частоту системы вместе с частотой обновления таймера, чтобы таймер генерировал сигнал триггера точно на частоте 5 МГц.
В системе STM32F407 некоторые таймеры могут работать на удвоенной тактовой частоте шины APB1 [5], в этом случае разрешающая способность получается в 2 раза выше, чем при работе на частоте APB1. Однако DAC получает сигнал триггера на частоте APB1, так что разрешающая способность DAC не может быть лучше, чем тактовая частота APB1.
Например, если таймер запрограммирован на обновление через каждые 25 периодов тактов, работая на удвоенной частоте APB1 (что соответствует 12.5 периодам тактов APB1), то DAC будет срабатывать от триггера то после 12 тактов, то после 13 тактов, по очереди. Это приведет к дрожанию периода частоты выборки.
В нашем примере используются следующие настройки тактов:
• Источник тактов системы = PLL (частота HSE, вырабатываемая от внешнего кварца)
• SYSCLK (Гц) = 160000000
• HCLK (Гц) = 160000000
• AHB прескалер = 1
• APB1 прескалер = 4
• APB2 прескалер = 2
• Частота HSE (Гц) = 8000000
• PLL_M = 8
• PLL_N = 320
• PLL_P = 2
• PLL_Q = 7
Для генерации сигнала триггера используется таймер TIM6.
С этой конфигурацией 80 МГц будет частота таймера, получается 5 МГц частота триггера. Прескалер должен быть установлен на 1 (PSC = 0) и счетчик должен считать до 16 (CNT = 15).
Калибровка смещения. Использование внешнего ОУ введет дополнительные смещения, сред них смещение как самого ОУ, так и смещение, которое поступает от цепочки внешнего резистора VREF.
Для выполнения калибровки необходимо соединить выход ОУ с одним из доступных каналов АЦП (ADC) микроконтроллера STM32. Процедура калибровки следующая (см. таблицу 3):
1. Установите в регистре DOR блока DAC значение 2047.
2. Измерьте уровень на выходе ОУ с помощью ADC.
3. Установите DAC DOR по результату последнего измерения ADC (в этом случае 2065).
4. Сравните результат с ADC (в этом случае 2048, что составит для смещение 1 младший разряд).
Таблица 3. Пример измерения и компенсации смещения DAC.
DAC DOR | Результат преобразования ADC |
2047 | 2065 |
2065 | 2048 |
Калибровка усиления по выходу. Как уже упоминалось, усиление по выходу зависит от выходного сопротивления DAC и резистора обратной связи на внешнем ОУ.
Калибровка усиления должна быть выполнена во время инициализации чипа, и каждый раз при значительном изменении температуры (например, при изменении больше чем на 10 °C). Изменение температуры можно определять по встроенному в чип STM32 датчику температуры.
Для выполнения калибровки соедините выход ОУ с одним из доступных каналов ADC микроконтроллера STM32. Для калибровки усиления используйте следующий метод (см. таблицу 4):
1. Установите в регистре DOR DAC значение 1023.
2. Измерьте уровень на выходе ОУ с помощью ADC.
3. Установите в регистре DOR DAC значение 3071.
4. Измерьте уровень на выходе ОУ с помощью ADC.
Таблица 4. Пример измерения и компенсации усиления по выходу DAC.
DAC DOR | Результат преобразования ADC |
1023 | 3135 |
3071 | 983 |
По этим измерениям можно вычислить усиление, для нашего примера оно равно 1. 0508, согласно формуле (3135 — 983) / 2048.
Этот результат можно использовать для формулы YSineDigital(x), показанной выше в секции «Подготовка шаблона синусоиды». Рекомендуется иметь некоторый запас (например 100 mV) для каждого из уровней — для напряжения питания и для земли GND. Цифровой код должен меняться меньше чем на 200 mV от напряжения питания, и использовать для этого соответствующий коэффициент калибровки.
3.1 2Pi 0xFFF + 1
ySineDigital(x) = ————— · (sin(x · ——) + 1) · (————) + 18
3.3 · 1.0508 ns 2
По этой формуле может быть сгенерирована таблица 5.
Таблица 5. Пример цифровых значений выборок (шаблон синусоиды).
Выборка | Цифровое значение выборки YSineDigital(x) |
0 | 2066 |
1 | 2521 |
2 | 2948 |
3 | 3319 |
4 | 3612 |
5 | 3807 |
6 | 3893 |
7 | 3864 |
8 | 3723 |
9 | 3477 |
10 | 3142 |
11 | 2740 |
12 | 2295 |
13 | 1837 |
14 | 1392 |
15 | 990 |
16 | 655 |
17 | 409 |
18 | 268 |
19 | 239 |
20 | 325 |
21 | 520 |
22 | 813 |
23 | 1184 |
24 | 1611 |
Примечание: выходной сигнал инвертирован по отношению к цифровому коду, потому что используется ОУ в режиме инвертирующего усилителя.
[Пример аппаратной реализации]
Реальная схема доработки показана на рис. 3, значения её компонентов перечислены в таблице 6. R1 выбран по типовому значению выходного сопротивления DAC, равному 12.5 кОм (для других типов MCU STM32 см. их параметры в даташите). C1 добавлен во избежание перегрузки выходного сигнала.
Рис. 3. Принципиальная схема доработки DAC.
Таблица 6. Значения компонентов.
R1 | 12 кОм |
R2 | 10 кОм |
R3 | |
C1 | 5 пФ |
C2 | 100 нФ |
C3 |
Показанный пример реализации был выполнен на плате STM32F4Discovery. Выход STM32F407 DAC1 находится на ножке порта PA4, который в свою очередь соединен с аудиокодеком CS43L22 на плате (ножка 40 LRCK микросхемы U7), и через резистор R44 100 кОм соединен с GND. Чтобы устранить это, необходимо выпаять резистор R48 (0 Ом).
На рис. 4. показан сигнал на выходе DAC, а на рис. 5 показан его спектральный анализ FFT.
Рис. 4. Выходной сигнал.
Диапазон изменения выходного сигнала не равен 3.1V от пика до пика, так как моменты выборок дискретизации не совпадают с пиком синусоидального сигнала.
Рис. 5. Результат анализа спектра сигнала на выходе.
Вторая и третья гармоники находятся по уровню приближены к шуму. Дополнительные замечания:
• При использовании высокой частоты дискретизации можно уменьшить порядок антиалиасингового фильтра.
• С использованием встроенного ADC можно калибровать усиление и ошибку смещения по выходу.
[Ссылки]
1. AN4566 Extending the DAC performance of STM32 microcontrollers site:st.com.
2. STM32F4xx: цифро-аналоговый преобразователь (ЦАП).
3. AN3126: формирование аудиосигнала с помощью DAC STM32.
4. STM32: использование контроллера DMA.
5. STM32: тактирование таймеров от APB1 и APB2.
Ключевое отличие цифровой электроники от аналоговой заключается в том, что цифровая электроника оперирует лишь двумя уровнями сигнала логическим нулем и единицей. Это не значит, что если мы подключим к ножке микроконтроллера мультиметр, он покажет 0 или 1V. Нуль, образно говоря, можно представить как отсутствие сигнала, а единица как присутствие сигнала, величина же самого сигнала зависит от питающего напряжения микросхемы. Если Ваш МК питается от 3V, то логический нуль будет соответствовать 0V, а логическая единица 3V. Для получения промежуточных значений напряжения на выводе микроконтроллера используют DAC или по-русски ЦАП.
DAC у STM32 обладает следующими особенностями:
Сразу хотелось бы отметить, что данные сначала загружаются в регистр предварительного хранения (data holding register, DHRx), и лишь потом по событию (если включено) переносятся в выходной регистр (DORx).
Регистр управления DAC_CR:
DMAEN2 (DAC channel2 DMA enable) — единица в этом бите разрешает использовать DMA.
MAMP2[3:0](DAC channel2 mask/amplitude selector) — битовое поле позволяет задавать амплитуду генерируемого.
WAVE2[1:0](DAC channel2 noise/triangle wave generation enable) — битовое поле позволяет включать аппаратный генератор и выбирать форму генерируемого сигнала. 0 — аппаратный генератор отключен, 1 — генерация шума, 2 — генерация пилы.
TSEL2[2:0](DAC channel2 trigger selection) — битовое поле позволяет выбрать источник события по которому данные будут переносится из регистра предварительно хранения (data holding register, DHRx), в выходной регистр (DORx).
TEN2(DAC channel2 trigger enable) — единица в этом бите включает перенос данных из регистра предварительно хранения (data holding register, DHRx), в выходной регистр (DORx) по триггеру. Если событие аппаратное это занимает 3 такта, если программное то 1.
BOFF2(DAC channel2 output buffer disable) — единица в этом бите, отключает буфер на выходе ЦАП, по умолчанию он включен.
EN2(DAC channel2 enable) — единица в этом бите запускает ЦАП.
Образно, регистр можно разделить на две части, они полностью идентичны, но настраивают разные каналы.
DMAEN1(DAC channel1 DMA enable) —
MAMP1[3:0](DAC channel1 mask/amplitude selector) —
WAVE1[1:0](DAC channel1 noise/triangle wave generation enable) —
TSEL1[2:0](DAC channel1 trigger selection) —
TEN1(DAC channel1 trigger enable) —
BOFF1(DAC channel1 output buffer disable) —
EN1(DAC channel1 enable) —
Регистр управления программным триггером DAC_SWTRIGR:
SWTRIG2(DAC channel2 software trigger) — при записи единицы в этот бит генерируется программное событие для второго канала.
SWTRIG1(DAC channel1 software trigger) — при записи единицы в этот бит генерируется программное событие для первого канала.
Данные в регистр предварительного хранения могут загружаться в нескольких форматах: 12 бит выравнивание по правому краю, 12 бит выравнивание по левому краю , 8 бит. Для каждого способа существует свой регистр, что значительно упрощает настройку.
DAC_DHR12Rx — предназначен для загрузки 12 бит выровненных по правому краю.
DAC_DHR12Lx — предназначен для загрузки 12 бит выровненных по левому краю.
DAC_DHR8Rx — предназначен для загрузки 8 бит выровненных по правому краю.
Если данные обоих ЦАП необходимо обновить одновременно, это можно сделать используя следующие регистры.
DAC_DHR12RD — предназначен для одновременного обновления обоих каналов, 12 бит выровненных по правому краю.
DAC_DHR12LD — предназначен для одновременного обновления обоих каналов, 12 бит выровненных по левому краю.
DAC_DHR8RD — предназначен для одновременного обновления обоих каналов, 8 бит выровненных по правому краю.
Регистр данных DAC_DOR1 — позволяет считывать текущее состояние выхода первого ЦАП.
Регистр данных DAC_DOR2 — позволяет считывать текущее состояние выхода второго ЦАП.
Мне ЦАП понадобился для получения напряжения величиной 1V на ножке МК. Код ниже позволяет это сделать.
#include "stm32f4xx.h" void DAC_Init(void) { //разрешаем тактирование порта RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; //PA5 push-pull GPIOA->MODER |= GPIO_MODER_MODER5_1; GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR5; GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR5; //разрешаем тактироваине DAC RCC->APB1ENR |= RCC_APB1ENR_DACEN; //включаем DAC2 DAC->CR |= DAC_CR_EN2; //загружаем 12 битные данные в регистр с правым выравниванием DAC->DHR12R2 = 1000; }
Каталог данных | MFG и тип | ПДФ | Теги документов |
---|---|---|---|
2010 — СТМ32Ф100 Реферат: stm32f102 stm32f105 stm32 pwm STM32F100C4 stm32f100c8 STM32L151 stm32f103 spi dma STM32F100 семейство STM32 библиотека прошивок | Оригинал | СТМ32 32-битный СТМ32 16-битный СТМ32Ф100 стм32ф102 стм32ф105 стм32 ШИМ СТМ32Ф100К4 стм32ф100с8 СТМ32Л151 stm32f103 спи дма Семейство STM32F100 Библиотека прошивки STM32 | |
СОЛИТРОНОВЫЕ УСТРОЙСТВА Реферат: Солитронные транзисторы 2N3469 SOLITRON 2N2657 rfft 2N265 | OCR-сканирование | 2N3469 500 мА, 200 мА, 10 МГц) 100 мА, 2Н2657, 2Н265И 330/тс; СОЛИТРОНОВЫЕ УСТРОЙСТВА 2N3469 солитронные транзисторы СОЛИТРОН 2N2657 rfft 2Н265 | |
2011 — СТМ32Ф2 Аннотация: STLink nRST_STDBY stm32 stm32 10 UM0892 STM32F2xx 0x08003000 Руководство по программированию процессора STM8 0x08002000 | Оригинал | UM0892 СТМ32 СТМ32 СТМ32Ф2 СТЛинк nRST_STDBY стм32 10 UM0892 STM32F2xx 0x08003000 Руководство по программированию процессора STM8 0x08002000 | |
2008 — СТМ32Ф103Е Резюме: STM32F103B STM32-PRIMER stm32 spi STM32-PRIMER2 stm32 usb смарт-карта 128×160 цветной ЖК-дисплей 128×160 stm32 stm32 графический дисплей приложение | Оригинал | STM32-ПРАЙМЕР STM3210B-ПРАЙМЕР СТМ32 СТМ32 СТМ32Ф103Э СТМ32Ф103Б 128×160 СТМ32Ф103Э СТМ32Ф103Б стм32 спи СТМ32-ПРАЙМЕР2 смарт-карта usb stm32 цветной ЖК 128×160 приложение для графического дисплея stm32 | |
2010 — Руководство по программированию флэш-памяти STM32L15xxx Реферат: STM32L STM32L15xxx STM32L1 код stm32 STM32 stm32 10 на чипе программирования STM32 STM32L15x UM0892 | Оригинал | UM0892 СТМ32 СТМ32 Руководство по программированию флэш-памяти STM32L15xxx СТМ32Л STM32L15xxx СТМ32Л1 код stm32 стм32 10 программирование на микросхеме STM32 STM32L15x UM0892 | |
2008 — Комплект разработчика USB STM32f102 Реферат: ПЛК stm32f102 STM32F103vC STM32F103RD с использованием ПРОЕКТОВ на базе ARM STM32F103VD STM32F102CB STM32F102C8 STM32F10x sdio программирование stm32f103 spi dma | Оригинал | СТМ32 32-битный СТМ32 STM3210B-EVAL STM3210E-EVAL СТМ32Ф103, com/stm32 Комплект USB-разработчика STM32f102 стм32ф102 СТМ32Ф103вК СТМ32Ф103РД ПЛК с использованием ПРОЕКТОВ на базе ARM СТМ32Ф103ВД СТМ32Ф102КБ СТМ32Ф102К8 Программирование STM32F10x SDIO stm32f103 спи дма | |
2009 — c исходным кодом скорости двигателя STM32 Резюме: STM32 USB комплект разработчика встраиваемая система проектирует бесплатную реализацию FIR FILTER на языке c для keil stm32 keil управление двигателем PMSM stm32 кодировщик stm32 stm32f107rct6 stm32f105 графический ЖК-дисплей stm32 | Оригинал | СТМ32 СТМ32 STM3210B-ПРАЙМЕР STM3210E-ПРАЙМЕР СТМ32, БРСТМТУЛС0909 c исходный код скорости двигателя STM32 Комплект разработчика STM32 USB встроенные системные проекты бесплатно Реализация FIR FILTER на языке c для keil управление мотором stm32 кейл ПМСМ стм32 энкодер stm32 stm32f107rct6 стм32ф105 графический ЖК-дисплей stm32 | |
2014 — СТМ32Ф030 Резюме: нет абстрактного текста | Оригинал | СТМ32 LQFP64 DocID025838 СТМ32Ф030 | |
2009 — STM32F107VCT6 Аннотация: stm32f105 stm32f107 STM32F105RCT6 STM32F107VCT STM32F105RBT6 STM32F105VCT6 stm32f107 usb I2S usb bridge usb клавиатура stm32 | Оригинал | СТМ32 32-битный STM3210C-EVAL STM32-КОМСТИК STM3210C-СК/ИАР STM3210C-SK/КЕЙЛ STM3210C-СК/РАИС STM32107C-D/РАИС СТМ32Ф107ВКТ6 стм32ф105 стм32ф107 СТМ32Ф105РКТ6 СТМ32Ф107ВКТ СТМ32Ф105РБТ6 СТМ32Ф105ВКТ6 stm32f107 usb USB-мост I2S usb-клавиатура stm32 | |
2009 — приложение графического дисплея stm32 Резюме: STM32 USB комплект разработчика графический ЖК-дисплей stm32 stm3210e-eval кодек speex stm32 spi графический ЖК-дисплей stm32 кодировщик emwin speex ARM trace32 авионика STM32f10xxe | Оригинал | СТМ32 STM32F103ZE СТМ32Ф103РБ БРСТМТУЛС0209 приложение для графического дисплея stm32 Комплект разработчика STM32 USB графический ЖК-дисплей stm32 stm3210e-eval кодек речи стм32 спи графический ЖК-дисплей stm32 emwin кодировщик речи ARM авионика trace32 STM32f10xxe | |
2008 — Формат кода даты STMicroelectronics stm32 Реферат: stm32 10 stm32 pwm MCBSTM32 Форматы кода даты St Microelectronics STM32 код stm32 stm32 таймер STM32DBG программирование на микросхеме STM32 | Оригинал | TN0072 СТМ32 Формат кода даты STMicroelectronics stm32 стм32 10 стм32 ШИМ MCBSTM32 Форматы кода даты St Microelectronics код stm32 stm32 таймер СТМ32ДБГ программирование на микросхеме STM32 | |
rs485 стм32 Резюме: stm32 spi STOD03 CLASS D Audio AMPLIFIER 3w стерео светодиодный драйвер lis302dl акселерометр stm32 usb смарт-карта amoled LDLN015 stm32 pwm | Оригинал | СТМ32 СТМ32 150 мА сотый М41Т00С, М41Т81С, М41Т6х, М41Т83/93, М41СТ87, rs485 стм32 стм32 спи STOD03 УСИЛИТЕЛЬ ЗВУКА КЛАССА D, 3 Вт, стерео светодиодный драйвер lis302dl акселерометр смарт-карта usb stm32 амолед LDLN015 стм32 ШИМ | |
2010 — PM0042 STM32F10xxx Программирование флэш-памяти Аннотация: stm32 10 программирование на чипе STM32 PM0042 Руководство по программированию STLink ST-LINK pm0042 UM0892 STM32 STM32F10xxx jtag | Оригинал | UM0892 СТМ32 СТМ32 Программирование флэш-памяти PM0042 STM32F10xxx стм32 10 программирование на микросхеме STM32 PM0042 Руководство по программированию СТЛинк СТ-ЛИНК pm0042 UM0892 Jtag STM32F10xxx | |
2010 — стм32ф100 Реферат: stm32f105 STM32L151 stm32f107 STM32F103VG ST STM32F102 проекты встраиваемых систем QFN48 stm32 LQFP100 след STM32F100rb | Оригинал | СТМ32 32 бит СТМ32 16 бит com/stm32tools БРСТМ320910 стм32ф100 стм32ф105 СТМ32Л151 стм32ф107 СТМ32Ф103ВГ СТ СТМ32Ф102 встроенные системные проекты QFN48 стм32 Площадь LQFP100 СТМ32Ф100рб | |
2010 — стм32ф105 Аннотация: проекты встраиваемых систем ieee бесплатная клавиатура USB stm32 STM32F107VCT6 проекты встраиваемых систем stm32f107 stm32f105 ссылка на usb STM32F105 LQFP100 USART stm32f107 загрузчик STM32F107 | Оригинал | СТМ32 32-битный СТМ32 256 Кбайт 64 Кбайт STM32CMICOSEVAL STM32CMICOS-EVAL СТМ32Ф107, стм32ф105 проекты встроенных систем ieee бесплатно usb-клавиатура stm32 СТМ32Ф107ВКТ6 встроенные системные проекты стм32ф107 stm32f105 ссылка на usb СТМ32Ф105 ЛКФП100 USART stm32f107 загрузчик STM32F107 | |
2007 — графический ЖКИ stm32 Реферат: STM3210B-PRIMER LCD 128×128 STM32-PRIMER STM32 STM32F103 STM32F1 LCD 128*128 | Оригинал | STM3210B-ПРАЙМЕР СТМ32 СТМ32 СТМ32Ф103Б 128×128 графический ЖК-дисплей stm32 STM3210B-ПРАЙМЕР LCD 128×128 STM32-ПРАЙМЕР СТМ32Ф103 СТМ32Ф1 ЖК 128*128 | |
2008 — Комплект разработчика выхода ШИМ STM32 Аннотация: Библиотека прошивки STM32 STM32 Комплект разработчика USB JTAG stm32f101 STM32F103 STM32F10x stm32f103 spi dma stm32 pwm STM32F103 ethernet rs232 STM32F103 | Оригинал | СТМ32 32-битный СТМ32 СТМ32Ф103, STM3210B-EVAL STM3210E-EVAL com/stm32 Комплект разработчика выхода ШИМ STM32 Библиотека прошивки STM32 Комплект разработчика STM32 USB JTAG stm32f101 СТМ32Ф103 STM32F10x stm32f103 спи дма стм32 ШИМ Ethernet STM32F103 рс232 стм32ф103 | |
2011 — CN702 Аннотация: ST7590 ST7590 руководство пользователя CN701 EVALST7590-1 UM1038 ST7570 ST758 EVALST7570-1 CN704 | Оригинал | UM1038 СТМ32ТМ, ST75xx 32-битный CN702 ST7590 руководство пользователя ST7590 CN701 EVALST7590-1 ST7570 ST758 EVALST7570-1 CN704 | |
2007 — stm32-performancestick Резюме: комплект разработчика STM32 USB STM32 STM32F10* USB код таймера stm32 stm32 STM3210b STM32-библиотека приборная панель | Оригинал | STM3210B-ПФСТИК STM32-PerformanceStick СТМ32 STM32-PerformanceStick СТМ32Ф103Б СТМ32 Комплект разработчика STM32 USB STM32F10* USB stm32 таймер код stm32 STM3210b STM32-библиотека панель приборов | |
2007 — Двигатель STM32F103 Аннотация: STM32F101 пользователь STM32F10x USB HOST rs232 STM32F103 STM32F10x АЦП STM32F103 ethernet c исходным кодом скорость двигателя STM32 STM32F101 STM32F10x STM32F103 | Оригинал | СТМ32 32-битный СТМ32 STM3210B-EVAL СТМ32Ф103, com/stm32 БРСТМ320807 Двигатель СТМ32Ф103 Пользователь STM32F101 USB-хост STM32F10x рс232 стм32ф103 АЦП STM32F10x Ethernet STM32F103 c исходный код скорости двигателя STM32 СТМ32Ф101 STM32F10x СТМ32Ф103 | |
2008 — 64-точечная система счисления 4 БПФ Резюме: Руководство по библиотеке STM32F10xxx pid stm32 UM0585 Canonical Moving Average IIR 16-by-16 Руководство по библиотеке STM32F10xxx 2. 3 stm32 10 Уравнение ПИД-регулятора radix4 | Оригинал | UM0585 STM32F10xxx STM32F10xxx 64-точечная система счисления 4 БПФ Руководство по библиотеке STM32F10xxx пид stm32 UM0585 Каноническая скользящая средняя IIR 16 на 16 Руководство по библиотеке STM32F10xxx 2.3 стм32 10 Уравнение ПИД-регулятора основание4 | |
2010 — СТМ32Ф100рб Резюме: ESA8.00000F20D25F fcm1608-0603 STM32-DISCOVERY FCM1608 5075BMR-05-SM MB913 STM32F100 MC306-G-06Q-32.768 UM0627 | Оригинал | UM0919 STM32VLDISCOVERY СТМ32 СТМ32Ф100РБ СТМ32Ф100РБТ6Б 64-контактный ЭСА8.00000F20D25F ФКМ1608-0603 STM32-ОБНАРУЖЕНИЕ FCM1608 5075БМР-05-СМ МБ913 СТМ32Ф100 MC306-G-06Q-32.768 UM0627 | |
2010 — АН3165 Реферат: stm32 foc PMSM stm32 STM32 управление асинхронным двигателем CCMR-2 сварочный инвертор MB459 stm32 TD352 pwm INVERTER сварочный аппарат | Оригинал | АН3165 СТМ32. СТМ32 АН3165 stm32 фокус ПМСМ стм32 Управление асинхронным двигателем STM32 CCMR-2 инвертор для дуговой сварки МБ459 ТД352 ШИМ ИНВЕРТОР сварщик | |
2010 — СТМ32Ф100РБТ6Б Аннотация: stm32-discovery UM0919 fcm1608-0603 STM32 Discovery MB913 FCM1608 ESA8.00000F20D25F STM32F10* I2C stm32 значение линии обнаружения конфигурации контактов | Оригинал | UM0919 STM32VLDISCOVERY СТМ32 СТМ32Ф100РБТ6Б СТМ32Ф100РБТ6Б stm32-обнаружение UM0919 ФКМ1608-0603 Открытие STM32 МБ913 FCM1608 ЭСА8.00000F20D25F СТМ32Ф10* И2К Конфигурация вывода обнаружения линии значения stm32 | |
2009 — 2 7-сегментный Резюме: приложение для графического дисплея stm32 stm32-performancestick STM32-PerfStick-2 РАЗЪЕМ JTAG 20 PIN STM32 Комплект разработчика USB STM32-SK STM32 ЖК-дисплей 34-контактный разъем | Оригинал | СТМ32-СК/ХИТ STR91X-СК/ХИТ, СТМ32 2 7-сегментный приложение для графического дисплея stm32 stm32-производительность STM32-PerfStick-2 JTAG-РАЗЪЕМ 20-КОНТАКТНЫЙ Комплект разработчика STM32 USB СТМ32-СК ЖК дисплей 34-контактный разъем |
Предыдущий 1 2 3 . .. 23 24 25 Далее
Для управления преобразователем в токовом режиме без субгамонических колебаний нам необходимо иметь возможность генерировать пилообразный сигнал. С этой целью этот учебник призван научить вас, как использовать ЦАП для генерации пилообразного сигнала с помощью STM32CubeMX и Simulink.
Для управления текущим режимом на V1.1.2 нам нужно сгенерировать 2 пилообразных сигнала (по одному на каждое плечо) и опорное напряжение 1,024 В для центрирования сигнала, представляющего напряжения.
Предупреждение: представленная здесь конфигурация ЦАП не совсем та, которая используется для запуска преобразователя в текущем режиме, а предназначена для просмотра пользователем сигналов ЦАП.
После установки и настройки, как описано в разделе «Приступая к работе», следующего программного обеспечения:
Это руководство было создано для версии V1. 1.2 конвертера Owntech. Следовательно, может потребоваться несколько настроек, если вы хотите использовать другое оборудование.
Следующие шаги необходимы для работы с преобразователем V.1.1.2 Owntech независимо от используемого режима управления.
В Analog>DAC1:
В Аналог>DAC2:
В Analog>DAC4:
Как вы могли заметить, выход DAC4 не подключен ни к какому выходному контакту. Чтобы измерить его в любом случае, нам нужно подключить его к повторителю операционного усилителя.
Аналоговый>OPAMP4:
Поскольку нам нужны два пилообразных сигнала одной частоты со сдвигом фазы на 180°, нам нужны два таймера со сдвигом на 180°.
В Timers>HRTIM1:
Во вкладке Master Timer:
Установите Коэффициент прескалера на 905 46 HRTIM Clock умножается на 16 и Период от до 13600, чтобы результирующая частота ШИМ составляла 200 кГц.
Включите блок сравнения 1 и установите значение сравнения на 6800 (50 % периода таймера).
На вкладке Timer A:
Установите Prescaler ratio на HRTIM Clock умножается на 16 , а Period 90 547 до 13600, чтобы результирующая частота ШИМ составила 200 кГц.
Установите Сброс источников запуска Выбор на 1 и 1-й выбор источника запуска на событие периода главного таймера .
Все еще на вкладке Таймер А, в Выходе 1 Конфигурация:
Установить Установить выбор источника на 1 и 1-й Установить источник на Событие периода таймера .
Установить Выбор источника сброса на 1 и 1-й источник сброса — Таймер Сравнить 1 событие .
В конфигурации с двумя каналами ЦАП установите Триггер двойного канала ЦАП на Компенсация наклона ШИМ с выравниванием по фронту . Этот параметр позволяет таймеру генерировать триггер для ЦАП.
На вкладке Таймер B:
В библиотеке Simulink в Target Support Package — STM32 Adapter>MCU Config Выберите блок STM32 Config и поместите его в свою модель.
В этом блоке выберите конфигурационный файл STM32 и перейдите к файлу .ioc, который вы только что настроили.
В аппаратной реализации
В Генерация кода>Параметры STM32
Откройте STM32CubeIDE и выберите папку, содержащую ваш проект, в качестве рабочего места.
Откройте свой проект с помощью File> Open Projects из файловой системы и щелкните каталог в новом окне, чтобы найти свой проект.
После открытия разверните его и щелкните правой кнопкой мыши папку с именем Tuto_DAC (или любое другое имя, которое вы дали файлу .slx), перейдите к свойствам и в новом окне в C/C++ Debug снимите флажок поле с надписью Исключить ресурс из сборки .