Esta pregunta está más allá de mi pregunta anterior: Alternativas a SPI debido a EMI . Estoy jugando con la idea de diseñar mi propio bus de comunicación. Estaría agradecido si alguien pudiera echar un vistazo a mi diseño preliminar y decirme dónde estoy loco ...
Actualmente estoy usando un SPI de 2MHz que se transmite a través de cables de 10 cm a siete ADC en PCB separados (CS compartido, pero cada ADC tiene su propia línea MISO. Está golpeado), pero me gustaría reemplazarlo con algo diferencial para reducir EMI. El problema es que no hay muchos ADC con un bus diferencial, así que me pregunto si es posible diseñar mi propio bus. Al menos la capa física, y posiblemente el protocolo también.
Objetivos de diseño del nuevo bus:
- usar componentes físicamente pequeños
- bajo EMI
- no más de 4 cables de datos (dos pares)
- ancho de banda de > 300kbps de cada ADC. (> 2.1mbps en total)
Antes de escribirme como loco por pensar en esto, considera que puede no ser tan difícil hacerlo en un PSoC5 . En ese chip, ciertamente puedo diseñar mi propio protocolo en Verilog e implementarlo en hardware. Y hasta cierto punto, también puedo incluir los componentes de la capa física. Además, es posible que pueda tener siete de estas cosas al mismo tiempo, todas ejecutadas en paralelo en el maestro, una para cada esclavo para que pueda obtener un buen ancho de banda general.
Y aquí está mi idea preliminar:
Se basaría en I2C, ligeramente modificado para ayudarlo a conectarse a los componentes de la capa física. Las líneas SDA y SCL ahora son pares diferenciales. El par SDA tiene la propiedad OR-ing. Esto se logra usando un pin que solo puede conducir alto y uno que solo puede bajar. El par SCL es manejado exclusivamente por el maestro. La velocidad de datos se elevaría a al menos 1 mbps.
El maestro sería un PSoC5 con 7 módulos maestros. Los esclavos también serían PSoC5, con un módulo esclavo, y utilizarían el ADC integral.
Pensamientos:
- No estoy muy seguro de cuál es la mejor manera de implementar las resistencias de recuperación y los componentes de limitación de velocidad de rotación.
- Supongo que no necesito ninguna terminación. Si limito la velocidad de giro a aproximadamente 80 ns, debería ser bueno para un cable de 10 cm de longitud.
- Eso obviamente no es un transceptor diferencial adecuado. ¿Estoy perdiendo el tiempo tratando de hacer uno fuera de las puertas?
- Esas puertas no causan un sesgo. ¿Es probable que esto sea un problema?