#5 Re: como comunico 2 pics
Originalmente publicado por
l_pozuelo
El tema es que no tengo idea como hacer eso, yo programo algo en pics en assembler pero el problema es que no se como es eso de comunicarlos, los modulos rf ya los tengo, y los prove con condificadores/decodificadores comunes, esos de las alarmas y andan re bien, el tema es que no me lo haceptan, tiene que ser algo que tenga una porpia codificacion, pero la pregunta es como envias los bits de direccion y los 8 de bits de datos, como sincronizas los pic??
¿suena muy complicado no? pero no es tanto, lleva tiempo escribir los codigos, pero todo es cuestion de imaginacion.
Los bits de direccion tambien son datos, nomas los micros los identifican como direcciones... pero toooodos se envian juntos... en "chorrera".... se usa enviar primero los bits mas significativos y despues los menos significativos, tambien queda bien enviar primero la direccion y despues los datos, pero todo eso no es tan importante, porque tenes que enviar todos los datos antes de que el micro haga algo.
¿ya tenes las hojas de datos de los integrados codificadores que probastes? hay podes sacar ideas de como armar tu codigo... de esa forma yo arme una codificacion para IR que funcionaria en RF pero no puedo difundirla... igual voy a tratar de darte ideas.
Los modulos de RF al igual que los de IR usan un circuito que nesecita un tiempo para estabilizarce antes de empezar a recibir datos correctamente, ademas mesecitan que aya cantidades similares de 1s y 0s... asi que no podes enviar tus datos asi nomas, por eso se habla de codigo... no es por la seguridad, es para transformar datos en señales que funcionen en los receptores.
Algo interesante es agarrar el osciloscopio y ver como recibe los datos el modulo, eso ayuda a elegir velocidades y estrategias de codigos.
Algo que se puede hacer es enviar primero una frecuencia que estabilice el receptor y seguidamente los datos, o sino enviar varias veces seguidas el codigo, asi los primeros estabilizan y los siguientes se reciben bien...
Ademas no podes enviar muchos 1s o muchos 0s juntos, porque el receptor como que pierde la continuidad de informacion y da errores... una solucion para esto es en vez de enviar un 1, envias un 10 y en ves de enviar un 0, envias un 01... dibuja un ejemplo en papel asi ves como queda, da una cosa rara que cuesta decodificar, pero anda... sino para un 1 envias un 110 y para un 0, envias un 100, es menos eficiente para el receptor, pero mas facil de decodificar, pero te ocupa tres bits de codigo para cada bit de datos... o sino para un 1 envias 1100 y para un 0 envias 1010... el mucho mas facil de decodificar, mas eficiente para el receptor, pero ocupa cuatro bits de codigo por cada uno de datos.
No quiero complicar mucho, asi que lo siguiente tomalo como comentario nomas, por ahora.
Te doy una clave que mejora mucho las transmiciones, pero con el costo de complicar mucho el programa receptor... en vez de que el micro receptor lea los 1s y 0s, que lea solo los flancos ascendentes o descendentes de la señal... es un quilombo decodificar eso...
¿pero por que mejora tanto?... porque ponele que a un transmisor le pones un señal de datos cuadrada, el receptor no da cuadrada, da mas cortos los 1s que los 0s o alreves... y encima, cuanto mas se aleja el receptor, mas cortos los 1s y mas largos los 0s... hasta que se pierden los 1s.
Si el micro receptor controla cada 1 y cada 0 normalmente, llega un momento que puede confundir 1s con 0s y cosas asi, solo porque cambiaron los "anchores" de los datos... pero si en ves de esto, solo atiende los cambios entre 0 y 1 o 1 y 0 o sea solo uno de los flancos, no importaria el ancho de los datos, asi no pierde la informacion... con eso se logran distancias mas largas.
Es un lio, espero que se entienda... igual no aflojes que se puede
Saludos