Comunicación USART con Arduino DUE

Hola a todos,

Estoy realizando un proyecto el cual tengo que hacer una modulación de una señal que proviene de un LED que parpadea a altas frecuencias (cerca de 20 kHz). Esta señal que emite el LED la envío a la placa Arduino DUE. La codificación que voy a realizar por hardware se trata de una codificación Manchester Biphase Mark Code(BMC) y es la siguiente:

El caso es que como se ve en la imagen, debería enviar dicha señal al hardware de la modulación enviando por un lado Data y por el otro Clock. He estado investigando un poco sobre el tema sobre la comunicación USART y he visto que se hacen a través de los pines Tx y SCK (Reloj) si no me equivoco, aún así no me queda del todo claro. Imagino que previamente habría que hacer un pequeño código el cual por más que busco no doy con el adecuado y hasta entonces estoy dando palos de ciego…

Agradecería mucho vuestra ayuda.

Captura.JPG

Entonces, ¿cuál es el problema?

Google : Arduino Manchester y obtuve esto

ard_newbie:
Entonces, ¿cuál es el problema?

El problema es que no sé enviar los datos desde el Arduino al hardware que tengo montado en la protoboard... soy nuevo en Arduino, perdonad mi ignorancia.

surbyte:
Google : Arduino Manchester y obtuve esto

https://github.com/mchr3k/arduino-libs-manchester

Hola surbyte, gracias por tu respuesta.

He estado mirando el enlace que has adjuntado pero por lo que puedo ver no es compatible con el DUE (SAM3X8E) ya que solo admite los siguientes:

ATmega328
ATmega8
ATMega32U4
ATtiny84 (44, 24)
ATtiny85 (45, 85)

De todas formas entiendo que lo único que necesitaría es establecer una comunicación por SPI, sin entrar dentro de una modulación Manchester ya que ya está montada en la protoboard no?

Gracias de antemano

Bueno ese es mi aporte.
Si ahora resulta que necesitas una comuncación SPI porque tu título dice comunicación USART con DUE ?

Sam3x ficha de datos:

page 782
35.7.3.2 Manchester Encoder

page 786
35.7.3.4 Manchester Decoder

surbyte:
Bueno ese es mi aporte.
Si ahora resulta que necesitas una comuncación SPI porque tu título dice comunicación USART con DUE ?

Al pensar que los dos eran síncronos los he asociado a que eran lo mismo, soy nuevo en arduino...

Mi pregunta es, podría hacerse con comunicación I2C? Para enviar los datos y reloj por los pines SDA SCL?

ard_newbie:
Sam3x ficha de datos:

page 782
35.7.3.2 Manchester Encoder

page 786
35.7.3.4 Manchester Decoder

Gracias! De todos modos no quiero hacer una modulación por software ya que la tengo hecha por hardware, solo quería saber cómo enviar los datos del arduino a la protoboard.

Agradezco vuestra ayuda.

A ver lo mejor que se me ocurre es que uses dos pines del DUE.

Creas la basculación que te de el reloj en 1 o sea pasar 1 a 0 en una lapso de tiempo determinado y en el otro desplazando bits podrias lograr la transferencia de datos correspondiente.

Con I2C no creo que puedas pero lo digo sin analizaro mucho. I2C tiene su protocolo de modo que no vas a poder desconocer cuestiones inherentes al protocolo I2C

surbyte:
A ver lo mejor que se me ocurre es que uses dos pines del DUE.

Creas la basculación que te de el reloj en 1 o sea pasar 1 a 0 en una lapso de tiempo determinado y en el otro desplazando bits podrias lograr la transferencia de datos correspondiente.

Con I2C no creo que puedas pero lo digo sin analizaro mucho. I2C tiene su protocolo de modo que no vas a poder desconocer cuestiones inherentes al protocolo I2C

Gracias por tu aportación surbyte.

Estás en lo cierto, con I2C no podría hacerlo. He estado dándole vueltas y he decidido hacerlo mediante el bus SPI utilizando los canales MOSI y SCK conectándolos directamente al circuito que tengo montado en la protoboard.

Voy a crear un tema nuevo en Software refiriéndome al bus SPI para acalarar unas dudas, ya que este puse USART y puede causar confusión.

Saludos!