4MHz时钟使用GPIO

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
6个职位/ 0个新职位
最后发表
posljh
离线
最后看到:3年5个月前
加入:2016-12-23 05:47
4MHz时钟使用GPIO

我想让4MHz时钟使用GPIO..;我可以使用任何定时器吗?

设备:
MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨posljh,

嗨posljh,

是的,你可以使用定时器和PWM功能来产生一个4MHz的脉冲。您可以查看timer0和timer2示例中的peripheral_examples文件夹。

为了达到4 mhz脉冲可以设置定时器分配器2为了产生一个时钟的8 mhz (set_tmr_div (CLK_PER_REG_TMR_DIV_2);)并设置定时器为0的高和低柜台(timer0_set_pwm_high_counter (PWM_HIGH);, timer0_set_pwm_low_counter (PWM_LOW);),这些设置将生成一个4 mhz脉冲。

由于MT_dialog

posljh
离线
最后看到:3年5个月前
加入:2016-12-23 05:47
非常感谢!

非常感谢!

我现在可以发出4兆赫的脉冲。顺便说一下,我也想用I2C。但我不能使用I2C当我产生4MHz脉冲..;请给我一些建议

posljh
离线
最后看到:3年5个月前
加入:2016-12-23 05:47
我附加了一个文件

我附加了一个文件,包括一些波形根据不同的定时器0设置。
当我产生160kHz脉冲时,我可以使用i2c。但是我越提高频率,我得到的脉冲就越不稳定,我不能使用i2c..;
请检查一个文件。高频脉冲纹波电压过高..;

MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨posljh,

嗨posljh,

我不认为同时使用I2C和计时器之间有任何问题,使用SDK中的外围设备示例,并在p0_0上附加一个带有4MHz脉冲的计时器0功能。您附加的代码上的一些注释,我看到您还启用了TIMER_ON,这意味着根据计时器运行的频率,您也将获得相应的中断,我认为,你没有看到任何I2C活动的原因是因为来自计时器的中断非常快,它们不允许处理器达到I2C交互,所以简单地说,没有I2C交互,因为简单地说,代码没有达到那个点。你不必为定时器使用中断来拥有PWM功能,而不是使用timer0_set(TIMER_ON, PWM_HIGH, PWM_LOW);你可以使用timer0_set_pwm_high_counter(PWM_HIGH);和timer0_set_pwm_low_counter (PWM_LOW);并且不启用定时器的IRQ。当降低频率时,您可以看到I2C交互的原因是中断发生的频率较低,因此有时间让ARM执行I2C交互代码。关于你观察到的响,我无法看到osciloscope当频率增加,所以也许这都是某种电子问题,由PWM销上的负载引起的,或许这也是由你使用示波器的探头。

由于MT_dialog

posljh
离线
最后看到:3年5个月前
加入:2016-12-23 05:47
非常感谢!!

非常感谢!!

现在我可以使用I2C和PWM。问题是使能IRQ功能。当我去掉那个函数时,代码工作正确。