а вы не думали что DMA будет забирать данные с регистра SPI быстрее чем он их туда положит ? синхронизация толжна быть однозначно. Следовательно если есть синхронизация значит процессом копирования не DMA управляет а в вашем случае SPI. А внешний запуск DMA нужен для запуска копирования в режиме не требующего синхронизации, конечно можно еще много всяких левых вариантов придумать.
В вашем случае невижу никаких проблем.
Если таймер внешний, то выход заведите на внешнеее прерывание, можно даже FIQ. В прерывании запускаете SPI. Естественно DMA должен быть запрограммирован на нужный размер блока данных который вы желаеете получить, надеюсь вы не по 1 байту пересылаете

. Это в том случае если SPI работает в режиме MASTER. Если SPI работает в режиме SLAVE то тут вобще сказка, ничего запускать не надо, создаете на DMA кольцевой буфер, запускаете ПДП и SPI и все будет автоматом крутится, а по внешнему прерыванию начинаете вашу обработку, примерно так.