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

 
 
> ADC+DMA в STM32F107, Глюк DMA??
pr0m
сообщение Jan 31 2011, 11:36
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 22-06-05
Из: Таганрог
Пользователь №: 6 233



Всем привет.

Играюсь со слегка модицицированным примером для STM32F10x "RegSimul_DualMode" для ADC (из стандартной STM32F10xFWLib).
Там используются 2 ADC в режиме DualMode, 2 группы по 2 канала, после окончания конверсии каждой пары 32-битный результат складывается посредством DMA1 в буфер в ОЗУ. Так вот, я его переделал в том смысле, что зациклил процесс опроса (а не однократный опрос, как в оригинальном примере), после чего обнаружил несколько шокирующую картину - положение данных опроса в ОЗУ меняется от опроса к опросу, т.е. в том месте, где я ожидаю увидеть результат от каналов 1,2 через раз оказываются данные каналов 3,4, и наоборот.
Что это??? Только бы не глюк контроллера.... Собираюсь использовать его именно в режиме циклического опроса регулярной группы каналов АЦП.
Прилагаю кейловский проект.
Прикрепленные файлы
Прикрепленный файл  Project.rar ( 25.63 килобайт ) Кол-во скачиваний: 29
 


--------------------
Правильно поставленный вопрос - половина ответа...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
akimych
сообщение Feb 1 2011, 17:16
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Цитата
Всё равно у меня в тылу остался вопрос, предыдущий пост.

Этот?
Цитата
В чём порочность подхода?


Не может ли там быть каким-то образом, что перезапуск дма получился где-то в середине? По идее достаточно одно такого глюка, что бы началась каша.
АЦП выдает 2 значения подряд, а дма уже не в 0, на 1ом будет флаг ТС1, пересброс дма, по сути операция эта очень быстрая, ацп не успеет 2ое значение потерять, 2ое значение ляжет первым, после чего 1ое (новое) значение пойдет на 2ое место, опять готовность дма и всё повторяется. Если буфер не 2, а больше значений, то соотв. сдвижка будет другая. И никуда она не денется и период таймера не повлияет.
Как вариант, можно попробовать ловить флаг не от дма, а от ацп, он его выдаст после оцифровки всей группы каналов. Тут уже глюков быть не должно.
Заодно можно проверить, если от ацп флаг есть, а от дма нету (в течение некоторого адекватного времени, весьма короткого), значит имеет место косяк.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- pr0m   ADC+DMA в STM32F107   Jan 31 2011, 11:36
- - scifi   Разбираться времени нет. Прикладываю свой модуль А...   Jan 31 2011, 11:42
|- - pr0m   Цитата(scifi @ Jan 31 2011, 14:42) Разбир...   Jan 31 2011, 20:03
- - akimych   ЦитатаПрилагаю кейловский проект. Вот что мне не н...   Jan 31 2011, 16:01
|- - pr0m   Цитата(akimych @ Feb 1 2011, 20:16) Не мо...   Feb 1 2011, 20:19
- - akimych   ЦитатаРазве такое возможно? Сложно сказать. Я не д...   Feb 1 2011, 22:23
|- - pr0m   Цитата(akimych @ Feb 2 2011, 01:23) Хм, а...   Feb 2 2011, 09:48
- - akimych   Правильно, я что-то стормозил, счетчик же к нулю с...   Feb 2 2011, 20:13
- - kan35   Во первых размер буфера посчитан не верно: КодDMA_...   Feb 12 2011, 05:14
|- - pr0m   Цитата(kan35 @ Feb 12 2011, 08:14) Во пер...   Feb 12 2011, 11:43
- - kan35   да, то, что идет работа синхронно 2 каналов я не у...   Feb 12 2011, 17:52
|- - pr0m   Цитата(kan35 @ Feb 12 2011, 20:52) да, то...   Feb 12 2011, 19:00
- - akimych   ЦитатаУже решил задачу, но посмотреть как другие д...   Feb 12 2011, 20:35
|- - pr0m   Цитата(akimych @ Feb 12 2011, 23:35) В че...   Feb 13 2011, 07:56
- - akimych   Да не, я пока разбирался, вдруг заметил, что если ...   Feb 13 2011, 11:26
|- - pr0m   Цитата(akimych @ Feb 13 2011, 14:26) Да н...   Feb 13 2011, 16:20
- - kan35   Работа ADC1 через HT и FT прерывания. Оцифровка 3 ...   Feb 14 2011, 06:19
- - akimych   ЦитатаТогда для эксперименту одновременно в DualMo...   Feb 15 2011, 11:05


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 01:28
Рейтинг@Mail.ru


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