MPetrovich 6 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба On 8/4/2023 at 2:36 PM, Сергей Борщ said: Я тут подумал, может для таблицы в 36 значений вычислить другой размер фазового аккумулятора? Скажем такой: 36*1024=36864 On 8/4/2023 at 2:36 PM, Сергей Борщ said: Что-то делаете неправильно. Показывайте код. ISR(TIMER1_OVF_vect)//PWM_ON interrupt { if(!(TIFR & (1<<TOV1))) { TIFR |= (1<<TOV1);//clear TIM1 Overflow flag num = akk/(36864/36);//for 36-num //num = akk/(65536/32);//2048 for 32-num table if((OCR1A - 127) <= 255) {PORTA &= ~1; }//PWM is ON, LOW key is OFF else { PORTA |= 1;}//PWM is OFF, LOW key is ON OCR1A = PH1H[num]; //ШИМ 1 if((OCR1B - 127) <= 255) {PORTA &= ~2; /*TCCR1A |= (1<<5);*/} else { PORTA |= 2;} OCR1B = PH2H[num]; //ШИМ 2 if((OCR1C - 127) <= 255) {PORTA &= ~4; /*TCCR1A |= (1<<3);*/} else { PORTA |= 4;} OCR1C = PH3H[num]; //ШИМ 3 akk += akk_shift; } } Вот так выглядят две фазы. Но если в строчке num = akk/(36864/36); 36 заменить на 18, то всё становится всё ОК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 11 минут назад, MPetrovich сказал: akk += akk_shift; А где тут проверка if(akk >= 36864) akk -= 36864; ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 8 minutes ago, Сергей Борщ said: А где тут проверка if(akk >= 36864) akk -= 36864; ? Ой... Вот это я ступил Вставил и всё стало нормально. Очередная Вам от меня благодарность Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба On 8/4/2023 at 2:36 PM, Сергей Борщ said: для частоты, отличной от 1 МГц нужно вручную подстраивать записью константы (которую надо сначала вычитать программатором из сигнатуры) в регистр OSCCAL Попробовал подстроить частоту, получилось только ещё большее расхождение. Да наплевать, в конце концов. Частотник ставят чтобы изменять частоту вращения асинхронника и точность установки частоты, скажем для насоса, вообще по барабану. Главное, что обеспечит для мотора частотник - это плавный старт от нуля оборотов и, соответственно плавное нарастание момента. У меня в другом затыка возникла. Мне нужно dead-time обеспечить между верхним и нижним ключом. Я попытался организовать его в прерывании Timer/Counter1 Output Compare A Match Interrupt. По сути, это прерывание в момент окончания PWM Duty Cycle. Я взял и засунул в это прерывание задержку 1мкСек. Но отчего то эта задержка отсутствует при генерации ШИМ. Хотя если просто дёргать порт ISR(TIMER1_COMPA_vect)//Output Compare A (PWM_OFF)interrupt { PORTE=1; _delay_us(1); PORTE=0; } то нормально всё срабатывает - есть импульс примерно 1мкСек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба Выставил постоянный Duty Cycle и на оба прерывания ISR(TIMER1_OVF_vect) и ISR(TIMER1_COMPA_vect) вставил такие импульсы. Получилась картинка: один луч - выход ОС1А, второй - бит 0 порта Е. На первом луче собственно ШИМ, на втором импульс после входа в первое прерывание + импульс входа во второе прерывание. Итог меня расстроил. Импульсы сдвинуты от начала и от конца Duty Cycle на одну и ту же величину - примерно на 2,4мкСек. Неужели столько времени требуется для вызова прерывания в ATMega128? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg.normalniy 30 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 57 минут назад, MPetrovich сказал: У меня в другом затыка возникла. Мне нужно dead-time обеспечить между верхним и нижним ключом для нижнего ключа я закидываю в таймер макс. число , но пропадает dead time , тогда я поставил ir 2308 там встроен блок dead time Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба Пока решил в лоб - тупо вставляю задержку 1мкСек перед установкой в 1 и после сброса в 0 выводов порта управления нижними ключами. Это удлиняет прерывание на 1мкСек, но пропорционально по всему периоду. В итоге вроде как получается прибавка в амплитуде равная 1/32=0,03125 или 3,125% (32мкСек - период ШИМ). Для 300 вольт это 9,375вольта. Не думаю, что это будет критично для мотора. А что скажет уважаемая публика? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg.normalniy 30 7 августа, 2023 Опубликовано 7 августа, 2023 (изменено) · Жалоба выложите показания с лог. анализатора , и не забывайте про хвосты , на 300 вольтах длинный хвост , вы идёте по моим граблям Изменено 7 августа, 2023 пользователем Oleg.normalniy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 18 minutes ago, Oleg.normalniy said: выложите показания с лог. анализатора , и не забывайте про хвосты , на 300 вольтах длинный хвост , вы идёте по моим граблям Анализатор дома. Вот на осциллографе две фазы Задержка между верхними и нижними ключами 1,4мкСек Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg.normalniy 30 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба вот вам мои показания с лог. анализатора , dead time 0,16275 mc ГИБРИД.logicdata 5 минут назад, MPetrovich сказал: Анализатор дома. Вот на осциллографе две фазы ну на такой фотке не понятно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 3 minutes ago, Oleg.normalniy said: dead time 0,16275 mc 162,75 микросекунды? Это не опечатка? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg.normalniy 30 7 августа, 2023 Опубликовано 7 августа, 2023 (изменено) · Жалоба и даже при таком dead time рука тянется к валерьянке , я вам выложил лог.анализатор , анализируйте Изменено 7 августа, 2023 пользователем Oleg.normalniy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 4 minutes ago, Oleg.normalniy said: на такой фотке не понятно А что увидеть то нужно? Сам dead-time? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg.normalniy 30 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 2 минуты назад, MPetrovich сказал: А что увидеть то нужно? Сам dead-time? да Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 1 minute ago, Oleg.normalniy said: и даже при таком dead time рука тянется к валерьянке А что за ключи Вы используете, если им такого мёртвого времени не хватает? 1 minute ago, Oleg.normalniy said: да Ну вот он 🙂 5 minutes ago, Oleg.normalniy said: я вам выложил лог.анализатор , анализируйте А чем его открывать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться