M´odulo SPI y m´etodos de conversi´on D-A Rodrigo Chang Universidad de San Carlos de Guatemala
[email protected]
4 de marzo de 2015
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
1 / 25
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
4
Reto de la pr´actica Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
2 / 25
M´etodos de conversi´on digital-anal´ogico
¿Qu´e es la conversi´on digital-anal´ogica?
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
3 / 25
Conversi´on digital-anal´ogica Nos referiremos a ´estos generalmente como DACs.
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
4 / 25
Conversi´on digital-anal´ogica Nos referiremos a ´estos generalmente como DACs. Se utilizan para convertir un valor digital con una precisi´on de n bits a un valor de voltaje o corriente.
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
4 / 25
Conversi´on digital-anal´ogica Nos referiremos a ´estos generalmente como DACs. Se utilizan para convertir un valor digital con una precisi´on de n 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.
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
4 / 25
Conversi´on digital-anal´ogica Nos referiremos a ´estos generalmente como DACs. Se utilizan para convertir un valor digital con una precisi´on de n 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.
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
4 / 25
M´etodos de conversi´on digital-anal´ogico
Red escalera R-2R
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
5 / 25
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.
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
6 / 25
M´etodos de conversi´on digital-anal´ogico
Se˜nal PWM y filtros pasa-bajos
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
7 / 25
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 o Timer en el MCU.
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
8 / 25
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 o Timer en el MCU.
Para mayor informaci´on y hojas de aplicaci´ on de TI y Microchip, buscar en Google: pwm dac Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
8 / 25
M´etodos de conversi´on digital-anal´ogico
M´etodo de conversi´on utilizando DACs SPI
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
9 / 25
Conversi´on con DACs SPI Se delega la tarea de conversi´ on a otro IC. La resoluci´on est´a dada por las especificaciones del integrado. Requiere un cableado m´ınimo y programaci´ on del USCI en el MCU. Varios DACs se pueden armar sin espacio excesivo como en la red R-2R.
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
10 / 25
M´odulo SPI en el TM4C123GH6PM
Caracter´ısticas y operaci´on
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
11 / 25
SSI en el TM4C123GH6PM 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 )
Interrupciones y soporte para uDMA
Diagrama de bloques...
Diagrama de bloques del módulo SSI 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...
Interrupciones en el módulo SSI 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. Operación uDMA...
M´odulo SPI en el TM4C123GH6PM
Formatos de se˜nales SPI
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
12 / 25
Formatos de señales en SPI Freescale
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 Formatos de señal TI...
Formato TI Synchronous Serial
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 Microwire...
Formato de señal Microwire
Interfaz de cuatro cables
Similar a SPI, con transmisión full-duplex.
Técnica de paso de mensajes Maestro – Esclavo
Transferencia única
Transferencia
continua
Laboratorio...
M´odulo SPI en el TM4C123GH6PM
Configuraci´on b´asica con registros
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
13 / 25
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 SCR en el registro SSIx CR0 R. Y el campo de 8 bits CPSDVSR en el registro SSIx CPSR R cuyo valor debe ser un n´ umero par de 2 a 254. La ecuaci´on para la frecuencia del bus SSI es entonces: fSSI =
Rodrigo Chang (USAC)
fBUS CPSDVSR ∗ (1 + SCR)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
14 / 25
Configuraci´on con registros 1
4
7
10
13
// Habilitar el modulo SSI y el puerto A volatile unsigned long delay ; SYSCTL_RCGCSSI_R |= SYSCTL_RCGCSSI_R0 ; SYS CTL_RCGCGPIO_ R |= SYSCTL_RCGCGPIO_R0 ; delay = SYSCTL _RCGCG PIO_R ; // Configurar funciones alternativas en los pines PA2 , 3 , 5 GP IO_PORTA _A FS EL _R |= 0 x2c ; // Configurar la funcion de SSI en los pines GPI O_PORTA_PCTL_ R = ( GPIO_PORTA_PCTL_R & 0 xff0f00ff ) + GPI O_P C T L _ P A 2 _ S S I 0CLK + GPI O_PC TL_PA 3_SS I0FSS + GPIO_P C T L _ P A 5 _ S S I 0TX ; // Configurar los registros de funciones digitales // configurar pull - up o pull - down alternativamente GP IO_PORTA _A MS EL _R = 0; GPIO_PORTA_DEN_R |= 0 x2c ;
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
15 / 25
Configuraci´on con registros 1
4
7
10
13
// Deshabilitar el modulo SSI antes de hacer cambios SSI0_CR1_R &= ~ SSI_CR1_SSE ; // Configurar la operacion como maestro SSI0_CR1_R &= ~ SSI_CR1_MS ; // Configurar la fuente de reloj como reloj del sistema basado en un factor de division SSI0_CC_R &= ~ SSI_CC_CS_M ; // Configurar el prescaler para una frecuencia del modulo SSI de 2 MHz = 40 MHz /20 SSI0_CPSR_R = ( SSI0_CPSR_R & ~ SSI_CPSR_CPSDVSR_M ) + 20; // Configurar el serial clock rate , polaridad del reloj // y fase , protocolo y largo de los datos SSI0_CR0_R &= ~( SSI_CR0_SCR_M ) ; // SCR = 0 // Texas Instruments Synchronous Serial Frame Format SSI0_CR0_R = ( SSI0_CR0_R & ~ SSI_CR0_FRF_M ) + SSI_CR0_FRF_TI ; // 16 bits de datos SSI0_CR0_R = ( SSI0_CR0_R & ~ SSI_CR0_DSS_M ) + SSI_CR0_DSS_16 ;
16
// Finalmente , habilitar el modulo SPI SSI0_CR1_R |= SSI_CR1_SSE ; Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
16 / 25
M´odulo SPI en el TM4C123GH6PM
Configuraci´on utilizando la TivaWare
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
17 / 25
Configuraci´on con la librer´ıa de perif´ericos
Para utilizar la librer´ıa de perif´ericos debemos incluir las siguientes cabeceras: # include " driverlib / pin_map . h " # include " driverlib / ssi . h "
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
18 / 25
Configuraci´on con la librer´ıa de perif´ericos 1
// Habilitar el reloj S y s C tl Per i p h e r a l E n a b le ( SYSCTL_PERIPH_SSI0 ) ; S y s C tl Per i p h e r a l E n a b le ( SYSCTL_PERIPH_GPIOA ) ;
4
7
// Configurar los pines GPIOPinConfigure ( GPIO_PA2_SSI0CLK ) ; GPIOPinConfigure ( GPIO_PA3_SSI0FSS ) ; GPIOPinConfigure ( GPIO_PA5_SSI0TX ) ; GPIOPinTypeSSI ( GPIO_PORTA_BASE , GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_5 ) ;
10
13
// Configurar el modulo SSI y habilitarlo SS IConfigS et Ex pC lk ( SSI0_BASE , SysCtlClockGet () , SSI_FRF_TI , SSI_MODE_MASTER , 2000000 , 16) ; SSIEnable ( SSI0_BASE ) ;
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
19 / 25
Conexi´on hacia DAC SPI TLV5616 de Texas Instruments
Conexi´on de ejemplo
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
20 / 25
TLV5616 De acuerdo con la hoja de datos del TLV5616, la conexi´on se puede realizar utilizando una interfaz SPI three-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. Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
21 / 25
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
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
22 / 25
Preguntas
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
23 / 25
Reto de la pr´actica
Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
24 / 25
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. Rodrigo Chang (USAC)
Laboratorio de Comunicaciones 4
4 de marzo de 2015
25 / 25