TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: merycr en 17 de Junio de 2008, 12:14:32

Título: Protocolo SPI en pic16F84A
Publicado por: merycr en 17 de Junio de 2008, 12:14:32
¡Hola a todos!  :mrgreen:

Tengo una duda sobre el protocolo SPI...

A ver, me explico, tengo que hacer un proyecto del que una parte es que tengo que enviar cadenas de 10 bits a un motor (ficticio, no voy a montarlo, tan sólo tengo que programar el software de envio), con las siguientes especificaciones:

- El PIC realiza el papel de maestro (único) del bus
- La electrónica de control del motor implementa la el interfaz maestro (único) del bus.
- El periodo del reloj de sincronización SCLK es de 3ms.
- El modo utilizado en la comunicación es: Clock Polarity (polaridad del reloj) = 1 y Clock Phase (reloj de fase) = 1. [creo que esto significa que los datos se colocarán sobre la línea en flanco desdendente y se leen en flanco ascendente].
- Los pines de E/S del PIC dedicados a la comunicación son los siguientes:


RB5 -- SCLK. Reloj pra la sincronización de la comunicación.
RB6 -- Comunicación del maestro al esclavo.
RB7 -- Señal de selección del esclavo.



Vale, entonces mi duda es: Cómo puedo enviar los datos? Y qué hago con el reloj? :?

He estado mirando en todos lados y nada...  :(


Muchas gracias anticipadas :-/

Título: Re: Protocolo SPI en pic16F84A
Publicado por: MLO__ en 17 de Junio de 2008, 12:35:21
Hola.

Pues, el CCS tiene una implementacion de SPI por soft, en el manual de ayuda del compilador estan las opciones para el manejo de los pines, del reloj y de las diferentes configuraciones de envio. Lo he simulado y montado en hardware para el PIC12F629 y el PIC16F628A y me ha dado resultado. Revisa la ayuda del CCS con #use SPI ( tengo la version 4.057 del CCS)

Saludos
Título: Re: Protocolo SPI en pic16F84A
Publicado por: merycr en 17 de Junio de 2008, 12:45:50
Perdona, soy un poco nueva aún co todo esto...  :oops:

¿Qué es el CCS, un programa? ¿Y si es así, dónde lo puedo descargar?

Por cierto, no lo he dicho, pero estoy utilizando ensamblador :-)

Gracias!
Título: Re: Protocolo SPI en pic16F84A
Publicado por: MLO__ en 17 de Junio de 2008, 12:54:42
Hola.

El CCS es un compilador para microcontroladores en lenguaje C. Si es un programa y puedes descargar el demo que dan AQUI (http://www.ccsinfo.com/demopoll.php).

La verdad de assembler se muy poco tirando a nada, lo vi en la U, pero hace rato que ya no lo uso. Hay un subforo de ese lenguaje, busca alli, seguro encuentras algo.

Saludos
Título: Re: Protocolo SPI en pic16F84A
Publicado por: merycr en 17 de Junio de 2008, 13:53:59
Vaya, pero yo tengo que usar ensamblador...  :(

Bueno a ver si alguien más puede ayudar...

Gracias de todas maneras ;)
Título: Re: Protocolo SPI en pic16F84A
Publicado por: firepic en 17 de Junio de 2008, 16:46:50
Saludos merycr!
Bueno vas a tener que darle duro para generar la spi a pie, usando puro código... y en lenguaje de máquina, guao!  :shock:
Pero no es imposible.
Yo lo que haría es en primer lugar generar la onda cuadrada que constituirá el reloj...
De repente se me ocurre que uses la interrupción por tmr0... te da sobrado para que interrumpa cada 1.5ms... en lo que interrumpa inviertes el estado del SCK, y pues, ya tienes el reloj de la interfaz SPI.... eso lo haces 16 veces (para enviar los 8 bits).
El EN no tiene nada del otro mundo, nada más ponerlo en bajo cuando comienza la transmisión y listo.
Y los datos los puedes sincronizar con la SCK usando también la interrupción del tmr0... pero respetando la polaridad...
Ok espero que puedas arrancar y teclear algo de código... y en lo que pueda te seguiré ayudando.
Dale pues, nos leemos!  :mrgreen: