Нужно получить регулирумую с компьютера синусоиду (частота, фаза, амплитуда), применил для этого микросхему dds AD9834.
В общем, вот картинка с Circuit Note CN-0156 (Как выполнять контроль амплитуды на этом dds) от того же Analog Devices

В общем, рекомендуется это делать с помощью дополнительного ЦАП - увеличиваем напряжение ЦАП - уменьшаем амплитуду синусоиды.
Эти устройства работают по интерфейсу SPI. Таких генераторов синусоид с контролем амплитуды нужно 4 шт, их нужно подключить к одному микроконтроллеру Atmega16. Т.е. (всего 4х3+4х3=24) количество используемых ножек можно как-то уменьшить?
Вся проблема в том, что у этих устройств (dds ad9834 и dac ad5620) нет пина SS, т.е. как я понимаю, не получится подключить всё к трем выходам микрокантроллера.
Как решить проблему? Может существуют какие-то промежуточные элементы с ~12 входами (3 SPI, остальные SS1, SS2, ...) и ~50 выходами, которые бы работали по интерфейсу SPI, но вход был бы с пином SS, а выход на соответствующие 3 выходные пина?
Можно, конечно, увеличить количество атмег... что посоветуете?
К тому же, несколько реализаций программного SPI... с учетом того, что аппаратный SPI будет задействован в другом деле как Slave... что посоветуете?
Может ли 1 Атмега16/32 работать по интерфейсу SPI на одни выходы как Master, на другие как Slave? Spi оба программные, или 1 программный, один аппаратный.
Кстати, как реализовать программный SPI? Для сигнала SCLK нужно таймер использовать? Можно ли создать несколько программных SPI (например 4 или лучше 8 ) на разных пинах Атмега16/32 (МК как Master), при этом один таймер использовать для всех четырех программных SPI? (исходя из того, что в атмеге 3 таймера, а один-два могут еще в другом деле понадобится)


