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
Cuarto, analice los registros del capítulo GPIO.
Cinco, analiza el capítulo TIM4.
1. Descripción general: Editar
3. Diagrama de bloques interno
4. Capturar/Comparar registro CCR (Capturar/Comparar 1 registro)
5. Principio de funcionamiento de la división de frecuencia.
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
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
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)