| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Проблема с питанием ATmega168 + 5кВт ДПТ
23.04.2012, 22:04
|
|
|
Временная регистрация
Регистрация: 24.11.2011
Адрес: Magdeburg
Сообщений: 81
Сказал спасибо: 10
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
|
Проблема с питанием ATmega168 + 5кВт ДПТ
Имеется система управления двигателем на основе контроллера ATmega168, который выдает управляющий сигнал ШИМ для полумостового преобразователя на нижней плате. Все это предназначено для вращения двигателя 4.8 кВт. Контроллер и драйверы полевиков питаются от одного аккума 12В, на полумост же поступает питание от последовательных 4х12В аккумуляторов. Двигатель подключен между средней точкой полумоста (клемма GSM) и землей. Обе платы располагаются друг над другом в алюминиевом корпусе, как показано на рисунке.
Все было бы хорошо, если бы не одна проблема, которая состоит в том, что питание на выходе стабилизатора 7805 выглядит примерно как показано на осциллограмме красным цветом. Референсное напряжение АЦП выставлено на вход AVCC, поэтому там тоже выходят такие же колебания.
"Благодаря" этому при управлении скважностью ШИМ при помощи потенциометра (Замер на АЦП происходит каждый 20й импульс в прерывании таймера) во время увеличения примерно до 40% увеличение ширины прекращается до тех пор, пока не накручивается около 60% и происходит скачок 40-›60%, так как в этом промежутке не происходит обработка прерывания, видимо по причине нестабильного питания (надеюсь понятно объяснил  ). При этом по видимому происходит перезагрузка контроллера, поскольку в терминале (через RS232) постоянно заново пишется стартовое сообщение.
Теперь вопрос:
Каким образом можно избавиться от колебаний и стабилизировать питание +5В?
Последний раз редактировалось r0st; 23.04.2012 в 22:06.
|
|
|
|
23.04.2012, 22:24
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
|
Re: Проблема с питанием ATmega168 + 5кВт ДПТ
Есть несколько замечаний.
1. В цепи сброса надо поставить конденсатор мкФ эдак 10 на землю и диод параллельно R5, катодом на +5В.
2. По питанию ВЧ емкость (0,1 мкФ) должна быть как можно ближе к ногам процессора. Где она?
P.S. Еще не мешало бы поставить экран между платами.
Последний раз редактировалось alvadep; 23.04.2012 в 22:34.
|
|
|
|
Сказали "Спасибо" alvadep
|
|
|
23.04.2012, 22:39
|
|
|
Гражданин KAZUS.RUN
Регистрация: 03.07.2010
Сообщений: 842
Сказал спасибо: 156
Сказали Спасибо 377 раз(а) в 189 сообщении(ях)
|
Re: Проблема с питанием ATmega168 + 5кВт ДПТ
Питание модуля АЦП следовало сделать через LC фильтр, как в документации.
|
|
|
|
23.04.2012, 23:58
|
|
|
Прописка
Регистрация: 31.01.2011
Сообщений: 112
Сказал спасибо: 27
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Re: Проблема с питанием ATmega168 + 5кВт ДПТ
Оговорюсь сразу, что не электронщик, а программист.
То что я увидел:
1) Зачем диод D1?
2) Конденсатор С4 должен быть в 10 раз больше.
3) Reset должен быть подтянут через RS цепочку. Получается, что контроллер у Вас еще не запитан, а RESET уже подтянут.
p.s. Программа должна стартовать с задержкой (выставляется фьюзами и RS цепочкой на Reset), ...вся схема на момент старта программы, должна быть запитана.
|
|
|
|
Сказали "Спасибо" Vastok83
|
|
|
24.04.2012, 07:33
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: Проблема с питанием ATmega168 + 5кВт ДПТ
Сообщение от Vastok83
|
|
1) Зачем диод D1?
|
От переполюсовки, все правильно
Сообщение от Vastok83
|
|
2) Конденсатор С4 должен быть в 10 раз больше.
|
В этом и причина. Минимум 470 мкф, лоу-еср и на правильной земле. Сплошную землю по нижнему слою платы придумали трУсы? Ну так ипитесь теперь с помехами на своих 5 кВт...
Сообщение от Vastok83
|
|
Получается, что контроллер у Вас еще не запитан, а RESET уже подтянут.
|
У контроллера есть внутренняя задержка, ресет можно вообще на плюс посадить.
|
|
|
|
24.04.2012, 08:58
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
|
Re: Проблема с питанием ATmega168 + 5кВт ДПТ
В условиях больших импульсных помех по питанию я бы не рекомендовал подключать сброс непосредственно к плюсу. Большая вероятность того, что контроллер будет просто сбрасываться (перезапускаться) от помех. При подключении к плюсу через резистор и при отсутствии конденсатора на ножке RES результат будет тот же.
P.S. По поводу "земли". Прочтите статью и поймете в чем ошибка такой разводки "земли" как у Вас.
Последний раз редактировалось alvadep; 24.04.2012 в 09:42.
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо alvadep за это сообщение:
|
|
|
24.04.2012, 18:08
|
|
|
Временная регистрация
Регистрация: 24.11.2011
Адрес: Magdeburg
Сообщений: 81
Сказал спасибо: 10
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
|
Re: Проблема с питанием ATmega168 + 5кВт ДПТ
Сообщение от alvadep
|
|
1. В цепи сброса надо поставить конденсатор мкФ эдак 10 на землю и диод параллельно R5, катодом на +5В.
|
Сейчас попробую. Похоже на то, что контроллер сбрасывается от помех.
Сообщение от alvadep
|
|
2. По питанию ВЧ емкость (0,1 мкФ) должна быть как можно ближе к ногам процессора. Где она?
|
Есть такая, прям на ноги припаял.
Сообщение от niXto
|
|
Сплошную землю по нижнему слою платы придумали трУсы?
|
Есть там сплошная (ну почти) земля.
Сообщение от С.М.С
|
|
Питание модуля АЦП следовало сделать через LC фильтр, как в документации
|
Сообщение от alvadep
|
|
Прочтите статью и поймете в чем ошибка такой разводки "земли" как у Вас.
|
Уже исправляю все это.
Статья, кстати, интересная, спасибо.
|
|
|
|
24.04.2012, 20:19
|
|
|
Прописка
Регистрация: 23.09.2008
Сообщений: 158
Сказал спасибо: 24
Сказали Спасибо 24 раз(а) в 24 сообщении(ях)
|
Re: Проблема с питанием ATmega168 + 5кВт ДПТ
Сообщение от alvadep
|
|
В условиях больших импульсных помех по питанию я бы не рекомендовал подключать сброс непосредственно к плюсу. ...
|
Может все таки супервайзер посоветуете, микруха то копеечная.
Вот и статья по теме
Последний раз редактировалось Sinthez; 24.04.2012 в 20:24.
|
|
|
|
Сказали "Спасибо" Sinthez
|
|
|
24.04.2012, 21:47
|
|
|
Временная регистрация
Регистрация: 24.11.2011
Адрес: Magdeburg
Сообщений: 81
Сказал спасибо: 10
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
|
Re: Проблема с питанием ATmega168 + 5кВт ДПТ
Не особо что-то поменялось. ШИМ продолжает увеличиваться скачком, только теперь с ~15% до ~65% если в сторону увеличения и с ~45% до ~15% если потом уменьшать.
Изменил схему согласно рекомендациям - поставил LC фильтр после C (L=47 uH, C=4.7 uF) на вход микроконтроллера, но до 100 nF стабилизирующего конденсатора, который припаян прямо на ноги.
Увеличил C4 до 470 uF. Отделил землю контроллера от общей земли, перерезав площадку земли справа от контроллера, и соединив снова проводком слева. 22 pF конденсаторы подключены теперь к "чистой" земле контроллера.
Осциллограммы показывают:
1)Напряжение питания до фильтра
2)Напряжение питания после фильтра (клемма GND осциллоскопа на ноге атмеги)
3)Самый загадочный график - клемма GND осциллоскопа на общей земле схемы, щуп - на этой же клемме.
4) как и 1, только розовым цветом и на общей осциллограмме (GND каналов осциллоскопа не связаны).
Ах, да, еще я не отметил диод и конденсатор на RST.
Последний раз редактировалось r0st; 24.04.2012 в 21:51.
|
|
|
|
24.04.2012, 21:57
|
|
|
Временная регистрация
Регистрация: 24.11.2011
Адрес: Magdeburg
Сообщений: 81
Сказал спасибо: 10
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
|
Re: Проблема с питанием ATmega168 + 5кВт ДПТ
на всякий случай приведу код прошивки
|
Код:
|
#define ATMEGA168 1
int istwert;
int sollwert = 0;
char err = 0;
char pwmMode = 1;
char adcDelay = 0;
char pwm_value = 0;
int test = 0;
#include "system.h"
#include "util/delay.h"
#define TERMINAL_PORT 0
void USART_Transmitt_4b(int, char);
int pwm = 0;
char count = 20;
int i = 0;
int main(void)
{
begin:
SREG |= (1‹‹7);
TIMSK0 |= (1‹‹OCIE0A);
TCCR0A |= (1‹‹WGM01);
TCCR0B |= 0;
// USART Aktivieren
USART_Init(57600, INT, 0);
Terminal_Init(0);
// UBRR0 = (unsigned int) (F_CPU/8/115200)-1;
// UCSR0A |= (1‹‹U2X0);
// ADC Aktivieren auf Kanal 0
ADC_Init(REFEXTERN, 128, 1);
ADC_Channel(SINGLE, 0, 0);
// PWM Initialisierung
PWM_Init_Timer1('A',8,FAST_PWM,124);
TIMSK1 |= (1‹‹TOIE1);
DDRB |= (1‹‹DDB3);
DDRC |= (1‹‹DDC4) | (1‹‹DDC5);
// Analog Comparator
ACSR |= (ACME‹‹1) | (1‹‹ACIE) | 2;
// Normalbetrieb
do
{
if (pwmMode) pwm = sollwert/8;
else pwm = pwm_value;
// Begrenzung auf 94,4% PWM
if ( pwm ‹ 117) PWM_Set_Timer1('A',pwm);
else PWM_Set_Timer1('A',117);
if (pwm › 62) OCR0A = pwm/2+110+adcDelay;
else OCR0A = pwm/2+172+adcDelay;
}
while(!err);
// Notbetrieb
do
{
Toggle('B',3);
i = 0;
while (i‹=300)
{
_delay_ms(1);
i++;
};
}
while(err);
goto begin;
return 0;
}
// Zaehlen von Impulsen und starten Verzoegerung von ADC
ISR(TIMER1_OVF_vect)
{
if (count == 10)
{
TCCR0B = (1‹‹CS01);
count=20;
};
count-=1;
// Set('B',3);
// Clear('B',3);
}
// ADC Messung
ISR(TIMER0_COMPA_vect)
{
TCCR0B = 0;
TCNT0 = 0;
Set('C',4);
if (test ›= 1)
{
// _delay_us(15);
Set('B',3);
ADC_Channel(SINGLE, 3, 0);
ADC_Start(SINGLE);
ADC_Finished();
istwert = ADC_Get_Value();
USART_Transmitt_4b(istwert,0);
USART_Transmitt_Char('!',0);
USART_Transmitt_Char(pwm,0);
test-=1;
if (test == 400) pwm_value = 30;
Clear('B',3);
};
ADC_Channel(SINGLE, 0, 0);
ADC_Start(SINGLE);
ADC_Finished();
sollwert = ADC_Get_Value();
Clear('C',4);
}
/*
// Notaus
ISR(ANALOG_COMP_vect)
{
TCCR1A = 0;
TCCR1B = 0;
Clear('B',1);
err = 1;
}
*/
void USART_Transmitt_4b(int value, char port)
{
int d3,d2,d1,d0,di;
if (value‹0) { USART_Transmitt_Char('-',0); value = value * (-1); }
d3=value/1000;
di=value%1000;
d2=di/100;
di=value%100;
d1=di/10;
d0=di%10;
USART_Transmitt_Char(d3+48,port);
USART_Transmitt_Char(d2+48,port);
USART_Transmitt_Char(d1+48,port);
USART_Transmitt_Char(d0+48,port);
} |
Последний раз редактировалось r0st; 24.04.2012 в 22:04.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:52.
|
|