基于Stm32F0+TMC5130 Arduino接口42/57步进电机驱动参考原理图/PCB图/教程/源码等开源分享 资料下载见附件,电脑登入 公众号:游名开源 一、概述 TMC5130芯片是一款集成式步进电机驱动器和运动控制器(定位控制)解决方案,适用于医疗、3D打印机、云台或其它自动化设备对性能有较高的场合应用和静音控制。该芯片具有集成的SixPoint斜坡控制器,微步进分度器,无传感器失速检测技术StallGuard2和完全无噪声的电流控制模式StealthChop,旨在驱动双极步进电机。输出驱动器模块由低RDSon N沟道功率MOSFET组成,配置为全H桥,以驱动电机绕组。 TMC5130能够从每个输出驱动高达2.5A的电流(具有适当的散热)。TMC5130的供电电压为5-46V。 该器件提供SPI接口,用于配置和诊断以及步进和方向接口。 参数及特点: 2A电流(2.5A峰值),电压范围4.75-46VDC,9x9mm2 TQFP48封装 具有sixPoint斜坡的运动控制器 SPI和单线UART和Step / Dir接口,编码器接口和2x参考开关输入 每个完整步骤的最高分辨率256微步 stealthChop用于极其安静的操作和平稳的运动 spreadCycle高动态电机控制斩波器 dcStep负载相关的速度控制 stallGuard2高精度无传感器电机负载检测 coolStep电流控制,节能高达75% 集成电流检测选项,被动制动和续流模式,全面保护和诊断 |
åºäºStm32F0+TMC5130 Arduinoæ¥å£42æ57æ¥è¿çµæºé©±å¨åèåçå¾PCBå¾æç¨æºç çå¼æºå.pdf
下载1.08 MB, 下载次数: 148
TMC5130-Shieldåçå¾.pdf
下载673.85 KB, 下载次数: 42
TMC5130_datasheet_Rev1.16.pdf
下载2.41 MB, 下载次数: 39
TMC5130 SPI SPEED.rar
下载7.83 MB, 下载次数: 62
TMC5130 SPI POSITION.rar
下载7.83 MB, 下载次数: 64
TMC5130 DIR STEP.rar
下载7.5 MB, 下载次数: 68
游åç§æ产åç®å½ï¼2020-7-21ï¼.pdf
下载1.05 MB, 下载次数: 24
// TMC5130 SET ; G- K* d& R9 O9 _
sendData(0xEC,0x000100C3); . B: x& L- x* ~9 _
//CHOPCONF: TOFF=3, HSTRT=4, HEND=1, TBL=2, CHM=0 (spreadcycle)
sendData(0x90,0x0006160A); ) u# X) ~' t# f2 H
//PAGE33:IHOLD_IRUN: IHOLD=10, IRUN=22(31 max.current), IHOLDDELAY=6 : N$ ]# G# I5 L2 e2 z& Y2 J
sendData(0x91,0x0000000A);
//PAGE33:TPOWERDOWN=10:电机静止到电流减小之间的延时
sendData(0x80,0x00000004); & ^5 t+ P4 g8 @8 r1 t4 i, ?$ H
//PAGE27:EN_PWM_MODE=1,使能2 Q, s1 D/ K: ?, ^- H4 B e3 E
sendData(0x93,0x000001F4); 5 d5 x9 J* {$ U ~4 @* X8 A
//PAGE33:TPWM_THRS=500,对应切换速度35000=ca.30RPM
sendData(0xF0,0x000401C8);
//PAGE43WMCONF ) b1 e# R+ }6 T) s) C+ f0 P
///////////////////////////////////////////////////////////
sendData(0xA4,1000);
//A1=1000第一阶段加速度( ] M7 z6 x4 @( H
sendData(0xA5,50000);
//V1=50000加速度阀值速度V
sendData(0xA6,5000);
//AMAX=5000大于V1的加速度
sendData(0xA7,200000);
//VMAX=200000
sendData(0xA8,700); & _! C. @& M- X3 M/ f0 `
//DMAX=700大于V1的减速度 , ^1 `2 M% M+ A6 p2 v/ \4 |! _5 l5 E( U! k7 e
sendData(0xAA,1400); ( {7 J; c) o: @6 I- S, y9 L
//D1=1400小于V1的减速度
sendData(0xAB,10); . _: y( k4 \8 ~( J4 ^; ]
//VSTOP=10停止速度,接近于0
sendData(0xA0,0x00000000); . O5 Q% F. |6 e% y
//PAGE35:RAMPMODE=0位置模式,使用所有A、V、D参数
//TMC5130 SET 9 r) J! Y; M* `9 b+ o F& a
sendData(0xEC,0x000100C3);
//CHOPCONF: TOFF=3, HSTRT=4, HEND=1, TBL=2, CHM=0 (spreadcycle); e! L5 e- d f% t D4 m3 x
sendData(0x90,0x00011601);
//PAGE33:IHOLD_IRUN: IHOLD=10, IRUN=22(31 max.current), IHOLDDELAY=1 4 |1 ^( F4 N5 @# W' w' T
sendData(0x91,0x0000000A); & C7 G8 [; {2 p; [
//PAGE33:TPOWERDOWN=10:电机静止到电流减小之间的延时2 r( _6 \7 ^5 D! y. I
sendData(0x80,0x00000004);
//PAGE27:EN_PWM_MODE=1,使能1 n4 w, ^ u0 i1 E* _
sendData(0x93,0x000001F4);
//PAGE33:TPWM_THRS=500,对应切换速度35000=ca.30RPM
sendData(0xF0,0x000401C8); ' S, i; g/ |! A X0 g
//PAGE43WMCONF 2 U0 f4 s9 A" D% i% z
sendData(0xA4,1000);
//A1=1000第一阶段加速度2 n% k& Y! H7 k9 r9 u; p& ^
sendData(0xA5,50000); , G6 @2 `, s- `4 ^/ \( K
//V1=50000加速度阀值速度V1
sendData(0xA6,5000); ' {. n0 Z* I3 p& |$ a1 ?4 S! I- |
//AMAX=5000大于V1的加速度 4 h( B5 M G+ W
sendData(0xA7,200000); * w7 f; n% H8 ^
//VMAX=200000 z2 p/ J4 e+ z8 I
sendData(0xA8,700);
//DMAX=700大于V1的减速度 ( y. i/ i( p! |/ P- X2 A; S! x
sendData(0xAA,1400); , R+ Y6 ?, T; {6 ^/ O( T
//D1=1400小于V1的减速度
sendData(0xAB,10); 9 [2 ]' ?+ _; W
//VSTOP=10停止速度,接近于03 \3 O" y. ^& P( c3 C c
* Q- |, n7 K i# }
! [1 d( W9 N- ~! I' `* q7 p$ v4 v
SPI_MODE、SD_MODE:对应的J10、J11通过跳线帽选择高、低电平选择不同模式
VCC、VCC_IO电源:使用芯片内部5V输出电源,如果有外部5V电源可选择外部的,可降低芯片的发热和功耗;
母线电容CE1选择:一般是1A对应100uF左右(有条件的尽可能大);
电源保护:有条件的最好加防反接、TVS保护、以及保险丝等 f. e2 X! c7 n+ z) U, i" P$ x
芯片底部最好不要走其它线,保证地平面完整及散热;
电流取样电阻:5130不需要,5160外部MOS,要差分采样(开尔文接法);1 }) M# A6 g# c2 A
1、SPI接口速度模式. d1 j) z9 C7 X- D" b
芯片引脚跳线连接:
SPI_MODE:接高电平(VCC_IO)% M% q; V4 g" I& O' g
SD_MODE: 接低电平(GND)6 }8 A3 K; }& e
J7:短接5 n6 d/ Q' |9 u' U `
CSNB6
SCKA5
SDI:MOSI-PA77 P( r' J5 B# E1 J
SDO:MISO-PA6
芯片引脚跳线连接:: D! v: K8 ?* K: M& W
SPI_MODE:接高电平(VCC_IO)
SD_MODE: 接低电平(GND)
J7:短接
CSNB6
SCKA5
SDI:MOSI-PA7" E: H5 z6 n) x/ y
SDO:MISO-PA6, o( h) I3 j! P6 }% B
芯片引脚跳线连接:
SPI_MODE:接低电平(GND)
SD_MODE:接高电平(VCC_IO)
STEP:REFL-PB4,J2:短接$ ^1 f* C2 y/ T7 H+ L5 L
DIR: REFR-PB5,J5:短接6 C; g9 b" G* F9 ^2 t
CFG6RV_ENN-PC5,通过杜邦线接到底板PC5脚0 l- Y. J6 L @" s3 v
CFG5:ENCA-PC8,通过杜邦线接到底板PC8脚- h0 r4 f5 ^ Y9 v8 e
CFG4:ENCB-PC6,通过杜邦线接到底板PC6脚
CFG3:CSN-PB6 ,J7:短接
CFG2: SCK-PA57 j; t; ]6 y& E
CFG1: MOSI-PA7" ?. [& ?% V3 I3 D9 N8 T% E
CFG0: MISO-PA6
HAL_GPIO_WritePin(CFG0_GPIO_Port,CFG0_Pin, GPIO_PIN_SET); //PAGE:110 CFG0设置为高,TOOF:236Tclk$ d+ h' ?+ v5 _- x8 Y- _
SubdivisionSet(16); //PAGE:111 细分设置为16
ISet(); //电流设置AGE:1112 V. v$ @' w8 a1 g
HAL_GPIO_WritePin(CFG4_GPIO_Port,CFG4_Pin, GPIO_PIN_SET); //PAGE:111 CFG4设置为高,chopper hysteresis斩波器滞后 设置为9, L8 e1 V2 V; n9 m7 Q+ `- F
HAL_GPIO_WritePin(CFG5_GPIO_Port,CFG5_Pin, GPIO_PIN_SET); " c) ^' W0 `- q, k( L
//PAGE:111 CFG5设置为低,chopper blank time斩波器切换期间间隔时间设置为247 C$ y$ o2 V9 v2 s
HAL_GPIO_WritePin(CFG6_GPIO_Port,CFG6_Pin, GPIO_PIN_RESET);
//PAGE:112 CFG6设置为低电机驱动使能,为高关闭9 ^) o8 T: B2 w7 m0 S4 Z; F# ]) X
HAL_GPIO_WritePin(STEP_GPIO_Port,STEP_Pin, GPIO_PIN_SET); //STEP设置为高8 ~* W8 ?! I5 [! i2 [$ e