ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
1206744
klen (08.05.2022 13:30, просмотров: 2913)
stm32h750: немогу понять в чем косяг - dma иногда пропускает запросы в моменты нагрузки eth? 

схема следующая

таймер tim1 генерит запросы на обмен с частотой 25мгц

через dma mux этот сигнал передается на вход dma2_stream0

режим циркулярный

dma перекладывает данные из переферии в озу.


все бы хорошо и красиво работает, но ... при пропихивании пакетов через eth модуль

что то происходит и циркулярный буфер ИНОГДА! прокручивается на несколько отсчетов....


выглядит как будто dma иногда пропускает запросы от таймера.

когда обмена по сети нет - все шикардосно работает как часики.

какая связь между dma и eth кроме того что в одном (к сожалению) домене находятся? шина ahb1 лагает?

но позвволе! модуль dma1 и eth хоть и находятся в одном домене но и сами и таргеты висят на разных сосках шинной матрицы

обмен dma и eth(у него свой dma) должны маршрутизироватся и не пересекатся - таргеты (тоесть буфера ) тоже на разных сосках висят.

специально все потоки разводил чтобы ничего не встречалось и крест накрест в шинном маршрутизаторе разводилось.


есть наблюдение которое не улучшает мое самочувствие - при снижении частоты запросов до 20МГц косяг либо пропадает вовсе либо его вероятность настолко мала что тестированием я его не дождался.

даже думать не хочется что гдето чтото не успевает - это долно либо работать либо нет, а не так что то буду то не буду.


где копать? есть идеи?