0 / 0 / 0
Регистрация: 05.04.2019
Сообщений: 6
|
|
1 | |
Порядок оцифровки групп регулярных каналов АЦП в режиме dual mode20.04.2019, 15:49. Показов 1467. Ответов 7
Метки нет (Все метки)
Ситуация... моделирую на плате stm32f103c8t6 режим АЦП dual regular simultaneous only. Настроил четыре канала (два для каждого АЦП):
АЦП1 АЦП2 IN1 Rank 1 IN2 Rank 2 IN3 Rank 2 IN4 Rank 1 оцифрованные значения получаю в прерывании от DMA по переполнению массива под все четыре канала. Всё работает корректно: в массив первыми заносятся значения каналов IN1 и IN2, затем IN3 и IN4. Однако, если работать с шестью каналами: АЦП1 АЦП2 IN1 Rank 1 IN2 Rank 3 IN3 Rank 2 IN4 Rank 2 IN5 Rank 3 IN6 Rank 1 то происходит следующее: порядок оцифровки принимает непонятный для меня порядок IN5, IN4, IN1, IN2, IN3, IN6. Т.е. фактически IN5 "толкает на преобразование IN4", а IN3 - IN6. И это не смотря на ранги каналов. Пробовал настроить восемь каналов аналогичным образом - ситуация похожая, опрос каналов не соответствует настройкам рангов. Повторюсь, что в случае четырёх каналов всё работает нормально. Для настройки использую CubeMX, проекты создавались по десятку раз, пробовал менять настройки рангов. Никакой вариант не позволил получить порядок оцифровки соответствующий рангам. Нет проблемы, чтобы работать и так (экспериментально определить порядок оцифровки каналов и схему соответственно разрабатывать с учётом этого), но вопрос интересный и разобраться не могу уже две недели. Может кто-нибудь может объяснить от чего зависит порядок оцифровки в этом режиме. И как получить следующий порядок: IN1 - IN2, IN3 - IN4, IN5 - IN6, IN7 - IN8?
0
|
20.04.2019, 15:49 | |
Ответы с готовыми решениями:
7
Discontinuous mode в dual режиме АЦП STM32 STM32F373 SDADC порядок оцифровки каналов Опрос нескольких регулярных каналов АЦП STM32F100 Подключение АЦП в Dual mode для STM32F3xx АЦП в Auto Trigger mode от таймера в CTC mode (atmega644) |
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
|
|
21.04.2019, 00:35 | 2 |
А что такое ранги каналов?
0
|
0 / 0 / 0
Регистрация: 05.04.2019
Сообщений: 6
|
|
21.04.2019, 00:53 [ТС] | 3 |
В этом режиме (dual regular simultaneous only) одновременно опрашиваются два канала, один настроен на оцифровку первым АЦП, другой - вторым АЦП. Например, IN0 - АЦП1, IN1 - АЦП2. В данном случае (когда используется по одному каналу на каждом АЦП) ранги и не нужны. А вот, если каналов больше, то можно указать с какого начинать преобразование. Например, в случае с четырьмя каналами Rank 1 для первого АЦП будет оцифрован первым. Для второго АЦП, наверное, наоборот: у Rank 2 приоритет выше. По крайней мере экспериментально проверено, что такой вариант работает по задуманной логике. А вот в случае с 6, 8 каналами эта логика не работает)
Появились некоторые мысли. Может нужно на втором АЦП выставить настройки рангов симметрично первому АЦП, не обращать внимание, что вроде как четыре канала работают. Такого я по крайней мере ещё не пробовал.
0
|
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
|
|
21.04.2019, 01:08 | 4 |
Я специально просмотрел описание регистров АЦП, думаю может забыл чего... Но никаких рангов там нет.
Это не фича ли куба? Ранги эти не нужны - порядок каналов задается настройками регистров и может быть любой без всяких рангов.
0
|
0 / 0 / 0
Регистрация: 05.04.2019
Сообщений: 6
|
||||||
23.04.2019, 01:12 [ТС] | 5 | |||||
Ну по сути да, куб генерит следующий код для задания порядка оцифровки:
А дальше начинается "магия": преобразования по следующему каналу первого АЦП (ADC_CHANNEL_2) не происходит, а второй АЦП оцифровывает CHANNEL_3, при этом его значение оказывается ещё и в последний элементе массива, куда собираются результаты преобразований. Третье преобразование начинается с ADC_CHANNEL_2, что вообще окончательно ставит меня в тупик; следом за ним снова CHANNEL_3. Каналы CHANNEL_4 и CHANNEL_5 вообще пропущены... наверное. Опять же сокращение проекта до четырёх каналов даёт абсолютно рабочий проект с логичным порядком опроса всех каналов.
0
|
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
|
|
23.04.2019, 01:14 | 6 |
Так может ну его, куб этот? Там код для настройки АЦП займет как бы не меньше строк чем для куба.
0
|
0 / 0 / 0
Регистрация: 05.04.2019
Сообщений: 6
|
|
23.04.2019, 01:56 [ТС] | 7 |
Немного не понял вас: займет не меньше места? )
Вообще говоря, похоже нашел правильную настройку порядка опроса каналов. Но проверить до конца смогу только завтра, нужна заведомо рабочая плата. Есть подозрение, что один из каналов накрылся, да ещё и его вывод коротит на другой канал. А порядок опроса верный. Только начинаю серьезно с МК работать. Советуете не начинать с куба?
0
|
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
|
|
23.04.2019, 02:33 | 8 |
Ну, места точно меньше -)). Причем проблема не столько в памяти FLASH (ее в контроллерах обычно сравнительно много), сколько в RAM, которой сильно меньше. Но и строк тоже.
В данном случае советую провести инициализацию АЦП посредством регистров этого АЦП, а не процедур куба. Начинать работать с кубом вообще или нет - я не знаю. Я им не пользуюсь, но это каждый сам решает конечно. Основной (и как бы ни единственный) аргумент любителей куба - "программы становятся переносимыми между разными линейками контроллеров ST". Что пишут эти любители и зачем им так нужна эта "переносимость", я не знаю. Тем более что писанины куб почти не убавляет. Однако никакой переносимости там нет и это не может не понимать любой, кто реально поработал с разными линейками их контроллеров, поскольку сама их периферия разная, порой - абсолютно, инициализация и работа этой периферии тоже разная, поэтому никакой куб здесь не поможет.
0
|
23.04.2019, 02:33 | |
23.04.2019, 02:33 | |
Помогаю со студенческими работами здесь
8
STM32F407IE, внешний АЦП отрабатывает 72 цикла оцифровки и останавливается) АЦП несколько каналов Trace Mode и привязка каналов Большое количество АЦП каналов Использование нескольких каналов АЦП Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества
Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
|
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов.
. . .
|
С чего начать программировать микроконтроллеры
raxper 06.01.2025
Введение в мир микроконтроллеров
Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
|
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
|
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки)
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|