реклама на сайте
подробности

 
 
> STM32: запуск АЦП от TIM1
koyodza
сообщение Jul 24 2011, 13:36
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



У кого-нибудь получилось запустить преобразование АЦП от TIM1? Хоть по какому-нибудь каналу. По TIM2..TIM4 работает (канал только нужно выбирать, не от всех запуск возможен).
Делаю то же самое от TIM1 - молчит.

И ведь не один проект уже на нём реализовал, а вот с TIM1 постоянно какие-то засады: то OCxN оказывается невозможно отключить, когда он попадает на другую периферию, то вот с запуском АЦП... Все таймера 2..4 сейчас заняты, перебросить запуск АЦП некуда
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Юрий_СВ
сообщение Feb 7 2012, 19:38
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272



У меня работает. (Надеюсь, таймер и канал сравнения настроены)
CODE
void delay_y()
{
volatile u32_t i, ty;
for(i=0; i<10000; i++) ty=GPIOA_ODR;
}

void init_adc()
{

// выключаем АЦП и ждём не менее 2-х периодов синхронизации АЦП
ADC1_CR1=0x00000000;
ADC1_CR2=0x00000000;
delay_y();
// включаем (1 мкс) и ждём время установления (1 мкс)
ADC1_CR2=0x00000001;
delay_y();
// выполняем калибровку
ADC1_CR2=0x00000005;
while(ADC1_CR2&0x00000004); // ждём окончания (5,9 мкс)

// настраиваем

// время захвата значения
ADC1_SMPR1=0x00000000;
ADC1_SMPR2=0x0002d000; // используется только 5-й и 6-й каналы
// SMPx[2:0]=101

// последовательность обычных каналов
ADC1_SQR1=0x00000000;
// L - длина последовательность
// SQx - номер канала
ADC1_SQR2=0x00000000;
ADC1_SQR3=0x00000006; // используется только 5-й и 6-й каналы


ADC1_CR1=0x00000020; //
// AWDEN=0; // отслеживание диапазона обычных каналов - не требуется
// JAWDEN=0; // отслеживание диапазона вклинивающихся каналов - не требуется
// DISCNUM=0; // кол-во каналов в прерывистом режиме
// JDISCEN=0; // прерывистый режим для вклинивающихся каналов - не требуется
// DISCEN=; // ??? прерывистый режим для обычных каналов -
// JAUTO=0; // автопреобразование вклинивающейся группы - не требуется
// AWDSGL=0; // отслеживание диапазона в режиме .. просмотра (scan) - не требуется
// SCAN=0; // режим просмотра - не требуется
// JEOCIE=0; // прерывание по вклинивающимся каналам - не требуется
// AWDIE=0; // прерывание по отслеживанию диапазона - не требуется
// EOCIE=1; // прерывание по обычным каналам - разрешено
// AWDCH=0; // номер канала для отслеживания диапазона


ADC1_CR2=0x00100001; //
// TSVREFE=0; // каналы датчика температуры и внутреннего опорного - не требуется
// SWSTART=0; // программный запуск преобразования на обычных каналах
// JSWSTART=0; // программный запуск преобразования на вклинивающихся каналах
// EXTTRIG=1 ; // запуск преобразования обычного канала по внешнему сигналу - разрешен
// EXTSEL=000; // источник внешнего запускающего сигнала для обычного канала - таймер 1, канал 1
// JEXTTRIG=0; // запуск преобразования вклиниваюегося канала по внешнему сигналу - не требуется
// JEXTSEL=0; // источник внешнего запускающего сигнала для вклинивающихся каналов - не требуется
// ALIGN=0; // выравнивание результата - вправо
// RSTCAL=0; // сброс калибровки
// CAL=0; // запуск калибровки
// CONT=0; // непрерывный режим - не требуется
// ADON=1; // включение АЦП / запуск преобразования
// запуск преобразования происходит если выполняется оба условия:
// 1) до этого АЦП уже был включен ADON=1;
// 2) кроме бита ADON другие биты не меняются
}


Сообщение отредактировал IgorKossak - Feb 7 2012, 20:10
Причина редактирования: [codebox]
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 8 2012, 03:16
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Юрий_СВ @ Feb 8 2012, 01:38) *
У меня работает. (Надеюсь, таймер и канал сравнения настроены)
Код
// последовательность обычных каналов
ADC1_SQR1=0x00000000;

Я правильно понимаю, что у вас длина последовательности равна нулю? Почему так?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Юрий_СВ
сообщение Feb 8 2012, 09:08
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272



Цитата(AHTOXA @ Feb 8 2012, 06:16) *
Я правильно понимаю, что у вас длина последовательности равна нулю? Почему так?

Нет вы понимаете неправильно. Она равна 1.
Цитата
Bits 23:20 L[3:0]: Regular channel sequence length
These bits are written by software to define the total number of conversions in the regular
channel conversion sequence.
0000: 1 conversion


Сообщение отредактировал Юрий_СВ - Feb 8 2012, 09:09
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 8 2012, 11:05
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Юрий_СВ @ Feb 8 2012, 15:08) *
Нет вы понимаете неправильно. Она равна 1.

Я не о том. Вопрос вот какой: а не маловато ли вам будет одного преобразования для двух каналов?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Юрий_СВ
сообщение Feb 8 2012, 11:33
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272



Цитата(AHTOXA @ Feb 8 2012, 14:05) *
Я не о том. Вопрос вот какой: а не маловато ли вам будет одного преобразования для двух каналов?

В самый раз. Номер канала меняется в прерывании.
1) между преобразованиями надо, как минимум, управлять внешними коммутаторами.
2) в некоторых случаях приходится пропустить несколько прерываний при работающем таймере.
(заботиться о синхронизации номера канала в АЦП и программе - не хотелось бы)
3) мне удобнее обрабатывать каждый канал отдельно.
4) переношу большую программу с другого ядра (AVR) - переписывать пол программы - ради чего ?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 8 2012, 11:41
Сообщение #7


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Дык, надо ж сразу обо всём этом писать. А то получается ерунда - делитесь вроде как рабочим куском, а он оказывается вон ещё сколько всего требует.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Юрий_СВ
сообщение Feb 8 2012, 12:10
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272



Цитата(AHTOXA @ Feb 8 2012, 14:41) *
Дык, надо ж сразу обо всём этом писать. А то получается ерунда - делитесь вроде как рабочим куском, а он оказывается вон ещё сколько всего требует.

Надеюсь, вы шутите. Если человек хоть пару раз пролистывал описание МК - то у него всё необходимое есть.

Человек даже не посчитал нужным сказать какие каналы он использует: обычные или вклинивающиеся.
(для них предусмотрены совершенно разные источники запуска)
А вы мне предлагаете трактат на 3 страницы писать ?

Для него ведь важно:
1) Что это хоть у кого-нибуть работоспособно (у меня работает)
2) настройка битов регистра ADC1_CR2
// EXTTRIG=1 ; // запуск преобразования обычного канала по внешнему сигналу - разрешен
// EXTSEL=000; // источник внешнего запускающего сигнала для обычного канала - таймер 1, канал 1

Практически каждый бит подписан по-русски - неужели "убеждения" не позволят их поменять под себя?

Трудностей с отключением инверсных выходов таймера 1 у меня тоже не было. Работает нормально.

Сообщение отредактировал Юрий_СВ - Feb 8 2012, 12:11
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 8 2012, 12:53
Сообщение #9


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Юрий_СВ @ Feb 8 2012, 18:10) *
Надеюсь, вы шутите.
Нет, я не шучу.
Цитата
Если человек хоть пару раз пролистывал описание МК - то у него всё необходимое есть.

Тогда зачем ему ваш ответ? Вернее не так. Зачем вы ему тогда отвечаете? У него же есть всё необходимое! sm.gif
Цитата
Человек даже не посчитал нужным сказать какие каналы он использует: обычные или вклинивающиеся.

Если вы посмотрите повнимательнее, то увидите, что вопрос был задан более года назад. То есть, скорее всего, "человеку" ваш ответ уже не нужен. То есть, вы пишете свой ответ для других читателей форума, у которых возможно возникнет похожая проблема. И следовательно (это моё твёрдое убеждение), надо делать это внятно и понятно, с достаточной степенью детализации, а не бросать огрызки нерабочего кода, комментарии в котором к тому же не совпадают с его содержанием.
Цитата
А вы мне предлагаете трактат на 3 страницы писать ?

Не обязательно три страницы. Хотя бы эти ваши четыре пункта из поста №11.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- koyodza   STM32: запуск АЦП от TIM1   Jul 24 2011, 13:36
- - AHTOXA   TIM_BDTR_MOE?   Jul 25 2011, 09:12
|- - koyodza   Цитата(AHTOXA @ Jul 25 2011, 12:12) TIM_B...   Jul 28 2011, 15:25
- - Huston007   Цитата(koyodza @ Jul 24 2011, 20:36) У ко...   Aug 18 2011, 13:03
|- - Михаил Черепанов   Цитата(Huston007 @ Aug 18 2011, 19:03) По...   Feb 7 2012, 03:19
- - sevastianovd   koyodza, попробуйте пример из стандартной библиоте...   Feb 7 2012, 08:51
|- - Юрий_СВ   Цитата(AHTOXA @ Feb 8 2012, 15:53) вопрос...   Feb 8 2012, 14:37
- - koyodza   Цитата(Юрий_СВ @ Feb 7 2012, 21:38) У мен...   Feb 8 2012, 20:41
- - Юрий_СВ   Цитата(koyodza @ Feb 8 2012, 23:41) Ну и ...   Feb 9 2012, 12:13
- - koyodza   Цитата(Юрий_СВ @ Feb 9 2012, 14:13) // EX...   Feb 9 2012, 15:28
- - MiklPolikov   Пытаюсь запустить АЦП от события TIM6_TRGO Не п...   Apr 13 2012, 22:00
- - scifi   Цитата(MiklPolikov @ Apr 14 2012, 02:00) ...   Apr 14 2012, 08:24
- - MiklPolikov   Цитата(scifi @ Apr 14 2012, 11:24) Тут ну...   Apr 14 2012, 10:53
- - MiklPolikov   Разобрался. Оказалось что АЦП не хочет запускатся...   Apr 14 2012, 21:20
- - koyodza   Цитата(MiklPolikov @ Apr 14 2012, 23:20) ...   Apr 15 2012, 13:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 12:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01459 секунд с 7
ELECTRONIX ©2004-2016