Перейти к содержанию

Работа ADC на два канала STM32F411 через DMA


MechanicV

Рекомендуемые сообщения

Вроде сконфил DMA под АЦП но при попытки запуска потока DMA устанавливает флаг ошибки передачи потока

Прерывание тоже от DMA не проходит.

sbit LCD_RS at GPIOB_ODR.B4;
sbit LCD_EN at GPIOB_ODR.B5;
sbit LCD_D4 at GPIOB_ODR.B6;
sbit LCD_D5 at GPIOB_ODR.B7;
sbit LCD_D6 at GPIOB_ODR.B8;
sbit LCD_D7 at GPIOB_ODR.B9;

int adc_res_0[11], adc_res_1[11];
char txt[11];
short i=0, t=0, k=0;
void main()
{
RCC_APB2ENR.B8=1;              // ADC1EN: синхронизация АЦП1 включена
RCC_AHB1ENR.B0=1;              // GPIOAEN: часы порта IO включаются
RCC_AHB1ENR.B22=1;            // DMA2EN: часы DMA2 включены
GPIOA_MODER.B4=1;             // : Режим вывода общего назначения порт PA2
GPIOA_MODER.B5=0;  
GPIOA_OTYPER.B2=0;  //
GPIOA_OSPEEDR.B4=1;   
GPIOA_OSPEEDR.B5=1;

GPIOA_MODER.B0=1;           // Аналоговый режим порт PA0
GPIOA_MODER.B1=1;
GPIOA_OSPEEDR.B0=1;
GPIOA_OSPEEDR.B1=1;

GPIOA_MODER.B2=1;          // Аналоговый режим порт PA1
GPIOA_MODER.B3=1;
GPIOA_OSPEEDR.B2=1;
GPIOA_OSPEEDR.B3=1;

EN_bit =0;                            // Если поток включен, отключите его, сбросив бит EN в регистр DMA_SxCR

DMA2_LIFCR=1;                  // Все потоковые выделенные биты, очищены
DMA2_HIFCR=1;

DMA2_S0PAR=(int)&ADC1_DR;               // адрес регистра периферийного порта в регистре DMA_SxPAR
DMA2_S0M0AR=(int)&adc_res_0;           // адрес памяти в регистре DMA_SxMA0R
DMA2_S0NDTR =10;

CHSEL0_bit =0;                                          // канал DMA2 канал0 (запрос) с помощью CHSEL [2: 0] в регистре DMA_SxCR
CHSEL1_bit =0;
CHSEL2_bit =0;

PL0_bit =1;                         // приоритет потока наивысший
PL1_bit =1;

MSIZE0_bit =1;                   // Размер данных памяти 16 бита
MSIZE1_bit =0;

PSIZE0_DMA2_S0CR_bit =1;         // Размер периферийных данных 16 бит
PSIZE1_DMA2_S0CR_bit =0;

MINC_bit =1;                                  // Указатель адреса памяти увеличивается после каждой передачи данных 
                                                                //(приращение выполняется в соответствии с MSIZE)

DIR0_bit =0;                                    //Направление передачи данных Эти биты устанавливаются и сбрасываются программно.
DIR1_bit =0;                                        // : Периферийное в память

//PFCTRL_bit =1;                              //



EnableInterrupts();
NVIC_IntEnable(IVT_INT_DMA2_Stream0);  // разрешение прерывания при завершении передачи
TCIE_DMA2_S0CR_bit =1;                                // разрешение прерывания при завершении передачи


DMA_bit =1;                              // режим прямого доступа к памяти АЦП

SMPx_x0_ADC1_SMPR2_bit  =1;         
SMPx_x1_ADC1_SMPR2_bit  =0;
SMPx_x2_ADC1_SMPR2_bit  =0;

ADCPRE0_bit =1;    //
ADCPRE1_bit =0;

ADON_bit =1;             //вкл модуля АЦП
SWSTART_bit =1;      //старт преобразования АЦП

EN_bit =1;                   //запуск потока DMA

Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Cmd(_LCD_CLEAR);
while(1)
{
if(TCIF0_bit )      // Флаг прерывания завершения передачи потока
{
t=11;
}
else if(HTIF0_bit )    // Флаг прерывания половинной передачи потока
{
t=22;
}
else if(TEIF0_bit )      // Флаг прерывания ошибки передачи потока
{
t=33;
}
else if(DMEIF0_bit )   // Флаг прерывания из-за ошибки прямого режима потока
{
t=44;
}
WordToStr(t, txt);
Lcd_Out(1, 1, txt);
}
}


void DMA_INT_2() iv IVT_INT_DMA2_Stream0 ics ICS_AUTO     // прерывания при завершении передачи
{
CTEIF0_bit =1;
ADC1_SQR3.B0=i;
EN_bit =1;
SWSTART_bit =1;
i++;
}

 

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Проверил на своём stm32f407vgt, заработало. Нашёл 3 ошибки в предыдущем файле ADC_DMA.txt. Так что вот с исправленными ошибками:
 

ADC_DMA.txt

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

А вот код на 407vgt в вашем стиле, который запускает 20 2-х канальных преобразований ADC с использованием DMA и разрешает прерывание по завершении процесса преобразования. Обработчик прерывания и настройка вектора прерывания отсутствует. По документации на 407 и 411 даже адреса регистров по-моему одинаковые.
Надеюсь чем-то помог.

ADC_DMA.c

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...