STM32 / ACD |
![]() |
![]() |
| Векторизован | Си | |
в палитре | на схеме |
Блок "Чтение из АЦП" производит последовательный опрос всех заданных каналов АЦП или получает коды АЦП из буфера приема контроллера DMA и преобразует их в значения измеряемых величин.
Блок позволяет получить заданное количество АЦП преобразований. Блок может непосредственно обращаться к регистрам контролера АЦП или получать значения кодов АЦП от контроллера ДМА, существует возможность использовать сигнал переполнения от таймера для запуска АЦП преобразований. На выходе блока массив значений измеряемых величин, размерность массива соответствует количеству выбранных каналов. Настройка контроллера АЦП реализуется с помощью ПО STM32CubeMX.
В режиме моделирования по значению входного напряжения U получаемого от модели датчика формирует массив измеряемых величин в соответствии с соотношением:
Mean_adc[i] = (maxADC / UmaxADC) * U[i],
где maxADC - максимальное значение преобразуемой величины; UmaxADC - максимальное значение напряжения.
В режиме работы кода библиотеки с контроллером АЦП на микропроцессоре:
Mean_adc[i] = (maxADC / maxCode_ADC) * Code_ADC[i] - Null_ADC[i],
где MaxADC - максимальное значение преобразуемой величины; maxCode_ADC_ADC - максимальное значение кода АЦП; Null_ADC - начальное значение кода АЦП; i - номер канала.
Инжектированные каналы meanInj_adc в режиме моделирования не используются.
Название | Имя | Описание | По умолчанию |
---|---|---|---|
Разрядность АЦП | nADC | Для задач моделирования, задаем разрядность АЦП, для оценки влияния дискретизации АЦП на измеряемую величину | 12 |
Max значение Uвх [В] | UmaxADC | Используется в режиме моделирования | 3.3 |
Максимальное значение кода АЦП | maxCode_ADC | см. спецификацию на МК STM32 | 4095 |
Максимальное значение преобр. величины | maxADC | Необходимо для вычисления значения измеряемой величины | 3.3 |
Контроллер АЦП | ADC | Выбор контроллера | ADC1 | ADC2 | ADC3 |
ADC_Regular_ConversionMode | Группа свойств регулярных каналов | ||
Количество преобразований | Number_Of_Conversion | Количество АЦП преобразований, настройка в ПО STM32CubeMX | 1 |
Таймер | Timer | Таймер по сигналу, которого происходит запуск преобразований | 4 |
Канал Таймера | CHANNEL | Канал таймера | CHANNEL1 | CHANNEL2 | CHANNEL3 | CHANNEL4 |
Событие Таймера | External_Trigger_Conversion_Source | Тип события Таймера после возникновения которого происходит запуск АЦП преобразований | Out_Event | CaptureCompareEvent |
Значение кода АЦП при нулевом токе [цифр. ед. АЦП] | Null_ADC | Начальное значение кода | [0] |
Непрерывные преобразования | ADC_ConversionMode | Опрос канала/каналов производится циклически (нет необходимости перезапуска). | (Да | Нет) |
Используется DMA | Dma_use | Используется контроллер DMA | (Да | Нет) |
Запуск АЦП от Таймера | Start_Timer | Запускать преобразование по событиям от Таймера | (Да | Нет) |
ADC_Injected_ConversionMode | Группа свойств инжектированных каналов | ||
Количество преобразований | Number_Of_InjectConversion | Количество АЦП преобразований, настройка в ПО STM32CubeMX. Инжекторных каналов не может быть больше 4х. | 1 |
Тип преобразования | Injected_ConversionMode | Предоставляет возможность опрашивать наряду с инжектированными каналами регулярные каналы в случае если установлено значение Auto_Injected_Mode, при выборе этого значения сначала происходит опрос регулярных потом инжектированных | None | Auto_Injected_Mode |
Значение кода АЦП при нулевом токе [цифр. ед. АЦП] | Null_InjectADC | Начальное значение кода | [0] |
Транслировать скрипт в код автоматически | autotranslate | В случае активизации опции autotranslate, будет сгенерован Си-код секции моделирования блока (эта опция используется при удаленной отладке проекта на целевой системе) | (Да | Нет) |
Блок не имеет параметров.
Примеры работы с контроллером АЦП приведены в примерах: