--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/81f9b1a2-e520-46fa-8d3c-15fd83e12505n%40googlegroups.com.
Democrito lo primero darte las gracias por iniciar este proyecto que me parece muy interesante, decirte que probe el proyecto y no me funciono. Los módulos Nrf24l01 que utilice los tengo probados con proyectos en Arduino y funcionan bien. Estoy utilizando la versión icestudio estable 0.10
Estaré al tanto de este hilo.
Hola Democrito los módulos que estoy usando son nRF24L01+, estoy observando que después de encender la FPGA como al minuto se encienden los led 0,2,4,6, después como a los dos minutos se encienden los led 1,3,4,5,6,7, después como al minuto se encienden todos los led, cada cierto tiempo va cambiando la secuencia de los led, si pulso el pulsador no hace nada en el momento de pulsarlo pero sigue cambiando la secuencia de los led cuando le da la gana, es como si faltara sincronización entre el emisor y el receptor.
Ok Democrito, estaré al tanto
Hola Democrito, acabo de llagar de vacaciones, nada mas que pueda hago las pruebas y te comento. Un saludo
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/d66af539-8683-46ad-a93c-9bf4c5c89f24n%40googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/CA%2BMbFFaG3HY2V278VKa%2BF5WdiS5G79H7cKqSpZXgG0JauvBs7w%40mail.gmail.com.
Hola Democrito, hice las pruebas y me funcionan los dos ejemplos que pusiste, eres un crack
Dejo el video de pruebahttps://drive.google.com/file/d/1Ixbnz_frvtL2cs5rLkntYR9Sfn-2F7zw/view?usp=sharing
He probado el ultimo ejemplo con el terminal serie y funciona perfecto, gran trabajo, esto va viento en popa.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/d01dbf82-f6c1-4f32-8ba9-acbf154294bcn%40googlegroups.com.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/448a9fd0-fc3c-47f9-8a52-4c5a4ef14524n%40googlegroups.com.
Adjunto la versión mejorada que comenté en el anterior post.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/626d6bbf-fc65-46d6-9fff-2861393bcf9fn%40googlegroups.com.
Buen trabajo, hice pruebas cambiando el canal, la dirección y la velocidad, va fenómeno.
Un saludo, me pongo en modo escucha.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/1198e7cf-672a-4cfa-afbd-438d6b0882a9n%40googlegroups.com.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/d0c8f83c-cdee-47c4-8d11-423376fb79f3n%40googlegroups.com.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/0a24065e-0f37-48d0-a483-d2d205b34b29n%40googlegroups.com.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/b91666ab-ef63-4ada-a05a-74dbc5c2bce1n%40googlegroups.com.
El módulo de radio NRF24L01 es un transceptor de radio de bajo costo y bajo consumo de energía que utiliza la banda ISM de 2.4 GHz. La distancia máxima de comunicación entre dos módulos NRF24L01 depende de varios factores, como la potencia de transmisión, la sensibilidad del receptor, la calidad de la antena y el entorno en el que se utilizan los módulos. En general, se puede esperar una distancia máxima de comunicación de alrededor de 100 metros en condiciones ideales. Sin embargo, algunos usuarios han informado que han logrado alcanzar distancias de hasta 1 km utilizando módulos NRF24L01 con antenas personalizadas y amplificadores de potencia.
Es importante tener en cuenta que el uso de amplificadores de potencia puede estar sujeto a regulaciones locales y nacionales, por lo que es importante verificar las regulaciones antes de utilizar amplificadores de potencia con módulos NRF24L01.
Espero que esto ayude. Hágamelo saber si tiene alguna otra pregunta."
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/788461b7-caec-4188-98e5-3029454fb2ben%40googlegroups.com.
Hola Democrito, hice las pruebas y funciona perfecto, me falto hacer la prueba entra dos FPGA por que solo tengo una. Felicitarte y darte las gracias por el gran trabajo que has hecho, eres un máquina.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/1e1c1ea9-5ad4-4f57-ad59-04245e85c1e6n%40googlegroups.com.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/a81f06ec-9c04-4389-b7bf-e686fd5e62ccn%40googlegroups.com.
Hola,En este hilo vamos a tratar el nRF24L01, y para comenzar vamos a tratar el receptor desde una FPGA. El emisor todavía no está diseñado, así que de momento esta parte se encargará un Arduino.Hace muchos años traté este transceptor desde un PIC con una libería prestada y yo en aquel tiempo era completamente "novel" (novato) y en todos los sentidos. En aquella época no había mucha información, y menos todavía con aplicaciones desde los microcontroladores PIC. De hecho me terminé pasando a Arduino, porque para hacer cualquer cosa, y con tan escasa información, tenías que tener una curva de apredizaje bastante elevada.Los nRF24L01 son muy, pero que muy puñeteros y os explico por qué (puedes tener todo bien y fallar). Cuando lees las características dice que es de ultrabajo consumo, entonces uno piensa que con poca corriente ya puede funcionar. Y es cierto que consume poca corriente, pero hay momentos de tiempos muy muy cortos, que necesita mucha corriente. Entonces, de lo primero que has de olvidarte es de alimentar al transceptor desde un Arduino o una FPGA. Has de pensar en alimentarlo con una fuente que dé más de 250 mA (a 3.3V). Arduino y muchas FPGA que son compatibles con 3.3V llevan un regulador de tensión que como mucho te dará 50 mA. Haré mucho énfasis en la corriente de alimentación en todo este hilo, porque si no se cumple ese requisito, verás fallos intermitentes, es decir, todo estará bien, pero falla, o en ocasiones falla. Tienes que conseguirte 3.3V con más de 250 mA de corriente, de otro modo tendrás problemas. En otro post os hablaré más sobre esto. Tuve la suerte, de que cuando comencé a conocer este transceptor, lo alimentaba con una fuente de PC, tomando los 3.3V de ella, y todo iba como esperas. Pero como el proyecto que estaba haciendo era para el mundo real (no sólo experimentar), fue ahí cuando comenzaron los problemas. Diseñé un brújula digital, que iba a ir en un barco pesquero. La brújula era un encoder digital y desde el mástil tenía que enviar vía radio (a través del nRF24L01) a la cabina de mando el dato de la posición y un motor de pasos indicar la posición (el cliente lo quería con visualización analógica). Al cambiar de fuente, es decir, poner cualquier regulador de tensión de 3.3V comenzaron los problemas. Hasta que al final, al poner un regulador de tensión como dios manda, todo fue bien. Usé una especie de 7805 pero que en vez de 5V daba 3.3V (no recuerdo bien los detalles porque fue hace muchos años)Moraleja: Si quieres que todo te funcione bien con estos transceptores, lo primero de todo es fabricarte o buscar una buena fuente de 3.3V para alimentar a los nRF24L01.Los nRF24L01 son capaces de recibir información y enviarla. su funcionamiento es "half duplex", esto significa que funciona como un "walky talky", es decir, puede enviar y recibir, pero no a la vez.Para comenzar sólo vamos a tratar este tema desde el punto de vista de emisor y receptor. Se puede hacer que tengan ambas funciones, pero no al mismo tiempo y para ello se necesita un protocolo, es decir, algo que arbitre para ponerse de acuerdo, para poder hacer que pueda emitir y recibir la información que queramos y evitar colisiones. Una caracterísica que tiene los nRF24L01 es que aunque sólo reciba, también emite, pero esto queda por debajo del usuario medio. Cuando el receptor recibe información, cuando termina de hacerlo emite al emisor si le ha llegado algo, es una forma de asegurar la información. Todo esto está disponible para el usuario, pero no para quien maneja una librería, o en un diseño en FPGA. Todo esto lo veremos en post más avanzados.Presentación del receptor:Adjunto un receptor para FPGA, aprovecha todo el ancho de banda, es decir, puede recibir 32 bytes de un golpe. Como todavía no tengo diseñado el emisor, pondré como ejemplo un emisor desde Arduino.El receptor está configurado para recibir a 250 Kb/s, es la frecuencia de configuración más baja y la razón de ello es que cuanta más baja es esta tasa más distancia cubre. Puede funcionar a 2 Mb/s, 1 Mb/s y 250 Kb/s. Pero no es la frecuencia que emite o recibe, sino la tasa de transferencia de datos. La frecuencia real va en el orden de 2.4GHz (de ahí que en su nombre contenga el número "24", y en realidad es 2.4) hasta 2.5GHz.Cuando hablemos de canal estaremos hablando de la frecuencia que estamos usando (no de tasa de transferencia), que en este caso es zona wifi porque esa zona es la legal para el wifi y experimentos.El canal que usa el receptor FPGA es el canal "4C", o en decimal 76. Tomé este canal porque es el que usa por defecto la librería más famosa en Arduino, que se llama "TMRh20". En el ejemplo que adjunto esto no se puede cambiar, pero en el futuro haré que esto se pueda modificar.Por otra parte, cuando tienes definido el canal, luego hay que defiir la dirección. Esto se debe a que puede haber múltiples receptores (o emisores), pero pueden tener direcciones distintas si quieres enviar algo concreto a uno de ellos en específico. En el ejemplo que adjunto, la dirección es "000001" en ASCII (es decir, un valor de 0 a 255 que se repite 6 veces). Son 6 bytes. En realidad como máximo vas a poder comunicarte con 32 transceptores distintos (es decir, especificando a uno de ellos), aunque en teoría sería con 127, pero es en teoría. Lo ideal es que de una direción a otra, haya la mayor diferencia posible, para evitar errores. Como ya habrás deducido con sólo 5 bits podemos deducir una dirección, sin embargo se usa 6 bytes para aumentar la seguridad de que al que le llega la información es a quien se le especificó. De esto ahora no has de preocuparte, pero es buen que sepas que en los ejemplos que adjunto (FPGA y Arduino) la dirección es "000001" en ASCII, y el canal usado es "4C" en hexadecimal.Ejemplo prueba:Adjunto un ejemplo práctico, donde un Arduino envía información y un receptor desde una FPGA recibe los datos.Está claro que lo que envíe el emisor, luego lo recibirá el receptor. El código que adjunto para Arduino te parecerá extraño y es debido a que uso el SPI de forma directa, es decir, manejo de forma voluntaria el pin CE y CS, y especifico exáctamente los bytes que quiero enviar a través del comando "SPI.transfer". Lo hice de esta manera porque luego todo esto lo tenía que traducir a instrucciones para FPGA (lleva un pequeño microcontrolador que se maneja con lenguaje máquina). Lo importante del código es donde sale esto:Es ahí la zona del programa donde especifico lo que quiero enviar. En este caso es el contaje de un contador que cuenta desde 0 hasta 255 (y vuelta a comenzar) y se repite para los 32 bytes que envíe. En post futuros pondré otros ejemplos, incluido el serial.Este es el ejemplo más básico que se me ha ocurrido, la cuestión ahora mismo es que si haces la prueba lo puedas replicar.Veamos ahora el diseño FPGA desde Icestudio:Se ve raro porque tiene 32 bytes de salida, aunque sólo vamos a comprobar lo que sale por "q0" (puedes probarlo con cualquier otra de las salidas, todas salen lo mismo) y lo enviamos a los ocho leds, este caso, de la Ahambra. Se verá el contaje en binario de los leds. Si lo ves, es que te funciona.Para hacer esta prueba, os adjunto un pinout del nRF24L01 y lo tengáis a mano para luego hacer las conexiones.Es visto desde arriba.Quien lo pruebe, por favor, que lo comente. Cualquier duda o lo que sea, aquí estoy.Cuando alguien trata de explicar un proyecto, puede pasar desapercibido cosas importantes que el que trata de explicarse en ese momento no lo tiene presente, por eso es importante que cualquier duda sobre conexiones, interpretaciones, dudas, etc, se haga saber.Por último decir, que antes de hacer este proyecto que adjunto, probéis los transceptores desde Arduino, cualquier ejemplo sencillo, y una vez que te funcione, entonces pasar a este que propongo aquí con emisor Arduino y receptor con FPGA. Esto lo comento porque es importante familiarizarse con este tema primero con algo que está muy probado y que a tí también te funciona, y luego ya saltamos a otro nivel de abstracción (también sencillo pero de otra naturaleza).No hagáis caso a los comentarios que hago en el programa de Arduino, son cosas que iba cambiando y luego no modifiqué el comentario. Con tiempo ya iré corrigiendo y explicando con detalle todo lo que ahí hay. Lo mismo para el diseño en FPGA, pero en este caso, apenas hay comentarios.Saludos.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/fa2774d2-20e7-4049-a560-0b80aa8dfaebn%40googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/f568fcbb-2004-4781-8f4d-da670df585e3n%40googlegroups.com.