Если нужно сделать квадратурные генераторы до 20 кГц, то это можно
достаточно просто реализовать на STM32 с двумя ЦАП TPC116S1 от
компании 3PEAK. ЦАП подключены к процессору по интерфейсу I2S. Отсчёты синусоиды на частоте генерации рассчитываются при помощи CORDIC алгоритма, с нужным фазовым сдвигом передаются в ЦАП при помощи DMA. Мы делали подобное решение для генерации сигналов со сложной модуляцией. На частоте дискретизации сигнала 260 кГц занимает примерно 30% времени процессора AT32F437 от Artery на частоте ядра 280 МГц. Но у вас задача проще, думаю, что с лихвой хватит гораздо менее производительного процессора.