Está en la página 1de 3

Anexo:SPI en ATmega8

Ir a la navegaciónIr a la búsqueda
El SPI Master (servidor) inicializa el ciclo de comunicación cuando se coloca en
bajo el Selector de Esclavo (SS-Selector Slave)(cliente). Master y Slave (servidor
y cliente) preparan los datos a ser enviados en sus respectivos registros de
desplazamiento y el Master genera el pulso del reloj en el pin SCK para el
intercambio de datos. Los datos son siempre intercambiados desde el Maestro al
Esclavo en MasterOut-SlaveIn, MOSI, y desde Esclavo al Maestro en MasterIn-
SlaveOut, MISO. Después de cada paquete de datos el Maestro debe sincronizar el
esclavo llevando a 'alto' el selector de Esclavo, SS.

Cuando se configure como Maestro, la interfaz SPI no tendrá un control automático


de la línea SS. Este debe ser manejado por software antes de que la comunicación
pueda empezar, cuando esto es realizado, escribiendo un byte en el registro de la
SPI comienza el reloj de la SPI, y el hardware cambia los 8 bits dentro del
Esclavo. Después de cambiar un Byte, el reloj del SPI para, habilitando el fin de
la transmisión ( SPIF ). Si la interrupción del SPI está habilitado (SPIE) en el
registro SPCR, una interrupción es requerida. El Master podría continuar al cambio
del siguiente byte escribiendo dentro del SPDR, o señalizar el fin del paquete
colocando en alto el Esclavo seleccionado, línea SS. El último byte llegado se
mantendrá en el registro Buffer para luego usarse.

Cuando lo configuramos como un Esclavo, la interfaz ISP permanecerá durmiendo con


MISO en tres-estados siempre y cuando el pin SS este deshabilitado. En este estado,
por el software se podría actualizar el contenido del registro SPDR, pero los datos
no serán desplazados por la llegada del pulso de reloj en el pin SCK hasta que el
pin SS no sea habilitado( '0' ). Será visto como un byte completamente desplazado
en el fin de la transmisión cuando SPIF se habilite. Si la interrupción SPI, SPIE
en SPCR, está habilitada, una interrupción es solicitada. El Esclavo podría
continuar para colocar nuevos datos para ser enviados dentro del SPDR antes de
seguir leyendo la data que va llegando. El último byte que entra permanecerá en el
buffer para luego usarse.

(MSTR en SPCR es seteado), el usuario puede determinar la dirección del pin SS.

Si SS es configurado como salida, el pin es una salida general la cual no afecta el


sistema SPI. Típicamente , el pin SS será manejado desde el Esclavo.

Si es como entrada, este debe ser enviado a alto para asegurar la operación SPI del
Master.

Byte SPCR
Bit 7 - SPIE
Habilitación de interrupción en SPI, si el bit SPIF( SPSR ) y el SRGE son
habilitados.

Bit 6 - SPE
SPI habilitado, debe ser habilitado para cualquier operación SPI.

Bit 5 - DORD
Orden de datos, si es '1' el lsb sale primero. Si es '0' el MSB sale primero.

Bit 4 - MSTR
Selector Master o Esclavo, si es '1' es Master, de lo contrario Esclavo. Si el pin
SS es configurado como entrada y es habilitado('0') mientras MSTR está habilitado,
MSTR será deshabilitado, y SPIF( en SPSR) se habilitara.

Bit 3 - CPOL
Polaridad del reloj, si es '1' SCK será activo en alto de lo contrario será activo
en bajo.

Bit 2- CPHA
Fase del reloj.

Bit 1,0 - SPR1, SPR0


Selección de la velocidad del reloj, solo funciona en modo master.

Byte SPSR
Bit 7 - SPIF
Bandera de interrupción del SPI. Cuando una transferencia serial es completada, la
bandera SPIF es habilitada. Una interrupción es generada si SPIE(en SPCR) y SREG
están habilitados. Si SS es una entrada y está en habilitada('0') cuando el SPI
está en modo Master, este también habilitara la bandera SPIF. SPIF es deshabilitada
por hardware cuando es ejecutada la correspondiente interrupción
manualmente.Alternativamente, el bit SPIF es deshabilitado por la primera lectura
del registro de estado SPI con SPIF activo.

Bit 6 - WCOL
Bandera de colisión de escritura, es habilitado si se produce una escritura durante
la transferencia. Es deshabilitado por la primera lectura del registro de estado
SPI (SPDR).

Bit 0 - SPI2x
Duplicador de velocidad de los bit.

Byte SPDR
Es un registro de lectura y escritura usado para la transmisión de datos entre el
registro de archivos y el registro de cambio SPI.

Pines usados para el SPI

SCK
Es el de salida del Master, en el Esclavo es el reloj de entrada para el canal SPI,
Cuando el SPI es habilitado como un Esclavo, este pin es configurado como una
entrada a pesar de la configuración de DDB5. Cuando el SPI es habilitado como
Master, la dirección de datos de este pin es controlada por DDB5. Cuando el pin es
forzado por el SPI a ser una entrada, la pull-up puede ser controlada por el bit
PORTB5.

Categoría: Buses
Menú de navegación
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
AnexoDiscusión
LeerEditarVer historialBuscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda
Donaciones
Notificar un error
Herramientas
Lo que enlaza aquí
Cambios en enlazadas
Subir archivo
Páginas especiales
Enlace permanente
Información de la página
Citar esta página
Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir

En otros idiomas
Añadir enlaces
Esta página se editó por última vez el 21 may 2018 a las 17:28.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir
Igual 3.0; pueden aplicarse cláusulas adicionales. Al usar este sitio, usted acepta
nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una
organización sin ánimo de lucro.

También podría gustarte