МК запрограммировал на быструю 8 битную ШИМ с точной фазой и частотой, с подключением внешнего кварца на 16 МГц что дало стабильную выходную частоту в 31,2 КГц, ШИМ тоже работает отлично, но как только подключаю этот сигнал к драйверу и проверяю его на выходе с драйвера частота скачет с 40-101КГц, меандр на осциллограмме постоянно прыгает. Не могу понять в чем проблема, подскажите пожалуйста новичку
Atmega8 + драйвер mc34151 проблема в работе драйвера
- Сообщения: 4
- Зарегистрирован: Сб май 21, 2022 17:08:25
Всем доброго времени суток. Есть проблема в работе ШИМ сигнала на выходе с драйвера мс34151.
МК запрограммировал на быструю 8 битную ШИМ с точной фазой и частотой, с подключением внешнего кварца на 16 МГц что дало стабильную выходную частоту в 31,2 КГц, ШИМ тоже работает отлично, но как только подключаю этот сигнал к драйверу и проверяю его на выходе с драйвера частота скачет с 40-101КГц, меандр на осциллограмме постоянно прыгает. Не могу понять в чем проблема, подскажите пожалуйста новичку
МК запрограммировал на быструю 8 битную ШИМ с точной фазой и частотой, с подключением внешнего кварца на 16 МГц что дало стабильную выходную частоту в 31,2 КГц, ШИМ тоже работает отлично, но как только подключаю этот сигнал к драйверу и проверяю его на выходе с драйвера частота скачет с 40-101КГц, меандр на осциллограмме постоянно прыгает. Не могу понять в чем проблема, подскажите пожалуйста новичку
- Реклама
- Сообщения: 532
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Процессор выдает, то что надо, если "правильные": программа, питание и разводка платы.
[uquote="PRoman",url="/forum/viewtopic.php?p=4235311#p4235311"]как только подключаю этот сигнал к драйверу и проверяю его на выходе с драйвера частота скачет с 40-101КГц, меандр на осциллограмме постоянно прыгает[/uquote]
1. От чего получает питание драйвер и всё ли хорошо с его питанием?
2. Попробуйте нагрузить драйвер резистором на 1к и измерить ещё раз.
1. От чего получает питание драйвер и всё ли хорошо с его питанием?
2. Попробуйте нагрузить драйвер резистором на 1к и измерить ещё раз.
- Сообщения: 4
- Зарегистрирован: Сб май 21, 2022 17:08:25
codenamehawk, Питание идёт от лабораторнка ровно 5В, и проблема на в МК, а с драйвером. С МК сигнал идет такой, какой нужен и ШИМ тоже работает, но когда подключаю сигнал от МК к драйверу и щуп переключаю на выход с драйвера, то выходящий сигнал не стабильный, прыгает частота и ШИМ не работает, вот в чем проблема. (питание на драйвер подаю с другого лабороторника 12В)
Добавлено after 5 minutes 18 seconds:
electroget, По поводу питания, питание идёт от 2х лабораторных блоков питания (5В на МК и 12В на драйвер), попробовал с нагрузкой, подключил лампочку на 12В через транзистор, к транзистору подвёл сигнал с драйвера. Все равно сигнал не стабильный частота прыгает и ШИМ не работает, в то время если щуп подключить на выход на мк, то сигнал отличный и шим работает.
Добавлено after 5 minutes 18 seconds:
electroget, По поводу питания, питание идёт от 2х лабораторных блоков питания (5В на МК и 12В на драйвер), попробовал с нагрузкой, подключил лампочку на 12В через транзистор, к транзистору подвёл сигнал с драйвера. Все равно сигнал не стабильный частота прыгает и ШИМ не работает, в то время если щуп подключить на выход на мк, то сигнал отличный и шим работает.
PRoman,
Там вариантов всего два. Либо проблема с питанием драйвера, линии питания и цепь общего провода, либо неисправность самого драйвера. Проверьте ещё раз линии питания и общего провода подключения драйвера, проверьте надёжность соединения минусов блоков питания 5 Вольт и 12 Вольт и если с питанием точно всё в порядке, то тогда меняйте драйвер на новый.
Там вариантов всего два. Либо проблема с питанием драйвера, линии питания и цепь общего провода, либо неисправность самого драйвера. Проверьте ещё раз линии питания и общего провода подключения драйвера, проверьте надёжность соединения минусов блоков питания 5 Вольт и 12 Вольт и если с питанием точно всё в порядке, то тогда меняйте драйвер на новый.
- Реклама
- Сообщения: 532
- Зарегистрирован: Вт фев 09, 2010 17:52:26
[uquote="PRoman",url="/forum/viewtopic.php?p=4236643#p4236643"]то выходящий сигнал не стабильный, прыгает частота и ШИМ не работает,[/uquote]
Так не надо все сразу проверять.
Зафиксируйте значение шим на одном значении и проверьте как ведет себя частота.
Скорее всего надо проверять код.
Так не надо все сразу проверять.
Зафиксируйте значение шим на одном значении и проверьте как ведет себя частота.
Скорее всего надо проверять код.
- Сообщения: 4
- Зарегистрирован: Сб май 21, 2022 17:08:25
[uquote="codenamehawk",url="/forum/viewtopic.php?p=4236810#p4236810"][uquote="PRoman",url="/forum/viewtopic.php?p=4236643#p4236643"]то выходящий сигнал не стабильный, прыгает частота и ШИМ не работает,[/uquote]
Так не надо все сразу проверять.
Зафиксируйте значение шим на одном значении и проверьте как ведет себя частота.
Скорее всего надо проверять код.[/uquote]
Частота прыгает только с выхода драйвера, со стороны мк все нормально работает.
Вот мой код:
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
int pwm_duty = 0; // Скважность
void PWM_Duty_Controls (void) //Настройка портов на внешнее прерывание энкодера
{
//Настройка портов на внешнее преривание
DDRD &= ~(1<<2);
PORTD |= (1<<2);
DDRC &= ~(1<<0);
PORTC |= (1<<0);
//Внешние преривыния
MCUCR |= (1<<ISC01); //Прерывание по спаду
GICR |= (1<<INT0);
sei();
}
ISR(INT0_vect)
{
if (~PINC & (1<<0))
{
pwm_duty++;
_delay_ms(50);
}
else
{
pwm_duty--;
_delay_ms(50);
}
OCR2 = pwm_duty;
}
void PWM_8Bit_settings (void) //Настройка ШИМ на 2ом таймер счетчике 8 бит
{
DDRB |= (1<<3); //ШИМ PB3
TCCR2 |= (1<<WGM20); //8 бит ШИМ с точной фазой
TCCR2 |= (1<<COM20);
TCCR2 |= (1<<CS20); //Без делителя частоты
OCR2 = 127;
}
int main(void)
{
PWM_Duty_Controls();
PWM_8Bit_settings();
while (1)
{
}
}
Добавлено after 3 minutes 7 seconds:
[uquote="electroget",url="/forum/viewtopic.php?p=4236744#p4236744"]PRoman,
Там вариантов всего два. Либо проблема с питанием драйвера, линии питания и цепь общего провода, либо неисправность самого драйвера. Проверьте ещё раз линии питания и общего провода подключения драйвера, проверьте надёжность соединения минусов блоков питания 5 Вольт и 12 Вольт и если с питанием точно всё в порядке, то тогда меняйте драйвер на новый.[/uquote]
Да вроде все нормально по питанию, единственное уже грешу на макетную плату, может из за неё такие проблемы ?
Так не надо все сразу проверять.
Зафиксируйте значение шим на одном значении и проверьте как ведет себя частота.
Скорее всего надо проверять код.[/uquote]
Частота прыгает только с выхода драйвера, со стороны мк все нормально работает.
Вот мой код:
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
int pwm_duty = 0; // Скважность
void PWM_Duty_Controls (void) //Настройка портов на внешнее прерывание энкодера
{
//Настройка портов на внешнее преривание
DDRD &= ~(1<<2);
PORTD |= (1<<2);
DDRC &= ~(1<<0);
PORTC |= (1<<0);
//Внешние преривыния
MCUCR |= (1<<ISC01); //Прерывание по спаду
GICR |= (1<<INT0);
sei();
}
ISR(INT0_vect)
{
if (~PINC & (1<<0))
{
pwm_duty++;
_delay_ms(50);
}
else
{
pwm_duty--;
_delay_ms(50);
}
OCR2 = pwm_duty;
}
void PWM_8Bit_settings (void) //Настройка ШИМ на 2ом таймер счетчике 8 бит
{
DDRB |= (1<<3); //ШИМ PB3
TCCR2 |= (1<<WGM20); //8 бит ШИМ с точной фазой
TCCR2 |= (1<<COM20);
TCCR2 |= (1<<CS20); //Без делителя частоты
OCR2 = 127;
}
int main(void)
{
PWM_Duty_Controls();
PWM_8Bit_settings();
while (1)
{
}
}
Добавлено after 3 minutes 7 seconds:
[uquote="electroget",url="/forum/viewtopic.php?p=4236744#p4236744"]PRoman,
Там вариантов всего два. Либо проблема с питанием драйвера, линии питания и цепь общего провода, либо неисправность самого драйвера. Проверьте ещё раз линии питания и общего провода подключения драйвера, проверьте надёжность соединения минусов блоков питания 5 Вольт и 12 Вольт и если с питанием точно всё в порядке, то тогда меняйте драйвер на новый.[/uquote]
Да вроде все нормально по питанию, единственное уже грешу на макетную плату, может из за неё такие проблемы ?
[uquote="PRoman",url="/forum/viewtopic.php?p=4236894#p4236894"]уже грешу на макетную плату, может из за неё такие проблемы ?[/uquote]
Может. Соедините общий провод МК с общим проводом драйвера отдельным проводом с качественной пайкой и соедините выход МК со входом драйвера отдельным проводом с качественной пайкой.
Может. Соедините общий провод МК с общим проводом драйвера отдельным проводом с качественной пайкой и соедините выход МК со входом драйвера отдельным проводом с качественной пайкой.
- Сообщения: 4
- Зарегистрирован: Сб май 21, 2022 17:08:25
[uquote="electroget",url="/forum/viewtopic.php?p=4236900#p4236900"][uquote="PRoman",url="/forum/viewtopic.php?p=4236894#p4236894"]уже грешу на макетную плату, может из за неё такие проблемы ?[/uquote]
Может. Соедините общий провод МК с общим проводом драйвера отдельным проводом с качественной пайкой и соедините выход МК со входом драйвера отдельным проводом с качественной пайкой.[/uquote]
Спасибо большое за ваш отклик, решил проблему. Проблема была в том, что я не учёл, что макетная плата поделена на сектора)))) и общий минус для двух блоков питания подсоединил на другой сектор, а не туда где было питание от лабороторника ))).
Глупая ошибка конечно, но что поделать )))))
Может. Соедините общий провод МК с общим проводом драйвера отдельным проводом с качественной пайкой и соедините выход МК со входом драйвера отдельным проводом с качественной пайкой.[/uquote]
Спасибо большое за ваш отклик, решил проблему. Проблема была в том, что я не учёл, что макетная плата поделена на сектора)))) и общий минус для двух блоков питания подсоединил на другой сектор, а не туда где было питание от лабороторника ))).
Глупая ошибка конечно, но что поделать )))))
Главное, что проблема обнаружена и устранена.


