|
|
  |
STM32 несколько периферийных устройств на DMA |
|
|
|
Apr 16 2015, 05:16
|

Гуру
     
Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606

|
Использую UART TX DMA. Хочу добавить DMA на ADC. В ref man очень странное предложение: Цитата The 7 requests from the peripherals (TIMx[1,2,3,4], ADC1, SPI1, SPI/I2S2, I2Cx[1,2] and USARTx[1,2,3]) are simply logically ORed before entering the DMA1, this means that only one request must be enabled at a time. Refer to Figure 50: DMA1 request mapping. Как это понимать? Я не смогу использовать больше одного канала DMA? Что они имеют ввиду?
|
|
|
|
|
Apr 16 2015, 17:23
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(Golikov A. @ Apr 16 2015, 10:07)  это означает что только один запрос должен быть включен одновременно. А проверить не судьба... или проще толпой в прострации бродить??? За все линейки не буду говорить... но на F050, 051 два события на один канал влёгкую... одновременно... Там главное не то чтобы они не были включены одновременно... а чтобы события были заведомо разнесены по времени... чтобы не перекрывались...
Сообщение отредактировал HHIMERA - Apr 16 2015, 17:24
|
|
|
|
|
Apr 17 2015, 07:06
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(Golikov A. @ Apr 17 2015, 08:03)  Это и ежу понятно что если у вас стоит ИЛИ по событиям то схема не может различить какой из 2 включенных вызывало это событие, потому и говорят что должно в одно время быть включено только 1 событие, чтобы была определенность. Не надо трактовать референс по своему... Фраза "только один запрос должен быть включен одновременно" не верна по сути... Если есть необходимость... можно и три, четыре запроса включить одновременно на один канал... например от таймера, если позволяет железо и это соответствует задаче... А адреса приема и записи могут и не меняться... и перенастройки может не быть... и канал ДМА вообще может работать в циклическом режиме... Т.е. для понимания происходящего нужно рассматривать все варианты... а не только UART и ADC...
Сообщение отредактировал HHIMERA - Apr 17 2015, 07:07
|
|
|
|
|
Apr 17 2015, 07:57
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата this means that only one request must be enabled at a time ну скажите тогда ваш правильный перевод... заодно привидите пример, пожалуйста, что у вас ДМА может делать по одним и тем же адреса, можно и циклическим при наступлении событий скажем 2 канала 1. Пришел символ по UART 2. Отправлен символ по SPI 3. таймер достиг максимального значения Понятно дело что обязанность быть включенным одному канала связана не с ограничением прибора, а с ограничением здравого смысла...
|
|
|
|
|
Apr 17 2015, 08:17
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(Golikov A. @ Apr 17 2015, 10:57)  ограничением здравого смысла... Здравый смысл не должен иметь ограничений... иначе это уже не здравый смысл, а с ограничениями... Я вам привёл реальный пример... который успешно применяется... таймера... Включение двух запросов (трёх, четырёх) на один канал позволяет экономить каналы ДМА (они не безграничны) на некоторых задачах... при работе с портом, например... Поэтому ваша настойчивая попытка троллинга мне не интересна...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|