Есть прибор в котором к LPC2362 подключен внешний чип по протоколу SPI для которого используется канал SSP0 в контроллере.
В чип нужно передавать поток данных частями по 2кб, при этом сам он может за раз переварить только 50байт, и сигнализирует ногой что готов получить следующие 50байт.
т.е. 2кб передаются кусочками по 50 байт по готовности их принять. Частота клока SPI от 3 до 6МГц.
Сейчас все сделано через FIFO и прерывания.
Хочется применить DMA, чтобы оптимизировать процесс.
В связи с этим возникли следующие вопросы:
1. FIFO SSP рассчитан на 8 фреймов, в моем случае это 8 байт. Если я запрограммирую DMA передать 50 байт, они сами между собой разберуться когда грузить данные в FIFO, а когда ждать пока в нем место появится?
2. Могу ли я как-нибудь сконфигурировать DMA, чтобы один раз дать ему 2кб блок, а далее без моего участия он передал их по SPI при этом следил когда внешний чип готов принять очередные 50 байт?
3. В общем каким образом в моем случае лучше скрестить DMA и SSP чтобы максимально разгрузить процессор?