24.08.2016, 22:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Проверяю Сколько проходит времени от начала старта АЦП и до завершения передачи ДМА. Получилось 1.8 мкс при одном канале измерения. В основном цикле включаю ножку, а в прерывании по завершению передачи ДМА выключаю. Немогу теперь понять как же вот тут https://hsel.co.uk/2015/12/10/stm32f...ate-adc-usage/ получилось у него в мегагерцах измерение?
|
|
|
|
25.08.2016, 13:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Посмотрите мои исходники, правда на STM32F103C8T6, может найдете, что-то полезное.
|
|
|
|
25.08.2016, 14:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Разобрался почему всё так. Почемуто много времени тратится лешнего на перезапуск ДМА. Я записал в ДМА размер буффера 2000 и сделал такой буффер для значений АЦП. Получилось 538 мкс. Это время от начала старта АЦП и до окончания передачи буффера. В отладке весь буффер заполнен корректно был. Получается за 538 мкс АЦП сделал 2000 измерений. Теперь возник вопрос - как правильно сделать опрос трех каналов АЦП (трехфазный вольтметр RMS) чтобы он сделал замеры непрерывно, а потом их обработать? Что, вот так в общий буффер их считывать, а потом их вытягивать для 1 фазы, 0,3,6...., для 2 фазы 1,4,7,... и т.д.?
|
|
|
|
27.08.2016, 13:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Возник вопрос. Подключил к АЦП делитель. Подаю минус и на ножке АЦП 420 мВ. Без делителя 1.2 В. На обоих входах. Прозвонил - нигде ни с чем не пересекаются. Что может быть?.... Ставлю щуп осциллографа после делителя(на ножку АЦП) - падает до 70 мВ. Впаял керамику - 80 мВ. Делитель у меня 7.4(300 к и 47к). 80 мВ это 0.5 вольт.
Последний раз редактировалось miwutka; 27.08.2016 в 14:09.
|
|
|
|
27.08.2016, 17:13
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Сообщение от miwutka
|
в общий буффер их считывать, а потом их вытягивать для 1 фазы, 0,3,6...., для 2 фазы 1,4,7,... и т.д.?
|
Ну да, так... Поскольку у F0 нет инжектированных каналов с раздельными регистрами результата, то пусть DMA извлекает с одного общего регистра и складывает в общий циклический буфер, размером [кол-во измерений] [3 канала]. Затем, функция будет извлекать из этого массива результаты для каждого канала.
Сообщение от miwutka
|
Подаю минус и на ножке АЦП 420 мВ. Без делителя 1.2 В
|
А сколько надо? Схему подключения, величину подаваемого напряжения и номиналы резисторов делителей - фстудию.
Последний раз редактировалось NewWriter; 27.08.2016 в 17:16.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
28.08.2016, 10:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Сообщение от NewWriter
|
общий циклический буфер, размером [кол-во измерений] [3 канала]
|
Создать двумерный массив значит? Я незнаю как будет ДМА туда складывать данные, в каком порядке? в таком - buffer[0][0], buffer[0][1], buffer[0][2], buffer[1][0], и т.д. ??
Я незнаю в каком порядке выделяется память под такой массив?
|
|
|
|
28.08.2016, 11:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Сообщение от miwutka
|
Создать двумерный массив значит? Я незнаю как будет ДМА туда складывать данные, в каком порядке? в таком - buffer[0][0], buffer[0][1], buffer[0][2], buffer[1][0], и т.д. ??
Я незнаю в каком порядке выделяется память под такой массив?
|
Именно так, как вы написали, и выделяется память под двумерный массив, соответственно, именно в таком порядке DMA будет кидать в него данные. Собственно, в посте NewWriter не просто так же написано, что размерность массива - [кол-во измерений] [3 канала]))
Но можно и одномерным массивом обойтись, как в вашем посте выше, с самостоятельным высчитыванием индекса, скомпилированный результат будет все равно примерно одинаковый, но с двумерным явно нагляднее.
Последний раз редактировалось AR_Favorit; 28.08.2016 в 11:22.
|
|
|
Сказали "Спасибо" AR_Favorit
|
|
|
28.08.2016, 11:33
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,559
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Сообщение от AR_Favorit
|
в посте NewWriter не просто так же написано, что размерность массива - [кол-во измерений] [3 канала]))
|
Да он, вообще-то, говорил о размере, а не о размерности, что не одно и то же.
Если массив объявить объединением двух (одномерного и двухмерного), все будет наглядно и просто.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
28.08.2016, 11:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Сообщение от akegor
|
Да он, вообще-то, говорил о размере, а не о размерности, что не одно и то же.
|
Да, слово использовано "размер", но знака умножения между [кол-во измерений] и [3 канала] я что-то не вижу, так что фактически - указана размерность.
Сообщение от akegor
|
Если массив объявить объединением двух (одномерного и двухмерного), все будет наглядно и просто.
|
Не понял, а зачем?! Если уж используем двумерный(т.е. спихнули на компилятор вычисление области памяти из двух заданных индексов), зачем нам его одномерное представление?
Если бы не использовалось DMA и мы бы вручную складывали в прерывании значения преобразований в массив - тогда да, было бы проще в том прерывании обращаться к массиву как к одномерному, чтобы оперировать одним индексом, а не двумя, но вот с DMA - как-то не пойму)
Последний раз редактировалось AR_Favorit; 28.08.2016 в 11:50.
|
|
|
|
28.08.2016, 12:00
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,559
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
|
Re: stm32F030f4 + ADC + DMA
Сообщение от AR_Favorit
|
зачем нам его одномерное представление?
|
Ну, если кому для наглядности. Для лучшего понимания потомками. В ПДП отдавать одномерный, а руками выгребать из двухмерного.
Сообщение от NewWriter
|
размером [кол-во измерений] [3 канала]
|
Знающий человек сам помножит.
А вообще-то, педали в терминах лучше не путать. А то получится как "целебатом" и "целебратом".
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:22.
|
|