Перейти к содержанию

Как Соединить Atmega8, L298 И Двигатель?


Рекомендуемые сообщения

Есть atmega8, простенький код, чтобы крутил двигатель. Шаговый двигатель потебляет ток 1,4А и может крутиться на 48В макс. Sens заземлены, на EN-входы приложено по 5В. Выходы из МК на драйвер подтянул полевиками BUZ20. На выходе что-то в районе 12В. Почему?

Двигатель не крутится, хотя к нему приложено через L298 44В. Опять же, в чем причина?

На выходе мк странный сигнал. Вот такой код его создает:

// declarations
#include <avr/io.h>	 // I/O library
#include <avr/interrupt.h>
#define FLOW 25
#define STD_DELAY 40 // us
void long_delay_us(double us)
{
for(; us > 0; us--) _delay_us(1);
}
void long_delay_ms(double ms)
{
for(; ms > 0; ms--) _delay_ms(1);
}

ISR(TIMER0_OVF_vect)
{
PORTB = ~PORTB;	 // state of port X inverted

TCNT0 = 256 - FLOW;	 // starts new load not by 0
}

void cwC(uint16_t d_var)	 // move cw, pins 2-5, in 1/4 steps
{
PORTC = 0b00010100;
long_delay_us(d_var);
PORTC = 0b00011000;
long_delay_us(d_var);
PORTC = 0b00101000;
long_delay_us(d_var);
PORTC = 0b00100100;
long_delay_us(d_var);
}
// main function
int main(void)
{
long_delay_ms(2000);

TCNT0 = 256 - FLOW;

TCCR0 = (1 << CS02); // clock divided by 8 = 1MHz

TIMSK = (1 << TOIE0); // interrupt enable, for overflow

sei();	 // all interrupts are permitted
DDRC = 0b0111100;
PORTC = 0;



while(1)

{
cwC(STD_DELAY);
}

return 0;
}

Оба чипа работают, мк посылает сигнал, драйвер греется.

Фотки/скриншоты и код прилагаю. Ма внизу слева на скриншотах с осциллоскопа это максимальное напряжение. Все подключил, как на картинках. Симуляция работает, в живую - нет.

post-176870-0-54399600-1416500077_thumb.pngpost-176870-0-06113700-1416500078_thumb.pngpost-176870-0-19031100-1416500580_thumb.pngpost-176870-0-45117300-1416500580_thumb.png

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Двигатель не крутится, хотя к нему приложено через L298 44В. Опять же, в чем причина?
Двигатель шаговый, и не достаточно просто подать 44 В, Катушки двигателя должны включаться по-очереди.
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Двигатель не крутится, хотя к нему приложено через L298 44В. Опять же, в чем причина?
Двигатель шаговый, и не достаточно просто подать 44 В, Катушки двигателя должны включаться по-очереди.

Я не прикрепил фотку микроконтроллера.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Истоковые повторители на BUZ20 не только не нужны, но и вредны. Входа L298 абсолютно нормально стыкуются с МК без всяких промежуточных схем. А истоковый повторитель снижает уровень лог.1 до недопустимо низкого уровня.

Ссылка на комментарий
Поделиться на другие сайты

Истоковые повторители на BUZ20 не только не нужны, но и вредны. Входа L298 абсолютно нормально стыкуются с МК без всяких промежуточных схем. А истоковый повторитель снижает уровень лог.1 до недопустимо низкого уровня.

Хорошо, но как же быть с тем, что напряжение на ножке контроллера 3,6В, а L298 воспринимает от 4,5В?

Ссылка на комментарий
Поделиться на другие сайты

1. Какое питание у МК? Если 5 вольт, то с чего вы взяли, лог.1 еденица получается 3,6 вольт? Из даташита на мегу видно, что даже при стекающем токе 20 ма МК дает лог.1 не менее 4,2 вольт.

2. Откуда вы взяли, что лог.1 на входах L298 должна быть не менее 4,5 вольт?Это напряжение питания логической части должно быть не менее 4,5 вольт по даташиту. А минимальное напряжение лог.1 должно быть не менее 2,3 вольта.

3. Даже если предположить, что МК выдает единичный уровень 3,6 вольт, а драйверу для этого надо не менее 4,5 вольт, то каким образом с помощью истокового повторителя вы хотите исправить положение? Пороговое напряжение BUZ20 3-4 вольта.

Это означает что при выходе с МК 3,6 вольта после повторителя будет всегда лог.0. А при 5 вольтах повторитель будет давать 1-2 вольта, что явно ниже допустимого.

Изменено пользователем Sergey-Ufa
Ссылка на комментарий
Поделиться на другие сайты

1. Какое питание у МК? Если 5 вольт, то с чего вы взяли, лог.1 еденица получается 3,6 вольт? Из даташита на мегу видно, что даже при стекающем токе 20 ма МК дает

лог.1 не менее 4,2 вольт.

2. Откуда вы взяли, что лог.1 на входах L298 должна быть не менее 4,5 вольт?

Это напряжение питания логической части должно быть не менее 4,5 вольт по даташиту. А минимальное напряжение лог.1 должно быть не менее 2,3 вольта.

3. Даже если предположить, что МК выдает единичный уровень 3,6 вольт, а драйверу для этого надо не менее 4,5 вольт, то каким образом с помощью истокового повторителя вы хотите исправить положение? Пороговое напряжение BUZ20 3-4 вольта.

Это означает что при выходе с МК 3,6 вольта после повторителя будет всегда лог.0. А при 5 вольтах повторитель будет давать 1-2 вольта, что явно ниже допустимого.

1. Посмотрел осциллоскопом. Напряжение на одной из фоток с осциллоскопа внизу справа. Ма = макс. амплитуда.

2. Согласен.

3. Похоже, можно и без транзисторов. Но ведь не работает! Что не так? Я их вынул, не работает! На фотке с осциллоскопа странный сигнал. Опять же, что не так?!

Ссылка на комментарий
Поделиться на другие сайты

Чередование фаз у вас происходит с периодом 40 мкс или с частотой 25 кгц.

#define STD_DELAY 40 // us

................................

void cwC(uint16_t d_var) // move cw, pins 2-5, in 1/4 steps

{

PORTC = 0b00010100;

long_delay_us(d_var);

PORTC = 0b00011000;

long_delay_us(d_var);

PORTC = 0b00101000;

long_delay_us(d_var);

PORTC = 0b00100100;

long_delay_us(d_var);

}

.....................

while(1)

{

cwC(STD_DELAY);

}

Я не знаю такого шагового двигателя, который бы мог работать с такой частотой. Тем более стартуя с места сразу на максимальную частоту. Сделайте частоту хотя бы 100 гц и посмотрите, что будет происходить с движком.

P.S. Понял откуда вы взяли 25 кГц. Это предельная частота коммутации L298 при продолжительном режиме работы. Драйвер то может быть и скоммутирует такую частоту, а вот двигатель никогда в жизни ее не отработает. Вам надо было опираться не на эти 25 кгц, а на максимальную частоту шагов вашего двигателя. Когда смотрите даташит, то надо понимать что означает тот или иной параметр.

Изменено пользователем Sergey-Ufa
Ссылка на комментарий
Поделиться на другие сайты

Я не знаю такого шагового двигателя, который бы мог работать с такой частотой. Тем более стартуя с места сразу на максимальную частоту. Сделайте частоту хотя бы 100 гц и посмотрите, что будет происходить с движком.

Работало с L6207. На такой скорости. Двигатель может, драйвер не может. Частоту понижал, конечно. Еще до того как пост написал. По опыту из этого проекта знаю, что двигатель должен хотя бы немного крутится. Самое большее, что выставлял, было 5мс.

Ссылка на комментарий
Поделиться на другие сайты

Вообще-то ICL6207 это не драйвер шагового двигателя, а DC-DC конвертер. Поэтому и частота у него до мегагерцев.

Любопытно было бы узнать, какой шаговый двигатель используете?

Обмотки двигателя правильно подключены? А то может оказаться неправильное чередование фаз.

Осциллограммы реальные или с симулятора?

Не могу понять, какая частота развертки на верхней и нижней картинках.

Обратные диоды в вашей схеме подключены так, что ни на что не влияют - нет соединения с землей и плюсом питания. И вообще 1N4148 при токе фазы 1,4 ампера явно слабоваты. Надо ставить что-то из быстрых выпрямительных на такой ампераж.

Изменено пользователем Sergey-Ufa
Ссылка на комментарий
Поделиться на другие сайты

Вообще-то ICL6207 это не драйвер шагового двигателя, а DC-DC конвертер. Поэтому и частота у него до мегагерцев.

Любопытно было бы узнать, какой шаговый двигатель используете?

Обмотки двигателя правильно подключены? А то может оказаться неправильное чередование фаз.

Осциллограммы реальные или с симулятора?

Не могу понять, какая частота развертки на верхней и нижней картинках.

Обратные диоды в вашей схеме подключены так, что ни на что не влияют - нет соединения с землей и плюсом питания. И вообще 1N4148 при токе фазы 1,4 ампера явно слабоваты. Надо ставить что-то из быстрых выпрямительных на такой ампераж.

Где мой мост? Вот мой мост! :)

http://www.st.com/we.../CD00002293.pdf

Движок L4118S1404-T6X2

Правильность подключения надоело проверять. Если начнет сбоить, проверю. Там такая пимпа есть(из нее выходит шпиндель), так вот, она должна подрагивать. Если в разные стороны кручу, она будет туда-сюда елозить (смешное слово :)

Осциллограммы реальные.

На счет развертки, там есть внизу кнопка, над ней Type/Image, над ней секунд на клетку.

С диодами - исправил. Поменял их на BYV27.

post-176870-0-98091400-1416573097_thumb.png

Ссылка на комментарий
Поделиться на другие сайты

Осциллограммы на обмотках шаговика очень не похожи на реальные. Обычно всегда присутствует звон и искажение формы из-за взаимоиндукции обмоток. А тут чистейшая картинка. Очень странно выглядят фронты и спады импульсов. Осциллограммы больше похожи на пульсации напряжения источника питания из-за просадки при прямоугольной нагрузке. Попробуйте отключить драйвер от МК и в статическом режиме подавать на его входа логические уровни в соответствии с таблицей истинности. Так можно проверить его исправность. Напряжения на выходах удобнее будет измерить мультиметром. Шаговик при этом тоже лучше отключить и нагрузить драйвер резисторами.

Ссылка на комментарий
Поделиться на другие сайты

Осциллограммы на обмотках шаговика очень не похожи на реальные. Обычно всегда присутствует звон и искажение формы из-за взаимоиндукции обмоток. А тут чистейшая картинка. Очень странно выглядят фронты и спады импульсов.

Я не постил осциллограмм с обмоток шаговика. Картинки настоящие с осциллоскопа OWON. Модель посмотрю, когда буду рядом с прибором, если Вам интересно, конечно.

Осциллограммы больше похожи на пульсации напряжения источника питания из-за просадки при прямоугольной нагрузке.

Это 25 и 27 пины микроконтроллера ATmega8. Обмотки подключены к пинам с 25-26 и 27-28 соответственно. Понятно, через драйвер.

Попробуйте отключить драйвер от МК и в статическом режиме подавать на его входа логические уровни в соответствии с таблицей истинности. Так можно проверить его исправность. Напряжения на выходах удобнее будет измерить мультиметром. Шаговик при этом тоже лучше отключить и нагрузить драйвер резисторами.

Пробовал. Результат тот же. Попробую еще раз в понедельник. Может что-то упустил.

Ссылка на комментарий
Поделиться на другие сайты

Осциллограммы непосредственно на пинах МК или после истоковых повторителей? Что-то слишком маленькая и разная амплитуда. МК при такой нагрузке должен выдавать размах 0-5 вольт.

Что значит "результат тот же"? Если просто тупо подавать на вход драйвера 0 и +5 вольт, то его выход должен отрабатывать 0 и +силового питания соответственно. Это есть?

Ссылка на комментарий
Поделиться на другие сайты

Осциллограммы непосредственно на пинах МК или после истоковых повторителей?

На пинах МК.

Что-то слишком маленькая и разная амплитуда. МК при такой нагрузке должен выдавать размах 0-5 вольт.

Вот именно! Это и есть мой вопрос. Почему разная амплитуда? Максимум 3,6В как раз нормально. Я узнавал. Но что с амплитудой? И еще сигнал идет кусками, хотя должен быть непрерывным.

Что значит "результат тот же"? Если просто тупо подавать на вход драйвера 0 и +5 вольт, то его выход должен отрабатывать 0 и +силового питания соответственно. Это есть?

Боюсь, что именно этого нет. Судя по сигналу что-то не так с МК, но не возьму в тол что.Завтра посмотрю подключение. Надеюсь, что напутал: переподключу и заработает :). Если не ошибся, даже не знаю, что делать ;(

Изменено пользователем hellm
Ссылка на комментарий
Поделиться на другие сайты

Отсоедините МК от драйвера и посмотрите что творится на выходах МК. Исправный драйвер МК практически не нагружает и должен быть полный размах. А если напрямую подавать на входа драйвера логические уровни и он на них неадекватно реагирует, то драйвер точно крякнул. Логика работы там простейшая и никаких заумностей быть не должно. То, что сигнал идет кусками, то возможно это сбойный сброс МК от помех при работе драйвера. У вас предусмотрена однократная 2-секундная задержка при инициализации. Проверьте, если интервал между кусками соответствует задержке, то это может быть и есть перезапуск МК. Попробуйте включить МК без драйвера и посмотреть будет пустой интервал или нет.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...