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

 
 
 
Reply to this topicStart new topic
> STM32F3-Discovery, не работает ADC1, на максимальной тактовой частоте
ViKo
сообщение Mar 18 2014, 10:53
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



На DAC Ch1 вывожу аппаратно созданный треугольник.
Соединил выход DAC Ch1 (PA4) со входом ADC1_IN3 (PA2) перемычкой.
Результат АЦП вывожу на DAC Ch2 (PA5), задействованы DMA1, прерывание от него, флаг, потом программно записываю из массива в DAС...
Не могу добиться нормальной работы ADC1, пока не задам тактовую частоту меньше 72 MHz.
Более-менее нормально работает при тактах 18 MHz. При 36 MHz "ломает" сигнал,
а при 72 MHz - вообще, сплошной шум, преимущественно выше входного сигнала.
Считаю это аппаратной ошибкой STM32F303VC, Rev Y.

Есть в datasheet упоминание про каналы PA2 и др., табл. 67, что они не совсем fast. Это не то.

upd. ADC2 ведет себя так же плохо! Видимо, где-то я просчитался.
Странно, что в двухканальном режиме (interlive) второй АЦП работал нормально. Потому и возникло подозрение насчет первого.

Errata смотрел, делал DMA раздельными, не помогло.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 18 2014, 12:24
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(ViKo @ Mar 18 2014, 14:53) *
...Не могу добиться нормальной работы ADC1, пока не задам тактовую частоту меньше 72 MHz. ...


оно?
превышение частоты
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 18 2014, 13:06
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



и оно же
http://electronix.ru/forum/index.php?showtopic=119183

вы же участвовали в той дискуссии? Или вы пропустили момент где ТС сказал что частоту загнал потому АЦП и не работало?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 18 2014, 15:04
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(kolobok0 @ Mar 18 2014, 15:24) *
оно?
превышение частоты

Нет, у меня задана частота PLL 72 MHz, она же и на АЦП идет. Что установлено именно 72 MHz, видел по многим сигналам - MCO, выход с DAC. Здесь всё точно.

Цитата(Golikov A. @ Mar 18 2014, 16:06) *
и оно же
вы же участвовали в той дискуссии? Или вы пропустили момент где ТС сказал что частоту загнал потому АЦП и не работало?

Про частоту уже сказал. Про выходное сопротивление источника - ЦАП - посмотрю еще раз, но пока не похоже:
• Задавал разную длительность выборки, при тактовой АЦП 72 МГц - удовлетворительно не получалось - шум, пики на весь размах питания.
• Задал тактовую АЦП 36 МГц - выходной сигнал (фрагмент треугольника после ADC->DMA->CPU->DAC) стал кривеньким, и по амплитуде меньше входного.
• Задал тактовую АЦП 18 MHz - выходной сигнал - какой и должен быть (надо посмотреть при минимальной длительности выборки)
• Входной треугольник (с ЦАП) не менялся, и выбросов на нем я не наблюдал (взгляну еще раз), независимо от частоты АЦП.
• Когда отключил буфер в ЦАП, напряжение треугольника заметно уменьшалось во время работы АЦП, процентов на 10. Но форма его не менялась, и выходной сигнал соответствовал входному.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 19 2014, 05:33
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Несколько снимков с осциллографа. Для тактовой частоты АЦП 72 МГц, и разного времени выборки в тактах.
Желтый сигнал - входной для АЦП1, треугольник со встроенного ЦАП1, буфер включен. Когда на нем "шум" - это время работы АЦП, накапливается массив. После этого - вывод.
Зеленый сигнал - выходной, программный вывод массива на ЦАП2.
181.5 такта

Прикрепленное изображение

фрагмент
Прикрепленное изображение

19.5 такта
Прикрепленное изображение

фрагмент
Прикрепленное изображение

7.5 такта
Прикрепленное изображение

фрагмент
Прикрепленное изображение

Если же задать тактовую частоту 18 MHz, АЦП работает без нареканий, даже при выборке 1.5 такта.
Чудо?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 19 2014, 08:05
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Так. Передаю по DMA по одному слову с ADC1 на DAC. Все работает нормально с любой частотой и временами выборок.
Прикрепленное изображение

Терзают смутные сомненья, что проблема в DMA. Там биты Circular есть и в регистрах DMA и в ADC...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 19 2014, 09:06
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



"Все чудесатее и чудесатее".
После заполнения массива DMA выдает запрос прерывания. В прерывании устанавливаю флаг FrameReady. В основном цикле проверяю этот флаг, и если он есть, останавливаю АЦП командой
ADC1->CR = ADC_CR_ADSTP;
Дальше переписываю массив в DAC.
Когда закомментировал ADC1->CR = ADC_CR_ADSTP; все стало нормально работать.
Не пойму, АЦП у меня останавливается или нет. sm.gif

upd. Видимо, все же, останавливается. Потому, что без ADC1->CR |= ADC_CR_ADSTART; в основном цикле новый кадр не собирается.
Как? Нигде его не торможу!
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 1 2014, 06:28
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Доложу, чего достиг.
На АЦП подаю тактовую частоту 72 МГц, запускаю по событию переполнения от таймера 2. Результаты преобразования записываются в массив через ПДП.
В одноканальном режиме - работает согласно документации.
В двухканальном interleave режиме - при разрешении 12 битов, только до частоты 4 МВыб/с (х 2 для двух каналов), вернее, до 72 / 17 = 4,23... если не нужна "круглая" частота. Независимо от ПДП совместного, или поодиночке для каждого АЦП, как предлагается в STM32F303xx silicon limitations. Уменьшая разрядность до 6 битов, получил частоту 6 МВыб/с (х 2). На более высоких частотах ПДП не успевает перебрасывать слова.
Прихожу к выводу, что пользы от двухканального режима меньше, чем хотелось бы. В одноканальном могу иметь 4,8 МВыб/с, вплоть до 72 / 14 = 5,14... Для 6 битов - до 9 МВыб/с.
DELAY, определяющая сдвиг между запусками АЦП1 и АЦП2, позволяет задать его ровно в середине времени запуска АЦП1 только для двух частот дискретизации, 4,8 МВыб/с и 8 МВыб/с. Первая частота невозможна для 12 битов, а вторая - вообще. В остальных случаях сдвиг будет отличаться на полтакта 72 МГц.

Буду ждать ревизии...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:55
Рейтинг@Mail.ru


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