-
- Не имею опыта с PMP, но DMA на 24-х поднимал. Как я понял, приём и передача на одной скорости. Они могут быть полностью синхронными? Если да, то одного прерывания достаточно для обоих операций, и приёма, и передачи. Nikolay_Po(585 знак., 11.04.2018 23:08)
- Но, как я понял, DMA отрабатывает транзакцию по сигналу прерывания, и в транзакции четко указано - что источник, что приемник. Как одним прерыванием, обрабатываемым DMA, можно сделать две транзакции? Evgeny_CD(73 знак., 11.04.2018 23:16)
- DMA генерирует прерывание, а не прерывание запускает DMA. Настраивайте канал на автоматическую работу, используя подходящий триггер. И пусть работают синхронно. - Nikolay_Po(11.04.2018 23:25)
- не понял. Each DMA channel can select from up to 64 hardware triggers to initiate a DMA transfer. The trigger sources are generally the device-level interrupts from peripheral modules, as well as the external interrupts and interrupt-on-change Evgeny_CD(157 знак., 11.04.2018 23:28)
- Нет. Триггером может быть переполнение таймера. И совсем необязательно при этом разрешать прерывание таймера. Связь ПДП с контроллером прерываний лишь в том, что у них могут быть общие источники запуска. Nikolay_Po(183 знак., 11.04.2018 23:58 - 12.04.2018 00:01)
- Я понимаю, что есть физический сигнал прерывания, и он заведен на контроллер прерываний и на DMA. В контроллере прерываний я могу не разрешить обрабатывать его, и процессор про него не узнает. Но если я у канала DMA запрограммировал, что именно Evgeny_CD(76 знак., 12.04.2018 00:01)
- Ну так дайте ему такой источник, который будет запускать ПДП с нужным периодом. И вообще, вот про возможные режимы передачи данных: One-Shot, Repeated or Continuous. Выбирайте Continuous. Nikolay_Po(289 знак., 12.04.2018 00:16 - 00:30)
- Спасибо. - Evgeny_CD(12.04.2018 01:22)
- Ну так дайте ему такой источник, который будет запускать ПДП с нужным периодом. И вообще, вот про возможные режимы передачи данных: One-Shot, Repeated or Continuous. Выбирайте Continuous. Nikolay_Po(289 знак., 12.04.2018 00:16 - 00:30)
- Я понимаю, что есть физический сигнал прерывания, и он заведен на контроллер прерываний и на DMA. В контроллере прерываний я могу не разрешить обрабатывать его, и процессор про него не узнает. Но если я у канала DMA запрограммировал, что именно Evgeny_CD(76 знак., 12.04.2018 00:01)
- Нет. Триггером может быть переполнение таймера. И совсем необязательно при этом разрешать прерывание таймера. Связь ПДП с контроллером прерываний лишь в том, что у них могут быть общие источники запуска. Nikolay_Po(183 знак., 11.04.2018 23:58 - 12.04.2018 00:01)
- не понял. Each DMA channel can select from up to 64 hardware triggers to initiate a DMA transfer. The trigger sources are generally the device-level interrupts from peripheral modules, as well as the external interrupts and interrupt-on-change Evgeny_CD(157 знак., 11.04.2018 23:28)
- Что мешает у двух каналов DMA сделать одинаковый сигнал на активацию? Один будет передавать, другой принимать. AlexBi_(17 знак., 11.04.2018 23:22,
)
- Блин, я тормоз! Спасибо, понял идею. - Evgeny_CD(11.04.2018 23:25)
- DMA генерирует прерывание, а не прерывание запускает DMA. Настраивайте канал на автоматическую работу, используя подходящий триггер. И пусть работают синхронно. - Nikolay_Po(11.04.2018 23:25)
- Но, как я понял, DMA отрабатывает транзакцию по сигналу прерывания, и в транзакции четко указано - что источник, что приемник. Как одним прерыванием, обрабатываемым DMA, можно сделать две транзакции? Evgeny_CD(73 знак., 11.04.2018 23:16)
- Не имею опыта с PMP, но DMA на 24-х поднимал. Как я понял, приём и передача на одной скорости. Они могут быть полностью синхронными? Если да, то одного прерывания достаточно для обоих операций, и приёма, и передачи. Nikolay_Po(585 знак., 11.04.2018 23:08)