- Главная
- Форум
- Микроконтроллеры и Системы на Модуле (SOM)
- Микроконтроллеры
- Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
- Форум
- Микроконтроллеры и Системы на Модуле (SOM)
- Микроконтроллеры
- Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
- desant-88
- Автор темы
- Посетитель
12 года 3 мес. назад #3208
от desant-88
desant-88 ответил в теме Re: Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
Денис, спасибо за внимание и участие! Сверил Ваш конфиг со своим и наткнулся таки на свою тупость, а все просто - 103 от 407 отличается именно в конфигурации АЦП тем , что теперь если мы используем все АЦП нельзя забывать, что COMMON - регистры ОБЩИЕ !!! и функция ADC_DeInit() уводит в РЕСЕТ все АЦП, при последовательном конфиге АЦПэшников такое недопустимо. Одним словом, как всегда невнимательность.
- Денис Ягов
- Посетитель
12 года 3 мес. назад #3209
от Денис Ягов
Денис Ягов ответил в теме Re: Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
Очень рад, что нашлась ошибочка.
- desant-88
- Автор темы
- Посетитель
12 года 3 мес. назад #3217
от desant-88
desant-88 ответил в теме Re: Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
Добрый день. К сожалению все-таки не заработало так, как нужно. Ваш проект работает отлично - сегодня посмотрел, но у меня столько всего навешано еще к этому АЦП, сейчас АЦП 2 запускается, преобразует один такт и дальше тишина, АЦП1 -преобразует, если с общими настройками АЦП от вашего проекта еще запускаю АЦП3 вообще малчок, как АЦП1 так и 2. Эксперименты проводил только с 2 каналами. Вот пока незнаю в чем дело может во временах может еще в чем :-\
- Денис Ягов
- Посетитель
12 года 3 мес. назад - 12 года 3 мес. назад #3218
от Денис Ягов
Денис Ягов ответил в теме Re: Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
Добрый день.
Если описать проблему в двух словах: "Сложная система с множеством связей".
Поиск косяка может осуществляться только в одном направлении:
Тестирование программных модулей по отдельности. Потом постепенно соединять их друг с другом, ожидая появление неисправности.
По крайней мере, это позволит правильно сформулировать проблему.
У меня в проекте в общих настройках АЦП указан режим Dual_mode - два АЦП работают синхронно (кстати, важно регистр общего результата - 32 бит по 16 бит на 1 АЦП ... для трёх АЦП нужно 48 бит - а их нет.....это вероятная причина "выноса мозга"- контроллеру при добавлении в работу 3-го АЦП)... можно попробовать Independent_mode - а запускать преобразование общим таймером (TIM8) может тогда заработает 3-й АЦП. (Я не пробовал не могу точно сказать.... однако - вариант)
Итого.
1. все 3 АЦП должны работать в независимом режиме
2. Если есть возможность использовать 3 канала от DMA (окончание преобразования АЦП1 2 3 .... с тремя таблицами результатов), то лучше их использовать. Как вариант, в качестве запроса копирования может быть использование регистра сравнения TIM8.....
Если описать проблему в двух словах: "Сложная система с множеством связей".
Поиск косяка может осуществляться только в одном направлении:
Тестирование программных модулей по отдельности. Потом постепенно соединять их друг с другом, ожидая появление неисправности.
По крайней мере, это позволит правильно сформулировать проблему.
У меня в проекте в общих настройках АЦП указан режим Dual_mode - два АЦП работают синхронно (кстати, важно регистр общего результата - 32 бит по 16 бит на 1 АЦП ... для трёх АЦП нужно 48 бит - а их нет.....это вероятная причина "выноса мозга"- контроллеру при добавлении в работу 3-го АЦП)... можно попробовать Independent_mode - а запускать преобразование общим таймером (TIM8) может тогда заработает 3-й АЦП. (Я не пробовал не могу точно сказать.... однако - вариант)
Итого.
1. все 3 АЦП должны работать в независимом режиме
2. Если есть возможность использовать 3 канала от DMA (окончание преобразования АЦП1 2 3 .... с тремя таблицами результатов), то лучше их использовать. Как вариант, в качестве запроса копирования может быть использование регистра сравнения TIM8.....
Последнее редактирование: 12 года 3 мес. назад пользователем .
- desant-88
- Автор темы
- Посетитель
12 года 3 мес. назад #3219
от desant-88
desant-88 ответил в теме Re: Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
1. На счет регистра данных думал так, но я так понял если мы указываем в регистре настроек ADC_CCR режим синхронного преобразования АЦП1-2, то как написано в мануале, АЦП 3 обязан работать в независимом режиме и я так понял, что данные при этом он хранит в своем регистре, а не в общем регистре данных, или я не прав...
2. В связи с этим на АЦП3 у меня ДМА2 по моему 6 канал, в общем тот канал и соответ. поток ,который указан в мануале, а на АЦП1-2 ДМА2 но уже 0 канал с соот. потоком, функ. обработки прерываний потоков не пересекаются это точно.
3. По поводу таймеров - ДА! сдвоенный АЦП, как уже говорил у меня от 8 таймера, а вот АЦП3 в независимом режиме от ТИМ5, который в режиме ШИМ работает.Там, если я вас правильно понял, что вы имели ввиду, общим таймером не получится мне нужна разная частота дискретизации.
4. Сдвоенный режим АЦП используется из-за специфики реализуемых алгоритмов основной программы - значения с этих АЦП1-2 обрабатываются в одном потоке и идут на ПИД-регулятор , но вариант с независимыми режимами я рассмотрю, хотя меня это смущает... ГЛАВНОЕ - не проиграть в быстродействии на критические значения для системы управления :-X :-X
5. Вы правы единственное верное решение наверное в этой ситуации будет реализовать работу всех АЦП для начала и потом последовательно подключать все остальное , хотя я до последнего не хотел этим заниматься , надеялся на положительный исход
2. В связи с этим на АЦП3 у меня ДМА2 по моему 6 канал, в общем тот канал и соответ. поток ,который указан в мануале, а на АЦП1-2 ДМА2 но уже 0 канал с соот. потоком, функ. обработки прерываний потоков не пересекаются это точно.
3. По поводу таймеров - ДА! сдвоенный АЦП, как уже говорил у меня от 8 таймера, а вот АЦП3 в независимом режиме от ТИМ5, который в режиме ШИМ работает.Там, если я вас правильно понял, что вы имели ввиду, общим таймером не получится мне нужна разная частота дискретизации.
4. Сдвоенный режим АЦП используется из-за специфики реализуемых алгоритмов основной программы - значения с этих АЦП1-2 обрабатываются в одном потоке и идут на ПИД-регулятор , но вариант с независимыми режимами я рассмотрю, хотя меня это смущает... ГЛАВНОЕ - не проиграть в быстродействии на критические значения для системы управления :-X :-X
5. Вы правы единственное верное решение наверное в этой ситуации будет реализовать работу всех АЦП для начала и потом последовательно подключать все остальное , хотя я до последнего не хотел этим заниматься , надеялся на положительный исход
- Денис Ягов
- Посетитель
12 года 3 мес. назад #3221
от Денис Ягов
Денис Ягов ответил в теме Re: Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
Я написал софт, в котором добавил к предыдущему ещё и запуск АЦП3 от срабатывания регистра сравнения TIM5 CCR1.
Всё работатет. Надеюсь, вам это поможет.
Всё работатет. Надеюсь, вам это поможет.
- Форум
- Микроконтроллеры и Системы на Модуле (SOM)
- Микроконтроллеры
- Конфиг схемы TIM8(EXTTRIG)->(ADC1+ADC2)->DMA2 при переходе с 103 на 407 серию.
Время создания страницы: 0.039 секунд