Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

АЦП 2-канальная

Непрочитано 27.06.2016, 18:40  
LoKeR_95
Прохожий
 
Регистрация: 10.03.2016
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LoKeR_95 на пути к лучшему
По умолчанию АЦП 2-канальная

Доброго времени суток, у меня такая задача измерить данные из 1-го АЦП используя 2 канала и данные сохранять в DMA. Значения 1-го канала сохр. в одну переменную а другой в другую. Это задача для измерения напряжения и тока. Я ни как не могу собрать не могу добавить 2 канал. Подскажите пожалуйста, как можно решить эту проблему
Нажмите, чтобы открыть спойлер

Код:
void init_adc() // АЦП
{
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2ENR_ADC1EN, ENABLE);
        ADC1-›SMPR2 |= (ADC_SMPR2_SMP1_2 | ADC_SMPR2_SMP1_1 | ADC_SMPR2_SMP1_0);
        ADC1-›CR2 |= ADC_CR2_JEXTSEL;
        ADC1-›CR2 |= ADC_CR2_JEXTTRIG;
        ADC1-›CR2 |= ADC_CR2_CONT;
        ADC1-›CR1 |= ADC_CR1_JAUTO; 
        ADC1-›JSQR |= (1‹‹18);
        ADC1-›CR2 |= ADC_CR2_ADON;
        ADC1-›CR2 |= ADC_CR2_JSWSTART;
        while (!(ADC1-›SR & ADC_SR_JEOC)); 
}
Реклама:
LoKeR_95 вне форума  
Непрочитано 27.06.2016, 23:46  
krug_vv
Вид на жительство
 
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 376
Сказал спасибо: 191
Сказали Спасибо 153 раз(а) в 98 сообщении(ях)
krug_vv на пути к лучшему
По умолчанию Re: АЦП 2-канальная

В пакете софта для F0дискавери есть пример работы с ДМА, как раз два канала АЦП.
Вот в этом: STM32F0-Discovery_FW_V1.0.0

STM32F0-Discovery_FW_V1.0.0\Project\Peripheral_Examples\AD C_DMA

Последний раз редактировалось krug_vv; 27.06.2016 в 23:49.
krug_vv вне форума  
Непрочитано 28.06.2016, 04:38  
AR_Favorit
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: АЦП 2-канальная

Сообщение от LoKeR_95 Посмотреть сообщение
Доброго времени суток, у меня такая задача измерить данные из 1-го АЦП используя 2 канала и данные сохранять в DMA. Значения 1-го канала сохр. в одну переменную а другой в другую. Это задача для измерения напряжения и тока. Я ни как не могу собрать не могу добавить 2 канал. Подскажите пожалуйста, как можно решить эту проблему
Нажмите, чтобы открыть спойлер

Код:
void init_adc() // АЦП
{
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2ENR_ADC1EN, ENABLE);
        ADC1-›SMPR2 |= (ADC_SMPR2_SMP1_2 | ADC_SMPR2_SMP1_1 | ADC_SMPR2_SMP1_0);
        ADC1-›CR2 |= ADC_CR2_JEXTSEL;
        ADC1-›CR2 |= ADC_CR2_JEXTTRIG;
        ADC1-›CR2 |= ADC_CR2_CONT;
        ADC1-›CR1 |= ADC_CR1_JAUTO; 
        ADC1-›JSQR |= (1‹‹18);
        ADC1-›CR2 |= ADC_CR2_ADON;
        ADC1-›CR2 |= ADC_CR2_JSWSTART;
        while (!(ADC1-›SR & ADC_SR_JEOC)); 
}
В вашем коде вы выбираете для преобразования инжектированные каналы (точнее - один инжектированный канал). Для них применение ДМА смысла не имеет - и так данные с каждого канала попадают в свой отдельный регистр ADC_JDRx. Для включения еще одного канала в группу инжектированных просто установите нужные биты в ADC1-›JSQR.

Биты JL в ADC1-›JSQR определяют, сколько преобразований должен сделать АЦП: по умолчанию стоит 00 - одно преобразование, в канале, определяемом битами JSQ4 (в которых у вас установлен один канал для измерения. Вам же надо поставить JL в 01 (два преобразования, в каналах, определяемых битами JSQ4 и JSQ3 (в которых вам надо установить другой канал для измерения). Описание ADC1-›JSQR в даташите в помощь.


Если же вы хотите использовать именно DMA, имеет смысл настроить АЦП на работу с регулярными каналами. Тогда все результаты измерений будут падать в один общий регистр данных, адрес которого будет адресом источника в настройке DMA, а DMA уже будет раскидывать результаты измерений в массив переменных. Что даст возможность автоматически делать по несколько измерений подряд для усреднения результатов.

Последний раз редактировалось AR_Favorit; 28.06.2016 в 04:42.
AR_Favorit вне форума  
Непрочитано 30.06.2016, 06:54  
LoKeR_95
Прохожий
 
Регистрация: 10.03.2016
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LoKeR_95 на пути к лучшему
По умолчанию Re: АЦП 2-канальная

Сообщение от AR_Favorit Посмотреть сообщение
Описание ADC1-›JSQR в даташите в помощь.
спасибо помогло, использовал периф.библиотеку. В следующим задании возникло чуть не понятие, подключил WH1602A настроил тактировал все работает, но мне надо что бы в дисплее показывали данные последовательно друг за другом например (1 напряжения потом 2 ток и т п). Как это можно сделать?
LoKeR_95 вне форума  
Непрочитано 30.06.2016, 07:38  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: АЦП 2-канальная

Взять первое число, преобразовать его из двоичного в двоично-десятичный поразрядный распакованный формат, получить коды цифр и отправить их на дисплей. Затем со вторым числом так же, затем с третьим и т.д, солько влезет в двустрочник
NewWriter вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Перепайка АЦП SC7001Q в цифровом мультиметре dimkis577 Песочница (вопросы новичков) 6 24.07.2013 21:39
Помогите настроить АЦП в ATMEGA16 Vladimir Semenov AVR 13 11.12.2012 16:17
АЦП AT91sam7s256 Uragan90 Микроконтроллеры, АЦП, память и т.д 10 25.04.2011 13:30
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


Часовой пояс GMT +4, время: 04:03.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.