Jump to content

Владислав Скайуокер

Members
  • Content Count

    2
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Владислав Скайуокер

  • Rank
    Новенький

Электроника

  • Стаж в электронике
    Менее года
  • Сфера радиоэлектроники
    микроконтроллеры
  1. Не удается запустить АЦП на контроллере STM32L486. Ожидалось, что АЦП, настроенное в режиме Scan Continuous Conversion Mode будет передавать оцифрованные значения с каждого внутреннего канала (Vref, TempSens, Vbat) в массив с помощью ДМА, настроенного в Circular Mode. Прерывания включены для ДМА. (Скриншоты настройки АЦП и ДМА приложены). После инициализации и перед началом работы АЦП необходимо откалибровать само АЦП (строка 94), а затем, после задержки в 1мс осуществляется старт с помощью ДМА(строка 99): Программа постоянно вызывает функцию возврата: Все происходит так, как и задумывалось, кроме нескольких вещей. 1. После калибровки в регистрe CALFACT_S нулевое значение, хотя этого быть не должно. После калибровки АЦП в этом регистре должен находится рассчитанный коэффициент. 2. Даже с учетом того, что калибровочный коэффициент равен нулю, АЦП на выходе должен выдать что-то отличное от нуля, но как оказалось DR регистр постоянно нулевой И массив adcBuff[] с помощью ДМА заполняется нулями. Даже если вручную записываю значение калибровочного коэффициента с помощью функции HAL_ADCEx_Calibration_SetValue(), значение внутри регистра CALFACT_S не меняется. Тоже самое (только без самокалибровки АЦП) проделал на STM32F407, с точно такой же настройкой АЦП и ДМА. С первой попытки не нулевые значения с опрашиваемых каналов АЦП с помощью ДМА постоянно гонялись в массив. Так же на контроллере STM32l052 после инициализации в кубе проводилась самокалибровка, после которой на следующем шаге менялось значение CALFACT_S на значение коэффициента. И при запуске АЦП не нулевые значения с помощью ДМА записывались в массив. Подскажите в чем дело.
×
×
  • Create New...