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

 
 
> STM32F UART + DMA на чтение, Как реализовать чтение через DMA для потока данных?
krdmitry
сообщение Jul 14 2012, 10:45
Сообщение #1


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

Группа: Участник
Сообщений: 160
Регистрация: 24-11-05
Из: СПб
Пользователь №: 11 354



Всем привет.

Можно ли на STM32F сделать чтение данных из UART в программный буфер FIFO через DMA? Размер принимаемых данных - произвольный, от 1 байта, поток от модема. Киньте примером пожалуйста, если есть опыт подобной реализации.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kan35
сообщение Feb 4 2013, 16:17
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Он итак в циркулярном режиме.
Вы просто проверяете наличие данных в ДМА памяти, но не это цель. А цель сделать все максимально аппаратно. То есть без участия процессора.
В моем варианте при зполнении половинок буфера ДМА (или как вариант разных буферов в процессорах F2 и F4) возникают прерывания, в которых данные забираются. При паузе в передаче - данные так же успешно забираются из прерывания IDLE line. Никаких поллингов!
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 5 2013, 05:42
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Понятно. У вас под ОС видимо заточка, а у меня под луп.
Цитата(kan35 @ Feb 4 2013, 20:17) *
Вы просто проверяете наличие данных в ДМА памяти
Да. Я ДМА как фифо использую.
Кстати, на передачу у вас тоже ДМА задействовано?
У меня нет. Красивого решения не придумалось...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- krdmitry   STM32F UART + DMA на чтение   Jul 14 2012, 10:45
- - KnightIgor   Цитата(krdmitry @ Jul 14 2012, 12:45) Мож...   Jul 14 2012, 11:56
|- - krdmitry   Цитата(KnightIgor @ Jul 14 2012, 15:56) М...   Jul 14 2012, 12:11
|- - e-serg   Цитата(krdmitry @ Jul 14 2012, 21:11) 3. ...   Jul 14 2012, 14:45
|- - KnightIgor   Цитата(krdmitry @ Jul 14 2012, 14:11) Иго...   Jul 14 2012, 19:20
|- - krdmitry   Цитата(KnightIgor @ Jul 14 2012, 23:20) П...   Jul 16 2012, 07:18
|- - KnightIgor   Цитата(krdmitry @ Jul 16 2012, 09:18) Да,...   Jul 16 2012, 08:02
|- - SSerge   Цитата(KnightIgor @ Jul 16 2012, 15:02) П...   Jul 16 2012, 20:20
|- - KnightIgor   Цитата(SSerge @ Jul 16 2012, 22:20) Как-т...   Jul 17 2012, 07:18
|- - demiurg_spb   Цитата(KnightIgor @ Jul 17 2012, 11:18) Е...   Jul 17 2012, 08:06
- - kan35   Здесь прерывания на заполнение половины буфера и б...   Jul 15 2012, 15:35
- - diwil   Цитата(krdmitry @ Jul 14 2012, 14:45) Все...   Jul 16 2012, 07:30
|- - krdmitry   Цитата(diwil @ Jul 16 2012, 11:30) Есть. ...   Jul 16 2012, 07:53
- - kan35   krdmitry, поясните, а то из референс мануала не вп...   Jul 16 2012, 08:45
|- - krdmitry   Цитата(kan35 @ Jul 16 2012, 12:45) krdmit...   Jul 16 2012, 09:08
- - diwil   - IDLE прерывание это когда контроллер фиксирует п...   Jul 16 2012, 09:07
- - kan35   ой, да, diwill krdmitry, спасибо за ответ Я вот то...   Jul 16 2012, 09:57
- - kan35   Я сделал драйвер для USART, который работает через...   Sep 28 2012, 06:04
- - Rash   А есть ли возможность аппаратно увидеть что началс...   Jan 9 2013, 14:51
|- - jcxz   Цитата(Rash @ Jan 9 2013, 20:51) А есть л...   Feb 7 2013, 07:44
|- - demiurg_spb   Цитата(jcxz @ Feb 7 2013, 11:44) Всё прек...   Feb 7 2013, 08:12
|- - _Артём_   Цитата(jcxz @ Feb 7 2013, 09:44) копирую ...   Feb 7 2013, 11:29
||- - jcxz   Цитата(_Артём_ @ Feb 7 2013, 17:29) Почем...   Feb 7 2013, 13:40
|- - kan35   Цитата(jcxz @ Feb 7 2013, 11:44) Если вер...   Feb 8 2013, 12:10
|- - AHTOXA   А может быть, потери в таком случае и не случится?...   Feb 8 2013, 16:04
|- - jcxz   Цитата(kan35 @ Feb 8 2013, 18:10) Сброс D...   Feb 9 2013, 09:33
|- - AHTOXA   Цитата(jcxz @ Feb 9 2013, 15:33) Потеря м...   Feb 9 2013, 14:33
|- - jcxz   Цитата(AHTOXA @ Feb 9 2013, 20:33) Ну так...   Feb 9 2013, 17:16
|- - AHTOXA   Цитата(jcxz @ Feb 9 2013, 23:16) Я также ...   Feb 9 2013, 19:44
|- - jcxz   У меня - нет. Ещё на первое своё сообщение я получ...   Feb 10 2013, 08:42
- - Rash   Отвечу сам на свой вопрос. Экспериментально провер...   Jan 23 2013, 14:01
- - kan35   Если я правильно понимаю в чем проблема - то можно...   Jan 27 2013, 12:25
- - Rash   Задача такая: хотелось бы контролировать что начал...   Jan 27 2013, 14:55
|- - demiurg_spb   В этой идее есть недостаток. Счётчик ДМА может ещё...   Jan 28 2013, 05:20
|- - kan35   Цитата(demiurg_spb @ Jan 28 2013, 09:20) ...   Feb 3 2013, 07:06
|- - demiurg_spb   А зачем вообще что-то ресетить? Ведь у дма есть ци...   Feb 3 2013, 07:39
|- - kan35   Цитата(demiurg_spb @ Feb 5 2013, 09:42) П...   Feb 6 2013, 16:24
- - Rash   Цитата(jcxz @ Feb 7 2013, 11:44) От колли...   Feb 7 2013, 08:15
- - kan35   Уважаемый jcxz, Назвал буфер ДМА стеком, ну и что ...   Feb 9 2013, 11:52
- - kan35   Да, я FIFO назвал стеком, предайте анафеме меня. Ч...   Feb 9 2013, 17:49
|- - jcxz   Я ещё в самом первом своём посте в эту тему написа...   Feb 9 2013, 19:14
- - uriy   Не могу никак запустить UART1 DMA на прием. По пре...   Apr 5 2015, 15:17
- - PeterBr   пример кода работы DMA->USART DMA-USART   Apr 14 2016, 13:36
- - golf2109   вот ссылки dma-to-usart uart-dma-out dma-uart-i...   Apr 15 2016, 00:27
- - d_el   Ловля конца пакета на IDLE. Видно задержку в 1,5 ...   Aug 3 2016, 21:38
- - Obam   Цитата(d_el @ Aug 4 2016, 01:38) Ловля ко...   Aug 4 2016, 07:29


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:44
Рейтинг@Mail.ru


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