Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

STM32F103, непонятки с DMA

Непрочитано 31.10.2014, 11:42  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от eddy Посмотреть сообщение
Нет отладчика кроме printf ☺
Это писец! Без отладчика и анализатора там делать нечего, увы. В частности из-за того, что таймер загружается данными OW-шины заранее, а реакция датчика проверяется в следующем цикле.
Вот эпюры OW на голом таймере (два канала + одно прерывание) STM8S, там нет ДМА.
На первой картинке: запускается таймер и сразу вечный цикл с инверсией бита. Первое прерывание не соответствует никакому импульсу, потому что в этом прерывании только заносятся данные для последующего импульса.
Миниатюры:
Нажмите на изображение для увеличения
Название: tim_ow_1.png
Просмотров: 52
Размер:	69.8 Кб
ID:	71212   Нажмите на изображение для увеличения
Название: tim_ow_2.png
Просмотров: 36
Размер:	66.2 Кб
ID:	71213   Нажмите на изображение для увеличения
Название: tim_ow_5.png
Просмотров: 44
Размер:	72.4 Кб
ID:	71214  

Нажмите на изображение для увеличения
Название: tim_ow_6.png
Просмотров: 48
Размер:	72.6 Кб
ID:	71215  
Реклама:
STM32F0 вне форума  
Непрочитано 31.10.2014, 22:44  
sagun
Прохожий
 
Регистрация: 03.11.2010
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sagun на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от STM32F0 Посмотреть сообщение
Это писец! Без отладчика и анализатора там делать нечего, увы. В частности из-за того, что таймер загружается данными OW-шины заранее, а реакция датчика проверяется в следующем цикле.
Вот эпюры OW на голом таймере (два канала + одно прерывание) STM8S, там нет ДМА.
На первой картинке: запускается таймер и сразу вечный цикл с инверсией бита. Первое прерывание не соответствует никакому импульсу, потому что в этом прерывании только заносятся данные для последующего импульса.
Порядок в каком контроллер устройства заполняет DMA буферы, определяется производителем. Контроллер может писать в первый свободный DMA буфер, либо просто писать подряд (дескрипторы DMA буферов в данном случае образуют односвязный кольцевой список) во все буфера и т.д.
Отправляйте все по кольцу.
sagun вне форума  
Непрочитано 31.10.2014, 22:59  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Интересно, поможет это ТС'у?
STM32F0 вне форума  
Непрочитано 01.11.2014, 15:32  
sagun
Прохожий
 
Регистрация: 03.11.2010
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sagun на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

..................................in/off
sagun вне форума  
Непрочитано 14.11.2014, 13:25  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Охренеть!
Я с этого DMA просто ...
теперь ничего не работает. Воткнул (даже не видоизменяя) старый рабочий код - хрен там!
Мде.
Ну прямо вообще...
Хоть бери, да делай на прерываниях!
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 14.11.2014, 13:53  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Идиотизм какой-то: чтобы передача DMA правильно работала каждый раз, необходимо сначала целиком сконфигурировать оба канала DMA! Это что за нафиг?

Но добить надо. Буду ковыряться в даташите: сфига ли каждый раз надо канал DMA заново настраивать? Это ж охренеть как много времени тратится! Смысла в этом случае никакого от DMA нет.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!

Последний раз редактировалось eddy; 14.11.2014 в 14:00.
eddy вне форума  
Непрочитано 14.11.2014, 14:28  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от eddy Посмотреть сообщение
чтобы передача DMA правильно работала каждый раз, необходимо сначала целиком сконфигурировать
Что там конфигурировать-то? 3-4 регистра на канал. И то можно не всё переписывать (кажется DMA_SxNDTR может и сам перегрузиться), адрес периферии можно не менять, только адрес памяти загрузить и канал разрешить.
Сообщение от eddy Посмотреть сообщение
сфига ли каждый раз надо канал DMA заново настраивать? Это ж охренеть как много времени тратится
Если пересылка длинная, то оно того стоит. На 1-2 байта конечно смысла мало.

Сообщение от eddy Посмотреть сообщение
Смысла в этом случае никакого от DMA нет.
Ну, ядро-то разгружается. Нет?
_Артём_ вне форума  
Непрочитано 14.11.2014, 15:42  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от _Артём_ Посмотреть сообщение
адрес периферии можно не менять, только адрес памяти загрузить и канал разрешить.
А вот не получается: счетчик почему-то неправильный выходит. Если сбросить DMA и полностью настроить, тогда все ОК.
Сообщение от _Артём_ Посмотреть сообщение
Если пересылка длинная, то оно того стоит. На 1-2 байта конечно смысла мало.
Посылка 1-wire. 1 байт посылки == 1 бит данных. В принципе, получается прилично. Но хотелось-то как можно короче сделать функцию.
Сообщение от _Артём_ Посмотреть сообщение
Ну, ядро-то разгружается. Нет?
Разгружается. На время N*110мкс (N - количество переданных бит).

Черт! Там еще и таймер надо заново переконфигурировать.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!

Последний раз редактировалось eddy; 14.11.2014 в 15:50.
eddy вне форума  
Непрочитано 14.11.2014, 16:54  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от eddy Посмотреть сообщение
А вот не получается: счетчик почему-то неправильный выходит. Если сбросить DMA и полностью настроить, тогда все ОК.
Странно, вроде пишут что:
Цитата:
Once the transfer has completed, this register can either stay at zero (when the stream is in
normal mode) or be reloaded automatically with the previously programmed value in the
following cases:
– when the stream is configured in Circular mode.
– when the stream is enabled again by setting EN bit to '1'
Хотя я не проверял - может не так их понял.
Сообщение от eddy Посмотреть сообщение
Посылка 1-wire. 1 байт посылки == 1 бит данных. В принципе, получается прилично. Но хотелось-то как можно короче сделать функцию.
Функцию инициализации? Она же и так никакая.
Сообщение от eddy Посмотреть сообщение
Разгружается. На время N*110мкс (N - количество переданных бит).
Черт! Там еще и таймер надо заново переконфигурировать.
А таймер в каком режим используете?
_Артём_ вне форума  
Непрочитано 14.11.2014, 17:10  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от _Артём_ Посмотреть сообщение
Странно, вроде пишут что:
Я тоже так сначала и сделал, но фигвам.
Цитата:
Функцию инициализации? Она же и так никакая.
Больше трех десятков строк, однако.
Цитата:
А таймер в каком режим используете?
ШИМ, понятное дело. DMA обновляет значения в CCR4 (передача), а по захвату с CCR3 (прием) пинается DMA на запись.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STM32 - Tips 'N Tricks nahimovv ARM 28 14.10.2024 06:42
STM32F103 ADC+DMA Nik_UFO Микроконтроллеры, АЦП, память и т.д 11 24.08.2016 11:57
Tim19 -> DMA -> значение ADC в memory kvark85 ARM 6 03.06.2014 15:00
STM32 Повторный запуск DMA Nik_UFO Микроконтроллеры, АЦП, память и т.д 2 07.03.2012 17:38
DMA в ATxmega vav618 Микроконтроллеры, АЦП, память и т.д 1 03.04.2010 10:57


Часовой пояс GMT +4, время: 18:15.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.