Не работает АЦП STM32F103RCT6

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Death1308
Родился
Сообщения: 4
Зарегистрирован: Пт июн 05, 2020 20:54:19
Откуда: СПб

Не работает АЦП STM32F103RCT6

Сообщение Death1308 »

Суть проста, на PA6 висит датчик температуры, нужно снять напряжение.
При запуске выдает результат 1.63...--1.73...В

Листинг
PWM_Temp.h
(4.27 КБ) 238 скачиваний


Кто поможет, могу выдать функцию обмена и обработки результатов (с учетом перегрузов каналов) STM32 с АЦП AD7738ARZ
Вложения
1.PNG
(86.71 КБ) 256 скачиваний
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Не работает АЦП STM32F103RCT6

Сообщение VladislavS »

Настройте инжектированный канал. В любой момент когда в программе нужно будете без всяких прерываний и глобальных переменных прямо из регистра АЦП читать измеренное значение. Вот, например, для 4-х каналов сразу.

Код: Выделить всё

//Настройка АЦП2 на 4 инжектированых канала  0,3,5,15
ADC2->CR1 = 0;
ADC2->CR2 = ADC_CR2_ADON | ADC_CR2_CAL;
while(ADC2->CR2 & ADC_CR2_CAL);
ADC2->CR2 = ADC_CR2_ADON | ADC_CR2_JEXTSEL | ADC_CR2_JEXTTRIG | ADC_CR2_CONT;
ADC2->CR1 = ADC_CR1_SCAN | ADC_CR1_JAUTO;
ADC2->JSQR = _VAL2FLD(ADC_JSQR_JL,3)
           | _VAL2FLD(ADC_JSQR_JSQ1,0)
           | _VAL2FLD(ADC_JSQR_JSQ2,3)
           | _VAL2FLD(ADC_JSQR_JSQ3,5)
           | _VAL2FLD(ADC_JSQR_JSQ4,15);
ADC2->SMPR2 = _VAL2FLD(ADC_SMPR2_SMP1,ADC_SMPT_239d5)
            | _VAL2FLD(ADC_SMPR2_SMP2,ADC_SMPT_239d5)
            | _VAL2FLD(ADC_SMPR2_SMP4,ADC_SMPT_239d5)
            | _VAL2FLD(ADC_SMPR2_SMP6,ADC_SMPT_239d5);
ADC2->CR2 |= ADC_CR2_JSWSTART;
Death1308
Родился
Сообщения: 4
Зарегистрирован: Пт июн 05, 2020 20:54:19
Откуда: СПб

Re: Не работает АЦП STM32F103RCT6

Сообщение Death1308 »

Спасибо за ответ, но, все таки, чисто из принципа, хотелось бы понять, что именно не так
Плюс, одно из требований к ПО, программа без использования HAL, LL и других библиотек, только регистры, максимум битовыее маски
a797945
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Re: Не работает АЦП STM32F103RCT6

Сообщение a797945 »

с электроникой все верно? - может, что на ацп пришло то он и намерил.
для температуры имеет смысл использовать медленное преобразование
(файл не качал )
Death1308
Родился
Сообщения: 4
Зарегистрирован: Пт июн 05, 2020 20:54:19
Откуда: СПб

Re: Не работает АЦП STM32F103RCT6

Сообщение Death1308 »

по электронике и по прорблеме в целом
https://yadi.sk/i/2a7lctzmox8mwA

Добавлено after 3 hours 30 minutes 3 seconds:
Аналогичный результат, закрадывается мысля о смерти АЦП
Попробую залить на плату приемного устройства... посмотрим
Настройте инжектированный канал. В любой момент когда в программе нужно будете без всяких прерываний и глобальных переменных прямо из регистра АЦП читать измеренное значение. Вот, например, для 4-х каналов сразу.

Код: Выделить всё

//Настройка АЦП2 на 4 инжектированых канала  0,3,5,15
ADC2->CR1 = 0;
ADC2->CR2 = ADC_CR2_ADON | ADC_CR2_CAL;
while(ADC2->CR2 & ADC_CR2_CAL);
ADC2->CR2 = ADC_CR2_ADON | ADC_CR2_JEXTSEL | ADC_CR2_JEXTTRIG | ADC_CR2_CONT;
ADC2->CR1 = ADC_CR1_SCAN | ADC_CR1_JAUTO;
ADC2->JSQR = _VAL2FLD(ADC_JSQR_JL,3)
           | _VAL2FLD(ADC_JSQR_JSQ1,0)
           | _VAL2FLD(ADC_JSQR_JSQ2,3)
           | _VAL2FLD(ADC_JSQR_JSQ3,5)
           | _VAL2FLD(ADC_JSQR_JSQ4,15);
ADC2->SMPR2 = _VAL2FLD(ADC_SMPR2_SMP1,ADC_SMPT_239d5)
            | _VAL2FLD(ADC_SMPR2_SMP2,ADC_SMPT_239d5)
            | _VAL2FLD(ADC_SMPR2_SMP4,ADC_SMPT_239d5)
            | _VAL2FLD(ADC_SMPR2_SMP6,ADC_SMPT_239d5);
ADC2->CR2 |= ADC_CR2_JSWSTART;


Добавлено after 2 hours 27 minutes 39 seconds:
Вопрос решен, мертв АЦП STM
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Не работает АЦП STM32F103RCT6

Сообщение Reflector »

Вопрос решен, мертв АЦП STM

Что прям все три?
Death1308
Родился
Сообщения: 4
Зарегистрирован: Пт июн 05, 2020 20:54:19
Откуда: СПб

Re: Не работает АЦП STM32F103RCT6

Сообщение Death1308 »

16 аналоговых входа мертвы, причем, как цифровые входы пашут

Добавлено after 9 minutes 27 seconds:
Короче, напишу, наверное, статью по сигма-дельта АЦП AD7738, а то никакой толковой информации по ней не нашел, в свое время
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: Не работает АЦП STM32F103RCT6

Сообщение pokk »

Вопрос решен, мертв АЦП STM

А порты настроенные как вход аналоговый ?
Ответить

Вернуться в «ARM»