Módulo SPI y métodos de conversión D-A Rodrigo Chang Universidad de San Carlos de Guatemala com4.e6.usac@gmail.com 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étodos de conversión digital-analógico Qué es la conversión digital-analógica? Método de conversión por red escalera R-2R Método de conversión utilizando PWM y filtros paso-bajos Método de conversión utilizando DACs SPI 2 Módulo SPI en el TM4C123GH6PM Características y operación Formatos de señales SPI Configuración básica con registros Configuración utilizando la TivaWare Conexión hacia DAC SPI TLV5616 de Texas Instruments 3 Preguntas 4 Reto de la práctica Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 2 / 25
Métodos de conversión digital-analógico Qué es la conversión digital-analógica? Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 3 / 25
Conversión digital-analógica Nos referiremos a éstos generalmente como DACs. Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 4 / 25
Conversión digital-analógica Nos referiremos a éstos generalmente como DACs. Se utilizan para convertir un valor digital con una precisión 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ón digital-analógica Nos referiremos a éstos generalmente como DACs. Se utilizan para convertir un valor digital con una precisión de n bits a un valor de voltaje o corriente. Son utilizados en sistemas de procesamiento de señales digitales para reproducción de audio y vídeo. Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 4 / 25
Conversión digital-analógica Nos referiremos a éstos generalmente como DACs. Se utilizan para convertir un valor digital con una precisión de n bits a un valor de voltaje o corriente. Son utilizados en sistemas de procesamiento de señales digitales para reproducción de audio y vídeo. Existen varios circuitos que permiten su implementación. Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 4 / 25
Métodos de conversión digital-analógico 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ás simple y económica de armar un conversor D/A. Los valores de las resistencias deben ser lo más precisos posibles, sobre todo para los bits más significativos. La velocidad de conversión es alta y el funcionamiento sencillo, a pesar de la gran cantidad de resistencias necesarias. Requiere programación del módulo GPIO en el MCU. Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 6 / 25
Métodos de conversión digital-analógico Señal PWM y filtros pasa-bajos Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 7 / 25
Señal PWM y filtro pasa-bajos Utiliza solamente un pin en modo de PWM y es fácil de armar. La señal generada está limitada por la frecuencia de corte del filtro. El orden del filtro afecta la resolución final del DAC. Requiere programación del módulo PWM o Timer en el MCU. Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 8 / 25
Señal PWM y filtro pasa-bajos Utiliza solamente un pin en modo de PWM y es fácil de armar. La señal generada está limitada por la frecuencia de corte del filtro. El orden del filtro afecta la resolución final del DAC. Requiere programación del módulo PWM o Timer en el MCU. Para mayor información y hojas de aplicación de TI y Microchip, buscar en Google: pwm dac Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 8 / 25
Métodos de conversión digital-analógico Método de conversión utilizando DACs SPI Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 9 / 25
Conversión con DACs SPI Se delega la tarea de conversión a otro IC. La resolución está dada por las especificaciones del integrado. Requiere un cableado mínimo y programación 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ódulo SPI en el TM4C123GH6PM Características y operación 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ódulo SPI en el TM4C123GH6PM Formatos de señales 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 SPH = 0 Transferencia simple SPO = 0 SPH = 1 Transferencia simple SPO = 0: SSIClk en bajo cuando inactivo. SPO = 1: alto SPH = 0: Datos capturados en 1 ra transición SSIClk. SPH = 1: 2 da 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ódulo SPI en el TM4C123GH6PM Configuración básica con registros Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 13 / 25
Configurar el reloj de transmisión 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úmero par de 2 a 254. La ecuación para la frecuencia del bus SSI es entonces: f SSI = f BUS CPSDVSR (1 + SCR) Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 14 / 25
Configuración con registros 1 // Habilitar el modulo SSI y el puerto A volatile unsigned long delay ; SYSCTL_ RCGCSSI_ R = SYSCTL_ RCGCSSI_ R0 ; 4 SYSCTL_ RCGCGPIO_ R = SYSCTL_ RCGCGPIO_ R0 ; delay = SYSCTL_ RCGCGPIO_ R ; 7 // Configurar funciones alternativas en los pines PA2, 3, 5 GPIO_PORTA_AFSEL_R = 0 x2c ; // Configurar la funcion de SSI en los pines 0 GPIO_ PORTA_ PCTL_ R = ( GPIO_ PORTA_ PCTL_ R & 0 xff0f00ff ) + GPIO_ PCTL_ PA2_ SSI0CLK + GPIO_ PCTL_ PA3_ SSI0FSS + GPIO_ PCTL_ PA5_ SSI0TX ; // Configurar los registros de funciones digitales // configurar pull - up o pull - down alternativamente 3 GPIO_ PORTA_ AMSEL_ R = 0; GPIO_PORTA_DEN_R = 0 x2c ; Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 15 / 25
Configuración con registros 1 // Deshabilitar el modulo SSI antes de hacer cambios SSI0_CR1_R &= ~ SSI_CR1_SSE ; // Configurar la operacion como maestro 4 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 ; 7 // 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 0 // y fase, protocolo y largo de los datos SSI0_CR0_R &= ~( SSI_CR0_SCR_M ); // SCR = 0 // Texas Instruments Synchronous Serial Frame Format 3 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 ; 6 // 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ódulo SPI en el TM4C123GH6PM Configuración utilizando la TivaWare Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 17 / 25
Configuración con la librería de periféricos Para utilizar la librería de periféricos 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ón con la librería de periféricos 1 // Habilitar el reloj SysCtlPeripheralEnable ( SYSCTL_ PERIPH_ SSI0 ); SysCtlPeripheralEnable ( SYSCTL_ PERIPH_ GPIOA ); 4 // Configurar los pines GPIOPinConfigure ( GPIO_ PA2_ SSI0CLK ); 7 GPIOPinConfigure ( GPIO_ PA3_ SSI0FSS ); GPIOPinConfigure ( GPIO_ PA5_ SSI0TX ); GPIOPinTypeSSI ( GPIO_ PORTA_ BASE, GPIO_ PIN_ 2 GPIO_ PIN_ 3 GPIO_PIN_5 ); 0 // Configurar el modulo SSI y habilitarlo SSIConfigSetExpClk ( SSI0_BASE, SysCtlClockGet (), SSI_FRF_TI, SSI_ MODE_ MASTER, 2000000, 16) ; 3 SSIEnable ( SSI0_BASE ); Rodrigo Chang (USAC) Laboratorio de Comunicaciones 4 4 de marzo de 2015 19 / 25
Conexión hacia DAC SPI TLV5616 de Texas Instruments Conexión 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ón 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ódulo maestro. SCLK Serial Clock: Señal 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ódulo SSI0, y según la hoja de datos, los pines para el módulo correspondiente se encuentran en los siguientes bits de puertos: Figura: Mapeo de pines para módulo SSI0 en TM4C123GH6PM. Referencia: Hoja de datos, pág. 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áctica 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ón del módulo SSI0, cambiar toda la rutina de configuración para trabajar con el módulo SSI2, que se encuentra en el puerto B. Documentos de ayuda Documentación de la librería de periféricos. Página 1342 de la hoja de datos del TM4C123GH6PM. Puntos extra! Se darán 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