Например TDA7294

Форум РадиоКот • Просмотр темы - Полный мост для инвертора TMS320F28379D
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср июн 19, 2019 14:07:01

Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Полный мост для инвертора TMS320F28379D
СообщениеДобавлено: Пт мар 15, 2019 10:50:42 
Первый раз сказал Мяу!

Зарегистрирован: Ср янв 18, 2017 14:11:34
Сообщений: 20
Рейтинг сообщения: 0
Добрый день!
Пытаюсь настроить ШИМ модуляцию для инвертора с чистым синусом. То есть должно быть примерно такая картинка.

Пробовал настраивать с помощью прерываний. Работает почти так как надо однако решение не совсем красиво.
Помогите настроить профессионально, так сказать :))


Вложения:
Untitled.png [27.96 KiB]
Скачиваний: 61
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Полный мост для инвертора TMS320F28379D
СообщениеДобавлено: Пт мар 15, 2019 11:01:37 
Модератор
Аватар пользователя

Карма: 77
Рейтинг сообщений: 781
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 4030
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Vlid писал(а):
Работает почти так как надо
Это как ? :))
Показывайте решение и рассказывайте, что в нём не нравится.

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 
JLCPCB, всего $2 за 10 ПП любого цвета!

Более 600 000 заказчиков по всему миру! Более 10 000 заказов в день!

Скидка до $20 на доставку для первого заказа:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Полный мост для инвертора TMS320F28379D
СообщениеДобавлено: Пт мар 15, 2019 18:04:15 
Первый раз сказал Мяу!

Зарегистрирован: Ср янв 18, 2017 14:11:34
Сообщений: 20
Рейтинг сообщения: 0
Таким образом настраиваю ШИМ (EPWM1 отвечает за импульсы низкой частоты, а EPWM2 за формирование синусоиды):
Код:
    EPwm1Regs.TBPRD = 4000;
    EPwm1Regs.CMPA.bit.CMPA = 2000; // Set 50% fixed duty for EPWM1A
    EPwm1Regs.TBPHS.bit.TBPHS = 0; // Set Phase register to zero
    EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Asymmetrical mode
    EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Master module
    EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
    EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; // Sync down-stream module
    EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
    EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV4; // TBCLK = SYSCLK
    EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV4;
    EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // load on CTR=Zero
    EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // load on CTR=Zero
    EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; // set actions for EPWM1A
    EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;
    EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; // enable Dead-band module
    EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; // Active Hi complementary
    EPwm1Regs.DBFED.bit.DBFED = 50; // FED = 50 TBCLKs initially
    EPwm1Regs.DBRED.bit.DBRED = 70; // RED = 70 TBCLKs initially

    EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_PRD;     
    EPwm1Regs.ETSEL.bit.INTEN = 1;               
    EPwm1Regs.ETPS.bit.INTPRD = ET_3RD;     

    // EPWM Module 2 config
    EPwm2Regs.TBPRD =  PERIOD;
    EPwm2Regs.CMPA.bit.CMPA = 500; // Set 50% fixed duty EPWM2A
    EPwm2Regs.CMPB.bit.CMPB = 500; // Set 50% fixed duty EPWM2A
    EPwm2Regs.TBPHS.bit.TBPHS = 0; // Set Phase register to zero initially
    EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Asymmetrical mode
    EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; // Slave module
    EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW;
    EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; // sync flow-through
    EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
    EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // load on CTR=Zero
    EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // load on CTR=Zero
    EPwm2Regs.AQCTLA.bit.ZRO = AQ_SET; // set actions for EPWM2A
    EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR;
    EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; // enable Dead-band module
    EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; // Active Hi complementary
    EPwm2Regs.DBFED.bit.DBFED = 50; // FED = 50 TBCLKs initially
    EPwm2Regs.DBRED.bit.DBRED = 70; // RED = 70 TBCLKs initially

    EPwm2Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;     
    EPwm2Regs.ETSEL.bit.INTEN = 1;               
    EPwm2Regs.ETPS.bit.INTPRD = ET_1ST;         

    EDIS;


В прерывании EPWM2 от забрасываются значение из таблицы синусов в CMPA или CMPB. В прерывании от EPWM1 включаются и исключаются последовательно CMPA и CMPB модуля EPWM2.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y