主题中讨论的其他器件:TPLD1202
工具与软件:
我正在尝试将 PLL 配置为接受150kHz PWM 信号、并提供300kHz 同步输出和两个延时时间(2.2uS 和4.4uS) PWM 信号。 第一个 PWM 周期产生了两个延时 PWM 信号、但下一个周期导致矮脉冲和漏脉冲。 300kHz 同步脉冲看起来正常。 时钟在25MHz 上。 我尝试了10KHz 的计时、延迟完全不起作用。

下面是电路:

这是 sim 文件,我认为(隐藏?):
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
我正在尝试将 PLL 配置为接受150kHz PWM 信号、并提供300kHz 同步输出和两个延时时间(2.2uS 和4.4uS) PWM 信号。 第一个 PWM 周期产生了两个延时 PWM 信号、但下一个周期导致矮脉冲和漏脉冲。 300kHz 同步脉冲看起来正常。 时钟在25MHz 上。 我尝试了10KHz 的计时、延迟完全不起作用。

下面是电路:

这是 sim 文件,我认为(隐藏?):
/**
*这些参数是在生成该文件时使用的。 它们将自动应用于后续负载
*通过 GUI 或 CLI 运行 CLI 并使用'--help'获取有关如何覆盖这些参数的更多信息。
*@cliArgs --设备"TPLD1202_DYY_TL"-部件"默认"-封装"DYY (SOT-23-THN、14)"-产品"TPLD@1.3.1+869"
*@v2CliArgs --设备"TPLD1202"-封装"DYY (SOT-23-THN、14)"-产品"TPLD@1.3.1+869"
*@版本{"tool":"1.22.0+3893"}
*/
/**
*导入此配置中使用的模块。
*/
const CNT = scripting.AddModule ("Scripting"/ti/tpld/CNT、{}、false);
const cnt1 = cnt.addInstance();
const DLY = scripting.AddModule ("scripting.AddModule"/ti/tpld/DLY、{}、false);
const DLY1 = DLY.addInstance();
const DLY2 = DLY.addInstance();
const OSC = scripting.AddModule ("scripting.AddModule"/ti/tpld/OSC、{}、false);
const OSC1 = OSC.addInstance();
const PIN = scripting.AddModule ("Scripting"/ti/tpld/PIN、{}、false);
const PIN1 = PIN.addInstance();
const PIN2 = PIN.addInstance();
const PIN3 = PIN.addInstance();
const PIN4 = PIN.addInstance();
const PIN5 = PIN.addInstance();
const Simulation = scripting.AddModule ("/ti/tpld/Simulation);
/**
*将自定义配置值写入导入的模块。
*/
CNT1.$name ="cnt0";
CNT1.clk_sel2 ="ext";
CNT1.DATA = 27;
CNT1.hw.$assign ="CNT_FSM_0";
DLY1.$name ="dly0";
dly1.clk_sel2 ="ext";
dly1.cnt_init = 1;
DLY1.MODE_SYNC = 1;
DLY1.DATA = 25;
DLY2.$name ="dly1";
dly2.clk_sel2 ="ext";
dly2.cnt_init = 1;
DLY2.MODE_SYNC = 1;
DLY2.DATA = 25;
OSC1.$name ="osc0";
OSC1.cntl_in = 1;
OSC1.src_ext = 1;
OSC1.OUT1_SEL = 2;
OSC1.FORCE_pwron = 1;
pin1.$name ="pin1";
pin1.sim ="方形";
OSC1.extclk = PIN1;
pin1.hw.$assign ="IO8";
pin1.square.$name ="ti_tpld_simulationOptions_SQUARE0";
pin1.square.period ={val:40、单位:"ns"};
pin1.square.Duty = 40;
PIN2.TYPE ="DOUT";
PIN2.$name ="计数器/28";
PIN2.$topLabel ="Counter/28";
pin3.$name ="PWM_IN";
pin3.sim ="方形";
pin3.$topLabel ="PWM_IN";
pin3.square.$name ="ti_tpld_simulationOptions_SQUARE1";
pin3.square.period ={val:6.7、单位:"us"};
pin3.square.Duty = 40;
PIN4.TYPE ="DOUT";
PIN4.$name ="pwm_dly1";
PIN4.$topLabel ="pwm_dly1";
PIN5.TYPE ="DOUT";
PIN5.$name ="pwm_dly2";
PIN5.$topLabel ="pwm_dly2";
const system = scripting.AddModule ("scripting.AddModule"/ti/tpld/SYSTEM、{}、false);
simulation.tstop ={val:20、单位:"us"};
simulation.tstep ={val:10、单位:"ns"};
/**
*模块之间的连接
*/
scripting.connect (CNT1、"out"、PIN2、"in");
scripting.connect (DLY1、"out"、PIN4、"in");
scripting.connect (DLY1、"out"、DLY2、"in");
scripting.connect (DLY2、"OUT"、PIN5、"IN");
scripting.connect (OSC1、"OUT0"、DLY1、"CLK");
scripting.connect (OSC1、"OUT0"、DLY2、"CLK");
scripting.connect (OSC1、"out1"、CNT1、"CLK");
scripting.connect (PIN3、"out"、DLY1、"in");
/**
在图形中显示的模块的*(x,y)坐标
*/
CNT1.$position =[65、15];
DLY1.$Position =[-45、-165];
DLY2.$Position =[65、-75];
OSC1.$POSITION =[-180、15];
pin1.$position =[-350、40];
PIN2.$POSITION =[245、30];
pin3.$position =[-350、-160];
PIN4.$POSITION =[245,-150];
PIN5.$POSITION =[245、-60];
/**
*用于解锁引脚/外设的 Pinmux 解决方案。 这可确保将来对自动解算器进行细微更改
*该工具的版本不会影响您最初看到的 pinmux。 可以按照完全删除这些行
*从头开始重新解决。
*/
DLY1.hw.$indicestSolution ="CNT_FSM_2";
DLY2.hw.$indicestSolution ="CNT_FSM_1";
OSC1.HW.$indicestSolution ="OSC_0";
PIN2.HW.$INPTIESTELESTSolution ="IO3";
pin3.hw.tiinestSolution ="IN0";
PIN4.HW.$INPTIESTELESTSolution ="IO2";
PIN5.HW.$INPESTELEestSolution ="IO1";
system.hw.$indicestSolution ="系统";