[Icestudio] Encoder Rotativo

345 views
Skip to first unread message

Obijuan

unread,
Jun 21, 2018, 4:22:19 AM6/21/18
to FPGAwars: explorando el lado libre
bHola,

En este mensaje de otro hilo, Jose Pico envió un ejemplo para manejar el encoder rotativo




Lo he estado probando y funciona muy bien. Tenía ganas de ponerlo en marcha, y gracias a Jose lo pude probar rápidamente.

Luego estuvo indagando un poco, y encontré este ejemplo de mcmayer, en github:


que está bastante simplificado e incluye antirrebotes. Está basado en una nota de aplicación de Xilinx.

Ese mismo código lo separé en bloques de código en Icestudio y esta es la prueba que hice:



El ejemplo del vídeo es el enc-rot4.ice que podéis encontrar en este repo:


Todos los créditos para Jose Pico y Mc Mayer



Saludos, Obijuan

Auto Generated Inline Image 1

Jose Pico

unread,
Jun 21, 2018, 6:25:20 AM6/21/18
to FPGAwars: explorando el lado libre
Muy Bueno!
Hay de todo un poco:

- Sincronizador para q las señales de cuadratura se sincronizen con el reloj del sistema.
- Antirrebote sencillo para corregir rebotes del encoder mecánico
- Encoder de cuadratura propiamente dicho
- un decodificador y el uso de tablas de verdad.

Genial 👍👍

1138-4EB

unread,
Jun 21, 2018, 9:52:16 PM6/21/18
to FPGAwars: explorando el lado libre
El jueves, 21 de junio de 2018, 9:22:19 (UTC+1), Obijuan escribió:
Todos los créditos para Jose Pico y Mc Mayer

¿Todos? ¿Ken Chapman no merece una mención al menos?

Juanma Rico

unread,
Jun 22, 2018, 9:48:59 AM6/22/18
to FPGAwars: explorando el lado libre

Ahí está... :)))


Ya decía yo que a mi me sonaba el nombre... lo indicaste en el hilo de la transformada z...


Como siempre el Universo coincide en uno de tus enlaces propuestos... jajajajaja

Saludos
Juan Manuel Rico


Jose Pico

unread,
Jun 23, 2018, 6:38:07 PM6/23/18
to FPGAwars: explorando el lado libre


El viernes, 22 de junio de 2018, 3:52:16 (UTC+2), 1138-4EB escribió:
El jueves, 21 de junio de 2018, 9:22:19 (UTC+1), Obijuan escribió:
Todos los créditos para Jose Pico y Mc Mayer

¿Todos?Claro está que no merezco ningún especial, simplemente intento aprender  de aquí y de allí y voy probando, cuando encuentro algo que me parece bueno , lo comparto. Claro está, que gracias a gente que estudia, investiga, escribe libros y comparte el conocimiento nosotros los de "otro nivel" nunga llegaríamos a poder poner en práctica muchas cosas. ¿Ken Chapman no merece una mención al menos? Por supuesto que KEN CHAPMAN se merece una mención especial ya que el trabajo realizado está basado en su documento. 


Saludos 

Jose Pico

unread,
Jun 23, 2018, 7:03:21 PM6/23/18
to FPGAwars: explorando el lado libre

Hola:

Me he permitido unificarlo en unos bloques para que quede más visual.

Adjunto  bloques y módulo completo por si alguien quiere probarlo.
Lo he probado con un encoder de cuadratura que lleva incorporado sobre un motor ( al ser óptico entiendo que podríamos ahorrarnos la parte de Debouncer, aunque yo la he usado).

Adjunto vídeo también.

Saludos 
DebouncerQ.ice
DebouncerQ_v1.ice
EncoderQ.ice
EncoderQFull.ice
Sinc_Q.ice
Ejem01_EncoderQFull.ice
EncoderOptico.mp4

Democrito

unread,
Jun 23, 2018, 8:41:56 PM6/23/18
to FPGAwars: explorando el lado libre
Me encanta el SVG del encoder! No pido permiso para las próximas veces! Lo llevará!

Democrito

unread,
Jun 23, 2018, 9:03:07 PM6/23/18
to FPGAwars: explorando el lado libre
El tema de de los antirrebotes... en los ópticos es sencillo, según parece muchas fpga tiene histéresis en sus entradas, entonces se filtran solos por así decirlo, pero en los mecánicos, es otro tema. En ese caso es conveniente poner condensadores de 100nF en paralelo (con respecto a masa) a las salidas, para evitar esos revotes. Es lo que se suele hacer, pero no es una ciencia cierta. La cosa es que si el rebote coincide con esa capacidad todo irá bien, de otro modo habría que calcularla.

Saludos!


1138-4EB

unread,
Jun 24, 2018, 8:34:30 AM6/24/18
to FPGAwars: explorando el lado libre
José, creo que sí mereces mención y reconocimiento, pues aunque no te parezca reseñable, has sido tú quien ha interpretado el documento de Chapman y lo ha adaptado para utilizarlo en Icestudio. Eso es tiempo has invertido, y como tal debe ser indicado. El "nivel" no importa. El esfuerzo e interés sí. De hecho, indicas explícitamente qué es lo que has encontrado y qué es lo que has aportado. Nada que objetar.

Democrito, la implementación de Chapman es justamente para ahorrarte los condensadores y el cálculo de la capacidad. En vez de filtrar la señal de forma analógica, lo hace con un filtrado digital. Y lo cierto es que funciona sorprendentemente bien. Se pueden utilizar técnicas parecidas para cualquier pulsador mecánico, que suelen tener todos rebotes de entre 10-40ms.

Dani_B18

unread,
Jul 31, 2018, 10:41:19 AM7/31/18
to FPGAwars: explorando el lado libre
Buenas tardes a todos.
Al descargar los .ice de Jose Pico me sale un error de version en el icestudio, actualice a la ultima version pero aun asi me dice que es una version antigua.
Por lo que estoy viendo estais utilizando las entrada de color amarillo que van directas a la fpga, yo estoy intentando que esto funcione por las "D" y las "DD" pero no hay manera, bueno si las "DD" funcionan mejor con un encoder tipo industrial de 2000p/r NPN pero no consigo buenos resultados.
Muchas gracias.

Eladio Delgado

unread,
Jul 31, 2018, 2:46:53 PM7/31/18
to FPGAwars: explorando el lado libre
Hola Dani,

Utilizando unas resistencias de pull-up suficientemente bajas debería funcionar en cualquier entrada. Un valor entre 470R y 1K debe funcionar. 

Sin el encoder integra unas de un valor mayor, puedes conectar unas externas en paralelo, de modo que el paralelo de ambas resulte un valor entre 470R y 1K.

Un saludo,
Eladio



--
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 publicar en este grupo, envía un correo electrónico a fpga-wars-explora...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/fd0206bf-d7e7-4260-a04b-f0aa0e41c9dc%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Jose Pico

unread,
Aug 1, 2018, 5:23:50 PM8/1/18
to FPGAwars: explorando el lado libre


El martes, 31 de julio de 2018, 16:41:19 (UTC+2), Dani_B18 escribió:
Buenas tardes a todos.
Al descargar los .ice de Jose Pico me sale un error de version en el icestudio, actualice a la ultima version pero aun asi me dice que es una version antigua.
   Con la versión nueva debe funcionarte ( los ficheros creados con la versión nueva no funcionan con la antigua pero los viejos si funcionan con la nueva ). mi versión actual es la 0.3.3-beta
 
Por lo que estoy viendo estais utilizando las entrada de color amarillo que van directas a la fpga, yo estoy intentando que esto funcione por las "D" y las "DD" pero no hay manera, bueno si las "DD" funcionan mejor con un encoder tipo industrial de 2000p/r NPN pero no consigo buenos resultados. El  bloque completo que se creó ya incluye un sincronizador con dos biestables D y una parte de antirebotes. Eso debería funcionarte.
    Cuando dices NPN es porque tienen una salida a un NPN en colector abierto? Si es así debes añadir resistencias de pull-up ( entiendo ).
    Por otra parte ten en cuenta el nivel de tensión que te entrega tu encoder. Este está alimentado a 5V o a 3.3V ? el mio lo alimentaba a 3.3V de forma que las señales de cuadratura eran de 3.3V ( nivel con el que trabaja mi icestick ), si usas la Alhambra creo que también tiene alguna entrada adptada a 5V.  Si tu enconder trabaja a 5V y tu FPGA a 3.3V deberías adaptar los niveles.
 
Saludos y espero que lo consigas.

jasonmp40

unread,
Jun 14, 2019, 11:22:04 PM6/14/19
to FPGAwars: explorando el lado libre
Hola!!!

Después de dos noches de quebrarme la cabeza tratando de poner a funcionar un encoder rotatorio decidí publicar lo que logre, pero me lleve la sorpresa que ya estaba el modulo diseñado, jeje... al menos no cree otro tema sobre lo mismo.


 Me fui por la ruta larga tratando de diseñar el circuito de control y eso me ayudo a entender el funcionamiento de varios módulos del Icestudo.

Encoder1.png

El modulo lo probé con un contador de 8 bits y el efecto de brillo gradual  en una placa upduino.

Encoder2.png

Adjunto el archivo por si lo quieren probar y mejorar. 

Saludos.
Rotay Encoder.ice

charli va

unread,
Jun 15, 2019, 2:02:43 AM6/15/19
to fpga-wars-explora...@googlegroups.com
Muchísimas gracias por compartir!!!!

--
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 publicar en este grupo, envía un correo electrónico a fpga-wars-explora...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.

Jose Pico

unread,
Jun 16, 2019, 12:52:52 PM6/16/19
to FPGAwars: explorando el lado libre

 Muy bueno!
 Muchas Gracias.

  Habrá que probarlo.

  Saludos

jasonmp40

unread,
Jun 16, 2019, 6:58:23 PM6/16/19
to FPGAwars: explorando el lado libre
Con gusto!!! espero les funcione y les sea útil

Saludos 

Gracias 
Reply all
Reply to author
Forward
0 new messages