2 toshas
Ресурсов меги16 вполне достаточно. По прерыванию принимаешь отсчёты побайтно от внешнего ацп и складываешь в буфер buf_0. Одновременно по прерыванию осуществляешь передачу по usart предварительно заполненного буфера buf_1. Причём, скорость передачи по usart должна быть больше или равна скорости оцифровки сигнала, то бишь, работы spi. Если скорость ~100к, то смело можно писать на C. Если выше, то только asm. И не надо бояться если тебе надо будет обеспечить нестандартную скорость, скажем, 220кбит/с по usart. Как со стороны компа, так и со стороны контроллера это обеспечить просто.