Como usted probablemente sepa, a menudo uno tiene la opción de implementar una función, ya sea hardware o software. Entiendo que esto es un hardware en lugar de un foro de software, pero es posible que desee considerar el hecho de que esto se puede hacer completamente en software.
Aquí hay documentación completa sobre el proyecto: enlace
En respuesta al comentario, añadiré algunos antecedentes. En general, los módems, ya sea teléfono o radio, usan tonos de varias frecuencias para transmitir datos. En el extremo de transmisión, uno necesita generar tonos, y el receptor necesita detectarlos. La sincronización y la frecuencia precisa son importantes para una operación exitosa.
Para generar tonos de una frecuencia particular, se pueden usar circuitos puramente analógicos que emplean inductores y capacitores de precisión. Piense en los teléfonos de tonos de la década de 1960. Alternativamente, se puede usar un convertidor digital a analógico (DAC) y un microcontrolador para generar tonos precisos, generalmente a un costo mucho menor.
En el extremo receptor también se puede usar un detector de tono puramente analógico, una vez más con inductores de precisión y condensadores, para detectar tonos de una frecuencia predeterminada. Un inconveniente clave de esto es que se requiere un circuito sintonizado separado para que se detecte cada frecuencia de tono. La alternativa digital es utilizar un convertidor analógico a digital (ADC) para convertir la señal entrante al formato digital y pasarla a un microcontrolador. En el procesador, generalmente se ejecuta una transformada rápida de Fourier (FFT) para detectar las frecuencias de tono contenidas en la señal.
Otro refinamiento es que muchos microcontroladores diseñados para procesamiento digital de señales tendrán ADC y DAC integrados.