Pruebas con SPI programable.

116 views
Skip to first unread message

Democrito

unread,
May 23, 2021, 8:39:36 PM5/23/21
to FPGAwars: explorando el lado libre
Hola,

Como algunos/as sabéis estuve trabajando en un pequeño micro y lo he aplicado a algunos periféricos I2C. Ahora le tocaba al SPI. Cogí un periférico SPI que conocía y que había trabajado con él; en este hilo podéis ver los detalles. El pequeño micro está especialmente diseñado para el envío de paquetes de datos y ronda junto con el módulo SPI unos 280 luts. Luego, dependiendo del periférico y sus necesidades puede aumentar como es lógico.

SPI7SEGDISPLAY.jpg


El micro, al que he llamado "Atto" funciona igual de bien en I2C que en SPI y es compatible con ambos protocolos, de hecho si se quisiera se podría poner ambos protocolos a la vez. Pero de momento, como estoy comenzando a profundizar en el protocolo SPI, sólo escribe (sólo envía información) y a medida que vaya familiarizándome con él, pasaré más tarde a poder hacer también lecturas.

circuito-SPI.PNG
Esta es una imagen del circuito "test" para el MAX7219 y que adjunto en este post.

Características:
  • Funciona a 3 MHz.
  • Permite los 4 modos de trabajo. Para conseguir esto lo hago funcionar como en el I2C donde el dato engloba la señal de reloj I2C, pero en este caso es SPI. La entrada "mode" si se pone a cero, como en este caso, puede trabajar en modo 0 y 1, y si se pone esa patilla a 1, entonces permite trabajar en modo 2 y 3. No he podido verificar todavía todos los modos, pero es casi seguro que no habrá problemas (eso espero...).
  • En esta versión, al pequeño micro le he hecho unas pequeñas mejoras. Por ejemplo, había algunas instrucciones que no permitían repetirse, ahora sí se puede.
  • Permite enviar paquetes de anchura variable. En este ejemplo tipo test, siempre se trabaja con 16 bits, por tanto siempre se envía primero un byte, luego el otro, y todo ello queda validado con un CS a cero.
Voy a poner una imagen de los datos de salida que da PulseWiev, en este caso se trata de la trama de configuración del MAX7219.

config_displays.PNG

Y ahora la trama escribir números, donde el primer número es la posición en el display y el segundo número es el número que será representado.

spi_signals.PNG

En este post no presento un módulo nuevo (ya existe uno), sólo comentar por dónde voy. Tengo en mente hacer una cosas súper chula y que a más de uno le va encantar pero me va a llevar tiempo...

Saludos.

test_max7219_displays.ice

charli va

unread,
May 24, 2021, 2:52:38 AM5/24/21
to fpga-wars-explora...@googlegroups.com
Demócrito está super bien!! enhorabuena! no tengo ese display pero he estado viendo el diseño y me gusta mucho como lo estás enfocando, sigue por este camino que saldrán cosas muy muy interesantes.

Un fuerte abrazo!

--
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/9727f51c-e2f9-4b66-a534-7462da193ab5n%40googlegroups.com.

Democrito

unread,
May 24, 2021, 3:06:36 AM5/24/21
to FPGAwars: explorando el lado libre
Gracias Charli!

Voy a ver si consigo implementar una interrupción externa, eso le daría mucho potencial, especialmente en algo nuevo que quiero hacer.

Otro fuerte abrazo!

charli va

unread,
May 24, 2021, 3:13:27 AM5/24/21
to fpga-wars-explora...@googlegroups.com
Deseando ver tus progresos!

--
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.
Reply all
Reply to author
Forward
0 new messages