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

 
 
> STM32F373R8 проблема с АЦП+ПДП и сторожем таймером, При работе с таймером в беск. цикле, замедляется сбор данных с АЦП
ZiB
сообщение May 17 2013, 10:11
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Добрый день!

Столкнулся с проблемкой на STM32F373R8 (возможно есть и на других мк, пока не было времени проверить).

Системная тактовая частота 12 МГц.

Работаю с АЦП1 (12 битное).
Предделитель АЦП = 2.
АЦП настроено на непрерывное преобразование с минимальным временем выборки.
Частота преобразований получается (12МГц/2)/(14 тактов одно преобразование) = ~430 кГц.

Данные с АЦП забирает ПДП (DMA) контроллер.

Все работает прекрасно.

Однако когда в коде встречается цилический доступ к регистрам сторожевого таймера, то частота преобразований падет до 190 кГц.

Код
    while (1)
    {
        IWDG->KR = 0xAAAA;
    }


Проверял с регистрами IWDG->RLR, IWDG->PR.

Активность таймера не влияет на ошибку (т.е. и со включенным и с выключенным таймером).

При увеличении времени выборки, т.е. при сниженнии частоты преобразования данная проблема исчезает.

Может кто сталкивался с данной проблемкой и знает, где почитать более детально о работе ПДП и задрежках на шинах ?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vlad_new
сообщение May 17 2013, 14:29
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



M3 делит шину между ядром и ДМА с коэффициентом 1:3. Как они делятся в М4 незнаю. Читать надо.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 18 2013, 04:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(vlad_new @ May 17 2013, 20:29) *
M3 делит шину между ядром и ДМА с коэффициентом 1:3. Как они делятся в М4 незнаю. Читать надо.
Хм.... Это где такое написано? Можно ссылку?
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 18 2013, 06:11
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(jcxz @ May 18 2013, 07:27) *
Хм.... Это где такое написано? Можно ссылку?

Нужно искать в reference manual раздел Memory and bus architecture
что-то типа такого:
Цитата
BusMatrix
The BusMatrix manages the access arbitration between the core system bus and the DMA
master bus. The arbitration uses a Round Robin algorithm. In connectivity line devices, the
BusMatrix is composed of five masters (CPU DCode, System bus, Ethernet DMA, DMA1
and DMA2 bus) and three slaves (FLITF, SRAM and AHB2APB bridges). In other devices,
the BusMatrix is composed of four masters (CPU DCode, System bus, DMA1 bus and
DMA2 bus) and four slaves (FLITF, SRAM, FSMC and AHB2APB bridges).
AHB peripherals are connected on system bus through a BusMatrix to allow DMA access.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 18 2013, 17:04
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(_Артём_ @ May 18 2013, 12:11) *
Нужно искать в reference manual раздел Memory and bus architecture
что-то типа такого:
Просматривал все разделы связанные с AHB Bus Matrix. Нигде не нашёл численных значений приоритетов доступа к шине. LPC17xx.

Кста - LPC1778 нормально работает при интенсивных параллельных DMA-транзакциях с двумя SSP (один на 20МГц, другой - 30МГц), программно-эмулированном UART (ещё один канал 9600*16 Гц запросы GPIO->GPDMA) и при этом - параллельной работе процессора с периодическим обращением к другой различной периферии. Итого сейчас - до 5 параллельно работающих GPDMA-каналов + работа CPU в многозадачной ОС со множеством активной периферии.
Правда использую два SSP сидящие на разных APB-мостах. GPIO также - прямо на AHB.
Наивысший приоритет доступа к шине выставлен для DMA (в LPC1778 можно задать приоритет доступа к шине для GPDMA выше чем CPU).
Скоро наверное туда ещё добавлю непрерывный поток ADC->GPDMA хотя не на такой большой частоте как у топикстартера. Посмотрим...

Да - системная CLK у меня ==120МГц.
Итого в сумме поток через DMA идёт интенсивнее чем у топикстартера (даже относительно системной CLK). При этом вроде проблем не наблюдается.
А зачем топикстартеру такая низкая системная CLK - 12МГц? Может просто попробовать поднять? cool.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 18 2013, 20:49
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(jcxz @ May 18 2013, 20:04) *
Просматривал все разделы связанные с AHB Bus Matrix. Нигде не нашёл численных значений приоритетов доступа к шине. LPC17xx.

Как-то у них неподробно описано(UM10360.pdf):
Цитата
2.5 AHB arbitration
The Multilayer AHB Matrix arbitrates between several masters. By default, the Cortex-M3
D-code bus has the highest priority, followed by the I-Code bus. All other masters share a
lower priority.

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ZiB   STM32F373R8 проблема с АЦП+ПДП и сторожем таймером   May 17 2013, 10:11
- - Flexz   Тут еще другое интересно - в других процессорах се...   May 17 2013, 19:31
- - ZiB   Спасибо за ответы. Я пока полностью не разобрался....   May 18 2013, 03:04
- - ZiB   Это, то все понятно (что ЦПУ и ПДП делят шину и ес...   May 18 2013, 06:53
- - Golikov A.   может обращение к сторожевому таймеру вынесено в в...   May 18 2013, 08:10
- - vlad_new   Чего тут предполагать, когда АЦП и сторожевик сидя...   May 18 2013, 10:18
- - ZiB   С чего это? Это где такое написано ?   May 18 2013, 11:17
- - Flexz   Раздел System architecture, почти вся периферия, к...   May 18 2013, 16:32
- - ZiB   Назависимый сторожевой таймер, сюдя по описанию од...   May 19 2013, 03:44
|- - jcxz   Работать на бОльшей и много спать.   May 19 2013, 03:49
|- - ZiB   Цитата(jcxz @ May 19 2013, 10:49) Работат...   May 19 2013, 11:17
|- - jcxz   Мне трудно судить про ST, я работаю в основном с N...   May 19 2013, 16:39
- - ZiB   Сходил за платой... Нашел место, но не понял прич...   May 19 2013, 06:45
- - ZiB   Да, есть 4-е уровня приоритета для ПДП, но у меня ...   May 20 2013, 02:26
|- - jcxz   Цитата(ZiB @ May 20 2013, 08:26) Да, есть...   May 20 2013, 04:37
- - Flexz   В STM-ках приоритет Bus master-ов не контролируетс...   May 20 2013, 06:17
- - vlad_new   Поставте в while несколько __nop(). Дайте DMA немн...   May 20 2013, 13:53
- - ZiB   Дело, в том, что при любом обращении (хоть в цикле...   May 21 2013, 02:58


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:31
Рейтинг@Mail.ru


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