Страница 1 из 1

Не работает схема управления двигателем.

Добавлено: Пн сен 03, 2012 14:05:46
zip900
http://tigerail.narod.ru/P1090453.jpg

Изображение

Принцип работы... Микроконтроллер формирует ШИМ на своих выходах РВ1 и РВ0, в зависимости от требуемого направления движения, которое определяется положением движка резистора R1. С выходов контроллера упр1 и Упр2 сигналы подаются на ключи VT1 VT6, которые преобразовывают выходные ТТЛ уровни контроллера к сигналу размахом 0...12В для управления мостом на транзисторах VT2-VT5.

Принцип действия моста прост. При подаче одинаковых уровней на затворы транзисторов моста напряжения на стоках (точки подключения нагрузки) одинаковы, разность потенциалов равна 0, т.к. включены пары VT2,VT4 и выключены VT3, VT5 (или наоборот). Для подачи напряжения в нагрузку необходимо подать несимметричные уровни, например на затворы VT2, VT3 - 12B; VT4, VT5 - 0B. Тогда VT2 будет заперт, VT3 откроется, обеспечив на своем стоке потенциал земли. Противоположная пара будет находится в асимметричном состоянии - VT4 - открыт и обеспечивает потенциал равный питанию у себя на стоке, VT5- заперт. Таким образом на левой клемме подключения двигателя будем иметь 0В, на правом +12В, что обеспечит протекание тока в нагрузку. При обратной подаче несимметричных уровней на затворы получим противоположную полярность на нагрузке.

Резистор R8 является измерительным. Компаратор DA1 оценивает напряжение, выделяемое на нем и сравнивает с порогом, установленным резисторами R9 R10. Напряжение на измерительном резисторе пропорционально току, протекающему по каналам транзисторов и равно U=0.1*I. Максимальный ток для приведенных транзисторов достигает 4А, установим при помощи R9 R10 порог 350мВ. Тогда, при токе протекающем через транзисторы большем 3.5А, компаратор на выходе поставит лог.0 и сбросит контроллер.

Программа контроллера изменена относительно предыдущих таким образом, что после выхода из состояния сброс, контроллер не реагирует на действия пользователя до тех пор, пока движок резистора не будет установлен в положение "СТОП", при этом после первого включения и после превышения допустимого тока контроллер не выводит на выходы управления ШИМ и индицирует это состояние морганием светодиода, ожидая установки резистора R1 в положение "СТОП".


ВОПРОС????!!!!!!

Ребят собрал такую вот схему, прошил все вроде бы, но не работает, на выходах, на мотор по нулям. Думаю дело в МК. Напряжение от 0 до 5 В, относительно 2 и 8 а так же 2 и 4 ножек МК меняется, когда кручу переменный резистор. Но на выходах ног 6 и 5 ничего, тоесть упр 1 и упр 2 по нулям. Подозреваю криво прошил. Какие фьюзы выставлять надо? Шью в CodeVision либо в непомню как называется прога дома а я щас на работе.

Re: Не работает собраная схема

Добавлено: Пн сен 03, 2012 16:34:14
Petr57
Ну, то что на второй ноге напряжение меняется - тут ничего удивительного. На какую частоту работы мк запрограммирован? Фьюзы поищите в интернете и смотрите те, которые у вас есть в программаторе. Под нужную частоту и поставьте. Проверку после прошивки делали? Если да и ошибок не было, то либо сам код с ошибкой, либо действительно фьюзы не так выставлены.

Re: Не работает собраная схема

Добавлено: Ср сен 05, 2012 07:15:24
zip900
Ну потом читал какойто HEX код присутствует заливается без ошибок, как еще проверить я хз, программатор обычный 5 резисторов и лпт порт, вот именно фьюзы под attiny 13, я не нашел мануала, и на частоте я хрен знает она должна работать. Могу выложить исходник прошивки

Re: Не работает собраная схема

Добавлено: Ср сен 05, 2012 07:56:33
Engineer_Keen
Если МК после прошивки читается, то фьюзы выставлены на тактирование от внутреннего генератора, т.е. либо 8, либо 1 МГц, работать при этом схема все равно должна, просто частота ШИМ и светодиода будет либо в 8 раз меньше, либо в 8 раз больше, в зависимости от того, что на самом деле должно быть. Если при этом на выходах (включая светодиод) вообще ничего нет, то наверно прошивка кривая... Ну и проверить RESET, если там логический 0 (например если порог у компаратора не настроен), то работать естественно не будет.

Re: Не работает собраная схема

Добавлено: Ср сен 05, 2012 08:02:12
pyzhman
Для начала написать моргание светодиодом, чтобы проверить сам мк. Исходник-то есть?
Пока без родного исходника(фузы родные, заводские), должно мигать с частотой 1 Гц:
Спойлер//Date : 05.09.2012
//Chip type : ATtiny13
//Clock frequency : 9,600000 MHz

#include <tiny13.h>
#include <delay.h>


void main(void)
{
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=Out Func1=In Func0=In
// State5=T State4=T State3=T State2=0 State1=T State0=T
PORTB=0x00;
DDRB=0x04;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

while (1)
{
PORTB.2= 1;
delay_ms(500);
PORTB.2= 0;
delay_ms(500);
};
}

Re: Не работает собраная схема

Добавлено: Ср сен 05, 2012 11:48:31
zip900
Исходник высмысле нетронутая микруха есть. Диод имеете ввиду который по схеме стоит?
Ну и проверить RESET, если там логический 0 (например если порог у компаратора не настроен), то работать естественно не будет.
Каким образом его проверить?, на этой ноге по вольтажу должен быть 0?

Re: Не работает собраная схема

Добавлено: Ср сен 05, 2012 11:51:47
pyzhman
Исходник - исходный текст программы. Его я нашел по вашей ссылке. Диод - светодиод, который подключен через резистор к порту PB2(вывод 7).

Re: Не работает собраная схема

Добавлено: Ср сен 05, 2012 11:55:28
zip900
Вот исходный код прошивы на Си
Ссылка на всю статью http://tigerail.narod.ru/pwmmos.html

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

/*****************************************************
Project : PWM Bipolar Locomotive Controller; 
Version : 2.00 for MOSFET bridge with overcurrent protection.
Date    : 18.04.2007
Author  : Yuri V. Kalashnikov;                            
Company : KRTPC 
Comments: Bipolar PWM Power Supply Controller
 for railway models; 

questions you can send by e-mail: tigerail@yandex.ru


Chip type           : ATtiny13
Clock frequency     : 9,600000 MHz internal RC option;
                      CKSEL1..0 = 10; 
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 16
*****************************************************/

#include <tiny13.h>
#include <delay.h>

void main(void)
{
int k,i;
int AH, AL;
int OC;


// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=Out Func3=In Func2=In Func1=Out Func0=Out 
// State5=T State4=0 State3=T State2=T State1=0 State0=0 
PORTB=0x00;
DDRB=0x17;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;


ADMUX=0x03; // Vcc as VRef, ADC connect to PB3 pin

ADCSRA=86;  // ADC enable, ADC CLK divider=0b110 (9600/64=150kHz)

OC=1;

while (OC==1)
  { // overcurrent/START cycle
    ADCSRA=0xC6; //START conversion
    PORTB.2=0;
    delay_ms(300);
    PORTB.2=1;
    delay_ms(300); 
    
    // ADC result performing
    AL=ADCL; // extract low part ADC result;
    AH=ADCH; // extract high part ADC result;
    k=AH*256; // shift high part to most significant byte;
    k=k+AL; // add low byte; 
    
    if ((k>412) && (k<612))
      {                   
        OC=0; // USER set trimmer to STOP position, out from cycle
      }
  }

 

while (1)
  { 
       ADCSRA=0xC6; //START conversion
       

       if ((k>412) && (k<612)) // CENTRAL "STOP" trimmer position

         {
           PORTB.2=0; // LED "STOP" is lighting;
           PORTB.1=0;
           PORTB.0=0;
         }
         else  //  412<k<612
           {
             PORTB.2=1; // LED "STOP" is OFF; 
             
             if (k<=412)  // RIGHT-turned trimmer position;
               {
                 k=412-k;

                 // Pulse Width Modulation cycles "FORWARD";
                 for(i=1; i<=k; i=i+1)
                   {
                     PORTB.0=1;
                     delay_us(10); 
                   }
                 for(i=k; i<=412; i=i+1)
                   {
                     PORTB.0=0;
                     delay_us(10);
                   }    
               
               } //(k<=412)         
               
             if(k>=612)    // LEFT-turned trimmer position; 
               {
                 k=k-612;
                 // Pulse Width Modulation cycles "BACK"; 
                 for(i=1; i<=k; i=i+1)
                   {
                    PORTB.1=1;
                    delay_us(10); 
                   }
                 for(i=k; i<=412; i=i+1)
                   {
                     PORTB.1=0;
                     delay_us(10);
                   }    
               } //(k>=612)
          
           } // else
       

       AL=ADCL; // extract low part ADC result;
       AH=ADCH; // extract high part ADC result;
       k=AH*256; // shift high part to most significant byte;
       k=k+AL; // add low byte; 
  };// while
}   // main

Re: Не работает собраная схема

Добавлено: Ср сен 05, 2012 12:04:34
Engineer_Keen
Так, вопрос с частотой наполовину решился, автор программы позаботился о принудительном сбросе делителя на 8, так что если МК настроен на внутренний генератор, то его частота точно верная.
Что касается RESETа, то там должна быть строгая "1", если там будут хоть малейшие импульсы с нулем - МК будет сбрасываться.

Re: Не работает собраная схема

Добавлено: Ср сен 05, 2012 22:37:13
zip900
Engineer_Keen писал(а):Так, вопрос с частотой наполовину решился, автор программы позаботился о принудительном сбросе делителя на 8, так что если МК настроен на внутренний генератор, то его частота точно верная.
Что касается RESETа, то там должна быть строгая "1", если там будут хоть малейшие импульсы с нулем - МК будет сбрасываться.
Как это проверить? Тестером и по поводу фьюзов в проге надо выставлять галочки вот какие? Прога codevision

Re: Не работает схема управления двигателем.

Добавлено: Чт сен 06, 2012 05:52:28
pyzhman
Фузы не трогайте, пусть остаются родные, заводские.

Re: Не работает схема управления двигателем.

Добавлено: Чт сен 06, 2012 06:32:50
zip900
pyzhman то есть открываю прогу загружаю код прошивки жму прошить и радуюсь. Но не работает... Как выяснить хорошо или не хорошо у меня с ресетом?

Re: Не работает схема управления двигателем.

Добавлено: Чт сен 06, 2012 08:02:36
Engineer_Keen
Ткнуться на RESET вольтметром, а лучше осциллографом, если там есть "1", то дело не в нем, надо копать дальше. А если там "0" постоянно или импульсами, значит проблема в компараторе (программатор после прошивки отключен от контроллера?).

Re: Не работает схема управления двигателем.

Добавлено: Чт сен 06, 2012 08:56:20
pyzhman
2Engineer_Keen: ресет там подтянут к питанию, не думаю, что в нем проблема.
2zip900: последуйте совету Engineer_Keen'а, отключайте программатор. И чем шьете? Какие сообщения выдаются? Чип определяется программатором именно как 13-я тинька?

Re: Не работает схема управления двигателем.

Добавлено: Чт сен 06, 2012 14:44:54
zip900
pyzhman у меня программатор отдельный, я шью на программаторе который 5 резисторов, вынимаю микруху и вставляю её на плату.
А в проге я сам выставляю модель микрухи Attiny13. Сообщения выдаются что прошивка была завершена успешно. Потом читаю прошиву появляется HEX кодировка

Re: Не работает схема управления двигателем.

Добавлено: Чт сен 06, 2012 14:59:50
Engineer_Keen
pyzhman писал(а):2Engineer_Keen: ресет там подтянут к питанию, не думаю, что в нем проблема.
Подтянут, это да. Но кто мешает компаратору его затянуть вниз? На этом принципе защита от перегрузки сделана, а что если она как раз и срабатывает?

Re: Не работает схема управления двигателем.

Добавлено: Чт сен 06, 2012 17:56:00
Meteor
Совсем не по теме.
Встречал несколько лет назад этот принцип управления, когда ширина ШИМ задает направление.
И даже собирал, на таймере 580ВВ53!
Один вопрос, двигатель не жалко?
В момент стояния двигатель сильно греется. Происходит это потому, что по обмоткам течет ток с частотой ШИМа (не ниже 500Гц рекомендуют), сперва в одну, а затем в другую сторону. Ротор в итоге неподвижен, а корпус движка раскален(
Подумайте, может ну его это управление, именно это управление. Есть ведь иные способы получения плавного изменения скорости и направления вращения.

Re: Не работает схема управления двигателем.

Добавлено: Вс сен 09, 2012 12:59:49
zip900
Ну так подскажите как при момощи тестера проверить ресет?

Re: Не работает схема управления двигателем.

Добавлено: Вс сен 09, 2012 14:00:48
pyzhman
Отсоедините вывод компаратора от ресета.

Re: Не работает схема управления двигателем.

Добавлено: Вс сен 30, 2012 11:51:58
zip900
не помогло, если эта схема греет мотор какую другую схему посоветуете, помогте плиз