Haga que Arduino y 89C52 se hablen entre sí

4

Estoy intentando crear un proyecto en el que debo hacer que Arduino y Atmel 89C52 hablen con cada uno otro.

Sé que esto se puede lograr a través de UART pero el problema es que mi Arduino ya está usando sus puertos TX / RX. ¿Hay alguna manera de hacer que hablen por otros medios? ¿Te gusta la interfaz I2C o SPI? ¿Sería suficiente UART suave? Todo el proyecto depende de entonces hablar con los demás de manera efectiva.

    
pregunta echo_salik

2 respuestas

5

Es absolutamente posible hacer que hablen :) Arduino tiene una función para múltiples comunicaciones RX / TX. Se puede lograr con serie de software . En lo que respecta a la conexión de Arduino con 89c52 con I2C, solo es posible cuando se escribe el protocolo I2c desde el lado de 89c52 (AT89C52 no tiene puerto I2C de hardware).

Entonces, si su puerto Serial de Arduino está ocupado por cualquier otro dispositivo, puede cambiar ese pin al software serial (es decir, transferir el propósito a otros pines) y usar ese puerto serial para establecer comunicación con 89c52.

EDIT

Sí, puedes usar la interfaz SPI, pero esa no es mi elección;) ya que requiere 3 cables y solo está diseñado para distancias cortas. Y también necesitas tener At89s52 no at89c52.

    
respondido por el Arjun
2

Con hardware adicional puede cambiar las líneas UART de Arduino entre el Atmel 89C52 y el otro dispositivo. Estos hardware se denominan multiplexores y, por algunos pines de control, está disponible para intercambiar entre líneas analógicas o digitales. De esta manera, solo podría comunicarse con un dispositivo a la vez, por lo que si se trata de un problema, quédese con la serie de software.

Para dar un ejemplo, veamos CD4052B

Es un multiplexor / demultiplexor analógico diferencial de 4 canales, lo que significa que puede intercambiar dos líneas (RX, TX en su caso) entre cuatro dispositivos diferentes.

ConectaRXyTXaX-COMyY-COMyconAyBcambianentrelosdispositivos.

Se podría seleccionar un dispositivo / canal de acuerdo con la tabla anterior.

    
respondido por el Bence Kaulics

Lea otras preguntas en las etiquetas