STM32C8T6,TB6612带稳压模块与MG513P30的PCB连接原理图
你好,你这是干啥,这是想在平台上找人拉pcb还是要找人帮审原理图。
1.建议看下编码器的手册,是否能直接接到单片机引脚;
2.对比下STM32与TB6612的PWM引脚,是否在STM32的定时器PWM功能引脚上。
其他没什么问题。
以下答案由GPT-4.0Plus大模型与博主A努力中.......共同编写:
这是一个STM32控制TB6612步进电机驱动板的原理图。主要连接如下:
STM32和TB6612的电源部分
STM32的3.3V和GND与TB6612的VM和GND相连,为TB6612提供工作电源。TB6612的VDD和GND与外部电源相连,为步进电机提供驱动电源。
STM32和TB6612的控制部分
TB6612的电机接口
TB6612的OUT1-OUT4连接到步进电机的四个相位线
示波器测量接口
将TB6612的VM、GND、OUT1-OUT4等信号引出,以便通过示波器测量这些信号,辅助调试。
原理图连接总结:
综上,这是一个较典型的STM32控制步进电机的驱动电路。STM32产生控制脉冲,TB6612功率放大并驱动步进电机。关键是STM32的软件控制部分,需要产生正确的步进电机控制脉冲。
STM32F103C8T6最小系统原理图和PCB
可以借鉴下
https://blog.csdn.net/qq_35654286/article/details/124735473
可以参考下
void pwm_init(void)
{
GPIO_InitTypeDef GPIO_initStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBase_InitStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
GPIO_initStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_initStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_initStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_initStructure);
TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBase_InitStructure.TIM_Period = 7200-1;
TIM_TimeBase_InitStructure.TIM_Prescaler = 0;
TIM_TimeBaseInit(TIM2,&TIM_TimeBase_InitStructure);
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OC1Init(TIM2,&TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);
TIM_OC2Init(TIM2,&TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM2,TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM2,ENABLE);
TIM_Cmd(TIM2,ENABLE);
TIM2->CCR1 = 0;
TIM2->CCR2 = 0;
}
void driver_pin_init(void)
{
GPIO_InitTypeDef GPIO_initStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
GPIO_initStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_initStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_initStructure.GPIO_Pin = AIN1_pin | AIN2_pin;
GPIO_Init(GPIOA,&GPIO_initStructure);
GPIO_initStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_initStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_initStructure.GPIO_Pin = BIN1_pin | BIN2_pin;
GPIO_Init(GPIOB,&GPIO_initStructure);
GPIO_initStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_initStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_initStructure.GPIO_Pin = STBY_pin;
GPIO_Init(STBY_port,&GPIO_initStructure);
STBY_HIGH;
AIN1_HIGH;
AIN2_Low;
BIN1_HIGH;
BIN2_Low;
}