Autor Tema: SPI Y A6276  (Leído 3342 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado raquena

  • PIC12
  • **
  • Mensajes: 56
SPI Y A6276
« en: 15 de Febrero de 2014, 08:38:02 »
Hola a todos!

Estoy construyendo un display para un proyecto con el driver para LED A6276 (tal vez no sea la mejor opción, pero es lo que mpjor resultado me daba teniendo en cuenta las posibilidades que tengo para el diseño de la PCB y ciertas limtaciones del proyecto).

El caso es que aparentemente no habría nungún problema en controlar dicho driver mediante el bus SPI.

Es posible, o podría surgir algún tipo de problema?


EXPLICACIÓN UN POCO MÁS DETALLADA:

- Utilizo un 18f2550 para el control de los A6276

- El display cuenta con 5 líneas, cada una conectada a un A6276.
- Cada uno de los A6276 tiene su pin de LATCH ENABLE conectado a un pin del micro.
- La señal de LATCH ENABLE es común a todos los A6276.
- El pin del OUTPUT ENABLE es común a todos los A6276,  y va conectado a un pin del micro.
- El pin del CLOCK de los A6276 es común a todos y va conectado al pin CLR del SPI.
- El pin de SERIAL DATA IN es común a todos los A6276 y va conectado al pin MOSI del SPI.

Cuál sería la configuración correcta del SPI para que funcionase correctamente?
Necesitaría alguna resistencia de pull-up para alguno de los pines?

Desconectado raquena

  • PIC12
  • **
  • Mensajes: 56
Re: SPI Y A6276
« Respuesta #1 en: 15 de Febrero de 2014, 08:41:48 »
Actualizo:

En estos momentos estoy utilizando pines de entrada/salida normales para hacer funcionar los A6276, y lo hace correctamente, el código que utilizo es el siguiente:

void WriteA6276(char data){

    char i = 0;

    for(i = 0; i < 8; i++){

        // To get the value we need to send, we just need one bit, starting
        // from the MSB, so we displace the bit to send to the LSB, and then.
        // we mask the rest of the bits.

        DATA_PIN = (data>>(7-i))&0x01;
        Delay10TCYx(1);
        CLK_PIN = 1;
        Delay10TCYx(1);
        CLK_PIN = 0;
        Delay10TCYx(1);
        DATA_PIN = 0;           // not necessary.
    }
}

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: SPI Y A6276
« Respuesta #2 en: 15 de Febrero de 2014, 09:46:08 »
  Sería mejor si pusieras un esquema.

  Por otro lado, me parece que no sería posible una configuración típica con varios dispositivos SPI ya que el dispositivo no cuenta con un pin de "Enable" como para aceptar o no los datos. Éste driver que intentas utilizar siempre recibirá los datos que le ingresen por el pin de entrada por lo tanto si envía un dato al puerto, todos los A6276 lo tomaran. Si tienes 4 integrados conectados a 4 display, pues los 4 display mostrarán lo mismo.

  Sí se podría utilizar el pin de "seríal out" para conectar en cascada los integrados.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado raquena

  • PIC12
  • **
  • Mensajes: 56
Re: SPI Y A6276
« Respuesta #3 en: 15 de Febrero de 2014, 10:20:55 »
  Sería mejor si pusieras un esquema.

  Por otro lado, me parece que no sería posible una configuración típica con varios dispositivos SPI ya que el dispositivo no cuenta con un pin de "Enable" como para aceptar o no los datos. Éste driver que intentas utilizar siempre recibirá los datos que le ingresen por el pin de entrada por lo tanto si envía un dato al puerto, todos los A6276 lo tomaran. Si tienes 4 integrados conectados a 4 display, pues los 4 display mostrarán lo mismo.

  Sí se podría utilizar el pin de "seríal out" para conectar en cascada los integrados.


No necesariamente, pasará la misma información a través de los registros de desplazamiento, pero mientras no active el correspondiente latch, no quedará guardada para ser mostrada. Por eso precisamente hay un pin de LATCH ENABLE por cada línea.

En breve busco los esquemas y los muestro.

Por otra parte:

Los diferentes pines del bus SPI necesitan resistencias de PULL-UP? El caso es que en alguna ocasión lo he utilizado sin ellas (a diferencia de lo que pasa con el I2C, que las necesita sí o sí), pero no estoy muy seguro de si puedo tener algún problema por esto.

Desconectado raquena

  • PIC12
  • **
  • Mensajes: 56
Re: SPI Y A6276
« Respuesta #4 en: 15 de Febrero de 2014, 11:04:16 »
Este es el aspecto que tiene cada uno de los módulos del A6276:


Desconectado raquena

  • PIC12
  • **
  • Mensajes: 56
Re: SPI Y A6276
« Respuesta #5 en: 15 de Febrero de 2014, 11:06:55 »
Así es como lo tengo conectado ahora y funciona sin problemas, pero ya que voy a utilizar el SPI para otras cosas, me gustaría ahorrarme los pines, además que podría usar las funciones del SPI directamente en lugar de las que he hecho yo, que son un poco mierdosas.



Desconectado raquena

  • PIC12
  • **
  • Mensajes: 56
Re: SPI Y A6276
« Respuesta #6 en: 15 de Febrero de 2014, 11:10:26 »
Así es como pretendo que quede, pero no estoy seguro de qué configuración del SPI debería utilizar, si voy a necesitar alguna resitancia de pullup más y si va a funcionar correctamente.


Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: SPI Y A6276
« Respuesta #7 en: 15 de Febrero de 2014, 11:54:22 »
  Podría funcionar siempre y cuando tengas en cuenta que el dato que envíes llegará a todos los integrados y por lo tanto tendrás que prestar atención a cual integrado le actives "latch enable" en cada momento para que te muestre los datos correctos.

  Para SPI no hace falta ninguna resistencia de pullup. Sólo tienes que configurar el módulo según tus necesidades y tener en cuenta la configuración de los pines involucrados (por ejemplo para modo MASTER el pin sck tiene que estar configurado como salida, al igual que el pin SDO)
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado raquena

  • PIC12
  • **
  • Mensajes: 56
Re: SPI Y A6276
« Respuesta #8 en: 15 de Febrero de 2014, 12:31:11 »
Ok, y de las posibles configuraciones del SPI, cual es la que corresponde para el orden que se ve en el código que he colgado?

Por otra parte, me imagino que para los diferentes LATCH ENABLE sí necesitaré resistencias de PULLUP, no?. Y en el caso del OE, como es de lógica invertida, me imagino que lo mejor será poner una resistencia de PULLDOWN, en lugar de un PULLUP, y así al inicio no se encenderán todos los módulos, poniéndola a nivel bajo con el micro cuando necesite encender. Mejor así que con pull down y mantenerlo a nivel alto por soft, no?

Alguna sugerencia más, detalles que se me podrían haber pasado por alto?

Gracias por las respuestas.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: SPI Y A6276
« Respuesta #9 en: 15 de Febrero de 2014, 13:48:34 »
Ok, y de las posibles configuraciones del SPI, cual es la que corresponde para el orden que se ve en el código que he colgado?

Por otra parte, me imagino que para los diferentes LATCH ENABLE sí necesitaré resistencias de PULLUP, no?. Y en el caso del OE, como es de lógica invertida, me imagino que lo mejor será poner una resistencia de PULLDOWN, en lugar de un PULLUP, y así al inicio no se encenderán todos los módulos, poniéndola a nivel bajo con el micro cuando necesite encender. Mejor así que con pull down y mantenerlo a nivel alto por soft, no?

Alguna sugerencia más, detalles que se me podrían haber pasado por alto?

Gracias por las respuestas.

  Las diferentes configuraciones del SPI corresponden a los cuatros modos en que dicho bus puede trabajar y se refiere a la polaridad inactiva de clk y con que flanco se transmiten los datos. En el caso del A6276, el estado inactivo de clk es 0 y aparentemente la transmisión se realiza con el flanco de subida.

  En cuanto a las resistencias sobre el terminal "latch enable" no creo que sea necesario ya que sería el propio pic quien se encargaría de establecer un valor.

  No sé con que compilador estás trabajando. Deberías buscar entre sus librerías para ver como es que se configura el módulo SPI.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado raquena

  • PIC12
  • **
  • Mensajes: 56
Re: SPI Y A6276
« Respuesta #10 en: 17 de Febrero de 2014, 14:27:43 »
Trabajo con c18


 

anything