Habilitando los registros desplegables Freescale IMX6 en un pin de entrada

2

Estoy buscando una manera de habilitar la resistencia desplegable en una MCU Freescale iMX6.

Estoy ejecutando una distribución de Linux en ella y generalmente interactúo con el hardware utilizando un lenguaje de nivel superior, por lo que no estoy 100% familiarizado con las cosas a continuación.

Por lo que leí en Manual de referencia del procesador de aplicaciones i.MX50 , las opciones de subir / bajar la resistencia se configuran usando la configuración de control del pad, en particular usando las siguientes funciones

  • PULL_KEEP_CTL (4 bits hacia arriba / abajo y controles de custodia)
  • PUS (valor de configuración de subida / bajada de 2 bits)
  • PUE (1 bit pull / keep select)
  • PKE (1 bit habilita / deshabilita la capacidad de subir, bajar o guardar)

Encontré la definición del pin en arch/arm/plat-mxc/include/mach/iomux-mx6q.h Encontré la definición del pin que me interesa (es para este pin donde quiero habilitar la resistencia desplegable).

#define _MX6Q_PAD_DISP0_DAT10__GPIO_4_31    IOMUX_PAD(0x04AC, 0x0198, 5, 0x0000, 0, 0)

La definición de IOMUX_PAD contiene lo siguiente

#define IOMUX_PAD(_pad_ctrl_ofs, _mux_ctrl_ofs, _mux_mode, _sel_input_ofs, _sel_input, _pad_ctrl)                                  \
  • _pad_ctrl_ofs - desplazamiento hexadecimal del registro de control, que selecciona los circuitos eléctricos (de la página 2336 en IMX35RM.pdf)
  • _mux_ctrl_ofs - desplazamiento hexadecimal del registro de control MUX, que selecciona la función del pin
  • _mux_mode - bits 2..0 en el registro de control MUX
  • _select_input_ofs - SELECT_INPUT offset de registro (consulte la tabla 4-11 IOMUX_CTL Registrar direcciones desde 0x07A8, IMX35RM.pdf)
  • _select_input: consulte la tabla 4-12 Lista de cadenas de margaritas, IMX35RM.pdf
  • _pad_ctrl: bits que se establecerán en el registro _pad_ctrl_ofs para la selección de la configuración

Me pregunto si cambiar el valor de _pad_ctrl haría el truco. ¿Cambiar la definición del pin, reconstruir el kernel y reiniciar el módulo con el nuevo kernel habilitaría la resistencia desplegable?

#define _MX6Q_PAD_DISP0_DAT10__GPIO_4_31    IOMUX_PAD(0x04AC, 0x0198, 5, 0x0000, 0, (PAD_CTL_PUS_100K_DOWN | PAD_CTL_PUE | PAD_CTL_PKE))

¿Hay otras formas de cambiar los valores de control del pad sin reconstruir un kernel y reiniciar el módulo?

    
pregunta ddewaele

1 respuesta

1

Verifique si puede acceder a / dev / mem que le da acceso a todo su ram y use mmap para acceder a los registros I / O asignados en memoria que necesita. Hice esto en un Beaglebone Black. Aquí hay un ejemplo de acceder al registro de bajo nivel en un Beaglebone Black, tal vez esto pueda dar eres una pista Espero que ayude!

    
respondido por el Fernando Luiz Cola

Lea otras preguntas en las etiquetas