STSPIN220 не выдает шаги

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
Аватара пользователя
daaar
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm
Контактная информация:

STSPIN220 не выдает шаги

Сообщение daaar »

Есть такая вот схема:
Изображение
Набросал тестовый код для атини
Спойлер

Код: Выделить всё

const int EN = 0, STEP = 1, DIR = 2, LED = 3, ACT = 4;
const int SPEED = 1;

void setup() {
  // put your setup code here, to run once:
  pinMode(EN, OUTPUT);
  pinMode(STEP, OUTPUT);
  pinMode(DIR, OUTPUT);
  pinMode(LED, OUTPUT);

  digitalWrite(DIR, HIGH);
  digitalWrite(STEP, LOW);
  delay(100);
  digitalWrite(EN, HIGH);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(STEP, HIGH);
  delay(SPEED);
  digitalWrite(STEP, LOW);
  delay(SPEED);
}
Сначала идет инициализация дробления шага, дальше подаю на EN единицу и выдаю шаги. Но какая-то магия не происходит и шаговик даже не напрягается. Шаговик вот такой
Осциллографом ничего не увидел на выходе драйвера

Датащит stspin220
Аватара пользователя
Sanchogus
Нашел транзистор. Понюхал.
Сообщения: 179
Зарегистрирован: Ср окт 07, 2015 13:13:40
Откуда: МО, г. Воскресенск
Контактная информация:

Re: STSPIN220 не выдает шаги

Сообщение Sanchogus »

Есть успехи? Есть такой драйвер, могу попробовать включить.
Инициализация, если не ошибаюсь по стендбаю идет, а не по EN.
Последний раз редактировалось Sanchogus Пт июн 03, 2022 18:36:17, всего редактировалось 1 раз.
Аватара пользователя
daaar
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm
Контактная информация:

Re: STSPIN220 не выдает шаги

Сообщение daaar »

Sanchogus, нет успехов :dont_know:
У вас на отладочной плате?
Аватара пользователя
Sanchogus
Нашел транзистор. Понюхал.
Сообщения: 179
Зарегистрирован: Ср окт 07, 2015 13:13:40
Откуда: МО, г. Воскресенск
Контактная информация:

Re: STSPIN220 не выдает шаги

Сообщение Sanchogus »

У меня на макетке из известных субстанций. :) М.б. после ужина заведу.

Сначала набросал включение EN, затем STBY и никакой реакции от драйвера.
Поменял местами: сначала STBY, затем EN, через задержку и всё заработало.
Без передергивания STBY переинициализация невозможна.
Без дрыгания EN тоже не работает. Похоже надо дрыгать оба и в нужном порядке. :?

И да, шунты 4,3 Ом перебор. Там входное Vsns +-1 В по даташиту.
Хотя бы до 1 Ома сбросить, ИМХО.

Спойлервот таким говнокодом запустил на STM32 (HAL)

Код: Выделить всё

  /* USER CODE BEGIN 2 */
  /*всё выключено*/
  HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(STBY_GPIO_Port, STBY_Pin, GPIO_PIN_RESET);
  /*инициализации на fullstep*/
  HAL_GPIO_WritePin(M1_GPIO_Port, M1_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(M2_GPIO_Port, M2_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(M3_GPIO_Port, M3_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(M4_GPIO_Port, M4_Pin, GPIO_PIN_RESET);

  HAL_Delay(1);
  HAL_GPIO_WritePin(STBY_GPIO_Port, STBY_Pin, GPIO_PIN_SET);
  HAL_Delay(1);
  HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_SET);
  HAL_Delay(1);
  HAL_TIM_Base_Start(&htim1);   //запуск таймера
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); //разрешение ШИМ на M3

  HAL_Delay(10000);
  /*всё выключаем*/
  HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(STBY_GPIO_Port, STBY_Pin, GPIO_PIN_RESET);
  HAL_Delay(1);
  TIM1->CCR1 = 0;   //M3 в ноль (через коэф. заполнения ШИМ = 0 )

  /*инициализации на 1/32 */
  HAL_GPIO_WritePin(M1_GPIO_Port, M1_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(M2_GPIO_Port, M2_Pin, GPIO_PIN_SET);
  TIM1->CCR1 = 0;   //M3 в ноль (через коэф. заполнения ШИМ = 0 )
  HAL_GPIO_WritePin(M4_GPIO_Port, M4_Pin, GPIO_PIN_RESET);

  HAL_Delay(1);
  HAL_GPIO_WritePin(STBY_GPIO_Port, STBY_Pin, GPIO_PIN_SET);
  HAL_Delay(1);
  HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_SET);
  HAL_Delay(1);
  TIM1->CCR1 = 500;   //ШИМ с коэф. заполнения 50%


  HAL_Delay(10000);
  /*всё выключаем*/
  HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(STBY_GPIO_Port, STBY_Pin, GPIO_PIN_RESET);
  HAL_Delay(1);
  TIM1->CCR1 = 0;   //M3 в ноль (через коэф. заполнения ШИМ = 0 )

  /*инициализации на 1/32 */
  HAL_GPIO_WritePin(M1_GPIO_Port, M1_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(M2_GPIO_Port, M2_Pin, GPIO_PIN_RESET);
  TIM1->CCR1 = 0;   //M3 в ноль (через коэф. заполнения ШИМ = 0 )
  HAL_GPIO_WritePin(M4_GPIO_Port, M4_Pin, GPIO_PIN_RESET);

  HAL_Delay(1);
  HAL_GPIO_WritePin(STBY_GPIO_Port, STBY_Pin, GPIO_PIN_SET);
  HAL_Delay(1);
  HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_SET);
  HAL_Delay(1);
  TIM1->CCR1 = 500;   //ШИМ с коэф. заполнения 50%
Аватара пользователя
daaar
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm
Контактная информация:

Re: STSPIN220 не выдает шаги

Сообщение daaar »

И да, шунты 4,3 Ом перебор. Там входное Vsns +-1 В по даташиту.
Хотя бы до 1 Ома сбросить, ИМХО.

У меня ток на мотор всего 50мА, если возьму резисторы меньше, то просто не смогу подобрать резисторы в делитель. Если я правильно всё посчитал.

Попробую запустить свой как до дома доберусь

Добавлено after 8 hours 20 minutes 26 seconds:
Может я делаю что-то не так, код поправил, перемычку на пин reset кинул, но ничего не движется. Даже нагрев не наблюдаю
Шаговик вот такой
Спойлерconst int EN = 0, STEP = 1, DIR = 2, RESET = 3, ACT = 4;
const int SPEED = 100;

void setup() {
pinMode(STEP, OUTPUT);
pinMode(DIR, OUTPUT);
pinMode(RESET, OUTPUT);
pinMode(EN, OUTPUT);
digitalWrite(RESET, LOW);
digitalWrite(EN, LOW);

// set step
digitalWrite(DIR, HIGH);
digitalWrite(STEP, LOW);

delay(10);
digitalWrite(RESET, HIGH);
delay(1);
digitalWrite(EN, HIGH);

delay(100);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(STEP, HIGH);
delayMicroseconds(SPEED);
digitalWrite(STEP, LOW);
delayMicroseconds(SPEED);
}
Аватара пользователя
daaar
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm
Контактная информация:

Re: STSPIN220 не выдает шаги

Сообщение daaar »

Всё таки добил шаговик, был не пропай в одном месте
Ответить

Вернуться в «Практика»