Experimento PWM del núcleo Cortex-A7 - STM32MP157

Propósito del experimento: hacer funcionar el ventilador, el timbre y el motor.

Tabla de contenido

1. Conceptos relacionados con PWM

Zumbador activo y zumbador pasivo

Segundo, analice el diagrama de circuito, diagrama de bloques.

Tres, analiza el capítulo RCC.

1. Determinar la conexión del bus

2. Determine la dirección base según el contenido del bus.

3. Analizar los registros requeridos por el capítulo RCC

1, registro RCC_MP_AHB4ENSETR

2, registro RCC_MP_APB1ENSETR

Cuarto, analice los registros del capítulo GPIO.

1, registro GPIOx_MODER

2, registro GPIOx_AFRL

Cinco, analiza el capítulo TIM4.

 1. Descripción general: Editar

2. Características:

Método de conteo:

3. Diagrama de bloques interno

4. Capturar/Comparar registro CCR (Capturar/Comparar 1 registro)

5. Principio de funcionamiento de la división de frecuencia.

6. Analizar registros TIM4

1. Analizar el registro TIMx_CR1

2. Analizar el registro TIMx_CCMR1

3. Analizar el registro TIMx_CCER

4. Analizar el registro TIMx_PSC

5. Analizar el registro TIMx_ARR

6. Analizar el registro TIMx_CCR1

Seis, ventilador, motor.


1. Conceptos relacionados con PWM

PWM: (Modulación de ancho de pulso) Modulación de ancho de pulso: Es una forma de onda de pulso con ciclo de trabajo variable y es un método de codificación digital del nivel de señal analógica.

Pulso: señal de onda cuadrada, los cambios de nivel alto y bajo generarán una señal de onda cuadrada

Ciclo: el tiempo requerido para cambios de nivel alto y bajo, en ms

Frecuencia: existe una relación recíproca entre el período y la frecuencia, unidad: HZ, cuántas señales de onda cuadrada se pueden generar en 1 s

Ciclo de trabajo: en una onda cuadrada, el nivel alto representa el porcentaje de todo el período

Zumbador activo y zumbador pasivo

1. La fuente no es una fuente de alimentación, sino una fuente de oscilación.

2. Hay una fuente de oscilación dentro del zumbador activo y el nivel alto emite un sonido que se puede programar para niveles altos y bajos.

3. No hay una fuente de oscilación dentro del zumbador pasivo y necesita un controlador de señal de onda cuadrada específico para funcionar, y el precio es más económico.

4. Esta placa de desarrollo experimental está diseñada para usarse pasivamente para generar ondas cuadradas PWM.

Segundo, analice el diagrama de circuito, diagrama de bloques.

1. Según el número de red del diagrama esquemático de la versión extendida: combinado con los pines correspondientes de la placa de expansión de recursos:

Zumbador: TIM4_CH1 === PB6

Motor: TIM16_CH1 === PF6

Ventilador: TIM1_CH1 === PE9

2. El experimento toma como ejemplo el timbre.

diagrama de bloques

 analizar:

1. Es necesario analizar el capítulo RCC/GPIO/TIM4 del manual del chip.

2. RCC: habilitar grupo GPIOB/controlador de grupo TIM4

3. GPIO: 1) Establecer la función de multiplexación, 2) Establecer la función de multiplexación TIM4_CH1

4. TIM4: genera señal de onda cuadrada PWM

Tres, analiza el capítulo RCC.

1. Determinar la conexión del bus

Determine el bus GPIO: APB4; bus TIM: APB1 de acuerdo con el mapa de memoria y registre las direcciones de límite en el capítulo Arquitectura de bus y memoria

2. Determine la dirección base según el contenido del bus.

RCC: 0x5000 0000

GPIOB: 0x5000 3000

TIM4: 0x4000 2000

Determine la dirección del registro de acuerdo con la dirección base y el desplazamiento del registro: dirección del registro = dirección base + dirección de desplazamiento

3. Analizar los registros requeridos por el capítulo RCC

1, registro RCC_MP_AHB4ENSETR

Función: habilitar el controlador de grupo GPIOB

Dirección: 0x5000000 + 0xA28 = 0x50000A28

Pseudocódigo: RCC_MP_AHB4ENSETR[1] = 1

2, registro RCC_MP_APB1ENSETR

Función: habilitar el registro de grupo TIM4

Dirección: 0x5000000 + 0xA00 = 0x50000A00

Pseudocódigo: RCC_MP_APB1ENSETR[2] = 1

Cuarto, analice los registros del capítulo GPIO.

1, registro GPIOx_MODER

Función: configure el modo pin GPIOB en modo de función multiplex (cuatro tipos en total: entrada, salida, multiplex y analógico)

Dirección: 0x50003000 + 0x00 = 0x50003000

Operación: GPIOB_MODER[13:12] = 10

2, registro GPIOx_AFRL

Función: configure la función de multiplexación de pines GPIOB como función TIM4_CH1

Dirección: 0x50003000 + 0x20 = 0x50003020

Pseudocódigo: GPIOB_AFRL [27:24] = 0010 (la función de multiplexación determina el valor a dar según el capítulo Pinouts, descripción de pines y funciones alternativas)

Cinco, analiza el capítulo TIM4.

 1. Información general:

1. Contador de recarga automático, divisor de frecuencia programable

2. Onda cuadrada de salida

3. Preescalador del temporizador, preescalador del controlador de reloj RCC

4. Canal independiente

2. Características:

1, contador de recarga automática arriba, abajo, arriba/abajo de 16 bits

2. Incremento, disminución: modo alineado con bordes

3. Incremento/disminución: modo alineado al centro

Método de conteo:

Ejemplo: Contador ascendente: impulsa la señal del reloj del contador ascendente, en cada ciclo de reloj, el valor en el contador se incrementa en 1, después de sumar el valor en el contador ascendente es igual, comienza desde 0, comienza el siguiente ciclo de reloj

3. Diagrama de bloques interno

La imagen está corrupta :<

1. El sistema proporciona una fuente de reloj de 209 MHz, que se divide por el preescalador PSC (preescalador), y el valor de división de frecuencia es 209 división de frecuencia (personalizado)

2. Después de que comience el cronómetro, el valor en el contador de recarga automática ARR (registro de recarga automática) se cargará automáticamente en el contador de decremento CNT (contador)

3. La señal del reloj hace que el contador regresivo funcione. Dentro de un ciclo de reloj, el número en el contador disminuye continuamente en 1 hasta llegar a 0, el valor en el contador de recarga automática (ARR) se carga automáticamente en el contador regresivo. y se inicia el siguiente ciclo.

4. Capturar/Comparar registro CCR (Capturar/Comparar 1 registro)

Función: 1. Generar onda cuadrada PWM

                2. Cuando el valor en el contador regresivo (CNT) es igual al valor en el registro de comparación de captura (CCR), el nivel cambiará

5. Principio de funcionamiento de la división de frecuencia.

CK_PSC: fuente de reloj proporcionada por el sistema

CEN: habilitar señal

Timerclock = CK_CNT: contador de reloj

Registro de contador: registro de contador

Evento de actualización (UEV): evento de actualización

Registro de control del preescalador: registro de control del preescalador

Búfer preescalador: búfer divisor

Contador preescalador: contador divisor de frecuencia

El valor de ARPE en el registro TIMx_CR1 afectará la carga del contador de recarga automática, =0, carga inmediatamente, =1, carga en el siguiente ciclo de reloj

6. Analizar registros TIM4

1. Analizar el registro TIMx_CR1

Función: Inicializar operaciones relacionadas con el registro

Dirección: 0x40002000 + 0x00 = 0x40002000

pseudocódigo:

        TIM4_CR1[7] = 1 ==== Establecer habilitación del registro de precarga de recarga automática (ARR)

        TIM4_CR1[6:5] = 00 ==== Modo de alineación de bordes (CNT usa el modo decreciente, alineación de bordes)

        TIM4_CR1[4] = 1 ==== Establecer el contador CNT en cuenta regresiva

        TIM4_CR1[0] = 1 ==== Establecer contador CNT habilitado

2. Analizar el registro TIMx_CCMR1

Función: configurar comparar registro de captura

Dirección: 0x40002000 + 0x18 = 0x40002018

Pseudooperación: TIM4_CCMR1 [16][6:4] = 0110 ==== Establecer el modo de captura de comparación del canal 1 al modo PWM

TIM4_CCMR1 [3] = 1 ==== Establecer habilitación de precarga de registro de captura/comparación

TIM4_CCMR1 [1:0] = 00 ==== Establezca el canal de salida en el canal 1

3. Analizar el registro TIMx_CCER

Función: establece la polaridad de salida predeterminada del registro de captura de comparación (CCR)

Dirección: 0x40002000 + 0x20 = 0x40002020

Pseudocódigo: TIM4_CCER [3][1] = 00/01 ==== Establecer registro de captura de comparación, polaridad de salida predeterminada nivel alto/bajo (personalizado)

TIM_CCER [0] = 1 ==== Establecer habilitación de salida del registro de captura de comparación

4. Analizar el registro TIMx_PSC

Función: establece el valor de división de frecuencia del reloj del sistema

Dirección: 0x40002000 + 0x28 = 0x40002028

Pseudocódigo: TIM4_PSC = 209 - 1 (personalizado)

5. Analizar el registro TIMx_ARR

Rol: Establecer el valor en el contador de recarga automática (ARR)

Dirección: 0x40002000 + 0x2C = 0x4000202C

Pseudocódigo: TIM4_ARR = 1000 (personalizado)

6. Analizar el registro TIMx_CCR1

Rol: Establecer el valor en el comparador de captura (CCR)

Dirección: 0x40002000 + 0x34 = 0x40002034

Pseudocódigo: TIM4_CCR1 = 300 (personalizado)

Seis, ventilador, motor.

Los ventiladores y motores pueden cambiar el valor en el registro según el número de red, el canal y el número de pin correspondiente.

Otro: el motor no necesita configurar el modo de alineación de bordes y el modo de conteo regresivo del registro CR1

Un registro más BDTR para ventiladores y motores.

TIMX_BDTR

Función: habilitar salida principal

Dirección: 0x40002000 + 0x44 = 0x40002044

Pseudocódigo: TIMx_BDTR[15] = 1 (x está numerada según la red)

Supongo que te gusta

Origin blog.csdn.net/MaGuangming001/article/details/132500045
Recomendado
Clasificación