SPI. нахрен клок и прочие енаблы. тупо выхлоп данных. естественно,
что перед отправкой сформированный пакет из 8-и битных данных
должен быть перековеркан в 10-ти битные. ну то есть входные 100 байт = 800 бит превращаются в 1000 бит или 125 байт. и эти 125 байт по DMA безо всяких там промежуточных прерываний отправляются на SPI. готово. межпакетные паузы внутри формируете с точностью до длины такта.
да, расход памяти и колупание софтом. но кто ж виноват, что у производителей нет нужного уарта сразу. можете на ПЛИС сделать свой. я вообще делал с буферами и сразу расчётом CRC.
ах да, наверное не всякий SPI можно завести на 115200 там, или вообще 9600.