|
3239 | 3239 |
|
3240 | 3240 | #endif // HAS_TRINAMIC_CONFIG |
3241 | 3241 |
|
3242 | | -// @section L64XX |
3243 | | - |
3244 | | -/** |
3245 | | - * L64XX Stepper Driver options |
3246 | | - * |
3247 | | - * Arduino-L6470 library (0.8.0 or higher) is required. |
3248 | | - * https://github.com/ameyer/Arduino-L6470 |
3249 | | - * |
3250 | | - * Requires the following to be defined in your pins_YOUR_BOARD file |
3251 | | - * L6470_CHAIN_SCK_PIN |
3252 | | - * L6470_CHAIN_MISO_PIN |
3253 | | - * L6470_CHAIN_MOSI_PIN |
3254 | | - * L6470_CHAIN_SS_PIN |
3255 | | - * ENABLE_RESET_L64XX_CHIPS(Q) where Q is 1 to enable and 0 to reset |
3256 | | - */ |
3257 | | - |
3258 | | -#if HAS_L64XX |
3259 | | - |
3260 | | - //#define L6470_CHITCHAT // Display additional status info |
3261 | | - |
3262 | | - #if AXIS_IS_L64XX(X) |
3263 | | - #define X_MICROSTEPS 128 // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128) - L6474 max is 16 |
3264 | | - #define X_OVERCURRENT 2000 // (mA) Current where the driver detects an over current |
3265 | | - // L6470 & L6474 - VALID: 375 x (1 - 16) - 6A max - rounds down |
3266 | | - // POWERSTEP01: VALID: 1000 x (1 - 32) - 32A max - rounds down |
3267 | | - #define X_STALLCURRENT 1500 // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) - 4A max - rounds down) |
3268 | | - // L6470 & L6474 - VALID: 31.25 * (1-128) - 4A max - rounds down |
3269 | | - // POWERSTEP01: VALID: 200 x (1 - 32) - 6.4A max - rounds down |
3270 | | - // L6474 - STALLCURRENT setting is used to set the nominal (TVAL) current |
3271 | | - #define X_MAX_VOLTAGE 127 // 0-255, Maximum effective voltage seen by stepper - not used by L6474 |
3272 | | - #define X_CHAIN_POS -1 // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI |
3273 | | - #define X_SLEW_RATE 1 // 0-3, Slew 0 is slowest, 3 is fastest |
3274 | | - #endif |
3275 | | - |
3276 | | - #if AXIS_IS_L64XX(X2) |
3277 | | - #define X2_MICROSTEPS X_MICROSTEPS |
3278 | | - #define X2_OVERCURRENT 2000 |
3279 | | - #define X2_STALLCURRENT 1500 |
3280 | | - #define X2_MAX_VOLTAGE 127 |
3281 | | - #define X2_CHAIN_POS -1 |
3282 | | - #define X2_SLEW_RATE 1 |
3283 | | - #endif |
3284 | | - |
3285 | | - #if AXIS_IS_L64XX(Y) |
3286 | | - #define Y_MICROSTEPS 128 |
3287 | | - #define Y_OVERCURRENT 2000 |
3288 | | - #define Y_STALLCURRENT 1500 |
3289 | | - #define Y_MAX_VOLTAGE 127 |
3290 | | - #define Y_CHAIN_POS -1 |
3291 | | - #define Y_SLEW_RATE 1 |
3292 | | - #endif |
3293 | | - |
3294 | | - #if AXIS_IS_L64XX(Y2) |
3295 | | - #define Y2_MICROSTEPS Y_MICROSTEPS |
3296 | | - #define Y2_OVERCURRENT 2000 |
3297 | | - #define Y2_STALLCURRENT 1500 |
3298 | | - #define Y2_MAX_VOLTAGE 127 |
3299 | | - #define Y2_CHAIN_POS -1 |
3300 | | - #define Y2_SLEW_RATE 1 |
3301 | | - #endif |
3302 | | - |
3303 | | - #if AXIS_IS_L64XX(Z) |
3304 | | - #define Z_MICROSTEPS 128 |
3305 | | - #define Z_OVERCURRENT 2000 |
3306 | | - #define Z_STALLCURRENT 1500 |
3307 | | - #define Z_MAX_VOLTAGE 127 |
3308 | | - #define Z_CHAIN_POS -1 |
3309 | | - #define Z_SLEW_RATE 1 |
3310 | | - #endif |
3311 | | - |
3312 | | - #if AXIS_IS_L64XX(Z2) |
3313 | | - #define Z2_MICROSTEPS Z_MICROSTEPS |
3314 | | - #define Z2_OVERCURRENT 2000 |
3315 | | - #define Z2_STALLCURRENT 1500 |
3316 | | - #define Z2_MAX_VOLTAGE 127 |
3317 | | - #define Z2_CHAIN_POS -1 |
3318 | | - #define Z2_SLEW_RATE 1 |
3319 | | - #endif |
3320 | | - |
3321 | | - #if AXIS_IS_L64XX(Z3) |
3322 | | - #define Z3_MICROSTEPS Z_MICROSTEPS |
3323 | | - #define Z3_OVERCURRENT 2000 |
3324 | | - #define Z3_STALLCURRENT 1500 |
3325 | | - #define Z3_MAX_VOLTAGE 127 |
3326 | | - #define Z3_CHAIN_POS -1 |
3327 | | - #define Z3_SLEW_RATE 1 |
3328 | | - #endif |
3329 | | - |
3330 | | - #if AXIS_IS_L64XX(Z4) |
3331 | | - #define Z4_MICROSTEPS Z_MICROSTEPS |
3332 | | - #define Z4_OVERCURRENT 2000 |
3333 | | - #define Z4_STALLCURRENT 1500 |
3334 | | - #define Z4_MAX_VOLTAGE 127 |
3335 | | - #define Z4_CHAIN_POS -1 |
3336 | | - #define Z4_SLEW_RATE 1 |
3337 | | - #endif |
3338 | | - |
3339 | | - #if AXIS_IS_L64XX(I) |
3340 | | - #define I_MICROSTEPS 128 |
3341 | | - #define I_OVERCURRENT 2000 |
3342 | | - #define I_STALLCURRENT 1500 |
3343 | | - #define I_MAX_VOLTAGE 127 |
3344 | | - #define I_CHAIN_POS -1 |
3345 | | - #define I_SLEW_RATE 1 |
3346 | | - #endif |
3347 | | - |
3348 | | - #if AXIS_IS_L64XX(J) |
3349 | | - #define J_MICROSTEPS 128 |
3350 | | - #define J_OVERCURRENT 2000 |
3351 | | - #define J_STALLCURRENT 1500 |
3352 | | - #define J_MAX_VOLTAGE 127 |
3353 | | - #define J_CHAIN_POS -1 |
3354 | | - #define J_SLEW_RATE 1 |
3355 | | - #endif |
3356 | | - |
3357 | | - #if AXIS_IS_L64XX(K) |
3358 | | - #define K_MICROSTEPS 128 |
3359 | | - #define K_OVERCURRENT 2000 |
3360 | | - #define K_STALLCURRENT 1500 |
3361 | | - #define K_MAX_VOLTAGE 127 |
3362 | | - #define K_CHAIN_POS -1 |
3363 | | - #define K_SLEW_RATE 1 |
3364 | | - #endif |
3365 | | - |
3366 | | - #if AXIS_IS_L64XX(U) |
3367 | | - #define U_MICROSTEPS 128 |
3368 | | - #define U_OVERCURRENT 2000 |
3369 | | - #define U_STALLCURRENT 1500 |
3370 | | - #define U_MAX_VOLTAGE 127 |
3371 | | - #define U_CHAIN_POS -1 |
3372 | | - #define U_SLEW_RATE 1 |
3373 | | - #endif |
3374 | | - |
3375 | | - #if AXIS_IS_L64XX(V) |
3376 | | - #define V_MICROSTEPS 128 |
3377 | | - #define V_OVERCURRENT 2000 |
3378 | | - #define V_STALLCURRENT 1500 |
3379 | | - #define V_MAX_VOLTAGE 127 |
3380 | | - #define V_CHAIN_POS -1 |
3381 | | - #define V_SLEW_RATE 1 |
3382 | | - #endif |
3383 | | - |
3384 | | - #if AXIS_IS_L64XX(W) |
3385 | | - #define W_MICROSTEPS 128 |
3386 | | - #define W_OVERCURRENT 2000 |
3387 | | - #define W_STALLCURRENT 1500 |
3388 | | - #define W_MAX_VOLTAGE 127 |
3389 | | - #define W_CHAIN_POS -1 |
3390 | | - #define W_SLEW_RATE 1 |
3391 | | - #endif |
3392 | | - |
3393 | | - #if AXIS_IS_L64XX(E0) |
3394 | | - #define E0_MICROSTEPS 128 |
3395 | | - #define E0_OVERCURRENT 2000 |
3396 | | - #define E0_STALLCURRENT 1500 |
3397 | | - #define E0_MAX_VOLTAGE 127 |
3398 | | - #define E0_CHAIN_POS -1 |
3399 | | - #define E0_SLEW_RATE 1 |
3400 | | - #endif |
3401 | | - |
3402 | | - #if AXIS_IS_L64XX(E1) |
3403 | | - #define E1_MICROSTEPS E0_MICROSTEPS |
3404 | | - #define E1_OVERCURRENT 2000 |
3405 | | - #define E1_STALLCURRENT 1500 |
3406 | | - #define E1_MAX_VOLTAGE 127 |
3407 | | - #define E1_CHAIN_POS -1 |
3408 | | - #define E1_SLEW_RATE 1 |
3409 | | - #endif |
3410 | | - |
3411 | | - #if AXIS_IS_L64XX(E2) |
3412 | | - #define E2_MICROSTEPS E0_MICROSTEPS |
3413 | | - #define E2_OVERCURRENT 2000 |
3414 | | - #define E2_STALLCURRENT 1500 |
3415 | | - #define E2_MAX_VOLTAGE 127 |
3416 | | - #define E2_CHAIN_POS -1 |
3417 | | - #define E2_SLEW_RATE 1 |
3418 | | - #endif |
3419 | | - |
3420 | | - #if AXIS_IS_L64XX(E3) |
3421 | | - #define E3_MICROSTEPS E0_MICROSTEPS |
3422 | | - #define E3_OVERCURRENT 2000 |
3423 | | - #define E3_STALLCURRENT 1500 |
3424 | | - #define E3_MAX_VOLTAGE 127 |
3425 | | - #define E3_CHAIN_POS -1 |
3426 | | - #define E3_SLEW_RATE 1 |
3427 | | - #endif |
3428 | | - |
3429 | | - #if AXIS_IS_L64XX(E4) |
3430 | | - #define E4_MICROSTEPS E0_MICROSTEPS |
3431 | | - #define E4_OVERCURRENT 2000 |
3432 | | - #define E4_STALLCURRENT 1500 |
3433 | | - #define E4_MAX_VOLTAGE 127 |
3434 | | - #define E4_CHAIN_POS -1 |
3435 | | - #define E4_SLEW_RATE 1 |
3436 | | - #endif |
3437 | | - |
3438 | | - #if AXIS_IS_L64XX(E5) |
3439 | | - #define E5_MICROSTEPS E0_MICROSTEPS |
3440 | | - #define E5_OVERCURRENT 2000 |
3441 | | - #define E5_STALLCURRENT 1500 |
3442 | | - #define E5_MAX_VOLTAGE 127 |
3443 | | - #define E5_CHAIN_POS -1 |
3444 | | - #define E5_SLEW_RATE 1 |
3445 | | - #endif |
3446 | | - |
3447 | | - #if AXIS_IS_L64XX(E6) |
3448 | | - #define E6_MICROSTEPS E0_MICROSTEPS |
3449 | | - #define E6_OVERCURRENT 2000 |
3450 | | - #define E6_STALLCURRENT 1500 |
3451 | | - #define E6_MAX_VOLTAGE 127 |
3452 | | - #define E6_CHAIN_POS -1 |
3453 | | - #define E6_SLEW_RATE 1 |
3454 | | - #endif |
3455 | | - |
3456 | | - #if AXIS_IS_L64XX(E7) |
3457 | | - #define E7_MICROSTEPS E0_MICROSTEPS |
3458 | | - #define E7_OVERCURRENT 2000 |
3459 | | - #define E7_STALLCURRENT 1500 |
3460 | | - #define E7_MAX_VOLTAGE 127 |
3461 | | - #define E7_CHAIN_POS -1 |
3462 | | - #define E7_SLEW_RATE 1 |
3463 | | - #endif |
3464 | | - |
3465 | | - /** |
3466 | | - * Monitor L6470 drivers for error conditions like over temperature and over current. |
3467 | | - * In the case of over temperature Marlin can decrease the drive until the error condition clears. |
3468 | | - * Other detected conditions can be used to stop the current print. |
3469 | | - * Relevant G-codes: |
3470 | | - * M906 - I1/2/3/4/5 Set or get motor drive level using axis codes X, Y, Z, E. Report values if no axis codes given. |
3471 | | - * I not present or I0 or I1 - X, Y, Z or E0 |
3472 | | - * I2 - X2, Y2, Z2 or E1 |
3473 | | - * I3 - Z3 or E3 |
3474 | | - * I4 - Z4 or E4 |
3475 | | - * I5 - E5 |
3476 | | - * M916 - Increase drive level until get thermal warning |
3477 | | - * M917 - Find minimum current thresholds |
3478 | | - * M918 - Increase speed until max or error |
3479 | | - * M122 S0/1 - Report driver parameters |
3480 | | - */ |
3481 | | - //#define MONITOR_L6470_DRIVER_STATUS |
3482 | | - |
3483 | | - #if ENABLED(MONITOR_L6470_DRIVER_STATUS) |
3484 | | - #define KVAL_HOLD_STEP_DOWN 1 |
3485 | | - //#define L6470_STOP_ON_ERROR |
3486 | | - #endif |
3487 | | - |
3488 | | -#endif // HAS_L64XX |
3489 | 3242 |
|
3490 | 3243 | // @section i2cbus |
3491 | 3244 |
|
|
0 commit comments