C6 - Microcontroller Ports

De Proyectos
Ir a la navegación Ir a la búsqueda

C6.1 - Puertos de TM4C123 Launchpad I/O




En la imagen de arriba se ven los 43 puertos del TM4C123:

  • 8 puesrtos UART
  • 4 puertos SSI
  • 4 puertos I2C
  • 2 convertidores ADC de 12bits
  • 12 timers
  • 1 puerto CAN
  • 1 puerto USB
  • 16 puertos PWM

Los pines se pueden configurar como:

  • digital I/O
  • analog input
  • timer I/O
  • serial I/O



TABLA 6.1

  • En el registro GPIOPCTL se configuran las funciones altrenativas de los pines (0 significa que se configura el pine como un puerto I/O normal).
  • Los pines que van de PC3-PC0 no salen en la tabla porque estan reservados para el debugger JTAG y no se pueden usar como puertos I/O normales.
  • Algunas funciones altrenativas solo pueden estar en un pin determinado y otras pueden estar en varios pines (por ejemplo CAN0Rx puede estar mapeado en los pines PB4, PE4 o PF0)




  • Esta es la placa Tiva LaunchPad basada en el chip LM4F120H5QR o TM4C123GH6PM.
  • Incluye integrado un In-Circuit Debug Interface (ICDI) que nos permite programar y hacer debug al controlador.
  • Un puerto USB sirve para el ICDI y el otro para desarrollar aplicaciones que se comuniquen por usb.
  • El switch de power permite que la placa se alimente por el usb del ICDI o por el otro USB.




  • Los pines PA1 y PA0 se utilizan como puerto serial para conectar el debugger al PC
  • Los pines PD4 y PD5 se utilizan para el USB
  • Los pines de PC3 a PC0 son para el debugger JTAG
  • El pin PB6 se conecta al PD0 mediante un resistor (R9)
  • El pin PB7 se conecta al PD1 mediante un resistor (R10)
  • Para usar los 4 pines individualmente se ha de desoldar el resistor R9 y R10
  • La placa tiene dos switches de logica negativa y requieren que se active la resistencia pull-up interna
  • La placa tiene 3 leds de colores de logica positiva (PF3-PF1)


C6.2 - Conecptos básicos de los puertos de Entrada y Salida




  • En esta imagen se puede ver como funciona un puerto en las operaciones de lectura y escritura.
  • En el ciclo de lectura el triestado pasa las señales input que estan en los pines al bus de datos.
  • En el ciclo de escritura el microcontrolador pone la información en el bus de datos y esa información se pasa al flip-flop de tipo D mediante una señal de reloj
  • El flip-flop que pone "Write to port direction register" es el encargado de hacer que el puerto sea de entrada o salida.
    • Cuando en el registro de dirección ponemos un 0 se deshabilita el triestado de salida y las señales del puerto pasan al bus de datos
    • Cuando en el registro de dirección ponemos un 1 se habilita el triestado de salida y entonces las señales del microcontrolador pasan al puerto
    • En el ciclo de escritura (salida) también está habilitado la lectura. Podemos leer el valor que acabamos de escribir en el puerto


C6.3 - Programación de los I/O y el Registro de Dirección


code

  • En el código de arriba se muestra como inicializar y interactuar con algunos puertos que son los que estan asignados al switch de la placa y a los leds.
  • Lo primero con lo que nos encontramos es #include "tm4c123ge6pm.h"
  • Luego vemos una declaración de variables (que nos serviran para guardar el estado de cada pin) y vemos una función que se llama PortF_Init(). Esta función es la encargada de inicializar los pines que vamos a necesitar en nuestro programa (en este caso inicializa el Puerto F)