izhadapter 发表于 2020-1-9 16:48:53

N76E003at20 XY-LPWM3 -> 3 phase sine generator

本帖最后由 izhadapter 于 2020-1-9 17:12 编辑

_mcu.goodboard.ru/viewtopic.php?id=116#p2024
Данный кусок кодапредназначен дляпеределкиготового продукта (XY-LPWM3) который показан на картинке.
Это обычныйгенератор прямоугольных импульсов на три канала.
из него можносделать трехфазный генератор синуса.
....
Это не полный код но основная заготовка с настройками и чтениемтаблицы значений синуса.
Значения таблицысинуса можно сгенерироватьздесь: _daycounter.com/Calculators/Sine-Generator-Calculator2.phtml
Sine Look Up Table Generator Calculator:
второй и третий массив надо просто сместить первый на 1\3 (120 градусов)

_s.taobao.com/search?q=3%E8%B7%AFPWM%E8%84%89&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20200109&ie=utf8

#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"





/************************************************************************************************************
*    Main function
************************************************************************************************************/
void main(void)
{
   
        P12_PushPull_Mode;                  // Cofigure pin to PP mode
        P10_PushPull_Mode;
        P11_PushPull_Mode;
       
/**********************************************************************
        PWM frequency = Fpwm/((PWMPH,PWMPL) + 1) <Fpwm = Fsys/PWM_CLOCK_DIV>
         
         PWM frequency =16MHz/256=62,5KHz                  
***********************************************************************/
   
          PWM0_P12_OUTPUT_ENABLE;   // Enable PWM outputs channel
          PWM1_P11_OUTPUT_ENABLE;
          PWM2_P10_OUTPUT_ENABLE;
           
          PWM_INT_PWM0;                          // Inerrupts from 0 channel
          PWM_FALLING_INT;             //Setting Interrupt happen when PWM0 falling signal
          
          
       
    PWMPH = 0x00;                    //Setting PWM period
    PWMPL = 0xff;
       
    PWM0H = 0x00;                    //Setting PWM duty for 0,1,2 channel
    PWM0L = 0x01;
    PWM1H = 0x00;                   
    PWM1L = 0x01;       
    PWM2H = 0x00;                   
    PWM2L = 0x01;       
   
    set_EPWM;                        //Enable PWM interrupt
    set_EA;                        //Enable interrupts
    set_LOAD;                   // Load value from buffers to duty register
    set_PWMRUN;             // Run PWM
    while(1);
}



/************************************************************************************************************
*   PWM interrupt subroutine
************************************************************************************************************/
void PWM_ISR (void) interrupt 13
{
        static volatile uint8_tcounter;
        uint16_t temp;
      clr_PWMF;               // clear PWM interrupt flag
   
          
          set_LOAD;   //Update duty register from buffers
          temp=counter*3;
          PWM0L = sine_wave;                 // Load sine_wave value from table to buffers
          PWM1L = sine_wave;
          PWM2L = sine_wave;
          
       
          
   
          counter++;
                  
}






z123 发表于 2020-1-9 16:49:39

好像某宝买过的单独PWM的,也是你设计的吗?

PCBBOY1991 发表于 2020-1-9 16:55:55

老哥是外国友人吗?

kydl2345 发表于 2020-1-9 17:36:03

PCBBOY1991 发表于 2020-1-9 16:55
老哥是外国友人吗?

俄文不是外国有人是啥呢

cne53102 发表于 2020-1-9 18:49:21

хорошая работа, Этот чип действительно очень дешевый. Если вы можете, вы можете попробовать сделать простой VFD с ним.

good job man, this chip is very cheap. You can try make a simple VFD with it.

点赞,这个芯片真的很便宜。如果可以,你可以试着用它做一个简单的变频器。

kydl2345 发表于 2020-1-10 09:33:27

机翻了一下
这段代码旨在重制图片中所示的成品(XY-LPWM3)。
这是常见的三通道方波发生器。
从中可以制成一个三相正弦波发生器。
....
这不是完整的代码,而是带有设置和读取正弦值表的主要工件。
可在此处生成
正弦表值:_daycounter.com/Calculators/Sine-Generator-Calculator2.phtml 正弦查找表生成器计算器:
您只需要将第二个和第三个数组移动1 \ 3(120度)

atl0402 发表于 2020-9-14 08:27:33

也没有电路图
页: [1]
查看完整版本: N76E003at20 XY-LPWM3 -> 3 phase sine generator