M´
odulo SPI y m´
etodos de conversi´
on D-A
Rodrigo Chang
Universidad de San Carlos de Guatemala
com4.e6.usac@gmail.com
4 de marzo de 2015
Lo que veremos hoy...
1 M´etodos de conversi´on digital-anal´ogico ¿Qu´e es la conversi´on digital-anal´ogica? M´etodo de conversi´on por red escalera R-2R
M´etodo de conversi´on utilizando PWM y filtros paso-bajos M´etodo de conversi´on utilizando DACs SPI
2 M´odulo SPI en el TM4C123GH6PM
Caracter´ısticas y operaci´on Formatos de se˜nales SPI
Configuraci´on b´asica con registros Configuraci´on utilizando la TivaWare
Conexi´on hacia DAC SPI TLV5616 de Texas Instruments
3 Preguntas
M´
etodos de conversi´
on digital-anal´
ogico
¿Qu´e es la conversi´
on digital-anal´
ogica?
Conversi´
on digital-anal´
ogica
Nos referiremos a ´estos generalmente como DACs.
Se utilizan para convertir un valor digital con una precisi´on den bits a un valor de voltaje o corriente.
Son utilizados en sistemas de procesamiento de se˜nales digitales para reproducci´on de audio y v´ıdeo.
Conversi´
on digital-anal´
ogica
Nos referiremos a ´estos generalmente como DACs.
Se utilizan para convertir un valor digital con una precisi´on den bits a un valor de voltaje o corriente.
Son utilizados en sistemas de procesamiento de se˜nales digitales para reproducci´on de audio y v´ıdeo.
Existen varios circuitos que permiten su implementaci´on.
Conversi´
on digital-anal´
ogica
Nos referiremos a ´estos generalmente como DACs.
Se utilizan para convertir un valor digital con una precisi´on den bits a un valor de voltaje o corriente.
Son utilizados en sistemas de procesamiento de se˜nales digitales para reproducci´on de audio y v´ıdeo.
Conversi´
on digital-anal´
ogica
Nos referiremos a ´estos generalmente como DACs.
Se utilizan para convertir un valor digital con una precisi´on den bits a un valor de voltaje o corriente.
Son utilizados en sistemas de procesamiento de se˜nales digitales para reproducci´on de audio y v´ıdeo.
Existen varios circuitos que permiten su implementaci´on.
M´
etodos de conversi´
on digital-anal´
ogico
Red escalera R-2R
Es la forma m´as simple y econ´omica de armar un conversor D/A. Los valores de las resistencias deben ser lo m´as precisos posibles, sobre todo para los bits m´as significativos.
La velocidad de conversi´on es alta y el funcionamiento sencillo, a pesar de la gran cantidad de resistencias necesarias.
Requiere programaci´on del m´odulo GPIO en el MCU.
M´
etodos de conversi´
on digital-anal´
ogico
Se˜
nal PWM y filtro pasa-bajos
Utiliza solamente un pin en modo de PWM y es f´acil de armar. La se˜nal generada est´a limitada por la frecuencia de corte del filtro. El orden del filtro afecta la resoluci´on final del DAC.
Requiere programaci´on del m´odulo PWM oTimer en el MCU.
Para mayor informaci´on y hojas de aplicaci´on de TI y Microchip, buscar en
Google:pwm dac
Se˜
nal PWM y filtro pasa-bajos
Utiliza solamente un pin en modo de PWM y es f´acil de armar. La se˜nal generada est´a limitada por la frecuencia de corte del filtro. El orden del filtro afecta la resoluci´on final del DAC.
Requiere programaci´on del m´odulo PWM oTimer en el MCU.
Para mayor informaci´on y hojas de aplicaci´on de TI y Microchip, buscar en
M´
etodos de conversi´
on digital-anal´
ogico
M´etodo de conversi´
on utilizando DACs SPI
Conversi´
on con DACs SPI
Se delega la tarea de conversi´on a otroIC.
La resoluci´on est´a dada por las especificaciones del integrado.
Requiere un cableado m´ınimo y programaci´on delUSCI en el MCU.
Varios DACs se pueden armar sin espacio excesivo como en la red R-2R.
M´
odulo SPI en el TM4C123GH6PM
Caracter´ısticas y operaci´
on
SSI en el TM4C123GH6PM
Diagrama de bloques...
Cuatro módulos SSI. Cada uno con:
Formatos
Freescale SPI,
MICROWIRE
Interfaz serial síncrona de TI
Operacion como maestro o esclavo
Velocidad de reloj programable con
prescaler
Tamaño de la trama programable de 4 a 16
bits.
Memorias FIFO separadas para
transmisión y recepción ( 8 x16-bits )
Diagrama de bloques del módulo SSI
Interrupciones... Pines para señales (n = 0 a 3)
SSInClk: SSI Module n Clock SSInFss: SSI Module n Frame Signal SSInRx: SSI Module n Receive SSInTx: SSI Module n Transmit
Interrupciones en el módulo SSI
Operación uDMA...
Una interrupción por módulo, borrada automáticamente Condiciones para interrupción:
Servicio de transmisión FIFO (cuando la FIFO llena a la mitad o menos)
Servicio de recepción de FIFO (cuando la FIFO llena a la mitad o más)
Timeout excedido en la memoria FIFO de recepción.
Errores en la FIFO de recepción.
Fin de la transmisión
Transferencia de recepción DMA completa.
Transferencia de transmisión de DMA completa.
Interrupciones en estas condiciones pueden ser habilitadas individualmente.
El código manejador de la ISR debe determinar la fuente de la interrupción SSI y borrar las banderas.
M´
odulo SPI en el TM4C123GH6PM
Formatos de se˜
nales SPI
Formatos de señales en
SPI Freescale
Formatos de señal TI...
Interfaz de cuatro cables. Full duplex.
SSIFss actua como Chip-select
Estado inactivo y fase del reloj programables a través de los bits
SPO y SPH (parámetro SSI_FRF_MOTO_MODE_0-3)
SPO = 0: SSIClk en bajo cuando inactivo. SPO = 1: alto
SPH = 0: Datos capturados en 1ra transición SSIClk. SPH = 1: 2da SPO = 0 SPH = 0 Transferencia simple SPO = 0 SPH = 1 Transferencia simple
Formato
TI Synchronous Serial
Formato Microwire...
Interfaz de tres cables
Dispositivos siempre como esclavos
SSIClk y SSIFss forzados en estado bajo y SSITx en tri-estado cuando el módulo SSI está inactivo.
Transferencia única
Transferencia continua
Formato de señal
Microwire
Laboratorio...
Interfaz de cuatro cables
Similar a SPI, con transmisión full-duplex.
Técnica de paso de mensajes Maestro – Esclavo
Transferencia única
Transferencia continua
M´
odulo SPI en el TM4C123GH6PM
Configuraci´
on b´
asica con registros
Configurar el reloj de transmisi´
on
Para configurar el reloj debemos tener en cuenta tres cosas: La frecuencia del bus del sistema.
El campo de 8 bits SCRen el registroSSIx CR0 R.
Y el campo de 8 bits CPSDVSRen el registroSSIx CPSR Rcuyo
valor debe ser un n´umero par de 2 a 254.
La ecuaci´on para la frecuencia del bus SSI es entonces: fSSI =
fBUS
Configuraci´
on con registros
1 // H a b i l i t a r el m o d u l o SSI y el p u e r t o A v o l a t i l e u n s i g n e d l o n g d e l a y ; S Y S C T L _ R C G C S S I _ R |= S Y S C T L _ R C G C S S I _ R 0 ; 4 S Y S C T L _ R C G C G P I O _ R |= S Y S C T L _ R C G C G P I O _ R 0 ; d e l a y = S Y S C T L _ R C G C G P I O _ R ; 7 // C o n f i g u r a r f u n c i o n e s a l t e r n a t i v a s en los p i n e s PA2 , 3 , 5 G P I O _ P O R T A _ A F S E L _ R |= 0 x2c ; // C o n f i g u r a r la f u n c i o n de SSI en los p i n e s 10 G P I O _ P O R T A _ P C T L _ R = ( G P I O _ P O R T A _ P C T L _ R & 0 x f f 0 f 0 0 f f ) + G P I O _ P C T L _ P A 2 _ S S I 0 C L K + G P I O _ P C T L _ P A 3 _ S S I 0 F S S + G P I O _ P C T L _ P A 5 _ S S I 0 T X ; // C o n f i g u r a r los r e g i s t r o s de f u n c i o n e s d i g i t a l e s // c o n f i g u r a r pull - up o pull - d o w n a l t e r n a t i v a m e n t e 13 G P I O _ P O R T A _ A M S E L _ R = 0; G P I O _ P O R T A _ D E N _ R |= 0 x2c ;Configuraci´
on con registros
1 // D e s h a b i l i t a r el m o d u l o SSI a n t e s de h a c e r c a m b i o s S S I 0 _ C R 1 _ R &= ~ S S I _ C R 1 _ S S E ; // C o n f i g u r a r la o p e r a c i o n c o m o m a e s t r o 4 S S I 0 _ C R 1 _ R &= ~ S S I _ C R 1 _ M S ; // C o n f i g u r a r la f u e n t e de r e l o j c o m o r e l o j del s i s t e m a b a s a d o en un f a c t o r de d i v i s i o n S S I 0 _ C C _ R &= ~ S S I _ C C _ C S _ M ; 7 // C o n f i g u r a r el p r e s c a l e r p a r a una f r e c u e n c i a del m o d u l o SSI de 2 MHz = 40 MHz /20 S S I 0 _ C P S R _ R = ( S S I 0 _ C P S R _ R & ~ S S I _ C P S R _ C P S D V S R _ M ) + 20; // C o n f i g u r a r el s e r i a l c l o c k rate , p o l a r i d a d del r e l o j 10 // y fase , p r o t o c o l o y l a r g o de los d a t o s S S I 0 _ C R 0 _ R &= ~( S S I _ C R 0 _ S C R _ M ) ; // SCR = 0 // T e x a s I n s t r u m e n t s S y n c h r o n o u s S e r i a l F r a m e F o r m a t 13 S S I 0 _ C R 0 _ R = ( S S I 0 _ C R 0 _ R & ~ S S I _ C R 0 _ F R F _ M ) + S S I _ C R 0 _ F R F _ T I ; // 16 b i t s de d a t o s S S I 0 _ C R 0 _ R = ( S S I 0 _ C R 0 _ R & ~ S S I _ C R 0 _ D S S _ M ) + S S I _ C R 0 _ D S S _ 1 6 ; 16 // F i n a l m e n t e , h a b i l i t a r el m o d u l o SPI S S I 0 _ C R 1 _ R |= S S I _ C R 1 _ S S E ;M´
odulo SPI en el TM4C123GH6PM
Configuraci´
on utilizando la TivaWare
Configuraci´
on con la librer´ıa de perif´
ericos
Para utilizar la librer´ıa de perif´ericos debemos incluir las siguientes cabeceras:
# i n c l u d e " d r i v e r l i b / p i n _ m a p . h "
Configuraci´
on con la librer´ıa de perif´
ericos
1 // H a b i l i t a r el r e l o j S y s C t l P e r i p h e r a l E n a b l e( S Y S C T L _ P E R I P H _ S S I 0 ) ; S y s C t l P e r i p h e r a l E n a b l e( S Y S C T L _ P E R I P H _ G P I O A ) ; 4 // C o n f i g u r a r los p i n e s G P I O P i n C o n f i g u r e( G P I O _ P A 2 _ S S I 0 C L K ) ; 7 G P I O P i n C o n f i g u r e( G P I O _ P A 3 _ S S I 0 F S S ) ; G P I O P i n C o n f i g u r e( G P I O _ P A 5 _ S S I 0 T X ) ; G P I O P i n T y p e S S I( G P I O _ P O R T A _ B A S E , G P I O _ P I N _ 2 | G P I O _ P I N _ 3 | G P I O _ P I N _ 5 ) ; 10 // C o n f i g u r a r el m o d u l o SSI y h a b i l i t a r l o S S I C o n f i g S e t E x p C l k( S S I 0 _ B A S E , S y s C t l C l o c k G e t() , S S I _ F R F _ T I , S S I _ M O D E _ M A S T E R , 2 0 0 0 0 0 0 , 16) ; 13 S S I E n a b l e( S S I 0 _ B A S E ) ;Conexi´
on hacia DAC SPI TLV5616 de Texas Instruments
TLV5616
De acuerdo con la hoja de datos del TLV5616, la conexi´on se puede realizar utilizando una interfaz SPIthree-wire y conectando de la siguiente forma:
SS Slave Select: Selecciona el chip SPI a utilizar.
MOSI Master Output, Slave Input: L´ınea de datos de maestro a esclavo.
Equivalente al pin TX del m´odulo maestro.
SCLK Serial Clock: Se˜nal de reloj de maestro a esclavo para captura de
datos.
Conexiones en la Tiva Launchpad
En este ejemplo se utiliza el m´odulo SSI0, y seg´un la hoja de datos, los pines para el m´odulo correspondiente se encuentran en los siguientes bits de puertos:
Figura:Mapeo de pines para m´odulo SSI0 en TM4C123GH6PM. Referencia: Hoja de datos, p´ag. 1341
Preguntas
Reto
El reto es:Con el proyecto de ejemplo de configuraci´on del m´odulo SSI0, cambiar toda la rutina de configuraci´on para trabajar con el m´odulo SSI2, que se encuentra en el puerto B.
Documentos de ayuda
Documentaci´on de la librer´ıa de perif´ericos.
P´agina 1342 de la hoja de datos del TM4C123GH6PM.
¡Puntos extra!
Se dar´an cinco (5) puntos extras a quienes comuniquen entre s´ı dos Launchpads. Una (configurada como maestra) debe enviar continuamente datos a la otra (esclava), que puede utilizar interrupciones o polling para determinar que ha recibido datos y finalmente mostrarlos en la ventana del depurador. Los datos a enviar pueden ser valores de un contador.