Go Down

Topic: Enviar datos a frecuencia fija por salida digital (Read 1 time) previous topic - next topic

supersebin

Hola a todos,
estoy trabajando en un proyecto que intenta comunicar con un dispositivo bastante antiguo. El dispositivo con el que me quiero comunicar, no es modificable, tengo que ajustarme a las características que tiene. Os paso a relatar cuales son:
- El dispositivo recibe un paquete de bits a una frecuencia fija. Cuando recibe una trama de 11110000, sabe que vamos a comunicar con él. A partir de este primer byte, el resto de parámetros son bytes de datos que necesita para poder funcionar.
- La frecuencia de salida hacia el dispositivo es fija, 150Khz. Se mandan 7 bytes cada 200ms.
Una vez explicado, no se si alguien ha tenido alguna "experiencia" similar y me puede echar una mano. Usaré el arduino UNO o duemilanove, no necesito mas.
Gracias de antemano a cualquier ayuda que pueda recibir.
Un saludo

supersebin

Veo que nadie puede ayudarme... alguien sabe si puedo trabajar por el puerto serie con frecuencias distintas a las habituales y que realmente funcione, es decir, a 960baud, por ejemplo (es 960 y no 9600, no me he equivocado escribiendo).
Gracias,

SrDonGato

debes tener algo de paciencia a la hora de que te respondan.

el puerto serie que trae el arduino es de tipo hardware, de manera que no puedes modificar los baudios.

hay una libreria para hacer un puerto serie en cualquier patilla dgital , el newsoftserial. quizas modificando esta libreria puedas adaptarla a lo que tu quieres.

un saludo

supersebin

Gracias, y perdona si parecía impaciente  :smiley-zipper:
Esta librería permite conexiones asíncronas? este dispositivo trabaja de forma asíncrona.
Gracias por adelantado.

SrDonGato

las que normalmente usamos son asincronas ( TX , RX y GND) esa libreria te lo permite, es un puerto serie por software, no por hardware.

un saludo

supersebin

Hola de nuevo,
he estado bicheando la libreria NewSoftSerial, he visto que puede trabajar con distintos bauds. Yo necesito trabajar a 960baud. Para un cristal de 16Mhz, que es mi caso, las configuraciones según los baudios son las siguientes:
Code: [Select]
  //  baud    rxcenter   rxintra    rxstop    tx
  { 115200,   1,         17,        17,       12,    },
  { 57600,    10,        37,        37,       33,    },
  { 38400,    25,        57,        57,       54,    },
  { 31250,    31,        70,        70,       68,    },
  { 28800,    34,        77,        77,       74,    },
  { 19200,    54,        117,       117,      114,   },
  { 14400,    74,        156,       156,      153,   },
  { 9600,     114,       236,       236,      233,   },
  { 4800,     233,       474,       474,      471,   },
  { 2400,     471,       950,       950,      947,   },
  { 1200,     947,       1902,      1902,     1899,  },
  { 300,      3804,      7617,      7617,     7614,  },

La frecuencia a la cual yo tengo que trabajar no viene, como es logico (aprox. 960baud). He intentado buscar una relación entre "baud    rxcenter   rxintra    rxstop    tx" pero no la encuentro. Sabes como calcularla?
Gracias,

Go Up