×

Внимание

Форум находится в режиме только для чтения.

Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.

11 года 8 мес. назад #3208 от desant-88
Денис, спасибо за внимание и участие! Сверил Ваш конфиг со своим и наткнулся таки на свою тупость, а все просто - 103 от 407 отличается именно в конфигурации АЦП тем , что теперь если мы используем все АЦП нельзя забывать, что COMMON - регистры ОБЩИЕ !!!  и функция ADC_DeInit() уводит в РЕСЕТ все АЦП, при последовательном конфиге АЦПэшников такое недопустимо. Одним словом, как всегда невнимательность.  ;)
11 года 8 мес. назад #3209 от Денис Ягов
Очень рад, что нашлась ошибочка.  :)
11 года 8 мес. назад #3217 от desant-88
Добрый день. К сожалению все-таки не заработало так, как нужно.  :( Ваш проект работает отлично -  сегодня посмотрел, но у меня столько всего навешано еще к этому АЦП, сейчас АЦП 2 запускается, преобразует один такт и дальше тишина, АЦП1 -преобразует, если с общими настройками АЦП от вашего проекта еще запускаю АЦП3 вообще малчок, как АЦП1 так и 2. Эксперименты проводил только с 2 каналами. Вот  пока незнаю в чем дело может во временах может еще в чем  :-\
11 года 8 мес. назад - 11 года 8 мес. назад #3218 от Денис Ягов
Добрый день.

Если описать проблему в двух словах: "Сложная система с множеством связей".

Поиск косяка может осуществляться только в одном направлении:
Тестирование программных модулей по отдельности. Потом постепенно соединять их друг с другом, ожидая появление неисправности.

По крайней мере, это позволит правильно сформулировать проблему.

У меня в проекте в общих настройках АЦП указан режим Dual_mode - два АЦП работают синхронно (кстати, важно регистр общего результата - 32 бит по 16 бит на 1 АЦП ... для трёх АЦП нужно 48 бит - а их нет.....это вероятная причина "выноса мозга"- контроллеру при добавлении в работу 3-го АЦП)... можно попробовать Independent_mode - а запускать преобразование общим таймером (TIM8) может тогда заработает 3-й АЦП. (Я не пробовал не могу точно сказать.... однако - вариант)

Итого.
1. все 3 АЦП должны работать в независимом режиме
2. Если есть возможность использовать 3 канала от DMA (окончание преобразования АЦП1 2 3 .... с тремя таблицами результатов), то лучше их использовать. Как вариант, в качестве запроса копирования может быть использование регистра сравнения TIM8.....
11 года 8 мес. назад #3219 от desant-88
1. На счет регистра данных думал так, но я так понял если мы указываем в регистре настроек ADC_CCR режим синхронного преобразования АЦП1-2, то как написано в мануале, АЦП 3 обязан работать в независимом режиме и я так понял, что данные при этом он хранит в своем регистре, а не в общем регистре данных, или я не прав...
2. В связи с этим на АЦП3 у меня ДМА2 по моему 6 канал, в общем тот канал и соответ. поток ,который указан в мануале, а на АЦП1-2 ДМА2 но уже 0 канал с соот. потоком, функ. обработки прерываний потоков не пересекаются это точно.
3. По поводу таймеров - ДА! сдвоенный АЦП, как уже говорил у меня от 8 таймера, а вот АЦП3 в независимом режиме от ТИМ5, который в режиме ШИМ работает.Там, если я вас правильно понял, что вы имели ввиду, общим таймером не получится мне нужна разная частота дискретизации.
4. Сдвоенный режим АЦП используется из-за специфики реализуемых алгоритмов основной программы - значения с этих АЦП1-2 обрабатываются в одном потоке и идут на ПИД-регулятор , но вариант с независимыми режимами я рассмотрю, хотя меня это смущает... ГЛАВНОЕ - не проиграть в быстродействии на критические значения для системы управления :-X :-X
5. Вы правы единственное верное решение наверное в этой ситуации будет реализовать работу всех АЦП для начала и потом последовательно подключать все остальное , хотя я до последнего не хотел этим заниматься , надеялся на положительный исход  :)
11 года 8 мес. назад #3221 от Денис Ягов
Я написал софт, в котором добавил к предыдущему ещё и запуск АЦП3 от срабатывания регистра сравнения TIM5 CCR1.
Всё работатет. Надеюсь, вам это поможет.  8)
Время создания страницы: 0.050 секунд
Работает на Kunena форум